mettagrid 0.2.0.22__tar.gz → 0.2.0.23__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.22 → mettagrid-0.2.0.23}/.bazelrc +9 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/Makefile +37 -29
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/PKG-INFO +1 -1
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/bindings/mettagrid_c.cpp +11 -11
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/agent.hpp +0 -3
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/assembler.hpp +19 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/chest.hpp +4 -3
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/constants.hpp +5 -4
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/converter.hpp +0 -3
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/converter_config.hpp +0 -6
- mettagrid-0.2.0.23/cpp/include/mettagrid/systems/clipper.hpp +228 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/mettagrid.egg-info/PKG-INFO +1 -1
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/mettagrid.egg-info/SOURCES.txt +9 -5
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/bindings/bindings.nim +9 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.json +1203 -1756
- mettagrid-0.2.0.23/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.lastModified +1 -0
- mettagrid-0.2.0.23/nim/mettascope/data/objects/clipped_carbon_extractor.png +0 -0
- mettagrid-0.2.0.23/nim/mettascope/data/objects/clipped_germanium_extractor.png +0 -0
- mettagrid-0.2.0.23/nim/mettascope/data/objects/clipped_oxygen_extractor.png +0 -0
- mettagrid-0.2.0.23/nim/mettascope/data/objects/clipped_silicon_extractor.png +0 -0
- mettagrid-0.2.0.23/nim/mettascope/data/resources/decoder.png +0 -0
- mettagrid-0.2.0.23/nim/mettascope/data/resources/modulator.png +0 -0
- mettagrid-0.2.0.23/nim/mettascope/data/resources/resonator.png +0 -0
- mettagrid-0.2.0.23/nim/mettascope/data/resources/scrambler.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/mettascope.nimble +1 -1
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/actions.nim +44 -54
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/common.nim +17 -4
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/envconfig.nim +1 -2
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/footer.nim +2 -1
- mettagrid-0.2.0.23/nim/mettascope/src/mettascope/objectinfo.nim +133 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/pathfinding.nim +27 -26
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/replays.nim +39 -2
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/timeline.nim +6 -3
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/utils.nim +15 -29
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/worldmap.nim +64 -38
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope.nim +30 -23
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope.nims +2 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/pyproject.toml +4 -16
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/config/mettagrid_c_config.py +0 -1
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/config/mettagrid_config.py +0 -2
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/core.py +1 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/mapgen.py +26 -11
- mettagrid-0.2.0.23/python/src/mettagrid/mapgen/scenes/__init__.py +1 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mettagrid_c.pyi +0 -2
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/util/grid_object_formatter.py +22 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/BUILD +8 -4
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_assembler_partial_usage.py +20 -1
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_attack_resource_exception.py +0 -2
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_buffers.py +0 -1
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_clipper.cpp +4 -1
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_converter.py +0 -3
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_grid_objects_properties.py +0 -1
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_mettagrid.cpp +4 -8
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_observations.py +0 -120
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_resource_mod.py +0 -3
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_rewards.py +0 -1
- mettagrid-0.2.0.22/cpp/include/mettagrid/actions/change_color.hpp +0 -40
- mettagrid-0.2.0.22/cpp/include/mettagrid/systems/clipper.hpp +0 -156
- mettagrid-0.2.0.22/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.lastModified +0 -1
- mettagrid-0.2.0.22/nim/mettascope/src/mettascope/objectinfo.nim +0 -69
- mettagrid-0.2.0.22/test_pointer_init +0 -0
- mettagrid-0.2.0.22/test_pointer_init.cpp +0 -39
- mettagrid-0.2.0.22/test_uninitialized.cpp +0 -29
- mettagrid-0.2.0.22/test_uninitialized.o +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/.clang-format +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/.clang-tidy +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/.gitignore +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/BUILD.bazel +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/CPPLINT.cfg +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/LICENSE +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/MANIFEST.in +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/MODULE.bazel +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/README.md +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/bazel_build.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/benchmarks/BUILD +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/benchmarks/test_mettagrid_env_benchmark.cpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/benchmarks/test_mettagrid_env_benchmark.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/README.md +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/boxout.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/choose_wisely.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/corners.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/corridors.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/cylinder.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/cylinder_easy.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/easy_memory.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/emptyspace_outofsight.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/hall_of_mirrors.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/hard_memory.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/honeypot.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/journey_home.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/knotty.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/labyrinth.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/little_landmark_easy.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/little_landmark_hard.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/lobster_legs.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/lobster_legs_cues.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/medium_memory.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/memory3.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/memory_palace.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/memory_swirls.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/memory_swirls_hard.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/obstacles0.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/obstacles1.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/obstacles2.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/obstacles3.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/passing_things.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/radial_large.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/radial_maze.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/radial_mini.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/radial_small.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/rooms.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/spacey_memory.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/spiral_chamber.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/swirls.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/tease.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/tease_small.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/thecube.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/venture_out.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/walkaround.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/walls_outofsight.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/walls_withinsight.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/wanderout.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/which_way.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/navigation_sequence/you_shall_not_pass.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/object_use/shoot_out.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/object_use/swap_in.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/configs/maps/object_use/swap_out.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/BUILD.bazel +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/README.md +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/bindings/mettagrid_c.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/action_handler.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/attack.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/change_glyph.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/get_output.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/move.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/noop.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/orientation.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/put_recipe_items.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/resource_mod.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/rotate.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/actions/swap.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/config/mettagrid_config.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/core/event.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/core/grid.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/core/grid_object.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/core/hash.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/core/types.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/agent_config.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/assembler_config.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/chest_config.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/has_inventory.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/inventory.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/inventory_config.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/production_handler.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/recipe.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/usable.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/wall.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/renderer/hermes.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/systems/clipper_config.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/systems/observation_encoder.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/systems/packed_coordinate.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/systems/stats_tracker.hpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/demo.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/demos/README.md +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/demos/demo_train_gym.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/demos/demo_train_pettingzoo.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/demos/demo_train_puffer.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/ensure_mettascope.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/lint/BUILD +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/lint/README.md +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/lint/clang_tidy.bzl +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/lint/clang_tidy_wrapper.sh +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/mettagrid.egg-info/dependency_links.txt +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/mettagrid.egg-info/entry_points.txt +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/mettagrid.egg-info/requires.txt +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/mettagrid.egg-info/top_level.txt +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/migrate_to_toplevel.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/AGENTS.md +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/README.md +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/bindings/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/cors_http_server.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/arrow.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack1.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack2.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack3.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack4.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack5.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack6.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack7.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack8.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack9.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/attack_nearest.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/converting.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/get_items.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/attack.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/attack_nearest.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/change_color.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/get_items.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/move.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/noop.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/put_items.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/rotate.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/swap.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/icons/unknown.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/put_items.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/swap.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/thoughts.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/thoughts_lightning.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/actions/unknown.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/agents/agent.e.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/agents/agent.n.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/agents/agent.s.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/agents/agent.w.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/agents/footprints.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/agents/frozen.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/agents/future_arrow.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/agents/past_arrow.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/agents/path.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/crosshair.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/dash.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/effects/halo.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/alien.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/angry.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/down.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/happy.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/left.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/love.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/poo.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/right.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/sad.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/skull.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/sparkle.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/emoji/up.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/fonts/IBMPlexMono-Regular.ttf +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/fonts/IBMPlexSans-Bold.ttf +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/fonts/IBMPlexSans-Regular.ttf +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/fonts/NotoSansJP-Regular.ttf +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/fonts/jsMath-cmbx10.ttf +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/05bab347bacaede7606b8e59426dc42b155a8fd6.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/11f0598c7a572fe7461bc54b07423b7b5e3e7a60.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/42480bc49710a5f0ebfafe1e1a7785068db37106.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/621976c3803ef1eea0c316c0e86e1bc31bd6dba4.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/79d04b14381789498b35cbd1ae05eb578ededb5f.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/7b2b3374ea1a80648e8c68a472dcbba188af3e8e.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/86e7f3e8b46af021592fa055ecb606c6b0825c12.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/ac4765273b78fb68ac1e913e54c54224b7f6f215.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/b765480fbb089bf76a68424612eeb48ddd95ccc7.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/eb9f0db464f0f04a52566cd211a561f76d1bcc2a.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fidget/images/f10e39779ee551c9d46a527d2ea2a67f434f2867.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/fonts/Inter-Regular.ttf +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/info.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/meta_grid_icon.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/minimapPip.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/agent.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/altar.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/armory.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/assembler.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/block.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/carbon_ex_dep.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/carbon_extractor.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/charger.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/chest.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/chest_carbon.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/chest_germanium.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/chest_oxygen.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/chest_silicon.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/clay_oven.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/converter.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/empty.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/factory.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/floor.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/generator.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/generator_blue.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/generator_green.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/generator_red.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/geranium_extractor.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/germanium_ex_dep.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/germanium_extractor.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/ice_tower.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/ice_vase.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/lab.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/lasery.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/mine.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/mine_blue.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/mine_green.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/mine_red-1.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/mine_red.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/oxygen_ex_dep.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/oxygen_extractor.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/palm_tree.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/silicon_ex_dep.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/silicon_extractor.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/temple.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/unknown.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.0.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.e.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.fill.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.n.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.ne.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.ns.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.nse.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.nw.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.nwe.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.nws.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.nwse.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.s.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.se.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.w.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.we.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.ws.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wall.wse.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/water_well.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/weaving_loom.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/objects/wheat_field.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/replays/pens.json.z +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/agent_id.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/armor.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/battery.blue.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/battery.green.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/battery.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/battery.red.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/battery_blue.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/battery_green.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/battery_red.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/blue_gem.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/blueprint.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/bread.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/carbon.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/coal.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/coconut.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/copper_ore.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/diamond.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/energy.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/germanium.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/gold_ore.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/green_gem.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/heart.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/ice_granade.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/iron_ore.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/laser.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/lizard_hide.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/oil.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/ore.blue.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/ore.green.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/ore.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/ore.red.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/ore_blue.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/ore_green.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/ore_red.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/oxygen.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/palm_fiber.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/red_gem.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/reward.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/salt_water.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/sand.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/silicon.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/sisal.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/snake_skin.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/snow_ball.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/star.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/stone.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/straw_hat.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/turtle_shell.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/unknown.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/water.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/wheat.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/yellow_gem.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/resources/yucca_fiber.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/selection.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/target.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/tile.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/attack.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/attack_nearest.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/change_color.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/frozen.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/get_items.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/invalid.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/move.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/move_8way.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/move_cardinal.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/noop.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/put_items.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/rotate.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/swap.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/trace/unknown.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/view/grid.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/data/white.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/agenttable.nim +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/agenttraces.nim +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/minimap.nim +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/panels.nim +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/settings.nim +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/shell.html +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/nim/mettascope/src/mettascope/sim.nim +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/README.md +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/base_config.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/builder/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/builder/building.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/builder/empty_converters.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/builder/envs.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/config/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/demo.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/envs/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/envs/gym_env.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/envs/gym_wrapper.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/envs/mettagrid_env.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/envs/pettingzoo_env.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/envs/puffer_base.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/map_builder/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/map_builder/ascii.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/map_builder/assembler_map_builder.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/map_builder/map_builder.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/map_builder/maze.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/map_builder/perimeter_incontext.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/map_builder/random.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/map_builder/utils.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/area.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/load.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/mapgen_ascii.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/random/float.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/random/int.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/ascii.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/auto.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/bsp.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/convchain.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/copy_grid.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/README.md +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_choice.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_double_pillar.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_feature_with_door.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_flooded_fountain.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_single_pillar.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_underground_garden.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/angelslayer_arrival_pentagon.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/co_arrival_square_in_a_square_in_a_square.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/co_arrival_two_rings.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_hothouse.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_planthouse.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_waterhouse.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/doesnt_arrival_eight_statues.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dolorous_arrival_somebody's_watching_me.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_boxes_within_box.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_boxorama.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_line_fractal.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_long_road.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_radiant.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_rooms_a.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_rooms_with_view.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_shelter.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_snail.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_ternary.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_three_bigger_balls.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_three_smaller_balls.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_a.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_b.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_c.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_d.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_e.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_f.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_g.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_h.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_i.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_j.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_k.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_triangle_fractal.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_windows_large_door.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_chamrin_arrival_tetris.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_angles.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_boulevard.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_nine_rooms.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_hopf_link.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_trefoil_3fold.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_trefoil_twist.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_druids_welcome.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_tree_alley.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_water_cross.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_water_star.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_blinker_ship.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_huge.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_large.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_medium.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_small.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_bridges.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_forest_graveyard.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_horns.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_wishing_wells.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/grunt_arrival_crossed_arrows.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/grunt_arrival_lava_bath.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ldierk_walled_garden.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ldierk_walled_garden_2.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_cross.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_funnel.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_lava_pool.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_chessboard.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_flooded_house.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_lavapool.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_maybe_door_vault.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_statue_moat.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_iron_boxes.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_molten_gateway.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_grand_opening.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_los_fun.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_refuge.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_spirals.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_diagonal_passages.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_doors.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_four_houses.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_open_corners.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_plants_in_alcoves.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_pointy.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_radiant_lines.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_three_doors.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_up_and_down.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_wavy_path.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_arrow.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue_2.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue_3.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_large.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_med.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_small.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_square_statues.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mushboom_english_gardens.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_halloftheorcs.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_lavacross.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_smallfort.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_watergridlock.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_wetmaze.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_crosshair.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_depleted_hourglass.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_water_spiral.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/onia_arrival_mini_spirals.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/onia_arrival_pyramid.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/pf_arrival_petrified_forest.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_basics.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_conway.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_dodecagon.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_heroes.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_radial01.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_radial02.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_whirlpool.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/reono_arrival_forest_river.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/reono_arrival_mine.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_chinese_lattice_arrival.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_crossed_star.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_dead_forest.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_a.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_b.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_c.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_d.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_e.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_checkerplants.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_forest.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_gate.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_hexagon.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_simple_crosswalls.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_simple_fountains.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_star.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/spicycebolla_green_bress_n_ham.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/spicycebolla_green_bress_n_ham_2.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_a.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_b.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_c.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_d.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_e.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_f.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wander_arrival_chamber.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wander_arrival_desolate.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wheals_arrival_linesprint.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wheals_arrival_shading.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/convchain/zelgadis_glass_arrival_small.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_choice.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_double_pillar.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_feature_with_door.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_flooded_fountain.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_single_pillar.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_underground_garden.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/co_arrival_square_in_a_square_in_a_square.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/co_arrival_two_rings.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_hothouse.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_planthouse.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_waterhouse.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/doesnt_arrival_eight_statues.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dolorous_arrival_somebody's_watching_me.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_boxes_within_box.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_boxorama.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_line_fractal.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_long_road.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_radiant.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_rooms_a.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_rooms_with_view.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_shelter.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_snail.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_ternary.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_three_bigger_balls.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_three_smaller_balls.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_a.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_b.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_c.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_d.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_e.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_f.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_g.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_h.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_i.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_j.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_k.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_triangle_fractal.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_windows_large_door.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_chamrin_arrival_tetris.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_angles.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_boulevard.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_nine_rooms.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_hopf_link.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_trefoil_3fold.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_trefoil_twist.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_druids_welcome.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_tree_alley.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_water_cross.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_water_star.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_blinker_ship.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_huge.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_large.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_medium.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_small.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_bridges.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_forest_graveyard.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_horns.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_wishing_wells.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/grunt_arrival_crossed_arrows.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/grunt_arrival_lava_bath.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ldierk_walled_garden.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ldierk_walled_garden_2.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_cross.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_funnel.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_lava_pool.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_chessboard.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_flooded_house.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_lavapool.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_maybe_door_vault.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_statue_moat.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_iron_boxes.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_molten_gateway.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_grand_opening.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_refuge.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_spirals.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_diagonal_passages.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_doors.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_four_houses.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_open_corners.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_plants_in_alcoves.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_pointy.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_radiant_lines.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_three_doors.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_up_and_down.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_wavy_path.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_arrow.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue_2.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue_3.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_large.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_med.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_small.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_square_statues.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mushboom_english_gardens.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_halloftheorcs.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_lavacross.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_smallfort.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_watergridlock.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_wetmaze.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_crosshair.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_depleted_hourglass.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_water_spiral.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/onia_arrival_mini_spirals.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/onia_arrival_pyramid.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/pf_arrival_petrified_forest.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_basics.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_conway.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_dodecagon.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_heroes.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_radial01.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_radial02.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_whirlpool.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/reono_arrival_forest_river.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/reono_arrival_mine.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_chinese_lattice_arrival.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_crossed_star.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_dead_forest.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_a.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_b.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_c.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_d.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_e.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_checkerplants.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_forest.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_gate.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_hexagon.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_simple_crosswalls.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_simple_fountains.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_star.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/spicycebolla_green_bress_n_ham.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/spicycebolla_green_bress_n_ham_2.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_a.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_b.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_c.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_d.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_e.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_f.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wander_arrival_chamber.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wander_arrival_desolate.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wheals_arrival_linesprint.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wheals_arrival_shading.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/dcss/wfc/zelgadis_glass_arrival_small.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/grid_altars.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/inline_ascii.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/layout.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/make_connected.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/maze.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/mean_distance.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/mirror.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/multi_left_and_right.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/nop.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/radial_maze.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/random.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/random_dcss_scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/random_objects.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/random_scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/random_yaml_scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/remove_agents.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/room_grid.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/spiral.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/transplant_scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/varied_terrain.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/wfc.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/scenes/yaml.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/tools/dcss_import.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/tools/gen.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/tools/gen_scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/tools/view.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/types.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/utils/ascii_grid.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/utils/draw.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/utils/make_scene_config.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/utils/pattern.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/utils/show.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/utils/storable_map.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mapgen/utils/thumbnail.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/mettascope.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/nim/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/profiling/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/profiling/memory_monitor.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/profiling/stopwatch.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/profiling/system_monitor.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/py.typed +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/Inter-Regular.ttf +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/altar.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/atlas.json +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/atlas.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/converter.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/generator.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/items.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/monsters.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/ore-0.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/ore-1.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/ore-2.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/ore-3.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/ore-4.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/ore-5.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/ore-6.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/puffer_chars.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/assets/wall.png +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/miniscope/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/miniscope/buffer.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/miniscope/help.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/miniscope/info_panels.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/miniscope/interactive.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/renderer/miniscope/renderer.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/test_support/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/test_support/actions.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/test_support/mapgen.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/test_support/observation_helper.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/test_support/orientation.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/test_support/token_types.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/types.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/util/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/util/debug.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/util/dict_utils.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/util/diversity.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/util/module.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/util/replay_writer.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/python/src/mettagrid/util/stats_writer.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/scripts/build_asan.sh +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/scripts/test_leaks.sh +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/setup.cfg +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/cpplint.sh +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/map_builder/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/map_builder/test_ascii.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/map_builder/test_map_builder.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/map_builder/test_maze.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/map_builder/test_polymorphic_serialization.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/map_builder/test_random.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/map_builder/test_utils.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/__init__.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/random/test_float.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/random/test_int.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/fixtures/dir1/1.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/fixtures/dir1/2.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/fixtures/test.map +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/fixtures/test.yaml +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_ascii.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_auto.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_bsp.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_convchain.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_inline_ascii.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_layout.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_make_connected.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_maze.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_mean_distance.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_mirror.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_multi_left_and_right.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_nop.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_radial_maze.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_random.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_random_dcss_scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_random_objects.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_random_scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_random_yaml_scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_remove_agents.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_room_grid.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_wfc.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/scenes/test_yaml.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/test_mapgen.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/test_scene.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/test_transform.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/test_validate_all_ascii_maps.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/utils/test_pattern.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/mapgen/utils/test_storable_map_io.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/profiling/test_memory_monitor.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/profiling/test_stopwatch.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/profiling/test_system_monitor.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/renderer/test_miniscope.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/run_test.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_action_compatibility.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_actions.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_agent_resource_sharing.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_buffer_reuse.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_chest.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_diversity.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_env_config_serialization.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_env_map.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_forbidden_imports.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_global_obs_config.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_global_observations.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_grid_object.cpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_gym_env.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_interactive.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_inventory_regeneration.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_leaks.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_mettagrid.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_move.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_new_env_hierarchy.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_observations.cpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_pettingzoo_env.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_pufferlib_integration.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_resource_loss.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_resource_mod_config.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_rotate.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_set_inventory.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_stats_tracker.cpp +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_tags.py +0 -0
- {mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/tests/test_visitation_counts.py +0 -0
|
@@ -20,6 +20,15 @@ build:dbg --compilation_mode=dbg
|
|
|
20
20
|
build:dbg --copt=-O0
|
|
21
21
|
build:dbg --copt=-g
|
|
22
22
|
build:dbg --strip=never
|
|
23
|
+
build:dbg --copt=-fsanitize=address
|
|
24
|
+
build:dbg --copt=-fsanitize=undefined
|
|
25
|
+
build:dbg --copt=-fsanitize=float-divide-by-zero
|
|
26
|
+
build:dbg --copt=-fno-sanitize-recover=all
|
|
27
|
+
build:dbg --copt=-fstack-protector-strong
|
|
28
|
+
build:dbg --linkopt=-fsanitize=address
|
|
29
|
+
build:dbg --linkopt=-fsanitize=undefined
|
|
30
|
+
build:dbg --linkopt=-fsanitize=float-divide-by-zero
|
|
31
|
+
build:dbg --test_env=ASAN_OPTIONS=detect_leaks=0
|
|
23
32
|
|
|
24
33
|
# Test configuration
|
|
25
34
|
test --test_output=errors
|
|
@@ -19,81 +19,89 @@ help:
|
|
|
19
19
|
|
|
20
20
|
# Debug build
|
|
21
21
|
build:
|
|
22
|
-
@echo "
|
|
22
|
+
@echo "Building debug..."
|
|
23
23
|
bazel build --config=dbg //:mettagrid_c
|
|
24
24
|
|
|
25
25
|
# Production release build
|
|
26
26
|
build-prod:
|
|
27
|
-
@echo "
|
|
27
|
+
@echo "Building release..."
|
|
28
28
|
bazel build --config=opt //:mettagrid_c
|
|
29
29
|
|
|
30
30
|
# Build and run benchmarks
|
|
31
31
|
benchmark:
|
|
32
|
-
@echo "
|
|
32
|
+
@echo "Building C++ benchmarks..."
|
|
33
33
|
bazel build --config=opt //benchmarks:test_mettagrid_env_benchmark
|
|
34
|
-
@echo "
|
|
34
|
+
@echo "Creating build-release directory..."
|
|
35
35
|
mkdir -p build-release
|
|
36
|
-
@echo "
|
|
36
|
+
@echo "Copying benchmark binaries..."
|
|
37
37
|
cp -f bazel-bin/benchmarks/test_mettagrid_env_benchmark build-release/
|
|
38
38
|
chmod +x build-release/test_mettagrid_env_benchmark
|
|
39
|
-
@echo "
|
|
39
|
+
@echo "Running C++ benchmarks..."
|
|
40
40
|
# Note: Using the copied binary instead of 'bazel run' to avoid Python environment issues
|
|
41
|
-
./build-release/test_mettagrid_env_benchmark || echo "
|
|
42
|
-
@echo "
|
|
41
|
+
./build-release/test_mettagrid_env_benchmark || echo "C++ benchmark failed - this may be due to Python environment issues"
|
|
42
|
+
@echo "Running Python benchmarks..."
|
|
43
43
|
uv run pytest benchmarks/test_mettagrid_env_benchmark.py -v --benchmark-only
|
|
44
44
|
|
|
45
45
|
# Run unit tests
|
|
46
46
|
test: build
|
|
47
|
-
@echo "
|
|
48
|
-
bazel test //tests:tests_all
|
|
47
|
+
@echo "Running unit tests..."
|
|
48
|
+
bazel test --config=dbg //tests:tests_all
|
|
49
49
|
|
|
50
50
|
# Generate coverage report
|
|
51
51
|
coverage:
|
|
52
|
-
@echo "
|
|
53
|
-
@echo "
|
|
52
|
+
@echo "Building with coverage..."
|
|
53
|
+
@echo "Note: C++ coverage on macOS is currently not supported by bazel"
|
|
54
54
|
@echo " Running tests instead..."
|
|
55
|
-
bazel test //tests:tests_all
|
|
56
|
-
@echo "
|
|
55
|
+
bazel test --config=dbg //tests:tests_all
|
|
56
|
+
@echo "Tests completed successfully"
|
|
57
57
|
@echo " For Python coverage, use: make pytest-coverage"
|
|
58
58
|
|
|
59
59
|
# Alias for clang_tidy that only fails on errors (not warnings)
|
|
60
60
|
tidy:
|
|
61
|
-
@echo "
|
|
61
|
+
@echo "Running clang-tidy (errors only)..."
|
|
62
62
|
@bazel test //lint:clang_tidy --test_output=errors --nocache_test_results
|
|
63
|
-
@echo "
|
|
63
|
+
@echo "Clang-tidy check complete (use 'make tidy-verbose' to see all warnings)"
|
|
64
64
|
|
|
65
65
|
# Run clang-tidy with full output showing all warnings
|
|
66
66
|
tidy-verbose:
|
|
67
|
-
@echo "
|
|
67
|
+
@echo "Running clang-tidy with full output..."
|
|
68
68
|
@bazel test //lint:clang_tidy --test_output=all --nocache_test_results
|
|
69
69
|
|
|
70
70
|
# Formatting
|
|
71
71
|
format-check:
|
|
72
|
-
@echo "
|
|
72
|
+
@echo "Checking code formatting..."
|
|
73
73
|
@clang-format --dry-run --Werror -style=file $(shell find src include tests -name '*.c' -o -name '*.h' -o -name '*.cpp' -o -name '*.hpp')
|
|
74
|
-
@echo "
|
|
74
|
+
@echo "All files are correctly formatted"
|
|
75
75
|
|
|
76
76
|
format-fix:
|
|
77
|
-
@echo "
|
|
77
|
+
@echo "Reformatting code..."
|
|
78
78
|
@clang-format -i -style=file $(shell find src include tests -name '*.c' -o -name '*.h' -o -name '*.cpp' -o -name '*.hpp')
|
|
79
|
-
@echo "
|
|
79
|
+
@echo "Code reformatted"
|
|
80
80
|
|
|
81
81
|
# Python
|
|
82
82
|
install:
|
|
83
|
-
@echo "
|
|
83
|
+
@echo "Installing package..."
|
|
84
84
|
@cd ../.. && uv sync --active --inexact --frozen
|
|
85
85
|
|
|
86
|
-
pytest:
|
|
87
|
-
@echo "
|
|
88
|
-
@cd ../.. && uv
|
|
86
|
+
pytest:
|
|
87
|
+
@echo "Preparing environment for Python tests (ASAN disabled)..."
|
|
88
|
+
@cd ../.. && DEBUG= uv sync --active --inexact --frozen
|
|
89
|
+
@echo "Building C++ extension without ASAN (opt config)..."
|
|
90
|
+
@cd ../.. && PYTHONPATH=packages/mettagrid DEBUG= uv run python -c "import bazel_build as bb; bb._run_bazel_build()"
|
|
91
|
+
@echo "Running Python tests (ASAN disabled)..."
|
|
92
|
+
@cd ../.. && DEBUG= uv run pytest packages/mettagrid/tests
|
|
89
93
|
|
|
90
|
-
pytest-coverage:
|
|
91
|
-
@echo "
|
|
92
|
-
@cd ../.. && uv
|
|
94
|
+
pytest-coverage:
|
|
95
|
+
@echo "Preparing environment for Python tests (ASAN disabled)..."
|
|
96
|
+
@cd ../.. && DEBUG= uv sync --active --inexact --frozen
|
|
97
|
+
@echo "Building C++ extension without ASAN (opt config)..."
|
|
98
|
+
@cd ../.. && PYTHONPATH=packages/mettagrid DEBUG= uv run python -c "import bazel_build as bb; bb._run_bazel_build()"
|
|
99
|
+
@echo "Running Python tests with coverage (ASAN disabled)..."
|
|
100
|
+
@cd ../.. && DEBUG= uv run pytest packages/mettagrid/tests --cov=mettagrid --cov-report=term-missing --cov-report=html:packages/mettagrid/htmlcov
|
|
93
101
|
|
|
94
102
|
# Cleanup
|
|
95
103
|
clean:
|
|
96
|
-
@echo "
|
|
104
|
+
@echo "Cleaning build artifacts..."
|
|
97
105
|
bazel clean
|
|
98
106
|
rm -rf .venv uv.lock
|
|
99
107
|
rm -f coverage.info *.gcda *.gcno *.profraw *.profdata
|
|
@@ -12,13 +12,12 @@
|
|
|
12
12
|
|
|
13
13
|
#include "actions/action_handler.hpp"
|
|
14
14
|
#include "actions/attack.hpp"
|
|
15
|
-
#include "actions/change_color.hpp"
|
|
16
15
|
#include "actions/change_glyph.hpp"
|
|
17
16
|
#include "actions/get_output.hpp"
|
|
18
|
-
#include "actions/resource_mod.hpp"
|
|
19
17
|
#include "actions/move.hpp"
|
|
20
18
|
#include "actions/noop.hpp"
|
|
21
19
|
#include "actions/put_recipe_items.hpp"
|
|
20
|
+
#include "actions/resource_mod.hpp"
|
|
22
21
|
#include "actions/rotate.hpp"
|
|
23
22
|
#include "actions/swap.hpp"
|
|
24
23
|
#include "core/event.hpp"
|
|
@@ -107,8 +106,6 @@ MettaGrid::MettaGrid(const GameConfig& game_config, const py::list map, unsigned
|
|
|
107
106
|
_action_handlers.push_back(std::make_unique<ChangeGlyph>(*change_glyph_config));
|
|
108
107
|
} else if (action_name == "swap") {
|
|
109
108
|
_action_handlers.push_back(std::make_unique<Swap>(*action_config));
|
|
110
|
-
} else if (action_name == "change_color") {
|
|
111
|
-
_action_handlers.push_back(std::make_unique<ChangeColor>(*action_config));
|
|
112
109
|
} else if (action_name == "resource_mod") {
|
|
113
110
|
auto modify_config = std::static_pointer_cast<const ResourceModConfig>(action_config);
|
|
114
111
|
_action_handlers.push_back(std::make_unique<ResourceMod>(*modify_config, action_name));
|
|
@@ -260,8 +257,12 @@ MettaGrid::MettaGrid(const GameConfig& game_config, const py::list map, unsigned
|
|
|
260
257
|
if (clipper_cfg.unclipping_recipes.empty()) {
|
|
261
258
|
throw std::runtime_error("Clipper config provided but unclipping_recipes is empty");
|
|
262
259
|
}
|
|
263
|
-
_clipper = std::make_unique<Clipper>(*_grid,
|
|
264
|
-
clipper_cfg.
|
|
260
|
+
_clipper = std::make_unique<Clipper>(*_grid,
|
|
261
|
+
clipper_cfg.unclipping_recipes,
|
|
262
|
+
clipper_cfg.length_scale,
|
|
263
|
+
clipper_cfg.cutoff_distance,
|
|
264
|
+
clipper_cfg.clip_rate,
|
|
265
|
+
_rng);
|
|
265
266
|
}
|
|
266
267
|
}
|
|
267
268
|
|
|
@@ -717,8 +718,8 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
|
|
|
717
718
|
|
|
718
719
|
// Filter by bounding box if specified
|
|
719
720
|
if (use_bounds) {
|
|
720
|
-
if (obj->location.r < min_row || obj->location.r >= max_row ||
|
|
721
|
-
obj->location.c
|
|
721
|
+
if (obj->location.r < min_row || obj->location.r >= max_row || obj->location.c < min_col ||
|
|
722
|
+
obj->location.c >= max_col) {
|
|
722
723
|
continue;
|
|
723
724
|
}
|
|
724
725
|
}
|
|
@@ -760,7 +761,6 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
|
|
|
760
761
|
obj_dict["is_frozen"] = !!agent->frozen;
|
|
761
762
|
obj_dict["freeze_remaining"] = agent->frozen;
|
|
762
763
|
obj_dict["freeze_duration"] = agent->freeze_duration;
|
|
763
|
-
obj_dict["color"] = agent->color;
|
|
764
764
|
obj_dict["glyph"] = agent->glyph;
|
|
765
765
|
obj_dict["agent_id"] = agent->agent_id;
|
|
766
766
|
obj_dict["action_failure_penalty"] = agent->action_failure_penalty;
|
|
@@ -782,7 +782,6 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
|
|
|
782
782
|
obj_dict["conversion_duration"] = converter->conversion_ticks;
|
|
783
783
|
obj_dict["cooldown_duration"] = converter->cooldown;
|
|
784
784
|
obj_dict["output_limit"] = converter->max_output;
|
|
785
|
-
obj_dict["color"] = converter->color;
|
|
786
785
|
py::dict input_resources_dict;
|
|
787
786
|
for (const auto& [resource, quantity] : converter->input_resources) {
|
|
788
787
|
input_resources_dict[py::int_(resource)] = quantity;
|
|
@@ -829,7 +828,8 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
|
|
|
829
828
|
}
|
|
830
829
|
|
|
831
830
|
// Add all recipes information (only non-null recipes)
|
|
832
|
-
const std::vector<std::shared_ptr<Recipe>>& active_recipes =
|
|
831
|
+
const std::vector<std::shared_ptr<Recipe>>& active_recipes =
|
|
832
|
+
assembler->is_clipped ? assembler->unclip_recipes : assembler->recipes;
|
|
833
833
|
py::list recipes_list;
|
|
834
834
|
|
|
835
835
|
for (size_t i = 0; i < active_recipes.size(); ++i) {
|
|
@@ -31,7 +31,6 @@ public:
|
|
|
31
31
|
std::vector<InventoryItem> soul_bound_resources;
|
|
32
32
|
// Resources that this agent will try to share when it uses another agent.
|
|
33
33
|
std::vector<InventoryItem> shareable_resources;
|
|
34
|
-
ObservationType color;
|
|
35
34
|
ObservationType glyph;
|
|
36
35
|
// Despite being a GridObjectId, this is different from the `id` property.
|
|
37
36
|
// This is the index into MettaGrid._agents (std::vector<Agent*>)
|
|
@@ -61,7 +60,6 @@ public:
|
|
|
61
60
|
group_name(config.group_name),
|
|
62
61
|
soul_bound_resources(config.soul_bound_resources),
|
|
63
62
|
shareable_resources(config.shareable_resources),
|
|
64
|
-
color(0),
|
|
65
63
|
glyph(0),
|
|
66
64
|
agent_id(0),
|
|
67
65
|
stats(resource_names),
|
|
@@ -216,7 +214,6 @@ public:
|
|
|
216
214
|
features.push_back({ObservationFeature::Group, static_cast<ObservationType>(group)});
|
|
217
215
|
features.push_back({ObservationFeature::Frozen, static_cast<ObservationType>(frozen != 0 ? 1 : 0)});
|
|
218
216
|
features.push_back({ObservationFeature::Orientation, static_cast<ObservationType>(orientation)});
|
|
219
|
-
features.push_back({ObservationFeature::Color, static_cast<ObservationType>(color)});
|
|
220
217
|
if (glyph != 0) features.push_back({ObservationFeature::Glyph, static_cast<ObservationType>(glyph)});
|
|
221
218
|
|
|
222
219
|
for (const auto& [item, amount] : this->inventory.get()) {
|
|
@@ -33,6 +33,7 @@ private:
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
+
|
|
36
37
|
return positions;
|
|
37
38
|
}
|
|
38
39
|
|
|
@@ -83,6 +84,16 @@ private:
|
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
|
|
87
|
+
// Returns true if the recipe yields any positive output amount (legacy name retained for compatibility)
|
|
88
|
+
bool recipe_has_positive_output(const Recipe& recipe) const {
|
|
89
|
+
for (const auto& [item, amount] : recipe.output_resources) {
|
|
90
|
+
if (amount > 0) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
|
|
86
97
|
public:
|
|
87
98
|
// Consume resources from surrounding agents for the given recipe
|
|
88
99
|
// Intended to be private, but made public for testing. We couldn't get `friend` to work as expected.
|
|
@@ -298,6 +309,14 @@ public:
|
|
|
298
309
|
Recipe recipe_to_use = *original_recipe;
|
|
299
310
|
if (progress < 1.0f && allow_partial_usage) {
|
|
300
311
|
recipe_to_use = scale_recipe_for_partial_usage(*original_recipe, progress);
|
|
312
|
+
|
|
313
|
+
// Prevent usage that would yield no outputs (and would only serve to burn inputs and increment uses_count)
|
|
314
|
+
// Do not prevent usage if:
|
|
315
|
+
// - the unscaled recipe does not have outputs
|
|
316
|
+
// - usage would unclip the assembler; the unscaled unclipping recipe may happen to include outputs
|
|
317
|
+
if (!recipe_has_positive_output(recipe_to_use) && recipe_has_positive_output(*original_recipe) && !is_clipped) {
|
|
318
|
+
return false;
|
|
319
|
+
}
|
|
301
320
|
}
|
|
302
321
|
|
|
303
322
|
std::vector<Agent*> surrounding_agents = get_surrounding_agents();
|
|
@@ -76,7 +76,8 @@ private:
|
|
|
76
76
|
InventoryDelta deposited = update_inventory(resource_type, transfer_amount);
|
|
77
77
|
agent.update_inventory(resource_type, -transfer_amount);
|
|
78
78
|
stats_tracker->add("chest." + stats_tracker->resource_name(resource_type) + ".deposited", transfer_amount);
|
|
79
|
-
stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount",
|
|
79
|
+
stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount",
|
|
80
|
+
inventory.amount(resource_type));
|
|
80
81
|
|
|
81
82
|
// If we couldn't transfer the full delta due to max_inventory, destroy the rest
|
|
82
83
|
int destroyed = delta - transfer_amount;
|
|
@@ -98,7 +99,8 @@ private:
|
|
|
98
99
|
if (withdrawn > 0) {
|
|
99
100
|
update_inventory(resource_type, -withdrawn);
|
|
100
101
|
stats_tracker->add("chest." + stats_tracker->resource_name(resource_type) + ".withdrawn", withdrawn);
|
|
101
|
-
stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount",
|
|
102
|
+
stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount",
|
|
103
|
+
inventory.amount(resource_type));
|
|
102
104
|
return true;
|
|
103
105
|
}
|
|
104
106
|
return false;
|
|
@@ -163,7 +165,6 @@ public:
|
|
|
163
165
|
features.reserve(2 + this->inventory.get().size() + this->tag_ids.size());
|
|
164
166
|
|
|
165
167
|
features.push_back({ObservationFeature::TypeId, static_cast<ObservationType>(this->type_id)});
|
|
166
|
-
features.push_back({ObservationFeature::Color, static_cast<ObservationType>(this->resource_type)});
|
|
167
168
|
|
|
168
169
|
// Add current inventory (inv:resource)
|
|
169
170
|
for (const auto& [item, amount] : this->inventory.get()) {
|
|
@@ -37,7 +37,9 @@ constexpr ObservationType TypeId = 0;
|
|
|
37
37
|
constexpr ObservationType Group = 1;
|
|
38
38
|
constexpr ObservationType Frozen = 2;
|
|
39
39
|
constexpr ObservationType Orientation = 3;
|
|
40
|
-
|
|
40
|
+
// This used to be Color, but we removed it. We're leaving this here for backward compatibility, but may fill it
|
|
41
|
+
// in with a more useful feature in the future.
|
|
42
|
+
constexpr ObservationType ReservedForFutureUse = 4;
|
|
41
43
|
constexpr ObservationType ConvertingOrCoolingDown = 5;
|
|
42
44
|
constexpr ObservationType Swappable = 6;
|
|
43
45
|
constexpr ObservationType EpisodeCompletionPct = 7;
|
|
@@ -62,7 +64,7 @@ inline const std::map<ObservationType, std::string>& GetFeatureNames() {
|
|
|
62
64
|
{ObservationFeature::Group, "agent:group"},
|
|
63
65
|
{ObservationFeature::Frozen, "agent:frozen"},
|
|
64
66
|
{ObservationFeature::Orientation, "agent:orientation"},
|
|
65
|
-
{ObservationFeature::
|
|
67
|
+
{ObservationFeature::ReservedForFutureUse, "agent:reserved_for_future_use"},
|
|
66
68
|
{ObservationFeature::ConvertingOrCoolingDown, "converting"},
|
|
67
69
|
{ObservationFeature::Swappable, "swappable"},
|
|
68
70
|
{ObservationFeature::EpisodeCompletionPct, "episode_completion_pct"},
|
|
@@ -81,7 +83,6 @@ inline const std::map<ObservationType, std::string>& GetFeatureNames() {
|
|
|
81
83
|
// ##ObservationNormalization
|
|
82
84
|
// These are approximate maximum values for each feature. Ideally they would be defined closer to their source,
|
|
83
85
|
// but here we are. If you add / remove a feature, you should add / remove the corresponding normalization.
|
|
84
|
-
// These should move to configuration "soon". E.g., by 2025-06-10.
|
|
85
86
|
inline const std::map<ObservationType, float>& GetFeatureNormalizations() {
|
|
86
87
|
static const std::map<ObservationType, float> feature_normalizations = {
|
|
87
88
|
{ObservationFeature::LastAction, 10.0},
|
|
@@ -92,7 +93,7 @@ inline const std::map<ObservationType, float>& GetFeatureNormalizations() {
|
|
|
92
93
|
{ObservationFeature::Group, 10.0},
|
|
93
94
|
{ObservationFeature::Frozen, 1.0},
|
|
94
95
|
{ObservationFeature::Orientation, 1.0},
|
|
95
|
-
{ObservationFeature::
|
|
96
|
+
{ObservationFeature::ReservedForFutureUse, 255.0},
|
|
96
97
|
{ObservationFeature::ConvertingOrCoolingDown, 1.0},
|
|
97
98
|
{ObservationFeature::Swappable, 1.0},
|
|
98
99
|
{ObservationFeature::Glyph, 255.0},
|
|
@@ -77,7 +77,6 @@ public:
|
|
|
77
77
|
unsigned short cooldown; // Time to wait after producing before starting again
|
|
78
78
|
bool converting; // Currently in production phase
|
|
79
79
|
bool cooling_down; // Currently in cooldown phase
|
|
80
|
-
unsigned char color;
|
|
81
80
|
bool recipe_details_obs;
|
|
82
81
|
EventManager* event_manager;
|
|
83
82
|
ObservationType input_recipe_offset;
|
|
@@ -95,7 +94,6 @@ public:
|
|
|
95
94
|
cooldown(cfg.cooldown),
|
|
96
95
|
converting(false),
|
|
97
96
|
cooling_down(false),
|
|
98
|
-
color(cfg.color),
|
|
99
97
|
recipe_details_obs(cfg.recipe_details_obs),
|
|
100
98
|
event_manager(nullptr),
|
|
101
99
|
input_recipe_offset(cfg.input_recipe_offset),
|
|
@@ -160,7 +158,6 @@ public:
|
|
|
160
158
|
features.reserve(capacity);
|
|
161
159
|
|
|
162
160
|
features.push_back({ObservationFeature::TypeId, static_cast<ObservationType>(this->type_id)});
|
|
163
|
-
features.push_back({ObservationFeature::Color, static_cast<ObservationType>(this->color)});
|
|
164
161
|
features.push_back({ObservationFeature::ConvertingOrCoolingDown,
|
|
165
162
|
static_cast<ObservationType>(this->converting || this->cooling_down)});
|
|
166
163
|
|
{mettagrid-0.2.0.22 → mettagrid-0.2.0.23}/cpp/include/mettagrid/objects/converter_config.hpp
RENAMED
|
@@ -21,7 +21,6 @@ struct ConverterConfig : public GridObjectConfig {
|
|
|
21
21
|
unsigned short conversion_ticks,
|
|
22
22
|
unsigned short cooldown,
|
|
23
23
|
InventoryQuantity initial_resource_count = 0,
|
|
24
|
-
ObservationType color = 0,
|
|
25
24
|
bool recipe_details_obs = false,
|
|
26
25
|
const std::vector<int>& tag_ids = {})
|
|
27
26
|
: GridObjectConfig(type_id, type_name, tag_ids),
|
|
@@ -32,7 +31,6 @@ struct ConverterConfig : public GridObjectConfig {
|
|
|
32
31
|
conversion_ticks(conversion_ticks),
|
|
33
32
|
cooldown(cooldown),
|
|
34
33
|
initial_resource_count(initial_resource_count),
|
|
35
|
-
color(color),
|
|
36
34
|
recipe_details_obs(recipe_details_obs),
|
|
37
35
|
input_recipe_offset(0),
|
|
38
36
|
output_recipe_offset(0) {}
|
|
@@ -44,7 +42,6 @@ struct ConverterConfig : public GridObjectConfig {
|
|
|
44
42
|
unsigned short conversion_ticks;
|
|
45
43
|
unsigned short cooldown;
|
|
46
44
|
InventoryQuantity initial_resource_count;
|
|
47
|
-
ObservationType color;
|
|
48
45
|
bool recipe_details_obs;
|
|
49
46
|
ObservationType input_recipe_offset;
|
|
50
47
|
ObservationType output_recipe_offset;
|
|
@@ -63,7 +60,6 @@ inline void bind_converter_config(py::module& m) {
|
|
|
63
60
|
unsigned short,
|
|
64
61
|
unsigned short,
|
|
65
62
|
unsigned char,
|
|
66
|
-
ObservationType,
|
|
67
63
|
bool,
|
|
68
64
|
const std::vector<int>&>(),
|
|
69
65
|
py::arg("type_id"),
|
|
@@ -75,7 +71,6 @@ inline void bind_converter_config(py::module& m) {
|
|
|
75
71
|
py::arg("conversion_ticks"),
|
|
76
72
|
py::arg("cooldown"),
|
|
77
73
|
py::arg("initial_resource_count") = 0,
|
|
78
|
-
py::arg("color") = 0,
|
|
79
74
|
py::arg("recipe_details_obs") = false,
|
|
80
75
|
py::arg("tag_ids") = std::vector<int>())
|
|
81
76
|
.def_readwrite("type_id", &ConverterConfig::type_id)
|
|
@@ -87,7 +82,6 @@ inline void bind_converter_config(py::module& m) {
|
|
|
87
82
|
.def_readwrite("conversion_ticks", &ConverterConfig::conversion_ticks)
|
|
88
83
|
.def_readwrite("cooldown", &ConverterConfig::cooldown)
|
|
89
84
|
.def_readwrite("initial_resource_count", &ConverterConfig::initial_resource_count)
|
|
90
|
-
.def_readwrite("color", &ConverterConfig::color)
|
|
91
85
|
.def_readwrite("recipe_details_obs", &ConverterConfig::recipe_details_obs)
|
|
92
86
|
.def_readwrite("tag_ids", &ConverterConfig::tag_ids);
|
|
93
87
|
}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
#ifndef PACKAGES_METTAGRID_CPP_INCLUDE_METTAGRID_SYSTEMS_CLIPPER_HPP_
|
|
2
|
+
#define PACKAGES_METTAGRID_CPP_INCLUDE_METTAGRID_SYSTEMS_CLIPPER_HPP_
|
|
3
|
+
|
|
4
|
+
#include <algorithm>
|
|
5
|
+
#include <cmath>
|
|
6
|
+
#include <iostream>
|
|
7
|
+
#include <memory>
|
|
8
|
+
#include <numbers>
|
|
9
|
+
#include <random>
|
|
10
|
+
#include <vector>
|
|
11
|
+
|
|
12
|
+
#include "core/grid.hpp"
|
|
13
|
+
#include "objects/assembler.hpp"
|
|
14
|
+
|
|
15
|
+
class Clipper {
|
|
16
|
+
public:
|
|
17
|
+
std::vector<std::shared_ptr<Recipe>> unclipping_recipes;
|
|
18
|
+
// A map from assembler to its adjacent assemblers. This should be constant once computed.
|
|
19
|
+
std::map<Assembler*, std::vector<Assembler*>> adjacent_assemblers;
|
|
20
|
+
// A map of all assemblers to their current infection weight. This is the weight at which they'll be selected
|
|
21
|
+
// for clipping (if currently unclipped).
|
|
22
|
+
std::map<Assembler*, float> assembler_infection_weight;
|
|
23
|
+
// A set of assemblers that are adjacent to the set of clipped assemblers. Any unclipped assembler with
|
|
24
|
+
// non-zero infection weight will be in this set.
|
|
25
|
+
std::set<Assembler*> border_assemblers;
|
|
26
|
+
// A set of all unclipped assemblers. Any assembler that is not in this set will be clipped.
|
|
27
|
+
std::set<Assembler*> unclipped_assemblers;
|
|
28
|
+
|
|
29
|
+
float length_scale;
|
|
30
|
+
float cutoff_distance;
|
|
31
|
+
Grid& grid;
|
|
32
|
+
float clip_rate;
|
|
33
|
+
std::mt19937 rng;
|
|
34
|
+
|
|
35
|
+
Clipper(Grid& grid,
|
|
36
|
+
std::vector<std::shared_ptr<Recipe>> recipe_ptrs,
|
|
37
|
+
float length_scale,
|
|
38
|
+
float cutoff_distance,
|
|
39
|
+
float clip_rate,
|
|
40
|
+
std::mt19937 rng_init)
|
|
41
|
+
: unclipping_recipes(std::move(recipe_ptrs)),
|
|
42
|
+
length_scale(length_scale),
|
|
43
|
+
cutoff_distance(cutoff_distance),
|
|
44
|
+
grid(grid),
|
|
45
|
+
clip_rate(clip_rate),
|
|
46
|
+
rng(std::move(rng_init)) {
|
|
47
|
+
std::vector<Assembler*> starting_clipped_assemblers;
|
|
48
|
+
for (size_t obj_id = 1; obj_id < grid.objects.size(); obj_id++) {
|
|
49
|
+
auto* obj = grid.object(static_cast<GridObjectId>(obj_id));
|
|
50
|
+
if (!obj) continue;
|
|
51
|
+
if (auto* assembler = dynamic_cast<Assembler*>(obj)) {
|
|
52
|
+
// Skip clip-immune assemblers
|
|
53
|
+
if (assembler->clip_immune) continue;
|
|
54
|
+
|
|
55
|
+
assembler_infection_weight[assembler] = 0.0f;
|
|
56
|
+
unclipped_assemblers.insert(assembler);
|
|
57
|
+
|
|
58
|
+
if (assembler->start_clipped) {
|
|
59
|
+
// We'll actually do the clipping in a later step.
|
|
60
|
+
starting_clipped_assemblers.push_back(assembler);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Auto-calculate length_scale based on percolation theory if length_scale <= 0
|
|
66
|
+
if (length_scale <= 0.0f && !assembler_infection_weight.empty()) {
|
|
67
|
+
// Get grid dimensions
|
|
68
|
+
GridCoord grid_width = grid.width;
|
|
69
|
+
GridCoord grid_height = grid.height;
|
|
70
|
+
float grid_size = static_cast<float>(std::max(grid_width, grid_height));
|
|
71
|
+
|
|
72
|
+
// Calculate percolation-based length scale
|
|
73
|
+
// The constant 4.51 is the critical percolation density λ_c for 2D continuum percolation,
|
|
74
|
+
// empirically determined through Monte Carlo simulations (not analytically derivable).
|
|
75
|
+
// Reference:
|
|
76
|
+
// https://en.wikipedia.org/wiki/Percolation_threshold#Thresholds_for_2D_continuum_models
|
|
77
|
+
// Note: Wikipedia provides a value of ~1.127 when defined in terms of radius,
|
|
78
|
+
// We use diameter basis which becomes 4.51
|
|
79
|
+
|
|
80
|
+
constexpr float PERCOLATION_CONSTANT = 4.51f;
|
|
81
|
+
this->length_scale = (grid_size / std::sqrt(static_cast<float>(assembler_infection_weight.size()))) *
|
|
82
|
+
std::sqrt(PERCOLATION_CONSTANT / (4.0f * std::numbers::pi_v<float>));
|
|
83
|
+
}
|
|
84
|
+
// else: use the provided positive length_scale value as-is
|
|
85
|
+
|
|
86
|
+
// Auto-calculate cutoff_distance if not provided (cutoff_distance <= 0)
|
|
87
|
+
// At 3*length_scale, exp(-3) ≈ 0.05, so weights beyond this are negligible
|
|
88
|
+
if (cutoff_distance <= 0.0f) {
|
|
89
|
+
this->cutoff_distance = 3.0f * this->length_scale;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// This can be expensive, so only do it if the clipper is active. Note that having a Clipper with
|
|
93
|
+
// a zero clip rate is value, since we can still clip assemblers that start clipped.
|
|
94
|
+
if (clip_rate > 0.0f) {
|
|
95
|
+
compute_adjacencies();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Clip all starting clipped assemblers
|
|
99
|
+
for (auto* assembler : starting_clipped_assemblers) {
|
|
100
|
+
clip_assembler(*assembler);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
float infection_weight(Assembler& from, Assembler& to) const {
|
|
105
|
+
float distance = this->distance(from, to);
|
|
106
|
+
if (cutoff_distance > 0.0f && distance > cutoff_distance) return 0.0f;
|
|
107
|
+
return std::exp(-distance / length_scale);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// it's a little funky to use L2 distance here, since everywhere else we use L1 or Linf.
|
|
111
|
+
float distance(Assembler& assembler_a, Assembler& assembler_b) const {
|
|
112
|
+
GridLocation location_a = assembler_a.location;
|
|
113
|
+
GridLocation location_b = assembler_b.location;
|
|
114
|
+
return std::sqrt(std::pow(location_a.r - location_b.r, 2) + std::pow(location_a.c - location_b.c, 2));
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
void compute_adjacencies() {
|
|
118
|
+
// Clear existing adjacencies
|
|
119
|
+
adjacent_assemblers.clear();
|
|
120
|
+
|
|
121
|
+
// Collect all assemblers and sort by x coordinate (column)
|
|
122
|
+
std::vector<Assembler*> sorted_assemblers;
|
|
123
|
+
for (auto& [assembler, _] : assembler_infection_weight) {
|
|
124
|
+
sorted_assemblers.push_back(assembler);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Sort assemblers by their column. In the future we could consider sorting by row instead when
|
|
128
|
+
// height > width.
|
|
129
|
+
std::sort(sorted_assemblers.begin(), sorted_assemblers.end(), [](Assembler* a, Assembler* b) {
|
|
130
|
+
return a->location.c < b->location.c;
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
// For each assembler, find adjacent assemblers within cutoff_distance
|
|
134
|
+
for (size_t i = 0; i < sorted_assemblers.size(); ++i) {
|
|
135
|
+
Assembler* assembler_a = sorted_assemblers[i];
|
|
136
|
+
GridCoord a_x = assembler_a->location.c;
|
|
137
|
+
|
|
138
|
+
// Check assemblers with x coordinates within cutoff_distance
|
|
139
|
+
for (size_t j = i + 1; j < sorted_assemblers.size(); ++j) {
|
|
140
|
+
Assembler* assembler_b = sorted_assemblers[j];
|
|
141
|
+
GridCoord b_x = assembler_b->location.c;
|
|
142
|
+
|
|
143
|
+
// If x difference exceeds cutoff_distance, no need to check further
|
|
144
|
+
if (b_x - a_x > cutoff_distance) {
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Calculate actual distance
|
|
149
|
+
float dist = distance(*assembler_a, *assembler_b);
|
|
150
|
+
|
|
151
|
+
// If within cutoff_distance, they are adjacent
|
|
152
|
+
if (dist <= cutoff_distance) {
|
|
153
|
+
// Add both directions of connection
|
|
154
|
+
adjacent_assemblers[assembler_a].push_back(assembler_b);
|
|
155
|
+
adjacent_assemblers[assembler_b].push_back(assembler_a);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
void clip_assembler(Assembler& to_infect) {
|
|
162
|
+
assert(!to_infect.is_clipped);
|
|
163
|
+
// Update infection weights only for adjacent assemblers
|
|
164
|
+
for (auto* adjacent : adjacent_assemblers[&to_infect]) {
|
|
165
|
+
// Track this even for clipped assemblers, so we'll have an accurate number if they become unclipped.
|
|
166
|
+
assembler_infection_weight[adjacent] += infection_weight(to_infect, *adjacent);
|
|
167
|
+
if (adjacent->is_clipped) continue;
|
|
168
|
+
border_assemblers.insert(adjacent);
|
|
169
|
+
}
|
|
170
|
+
border_assemblers.erase(&to_infect);
|
|
171
|
+
unclipped_assemblers.erase(&to_infect);
|
|
172
|
+
|
|
173
|
+
// Randomly select one recipe from the list
|
|
174
|
+
std::uniform_int_distribution<size_t> dist(0, unclipping_recipes.size() - 1);
|
|
175
|
+
size_t selected_idx = dist(rng);
|
|
176
|
+
std::shared_ptr<Recipe> selected_recipe = unclipping_recipes[selected_idx];
|
|
177
|
+
|
|
178
|
+
// Create a vector of 256 copies of the selected recipe
|
|
179
|
+
std::vector<std::shared_ptr<Recipe>> unclip_recipes;
|
|
180
|
+
unclip_recipes.assign(256, selected_recipe);
|
|
181
|
+
to_infect.become_clipped(unclip_recipes, this);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
void on_unclip_assembler(Assembler& to_unclip) {
|
|
185
|
+
// Update infection weights only for adjacent assemblers
|
|
186
|
+
for (auto* adjacent : adjacent_assemblers[&to_unclip]) {
|
|
187
|
+
assembler_infection_weight[adjacent] -= infection_weight(to_unclip, *adjacent);
|
|
188
|
+
}
|
|
189
|
+
unclipped_assemblers.insert(&to_unclip);
|
|
190
|
+
if (assembler_infection_weight[&to_unclip] > 0.0f) {
|
|
191
|
+
border_assemblers.insert(&to_unclip);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
Assembler* pick_assembler_to_clip() {
|
|
196
|
+
float total_weight = 0.0f;
|
|
197
|
+
for (auto& candidate_assembler : border_assemblers) {
|
|
198
|
+
total_weight += assembler_infection_weight.at(candidate_assembler);
|
|
199
|
+
}
|
|
200
|
+
float random_weight = std::generate_canonical<float, 10>(rng) * total_weight;
|
|
201
|
+
for (auto& candidate_assembler : border_assemblers) {
|
|
202
|
+
random_weight -= assembler_infection_weight.at(candidate_assembler);
|
|
203
|
+
if (random_weight <= 0.0f) {
|
|
204
|
+
return candidate_assembler;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// We failed to find an assembler to clip. That _should_ be because there are no border assemblers. But maybe
|
|
208
|
+
// it's a floating point error. In any case, pick a random assembler from the unclipped assemblers.
|
|
209
|
+
if (!unclipped_assemblers.empty()) {
|
|
210
|
+
auto it = unclipped_assemblers.begin();
|
|
211
|
+
std::advance(it, std::uniform_int_distribution<size_t>(0, unclipped_assemblers.size() - 1)(rng));
|
|
212
|
+
return *it;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return nullptr;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
void maybe_clip_new_assembler() {
|
|
219
|
+
if (std::generate_canonical<float, 10>(rng) < clip_rate) {
|
|
220
|
+
Assembler* assembler = pick_assembler_to_clip();
|
|
221
|
+
if (assembler) {
|
|
222
|
+
clip_assembler(*assembler);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
#endif // PACKAGES_METTAGRID_CPP_INCLUDE_METTAGRID_SYSTEMS_CLIPPER_HPP_
|