mettagrid 0.2.0.19__tar.gz → 0.2.0.21__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.19 → mettagrid-0.2.0.21}/MODULE.bazel +8 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/PKG-INFO +1 -1
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/bindings/mettagrid_c.cpp +111 -4
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/bindings/mettagrid_c.hpp +5 -1
- mettagrid-0.2.0.21/cpp/include/mettagrid/actions/resource_mod.hpp +194 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/core/grid_object.hpp +2 -1
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/chest.hpp +67 -49
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/chest_config.hpp +17 -11
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/mettagrid.egg-info/PKG-INFO +1 -1
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/mettagrid.egg-info/SOURCES.txt +8 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/bindings/bindings.nim +1 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.json +29 -29
- mettagrid-0.2.0.21/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.lastModified +1 -0
- mettagrid-0.2.0.21/nim/mettascope/data/objects/assembler.png +0 -0
- mettagrid-0.2.0.21/nim/mettascope/data/objects/charger.png +0 -0
- mettagrid-0.2.0.21/nim/mettascope/data/objects/chest.png +0 -0
- mettagrid-0.2.0.21/nim/mettascope/data/objects/chest_carbon.png +0 -0
- mettagrid-0.2.0.21/nim/mettascope/data/objects/chest_germanium.png +0 -0
- mettagrid-0.2.0.21/nim/mettascope/data/objects/chest_oxygen.png +0 -0
- mettagrid-0.2.0.21/nim/mettascope/data/objects/chest_silicon.png +0 -0
- mettagrid-0.2.0.21/nim/mettascope/data/resources/heart.png +0 -0
- mettagrid-0.2.0.21/nim/mettascope/data/resources/oxygen.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/actions.nim +48 -47
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/common.nim +32 -1
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/pathfinding.nim +49 -17
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/timeline.nim +16 -19
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/worldmap.nim +41 -18
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/builder/building.py +21 -10
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/config/mettagrid_c_config.py +27 -2
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/config/mettagrid_config.py +21 -5
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/core.py +9 -6
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mettagrid_c.pyi +21 -1
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mettascope.py +36 -7
- mettagrid-0.2.0.21/python/src/mettagrid/renderer/miniscope/info_panels.py +131 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/miniscope/interactive.py +14 -4
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/renderer/test_miniscope.py +24 -12
- mettagrid-0.2.0.21/tests/test_chest.py +182 -0
- mettagrid-0.2.0.21/tests/test_grid_objects_properties.py +362 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_mettagrid.cpp +157 -2
- mettagrid-0.2.0.21/tests/test_resource_mod.py +680 -0
- mettagrid-0.2.0.21/tests/test_resource_mod_config.py +127 -0
- mettagrid-0.2.0.19/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.lastModified +0 -1
- mettagrid-0.2.0.19/nim/mettascope/data/objects/assembler.png +0 -0
- mettagrid-0.2.0.19/nim/mettascope/data/objects/charger.png +0 -0
- mettagrid-0.2.0.19/nim/mettascope/data/objects/chest.png +0 -0
- mettagrid-0.2.0.19/nim/mettascope/data/resources/heart.png +0 -0
- mettagrid-0.2.0.19/nim/mettascope/data/resources/oxygen.png +0 -0
- mettagrid-0.2.0.19/python/src/mettagrid/renderer/miniscope/info_panels.py +0 -157
- mettagrid-0.2.0.19/tests/test_chest.py +0 -89
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/.bazelrc +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/.clang-format +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/.clang-tidy +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/.gitignore +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/BUILD.bazel +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/CPPLINT.cfg +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/LICENSE +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/MANIFEST.in +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/Makefile +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/README.md +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/bazel_build.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/benchmarks/BUILD +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/benchmarks/test_mettagrid_env_benchmark.cpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/benchmarks/test_mettagrid_env_benchmark.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/README.md +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/boxout.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/choose_wisely.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/corners.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/corridors.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/cylinder.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/cylinder_easy.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/easy_memory.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/emptyspace_outofsight.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/hall_of_mirrors.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/hard_memory.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/honeypot.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/journey_home.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/knotty.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/labyrinth.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/little_landmark_easy.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/little_landmark_hard.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/lobster_legs.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/lobster_legs_cues.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/medium_memory.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/memory3.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/memory_palace.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/memory_swirls.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/memory_swirls_hard.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/obstacles0.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/obstacles1.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/obstacles2.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/obstacles3.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/passing_things.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/radial_large.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/radial_maze.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/radial_mini.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/radial_small.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/rooms.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/spacey_memory.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/spiral_chamber.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/swirls.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/tease.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/tease_small.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/thecube.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/venture_out.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/walkaround.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/walls_outofsight.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/walls_withinsight.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/wanderout.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/which_way.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/navigation_sequence/you_shall_not_pass.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/object_use/shoot_out.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/object_use/swap_in.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/configs/maps/object_use/swap_out.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/BUILD.bazel +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/README.md +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/action_handler.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/attack.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/change_color.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/change_glyph.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/get_output.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/move.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/noop.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/orientation.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/put_recipe_items.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/rotate.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/actions/swap.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/config/mettagrid_config.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/core/event.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/core/grid.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/core/hash.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/core/types.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/agent.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/agent_config.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/assembler.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/assembler_config.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/constants.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/converter.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/converter_config.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/has_inventory.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/inventory.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/inventory_config.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/production_handler.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/recipe.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/usable.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/objects/wall.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/renderer/hermes.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/systems/clipper.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/systems/clipper_config.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/systems/observation_encoder.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/systems/packed_coordinate.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/cpp/include/mettagrid/systems/stats_tracker.hpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/demo.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/demos/README.md +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/demos/demo_train_gym.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/demos/demo_train_pettingzoo.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/demos/demo_train_puffer.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/ensure_mettascope.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/lint/BUILD +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/lint/README.md +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/lint/clang_tidy.bzl +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/lint/clang_tidy_wrapper.sh +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/mettagrid.egg-info/dependency_links.txt +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/mettagrid.egg-info/entry_points.txt +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/mettagrid.egg-info/requires.txt +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/mettagrid.egg-info/top_level.txt +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/migrate_to_toplevel.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/AGENTS.md +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/README.md +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/bindings/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/cors_http_server.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/arrow.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack1.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack2.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack3.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack4.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack5.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack6.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack7.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack8.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack9.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/attack_nearest.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/converting.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/get_items.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/attack.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/attack_nearest.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/change_color.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/get_items.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/move.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/noop.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/put_items.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/rotate.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/swap.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/icons/unknown.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/put_items.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/swap.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/thoughts.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/thoughts_lightning.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/actions/unknown.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/agents/agent.e.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/agents/agent.n.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/agents/agent.s.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/agents/agent.w.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/agents/footprints.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/agents/frozen.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/agents/future_arrow.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/agents/past_arrow.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/agents/path.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/crosshair.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/dash.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/effects/halo.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/alien.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/angry.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/down.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/happy.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/left.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/love.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/poo.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/right.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/sad.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/skull.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/sparkle.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/emoji/up.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/fonts/IBMPlexMono-Regular.ttf +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/fonts/IBMPlexSans-Bold.ttf +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/fonts/IBMPlexSans-Regular.ttf +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/fonts/NotoSansJP-Regular.ttf +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/fonts/jsMath-cmbx10.ttf +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/05bab347bacaede7606b8e59426dc42b155a8fd6.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/11f0598c7a572fe7461bc54b07423b7b5e3e7a60.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/42480bc49710a5f0ebfafe1e1a7785068db37106.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/621976c3803ef1eea0c316c0e86e1bc31bd6dba4.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/79d04b14381789498b35cbd1ae05eb578ededb5f.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/7b2b3374ea1a80648e8c68a472dcbba188af3e8e.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/86e7f3e8b46af021592fa055ecb606c6b0825c12.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/ac4765273b78fb68ac1e913e54c54224b7f6f215.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/b765480fbb089bf76a68424612eeb48ddd95ccc7.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/eb9f0db464f0f04a52566cd211a561f76d1bcc2a.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fidget/images/f10e39779ee551c9d46a527d2ea2a67f434f2867.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/fonts/Inter-Regular.ttf +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/info.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/meta_grid_icon.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/minimapPip.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/agent.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/altar.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/armory.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/block.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/carbon_ex_dep.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/carbon_extractor.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/clay_oven.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/converter.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/empty.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/factory.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/floor.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/generator.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/generator_blue.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/generator_green.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/generator_red.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/geranium_extractor.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/germanium_ex_dep.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/germanium_extractor.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/ice_tower.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/ice_vase.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/lab.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/lasery.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/mine.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/mine_blue.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/mine_green.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/mine_red-1.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/mine_red.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/oxygen_ex_dep.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/oxygen_extractor.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/palm_tree.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/silicon_ex_dep.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/silicon_extractor.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/temple.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/unknown.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.0.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.e.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.fill.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.n.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.ne.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.ns.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.nse.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.nw.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.nwe.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.nws.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.nwse.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.s.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.se.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.w.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.we.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.ws.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wall.wse.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/water_well.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/weaving_loom.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/objects/wheat_field.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/replays/pens.json.z +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/agent_id.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/armor.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/battery.blue.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/battery.green.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/battery.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/battery.red.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/battery_blue.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/battery_green.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/battery_red.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/blue_gem.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/blueprint.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/bread.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/carbon.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/coal.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/coconut.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/copper_ore.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/diamond.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/energy.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/germanium.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/gold_ore.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/green_gem.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/ice_granade.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/iron_ore.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/laser.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/lizard_hide.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/oil.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/ore.blue.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/ore.green.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/ore.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/ore.red.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/ore_blue.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/ore_green.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/ore_red.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/palm_fiber.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/red_gem.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/reward.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/salt_water.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/sand.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/silicon.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/sisal.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/snake_skin.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/snow_ball.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/star.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/stone.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/straw_hat.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/turtle_shell.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/unknown.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/water.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/wheat.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/yellow_gem.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/resources/yucca_fiber.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/selection.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/target.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/tile.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/attack.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/attack_nearest.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/change_color.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/frozen.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/get_items.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/invalid.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/move.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/move_8way.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/move_cardinal.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/noop.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/put_items.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/rotate.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/swap.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/trace/unknown.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/view/grid.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/data/white.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/mettascope.nimble +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/agenttable.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/agenttraces.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/envconfig.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/footer.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/minimap.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/objectinfo.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/panels.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/replays.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/settings.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/shell.html +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/sim.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope/utils.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope.nim +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/nim/mettascope/src/mettascope.nims +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/pyproject.toml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/README.md +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/builder/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/builder/empty_converters.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/builder/envs.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/config/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/config/config.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/demo.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/envs/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/envs/gym_env.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/envs/gym_wrapper.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/envs/mettagrid_env.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/envs/pettingzoo_env.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/envs/puffer_base.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/map_builder/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/map_builder/ascii.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/map_builder/assembler_map_builder.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/map_builder/map_builder.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/map_builder/maze.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/map_builder/perimeter_incontext.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/map_builder/random.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/map_builder/utils.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/load.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/mapgen.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/mapgen_ascii.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/random/float.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/random/int.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/ascii.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/auto.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/bsp.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/convchain.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/copy_grid.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/README.md +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_choice.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_double_pillar.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_feature_with_door.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_flooded_fountain.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_single_pillar.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_underground_garden.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/angelslayer_arrival_pentagon.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/co_arrival_square_in_a_square_in_a_square.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/co_arrival_two_rings.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_hothouse.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_planthouse.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_waterhouse.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/doesnt_arrival_eight_statues.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dolorous_arrival_somebody's_watching_me.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_boxes_within_box.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_boxorama.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_line_fractal.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_long_road.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_radiant.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_rooms_a.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_rooms_with_view.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_shelter.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_snail.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_ternary.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_three_bigger_balls.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_three_smaller_balls.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_a.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_b.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_c.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_d.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_e.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_f.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_g.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_h.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_i.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_j.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_k.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_triangle_fractal.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_windows_large_door.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_chamrin_arrival_tetris.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_angles.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_boulevard.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_nine_rooms.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_hopf_link.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_trefoil_3fold.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_trefoil_twist.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_druids_welcome.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_tree_alley.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_water_cross.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_water_star.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_blinker_ship.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_huge.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_large.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_medium.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_small.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_bridges.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_forest_graveyard.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_horns.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_wishing_wells.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/grunt_arrival_crossed_arrows.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/grunt_arrival_lava_bath.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ldierk_walled_garden.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ldierk_walled_garden_2.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_cross.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_funnel.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_lava_pool.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_chessboard.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_flooded_house.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_lavapool.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_maybe_door_vault.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_statue_moat.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_iron_boxes.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_molten_gateway.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_grand_opening.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_los_fun.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_refuge.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_spirals.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_diagonal_passages.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_doors.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_four_houses.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_open_corners.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_plants_in_alcoves.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_pointy.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_radiant_lines.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_three_doors.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_up_and_down.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_wavy_path.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_arrow.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue_2.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue_3.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_large.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_med.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_small.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_square_statues.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mushboom_english_gardens.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_halloftheorcs.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_lavacross.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_smallfort.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_watergridlock.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_wetmaze.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_crosshair.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_depleted_hourglass.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_water_spiral.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/onia_arrival_mini_spirals.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/onia_arrival_pyramid.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/pf_arrival_petrified_forest.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_basics.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_conway.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_dodecagon.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_heroes.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_radial01.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_radial02.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_whirlpool.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/reono_arrival_forest_river.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/reono_arrival_mine.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_chinese_lattice_arrival.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_crossed_star.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_dead_forest.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_a.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_b.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_c.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_d.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_e.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_checkerplants.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_forest.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_gate.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_hexagon.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_simple_crosswalls.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_simple_fountains.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_star.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/spicycebolla_green_bress_n_ham.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/spicycebolla_green_bress_n_ham_2.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_a.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_b.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_c.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_d.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_e.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_f.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wander_arrival_chamber.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wander_arrival_desolate.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wheals_arrival_linesprint.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wheals_arrival_shading.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/convchain/zelgadis_glass_arrival_small.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_choice.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_double_pillar.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_feature_with_door.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_flooded_fountain.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_single_pillar.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_underground_garden.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/co_arrival_square_in_a_square_in_a_square.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/co_arrival_two_rings.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_hothouse.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_planthouse.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_waterhouse.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/doesnt_arrival_eight_statues.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dolorous_arrival_somebody's_watching_me.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_boxes_within_box.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_boxorama.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_line_fractal.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_long_road.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_radiant.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_rooms_a.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_rooms_with_view.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_shelter.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_snail.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_ternary.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_three_bigger_balls.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_three_smaller_balls.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_a.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_b.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_c.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_d.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_e.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_f.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_g.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_h.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_i.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_j.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_k.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_triangle_fractal.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_windows_large_door.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_chamrin_arrival_tetris.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_angles.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_boulevard.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_nine_rooms.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_hopf_link.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_trefoil_3fold.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_trefoil_twist.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_druids_welcome.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_tree_alley.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_water_cross.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_water_star.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_blinker_ship.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_huge.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_large.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_medium.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_small.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_bridges.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_forest_graveyard.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_horns.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_wishing_wells.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/grunt_arrival_crossed_arrows.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/grunt_arrival_lava_bath.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ldierk_walled_garden.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ldierk_walled_garden_2.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_cross.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_funnel.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_lava_pool.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_chessboard.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_flooded_house.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_lavapool.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_maybe_door_vault.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_statue_moat.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_iron_boxes.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_molten_gateway.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_grand_opening.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_refuge.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_spirals.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_diagonal_passages.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_doors.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_four_houses.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_open_corners.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_plants_in_alcoves.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_pointy.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_radiant_lines.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_three_doors.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_up_and_down.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_wavy_path.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_arrow.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue_2.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue_3.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_large.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_med.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_small.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_square_statues.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mushboom_english_gardens.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_halloftheorcs.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_lavacross.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_smallfort.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_watergridlock.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_wetmaze.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_crosshair.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_depleted_hourglass.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_water_spiral.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/onia_arrival_mini_spirals.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/onia_arrival_pyramid.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/pf_arrival_petrified_forest.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_basics.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_conway.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_dodecagon.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_heroes.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_radial01.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_radial02.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_whirlpool.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/reono_arrival_forest_river.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/reono_arrival_mine.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_chinese_lattice_arrival.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_crossed_star.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_dead_forest.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_a.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_b.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_c.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_d.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_e.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_checkerplants.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_forest.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_gate.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_hexagon.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_simple_crosswalls.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_simple_fountains.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_star.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/spicycebolla_green_bress_n_ham.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/spicycebolla_green_bress_n_ham_2.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_a.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_b.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_c.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_d.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_e.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_f.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wander_arrival_chamber.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wander_arrival_desolate.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wheals_arrival_linesprint.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wheals_arrival_shading.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/dcss/wfc/zelgadis_glass_arrival_small.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/grid_altars.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/inline_ascii.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/layout.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/make_connected.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/maze.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/mean_distance.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/mirror.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/multi_left_and_right.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/nop.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/radial_maze.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/random.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/random_dcss_scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/random_objects.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/random_scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/random_yaml_scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/remove_agents.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/room_grid.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/spiral.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/transplant_scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/varied_terrain.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/wfc.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/scenes/yaml.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/tools/dcss_import.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/tools/gen.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/tools/gen_scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/tools/view.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/types.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/utils/ascii_grid.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/utils/draw.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/utils/make_scene_config.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/utils/pattern.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/utils/show.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/utils/storable_map.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/mapgen/utils/thumbnail.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/nim/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/profiling/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/profiling/memory_monitor.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/profiling/stopwatch.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/profiling/system_monitor.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/py.typed +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/Inter-Regular.ttf +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/altar.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/atlas.json +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/atlas.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/converter.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/generator.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/items.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/monsters.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/ore-0.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/ore-1.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/ore-2.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/ore-3.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/ore-4.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/ore-5.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/ore-6.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/puffer_chars.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/assets/wall.png +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/miniscope/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/miniscope/buffer.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/renderer/miniscope/renderer.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/test_support/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/test_support/actions.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/test_support/mapgen.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/test_support/observation_helper.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/test_support/orientation.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/test_support/token_types.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/types.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/util/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/util/debug.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/util/dict_utils.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/util/diversity.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/util/grid_object_formatter.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/util/module.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/util/replay_writer.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/python/src/mettagrid/util/stats_writer.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/scripts/build_asan.sh +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/scripts/test_leaks.sh +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/setup.cfg +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/test_pointer_init +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/test_pointer_init.cpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/test_uninitialized.cpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/test_uninitialized.o +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/BUILD +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/cpplint.sh +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/map_builder/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/map_builder/test_ascii.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/map_builder/test_map_builder.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/map_builder/test_maze.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/map_builder/test_polymorphic_serialization.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/map_builder/test_random.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/map_builder/test_utils.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/__init__.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/random/test_float.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/random/test_int.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/fixtures/dir1/1.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/fixtures/dir1/2.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/fixtures/test.map +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/fixtures/test.yaml +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_ascii.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_auto.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_bsp.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_convchain.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_inline_ascii.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_layout.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_make_connected.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_maze.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_mean_distance.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_mirror.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_multi_left_and_right.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_nop.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_radial_maze.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_random.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_random_dcss_scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_random_objects.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_random_scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_random_yaml_scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_remove_agents.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_room_grid.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_wfc.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/scenes/test_yaml.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/test_mapgen.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/test_scene.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/test_validate_all_ascii_maps.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/utils/test_pattern.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/mapgen/utils/test_storable_map_io.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/profiling/test_memory_monitor.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/profiling/test_stopwatch.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/profiling/test_system_monitor.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/run_test.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_action_compatibility.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_actions.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_agent_resource_sharing.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_assembler_partial_usage.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_attack_resource_exception.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_buffer_reuse.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_buffers.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_clipper.cpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_converter.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_diversity.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_env_config_serialization.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_env_map.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_forbidden_imports.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_global_obs_config.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_global_observations.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_grid_object.cpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_gym_env.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_interactive.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_inventory_regeneration.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_leaks.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_mettagrid.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_move.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_new_env_hierarchy.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_observations.cpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_observations.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_pettingzoo_env.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_pufferlib_integration.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_resource_loss.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_rewards.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_rotate.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_set_inventory.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_stats_tracker.cpp +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_tags.py +0 -0
- {mettagrid-0.2.0.19 → mettagrid-0.2.0.21}/tests/test_visitation_counts.py +0 -0
|
@@ -37,3 +37,11 @@ bazel_dep(name = "google_benchmark", version = "1.9.4")
|
|
|
37
37
|
|
|
38
38
|
# Abseil (dependency of some Google libraries)
|
|
39
39
|
bazel_dep(name = "abseil-cpp", version = "20250814.0")
|
|
40
|
+
|
|
41
|
+
# make compile_commands.json with: bazel run @hedron_compile_commands//:refresh_all
|
|
42
|
+
bazel_dep(name = "hedron_compile_commands", version = "")
|
|
43
|
+
git_override(
|
|
44
|
+
module_name = "hedron_compile_commands",
|
|
45
|
+
remote = "https://github.com/hedronvision/bazel-compile-commands-extractor.git",
|
|
46
|
+
commit = "abb61a688167623088f8768cc9264798df6a9d10",
|
|
47
|
+
)
|
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
#include <iostream>
|
|
9
9
|
#include <numeric>
|
|
10
10
|
#include <random>
|
|
11
|
+
#include <unordered_set>
|
|
11
12
|
|
|
12
13
|
#include "actions/action_handler.hpp"
|
|
13
14
|
#include "actions/attack.hpp"
|
|
14
15
|
#include "actions/change_color.hpp"
|
|
15
16
|
#include "actions/change_glyph.hpp"
|
|
16
17
|
#include "actions/get_output.hpp"
|
|
18
|
+
#include "actions/resource_mod.hpp"
|
|
17
19
|
#include "actions/move.hpp"
|
|
18
20
|
#include "actions/noop.hpp"
|
|
19
21
|
#include "actions/put_recipe_items.hpp"
|
|
@@ -26,6 +28,7 @@
|
|
|
26
28
|
#include "objects/agent.hpp"
|
|
27
29
|
#include "objects/assembler.hpp"
|
|
28
30
|
#include "objects/assembler_config.hpp"
|
|
31
|
+
#include "objects/chest.hpp"
|
|
29
32
|
#include "objects/constants.hpp"
|
|
30
33
|
#include "objects/converter.hpp"
|
|
31
34
|
#include "objects/converter_config.hpp"
|
|
@@ -106,6 +109,9 @@ MettaGrid::MettaGrid(const GameConfig& game_config, const py::list map, unsigned
|
|
|
106
109
|
_action_handlers.push_back(std::make_unique<Swap>(*action_config));
|
|
107
110
|
} else if (action_name == "change_color") {
|
|
108
111
|
_action_handlers.push_back(std::make_unique<ChangeColor>(*action_config));
|
|
112
|
+
} else if (action_name == "resource_mod") {
|
|
113
|
+
auto modify_config = std::static_pointer_cast<const ResourceModConfig>(action_config);
|
|
114
|
+
_action_handlers.push_back(std::make_unique<ResourceMod>(*modify_config, action_name));
|
|
109
115
|
} else {
|
|
110
116
|
throw std::runtime_error("Unknown action: " + action_name);
|
|
111
117
|
}
|
|
@@ -461,7 +467,7 @@ void MettaGrid::_step(Actions actions) {
|
|
|
461
467
|
}
|
|
462
468
|
|
|
463
469
|
// Tolerate invalid action arguments
|
|
464
|
-
if (arg > _max_action_args[action_idx]) {
|
|
470
|
+
if (arg < 0 || arg > _max_action_args[action_idx]) {
|
|
465
471
|
_handle_invalid_action(agent_idx, "action.invalid_arg", action, arg);
|
|
466
472
|
continue;
|
|
467
473
|
}
|
|
@@ -678,16 +684,37 @@ py::tuple MettaGrid::step(const py::array_t<ActionType, py::array::c_style> acti
|
|
|
678
684
|
return py::make_tuple(_observations, _rewards, _terminals, _truncations, py::dict());
|
|
679
685
|
}
|
|
680
686
|
|
|
681
|
-
py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_col) {
|
|
687
|
+
py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_col, const py::list& ignore_types) {
|
|
682
688
|
py::dict objects;
|
|
683
689
|
|
|
684
690
|
// Determine if bounding box filtering is enabled
|
|
685
691
|
bool use_bounds = (min_row >= 0 && max_row >= 0 && min_col >= 0 && max_col >= 0);
|
|
686
692
|
|
|
693
|
+
// Convert ignore_types list (type names) to type IDs for O(1) integer comparison
|
|
694
|
+
std::unordered_set<TypeId> ignore_type_ids;
|
|
695
|
+
for (const auto& item : ignore_types) {
|
|
696
|
+
std::string type_name = item.cast<std::string>();
|
|
697
|
+
// Find the type_id for this type_name
|
|
698
|
+
for (size_t type_id = 0; type_id < object_type_names.size(); ++type_id) {
|
|
699
|
+
if (object_type_names[type_id] == type_name) {
|
|
700
|
+
ignore_type_ids.insert(static_cast<TypeId>(type_id));
|
|
701
|
+
break;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
bool use_type_filter = !ignore_type_ids.empty();
|
|
706
|
+
|
|
687
707
|
for (unsigned int obj_id = 1; obj_id < _grid->objects.size(); obj_id++) {
|
|
688
708
|
auto obj = _grid->object(obj_id);
|
|
689
709
|
if (!obj) continue;
|
|
690
710
|
|
|
711
|
+
// Filter by type_id if specified (fast integer comparison)
|
|
712
|
+
if (use_type_filter) {
|
|
713
|
+
if (ignore_type_ids.find(obj->type_id) != ignore_type_ids.end()) {
|
|
714
|
+
continue;
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
|
|
691
718
|
// Filter by bounding box if specified
|
|
692
719
|
if (use_bounds) {
|
|
693
720
|
if (obj->location.r < min_row || obj->location.r >= max_row ||
|
|
@@ -699,6 +726,8 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
|
|
|
699
726
|
py::dict obj_dict;
|
|
700
727
|
obj_dict["id"] = obj_id;
|
|
701
728
|
obj_dict["type"] = obj->type_id;
|
|
729
|
+
obj_dict["type_id"] = obj->type_id;
|
|
730
|
+
obj_dict["type_name"] = object_type_names[obj->type_id];
|
|
702
731
|
// Location here is defined as XYZ coordinates specifically to be used by MettaScope.
|
|
703
732
|
// We define that for location: x is column, y is row, and z is layer.
|
|
704
733
|
// Note: it might be different for matrix computations.
|
|
@@ -727,10 +756,17 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
|
|
|
727
756
|
if (auto* agent = dynamic_cast<Agent*>(obj)) {
|
|
728
757
|
obj_dict["orientation"] = static_cast<int>(agent->orientation);
|
|
729
758
|
obj_dict["group_id"] = agent->group;
|
|
759
|
+
obj_dict["group_name"] = agent->group_name;
|
|
730
760
|
obj_dict["is_frozen"] = !!agent->frozen;
|
|
731
761
|
obj_dict["freeze_remaining"] = agent->frozen;
|
|
732
762
|
obj_dict["freeze_duration"] = agent->freeze_duration;
|
|
733
763
|
obj_dict["color"] = agent->color;
|
|
764
|
+
obj_dict["glyph"] = agent->glyph;
|
|
765
|
+
obj_dict["agent_id"] = agent->agent_id;
|
|
766
|
+
obj_dict["action_failure_penalty"] = agent->action_failure_penalty;
|
|
767
|
+
obj_dict["current_stat_reward"] = agent->current_stat_reward;
|
|
768
|
+
obj_dict["prev_action_name"] = agent->prev_action_name;
|
|
769
|
+
obj_dict["steps_without_motion"] = agent->steps_without_motion;
|
|
734
770
|
|
|
735
771
|
// We made resource limits more complicated than this, and need to review how to expose them.
|
|
736
772
|
// py::dict resource_limits_dict;
|
|
@@ -738,7 +774,6 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
|
|
|
738
774
|
// resource_limits_dict[py::int_(resource)] = quantity;
|
|
739
775
|
// }
|
|
740
776
|
// obj_dict["resource_limits"] = resource_limits_dict;
|
|
741
|
-
obj_dict["agent_id"] = agent->agent_id;
|
|
742
777
|
}
|
|
743
778
|
|
|
744
779
|
if (auto* converter = dynamic_cast<Converter*>(obj)) {
|
|
@@ -760,6 +795,76 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
|
|
|
760
795
|
obj_dict["output_resources"] = output_resources_dict;
|
|
761
796
|
}
|
|
762
797
|
|
|
798
|
+
// Add assembler-specific info
|
|
799
|
+
if (auto* assembler = dynamic_cast<Assembler*>(obj)) {
|
|
800
|
+
obj_dict["cooldown_remaining"] = assembler->cooldown_remaining();
|
|
801
|
+
obj_dict["cooldown_duration"] = assembler->cooldown_duration;
|
|
802
|
+
obj_dict["cooldown_progress"] = assembler->cooldown_progress();
|
|
803
|
+
obj_dict["is_clipped"] = assembler->is_clipped;
|
|
804
|
+
obj_dict["clip_immune"] = assembler->clip_immune;
|
|
805
|
+
obj_dict["uses_count"] = assembler->uses_count;
|
|
806
|
+
obj_dict["max_uses"] = assembler->max_uses;
|
|
807
|
+
obj_dict["allow_partial_usage"] = assembler->allow_partial_usage;
|
|
808
|
+
obj_dict["exhaustion"] = assembler->exhaustion;
|
|
809
|
+
obj_dict["cooldown_multiplier"] = assembler->cooldown_multiplier;
|
|
810
|
+
|
|
811
|
+
// Add current recipe information
|
|
812
|
+
const Recipe* current_recipe = assembler->get_current_recipe();
|
|
813
|
+
if (current_recipe) {
|
|
814
|
+
py::dict input_resources_dict;
|
|
815
|
+
for (const auto& [resource, quantity] : current_recipe->input_resources) {
|
|
816
|
+
input_resources_dict[py::int_(resource)] = quantity;
|
|
817
|
+
}
|
|
818
|
+
obj_dict["current_recipe_inputs"] = input_resources_dict;
|
|
819
|
+
|
|
820
|
+
py::dict output_resources_dict;
|
|
821
|
+
for (const auto& [resource, quantity] : current_recipe->output_resources) {
|
|
822
|
+
output_resources_dict[py::int_(resource)] = quantity;
|
|
823
|
+
}
|
|
824
|
+
obj_dict["current_recipe_outputs"] = output_resources_dict;
|
|
825
|
+
obj_dict["current_recipe_cooldown"] = current_recipe->cooldown;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
// Add all recipes information
|
|
829
|
+
const std::vector<std::shared_ptr<Recipe>>& active_recipes = assembler->is_clipped ? assembler->unclip_recipes : assembler->recipes;
|
|
830
|
+
py::list recipes_list;
|
|
831
|
+
for (size_t i = 0; i < active_recipes.size(); ++i) {
|
|
832
|
+
if (active_recipes[i]) {
|
|
833
|
+
py::dict recipe_dict;
|
|
834
|
+
recipe_dict["pattern_index"] = static_cast<int>(i);
|
|
835
|
+
|
|
836
|
+
py::dict input_resources_dict;
|
|
837
|
+
for (const auto& [resource, quantity] : active_recipes[i]->input_resources) {
|
|
838
|
+
input_resources_dict[py::int_(resource)] = quantity;
|
|
839
|
+
}
|
|
840
|
+
recipe_dict["input_resources"] = input_resources_dict;
|
|
841
|
+
|
|
842
|
+
py::dict output_resources_dict;
|
|
843
|
+
for (const auto& [resource, quantity] : active_recipes[i]->output_resources) {
|
|
844
|
+
output_resources_dict[py::int_(resource)] = quantity;
|
|
845
|
+
}
|
|
846
|
+
recipe_dict["output_resources"] = output_resources_dict;
|
|
847
|
+
recipe_dict["cooldown"] = active_recipes[i]->cooldown;
|
|
848
|
+
|
|
849
|
+
recipes_list.append(recipe_dict);
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
obj_dict["recipes"] = recipes_list;
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
// Add chest-specific info
|
|
856
|
+
if (auto* chest = dynamic_cast<Chest*>(obj)) {
|
|
857
|
+
obj_dict["resource_type"] = static_cast<int>(chest->resource_type);
|
|
858
|
+
obj_dict["max_inventory"] = chest->max_inventory;
|
|
859
|
+
|
|
860
|
+
// Convert position_deltas map to dict
|
|
861
|
+
py::dict position_deltas_dict;
|
|
862
|
+
for (const auto& [pos, delta] : chest->position_deltas) {
|
|
863
|
+
position_deltas_dict[py::int_(pos)] = delta;
|
|
864
|
+
}
|
|
865
|
+
obj_dict["position_deltas"] = position_deltas_dict;
|
|
866
|
+
}
|
|
867
|
+
|
|
763
868
|
objects[py::int_(obj_id)] = obj_dict;
|
|
764
869
|
}
|
|
765
870
|
|
|
@@ -913,7 +1018,8 @@ PYBIND11_MODULE(mettagrid_c, m) {
|
|
|
913
1018
|
py::arg("min_row") = -1,
|
|
914
1019
|
py::arg("max_row") = -1,
|
|
915
1020
|
py::arg("min_col") = -1,
|
|
916
|
-
py::arg("max_col") = -1
|
|
1021
|
+
py::arg("max_col") = -1,
|
|
1022
|
+
py::arg("ignore_types") = py::list())
|
|
917
1023
|
.def("action_names", &MettaGrid::action_names)
|
|
918
1024
|
.def_property_readonly("map_width", &MettaGrid::map_width)
|
|
919
1025
|
.def_property_readonly("map_height", &MettaGrid::map_height)
|
|
@@ -956,6 +1062,7 @@ PYBIND11_MODULE(mettagrid_c, m) {
|
|
|
956
1062
|
bind_action_config(m);
|
|
957
1063
|
bind_attack_action_config(m);
|
|
958
1064
|
bind_change_glyph_action_config(m);
|
|
1065
|
+
bind_resource_mod_config(m);
|
|
959
1066
|
bind_global_obs_config(m);
|
|
960
1067
|
bind_clipper_config(m);
|
|
961
1068
|
bind_game_config(m);
|
|
@@ -73,7 +73,11 @@ public:
|
|
|
73
73
|
const py::array_t<TruncationType, py::array::c_style>& truncations,
|
|
74
74
|
const py::array_t<RewardType, py::array::c_style>& rewards);
|
|
75
75
|
void validate_buffers();
|
|
76
|
-
py::dict grid_objects(int min_row = -1,
|
|
76
|
+
py::dict grid_objects(int min_row = -1,
|
|
77
|
+
int max_row = -1,
|
|
78
|
+
int min_col = -1,
|
|
79
|
+
int max_col = -1,
|
|
80
|
+
const py::list& ignore_types = py::list());
|
|
77
81
|
py::list action_names();
|
|
78
82
|
|
|
79
83
|
GridCoord map_width();
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
#ifndef PACKAGES_METTAGRID_CPP_INCLUDE_METTAGRID_ACTIONS_RESOURCE_MOD_HPP_
|
|
2
|
+
#define PACKAGES_METTAGRID_CPP_INCLUDE_METTAGRID_ACTIONS_RESOURCE_MOD_HPP_
|
|
3
|
+
|
|
4
|
+
#include <pybind11/pybind11.h>
|
|
5
|
+
#include <pybind11/stl.h>
|
|
6
|
+
|
|
7
|
+
#include <cmath>
|
|
8
|
+
#include <map>
|
|
9
|
+
#include <limits>
|
|
10
|
+
#include <stdexcept>
|
|
11
|
+
#include <string>
|
|
12
|
+
#include <vector>
|
|
13
|
+
|
|
14
|
+
#include "actions/action_handler.hpp"
|
|
15
|
+
#include "core/grid.hpp"
|
|
16
|
+
#include "core/grid_object.hpp"
|
|
17
|
+
#include "core/types.hpp"
|
|
18
|
+
#include "objects/agent.hpp"
|
|
19
|
+
#include "objects/converter.hpp"
|
|
20
|
+
|
|
21
|
+
struct ResourceModConfig : public ActionConfig {
|
|
22
|
+
std::map<InventoryItem, InventoryProbability> modifies;
|
|
23
|
+
GridCoord agent_radius;
|
|
24
|
+
GridCoord converter_radius;
|
|
25
|
+
bool scales;
|
|
26
|
+
|
|
27
|
+
ResourceModConfig(const std::map<InventoryItem, InventoryQuantity>& required_resources = {},
|
|
28
|
+
const std::map<InventoryItem, InventoryProbability>& consumed_resources = {},
|
|
29
|
+
const std::map<InventoryItem, InventoryProbability>& modifies = {},
|
|
30
|
+
GridCoord agent_radius = 0,
|
|
31
|
+
GridCoord converter_radius = 0,
|
|
32
|
+
bool scales = false)
|
|
33
|
+
: ActionConfig(required_resources, consumed_resources),
|
|
34
|
+
modifies(modifies),
|
|
35
|
+
agent_radius(agent_radius),
|
|
36
|
+
converter_radius(converter_radius),
|
|
37
|
+
scales(scales) {
|
|
38
|
+
// Validate modifies values for finiteness and magnitude
|
|
39
|
+
for (const auto& [item, value] : modifies) {
|
|
40
|
+
if (!std::isfinite(value)) {
|
|
41
|
+
throw std::invalid_argument("ResourceModConfig: modifies values must be finite");
|
|
42
|
+
}
|
|
43
|
+
// Check that absolute value when rounded up doesn't exceed 255
|
|
44
|
+
// (since inventories are uint8_t and deltas are int16_t)
|
|
45
|
+
if (std::ceil(std::abs(value)) > 255) {
|
|
46
|
+
throw std::invalid_argument("ResourceModConfig: modifies values must have |ceil(value)| <= 255");
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
class ResourceMod : public ActionHandler {
|
|
53
|
+
public:
|
|
54
|
+
explicit ResourceMod(const ResourceModConfig& cfg, const std::string& name = "resource_mod")
|
|
55
|
+
: ActionHandler(cfg, name),
|
|
56
|
+
_modifies(cfg.modifies),
|
|
57
|
+
_agent_radius(cfg.agent_radius),
|
|
58
|
+
_converter_radius(cfg.converter_radius),
|
|
59
|
+
_scales(cfg.scales) {}
|
|
60
|
+
|
|
61
|
+
unsigned char max_arg() const override {
|
|
62
|
+
return std::numeric_limits<unsigned char>::max();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
protected:
|
|
66
|
+
bool _handle_action(Agent& actor, ActionArg /* arg */) override {
|
|
67
|
+
// Center AoE on actor's position
|
|
68
|
+
int center_row = static_cast<int>(actor.location.r);
|
|
69
|
+
int center_col = static_cast<int>(actor.location.c);
|
|
70
|
+
|
|
71
|
+
std::vector<Agent*> affected_agents;
|
|
72
|
+
std::vector<Converter*> affected_converters;
|
|
73
|
+
|
|
74
|
+
// Find all agents within agent_radius of the center
|
|
75
|
+
// radius=0 means skip agents entirely
|
|
76
|
+
if (_agent_radius > 0) {
|
|
77
|
+
for (int dr = -static_cast<int>(_agent_radius); dr <= static_cast<int>(_agent_radius); ++dr) {
|
|
78
|
+
for (int dc = -static_cast<int>(_agent_radius); dc <= static_cast<int>(_agent_radius); ++dc) {
|
|
79
|
+
// Manhattan distance
|
|
80
|
+
if (std::abs(dr) + std::abs(dc) > static_cast<int>(_agent_radius)) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
int target_row = center_row + dr;
|
|
85
|
+
int target_col = center_col + dc;
|
|
86
|
+
|
|
87
|
+
if (target_row >= 0 && target_row < static_cast<int>(_grid->height) &&
|
|
88
|
+
target_col >= 0 && target_col < static_cast<int>(_grid->width)) {
|
|
89
|
+
GridLocation loc(target_row, target_col, GridLayer::AgentLayer);
|
|
90
|
+
GridObject* obj = _grid->object_at(loc);
|
|
91
|
+
if (obj != nullptr) {
|
|
92
|
+
Agent* agent = static_cast<Agent*>(obj);
|
|
93
|
+
affected_agents.push_back(agent);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Find all converters within converter_radius of the center
|
|
101
|
+
// radius=0 means skip converters entirely
|
|
102
|
+
if (_converter_radius > 0) {
|
|
103
|
+
for (int dr = -static_cast<int>(_converter_radius); dr <= static_cast<int>(_converter_radius); ++dr) {
|
|
104
|
+
for (int dc = -static_cast<int>(_converter_radius); dc <= static_cast<int>(_converter_radius); ++dc) {
|
|
105
|
+
// Manhattan distance
|
|
106
|
+
if (std::abs(dr) + std::abs(dc) > static_cast<int>(_converter_radius)) {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
int target_row = center_row + dr;
|
|
111
|
+
int target_col = center_col + dc;
|
|
112
|
+
|
|
113
|
+
if (target_row >= 0 && target_row < static_cast<int>(_grid->height) &&
|
|
114
|
+
target_col >= 0 && target_col < static_cast<int>(_grid->width)) {
|
|
115
|
+
GridLocation loc(target_row, target_col, GridLayer::ObjectLayer);
|
|
116
|
+
GridObject* obj = _grid->object_at(loc);
|
|
117
|
+
if (obj != nullptr) {
|
|
118
|
+
Converter* converter = dynamic_cast<Converter*>(obj);
|
|
119
|
+
if (converter != nullptr) {
|
|
120
|
+
affected_converters.push_back(converter);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// No targets found - still consume resources and succeed
|
|
129
|
+
if (affected_agents.empty() && affected_converters.empty()) {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Calculate total number of affected targets for scaling
|
|
134
|
+
size_t total_affected = affected_agents.size() + affected_converters.size();
|
|
135
|
+
|
|
136
|
+
// Apply modifications to all targets
|
|
137
|
+
for (const auto& [item, amount] : _modifies) {
|
|
138
|
+
InventoryProbability effective_amount = amount;
|
|
139
|
+
|
|
140
|
+
// Scale by number of targets if scales flag is true
|
|
141
|
+
if (_scales && total_affected > 1) {
|
|
142
|
+
effective_amount = amount / static_cast<float>(total_affected);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Apply to agents - compute delta independently for each target
|
|
146
|
+
for (Agent* agent : affected_agents) {
|
|
147
|
+
InventoryDelta delta = compute_probabilistic_delta(effective_amount);
|
|
148
|
+
if (delta != 0) {
|
|
149
|
+
agent->update_inventory(item, delta);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Apply to converters - compute delta independently for each target
|
|
154
|
+
for (Converter* converter : affected_converters) {
|
|
155
|
+
InventoryDelta delta = compute_probabilistic_delta(effective_amount);
|
|
156
|
+
if (delta != 0) {
|
|
157
|
+
converter->update_inventory(item, delta);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
private:
|
|
166
|
+
std::map<InventoryItem, InventoryProbability> _modifies;
|
|
167
|
+
GridCoord _agent_radius;
|
|
168
|
+
GridCoord _converter_radius;
|
|
169
|
+
bool _scales;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
namespace py = pybind11;
|
|
173
|
+
|
|
174
|
+
inline void bind_resource_mod_config(py::module& m) {
|
|
175
|
+
py::class_<ResourceModConfig, ActionConfig, std::shared_ptr<ResourceModConfig>>(m, "ResourceModConfig")
|
|
176
|
+
.def(py::init<const std::map<InventoryItem, InventoryQuantity>&,
|
|
177
|
+
const std::map<InventoryItem, InventoryProbability>&,
|
|
178
|
+
const std::map<InventoryItem, InventoryProbability>&,
|
|
179
|
+
GridCoord,
|
|
180
|
+
GridCoord,
|
|
181
|
+
bool>(),
|
|
182
|
+
py::arg("required_resources") = std::map<InventoryItem, InventoryQuantity>(),
|
|
183
|
+
py::arg("consumed_resources") = std::map<InventoryItem, InventoryProbability>(),
|
|
184
|
+
py::arg("modifies") = std::map<InventoryItem, InventoryProbability>(),
|
|
185
|
+
py::arg("agent_radius") = 0,
|
|
186
|
+
py::arg("converter_radius") = 0,
|
|
187
|
+
py::arg("scales") = false)
|
|
188
|
+
.def_readwrite("modifies", &ResourceModConfig::modifies)
|
|
189
|
+
.def_readwrite("agent_radius", &ResourceModConfig::agent_radius)
|
|
190
|
+
.def_readwrite("converter_radius", &ResourceModConfig::converter_radius)
|
|
191
|
+
.def_readwrite("scales", &ResourceModConfig::scales);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
#endif // PACKAGES_METTAGRID_CPP_INCLUDE_METTAGRID_ACTIONS_RESOURCE_MOD_HPP_
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
#ifndef PACKAGES_METTAGRID_CPP_INCLUDE_METTAGRID_CORE_GRID_OBJECT_HPP_
|
|
2
2
|
#define PACKAGES_METTAGRID_CPP_INCLUDE_METTAGRID_CORE_GRID_OBJECT_HPP_
|
|
3
3
|
|
|
4
|
-
#include <cstdint>
|
|
5
4
|
#include <span>
|
|
6
5
|
#include <string>
|
|
7
6
|
#include <vector>
|
|
8
7
|
|
|
8
|
+
#include <cstdint>
|
|
9
|
+
|
|
9
10
|
#include "objects/constants.hpp"
|
|
10
11
|
#include "core/types.hpp"
|
|
11
12
|
|
|
@@ -46,57 +46,71 @@ private:
|
|
|
46
46
|
return -1; // Agent is not adjacent
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
// Transfer resources based on position delta
|
|
50
|
+
// Positive delta = deposit from agent to chest
|
|
51
|
+
// Negative delta = withdraw from chest to agent
|
|
52
|
+
bool transfer_resource(Agent& agent, int delta) {
|
|
53
|
+
if (delta > 0) {
|
|
54
|
+
// Deposit: agent -> chest
|
|
55
|
+
int agent_amount = static_cast<int>(agent.inventory.amount(resource_type));
|
|
56
|
+
int transfer_amount = std::min(delta, agent_amount);
|
|
57
|
+
if (transfer_amount == 0) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
58
60
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
// Check if chest has space (unless max_inventory is unlimited)
|
|
62
|
+
if (max_inventory >= 0) {
|
|
63
|
+
int current_amount = static_cast<int>(inventory.amount(resource_type));
|
|
64
|
+
int available_space = max_inventory - current_amount;
|
|
65
|
+
transfer_amount = std::min(transfer_amount, available_space);
|
|
66
|
+
|
|
67
|
+
if (transfer_amount == 0) {
|
|
68
|
+
// Chest is full, destroy the resource from agent
|
|
69
|
+
agent.update_inventory(resource_type, -delta);
|
|
70
|
+
stats_tracker->add("chest." + stats_tracker->resource_name(resource_type) + ".destroyed", delta);
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
65
74
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
agent.update_inventory(resource_type, -
|
|
69
|
-
stats_tracker->
|
|
70
|
-
stats_tracker->
|
|
75
|
+
// Transfer from agent to chest
|
|
76
|
+
InventoryDelta deposited = update_inventory(resource_type, transfer_amount);
|
|
77
|
+
agent.update_inventory(resource_type, -transfer_amount);
|
|
78
|
+
stats_tracker->add("chest." + stats_tracker->resource_name(resource_type) + ".deposited", transfer_amount);
|
|
79
|
+
stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount", inventory.amount(resource_type));
|
|
80
|
+
|
|
81
|
+
// If we couldn't transfer the full delta due to max_inventory, destroy the rest
|
|
82
|
+
int destroyed = delta - transfer_amount;
|
|
83
|
+
if (destroyed > 0) {
|
|
84
|
+
agent.update_inventory(resource_type, -destroyed);
|
|
85
|
+
stats_tracker->add("chest." + stats_tracker->resource_name(resource_type) + ".destroyed", destroyed);
|
|
86
|
+
}
|
|
71
87
|
return true;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
88
|
+
} else if (delta < 0) {
|
|
89
|
+
// Withdraw: chest -> agent
|
|
90
|
+
int chest_amount = static_cast<int>(inventory.amount(resource_type));
|
|
91
|
+
int withdraw_amount = std::min(-delta, chest_amount);
|
|
92
|
+
if (withdraw_amount == 0) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
76
95
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
96
|
+
// Transfer from chest to agent
|
|
97
|
+
InventoryDelta withdrawn = agent.update_inventory(resource_type, withdraw_amount);
|
|
98
|
+
if (withdrawn > 0) {
|
|
99
|
+
update_inventory(resource_type, -withdrawn);
|
|
100
|
+
stats_tracker->add("chest." + stats_tracker->resource_name(resource_type) + ".withdrawn", withdrawn);
|
|
101
|
+
stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount", inventory.amount(resource_type));
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
81
104
|
return false;
|
|
82
105
|
}
|
|
83
|
-
|
|
84
|
-
InventoryDelta withdrawn = agent.update_inventory(resource_type, 1);
|
|
85
|
-
if (withdrawn == 1) {
|
|
86
|
-
update_inventory(resource_type, -1);
|
|
87
|
-
stats_tracker->incr("chest." + stats_tracker->resource_name(resource_type) + ".withdrawn");
|
|
88
|
-
stats_tracker->add("chest." + stats_tracker->resource_name(resource_type) + ".amount", -1);
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
// Agent couldn't accept the resource, give it back to chest
|
|
92
|
-
return false;
|
|
106
|
+
return false; // delta == 0, no-op
|
|
93
107
|
}
|
|
94
108
|
|
|
95
109
|
public:
|
|
96
110
|
// Configuration
|
|
97
111
|
InventoryItem resource_type;
|
|
98
|
-
std::
|
|
99
|
-
|
|
112
|
+
std::map<int, int> position_deltas; // position_index -> delta
|
|
113
|
+
int max_inventory; // Maximum inventory (-1 = unlimited)
|
|
100
114
|
|
|
101
115
|
// Grid access for finding agent positions
|
|
102
116
|
class Grid* grid;
|
|
@@ -105,11 +119,15 @@ public:
|
|
|
105
119
|
: GridObject(),
|
|
106
120
|
HasInventory(InventoryConfig()), // Chests have nothing to configure in their inventory. Yet.
|
|
107
121
|
resource_type(cfg.resource_type),
|
|
108
|
-
|
|
109
|
-
|
|
122
|
+
position_deltas(cfg.position_deltas),
|
|
123
|
+
max_inventory(cfg.max_inventory),
|
|
110
124
|
stats_tracker(stats_tracker),
|
|
111
125
|
grid(nullptr) {
|
|
112
126
|
GridObject::init(cfg.type_id, cfg.type_name, GridLocation(r, c, GridLayer::ObjectLayer), cfg.tag_ids);
|
|
127
|
+
// Set initial inventory
|
|
128
|
+
if (cfg.initial_inventory > 0) {
|
|
129
|
+
update_inventory(cfg.resource_type, cfg.initial_inventory);
|
|
130
|
+
}
|
|
113
131
|
}
|
|
114
132
|
|
|
115
133
|
virtual ~Chest() = default;
|
|
@@ -130,14 +148,14 @@ public:
|
|
|
130
148
|
return false;
|
|
131
149
|
}
|
|
132
150
|
|
|
133
|
-
// Check if
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
return withdraw_resource(actor);
|
|
138
|
-
} else {
|
|
139
|
-
return false;
|
|
151
|
+
// Check if there's a configured delta for this position
|
|
152
|
+
auto it = position_deltas.find(agent_position_index);
|
|
153
|
+
if (it == position_deltas.end()) {
|
|
154
|
+
return false; // No action configured for this position
|
|
140
155
|
}
|
|
156
|
+
|
|
157
|
+
int delta = it->second;
|
|
158
|
+
return transfer_resource(actor, delta);
|
|
141
159
|
}
|
|
142
160
|
|
|
143
161
|
virtual std::vector<PartialObservationToken> obs_features() const override {
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
#include <pybind11/pybind11.h>
|
|
5
5
|
#include <pybind11/stl.h>
|
|
6
6
|
|
|
7
|
+
#include <map>
|
|
7
8
|
#include <set>
|
|
8
9
|
|
|
9
10
|
#include "core/grid_object.hpp"
|
|
@@ -13,35 +14,40 @@ struct ChestConfig : public GridObjectConfig {
|
|
|
13
14
|
ChestConfig(TypeId type_id,
|
|
14
15
|
const std::string& type_name,
|
|
15
16
|
InventoryItem resource_type,
|
|
16
|
-
const std::
|
|
17
|
-
|
|
17
|
+
const std::map<int, int>& position_deltas,
|
|
18
|
+
int initial_inventory = 0,
|
|
19
|
+
int max_inventory = 255,
|
|
18
20
|
const std::vector<int>& tag_ids = {})
|
|
19
21
|
: GridObjectConfig(type_id, type_name, tag_ids),
|
|
20
22
|
resource_type(resource_type),
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
position_deltas(position_deltas),
|
|
24
|
+
initial_inventory(initial_inventory),
|
|
25
|
+
max_inventory(max_inventory) {}
|
|
23
26
|
|
|
24
27
|
InventoryItem resource_type;
|
|
25
|
-
std::
|
|
26
|
-
|
|
28
|
+
std::map<int, int> position_deltas; // position_index -> delta (positive = deposit amount, negative = withdraw amount)
|
|
29
|
+
int initial_inventory; // Initial amount of resource_type in the chest
|
|
30
|
+
int max_inventory; // Maximum inventory (-1 = unlimited)
|
|
27
31
|
};
|
|
28
32
|
|
|
29
33
|
namespace py = pybind11;
|
|
30
34
|
|
|
31
35
|
inline void bind_chest_config(py::module& m) {
|
|
32
36
|
py::class_<ChestConfig, GridObjectConfig, std::shared_ptr<ChestConfig>>(m, "ChestConfig")
|
|
33
|
-
.def(py::init<TypeId, const std::string&, InventoryItem, const std::
|
|
37
|
+
.def(py::init<TypeId, const std::string&, InventoryItem, const std::map<int, int>&, int, int, const std::vector<int>&>(),
|
|
34
38
|
py::arg("type_id"),
|
|
35
39
|
py::arg("type_name"),
|
|
36
40
|
py::arg("resource_type"),
|
|
37
|
-
py::arg("
|
|
38
|
-
py::arg("
|
|
41
|
+
py::arg("position_deltas"),
|
|
42
|
+
py::arg("initial_inventory") = 0,
|
|
43
|
+
py::arg("max_inventory") = 255,
|
|
39
44
|
py::arg("tag_ids") = std::vector<int>())
|
|
40
45
|
.def_readwrite("type_id", &ChestConfig::type_id)
|
|
41
46
|
.def_readwrite("type_name", &ChestConfig::type_name)
|
|
42
47
|
.def_readwrite("resource_type", &ChestConfig::resource_type)
|
|
43
|
-
.def_readwrite("
|
|
44
|
-
.def_readwrite("
|
|
48
|
+
.def_readwrite("position_deltas", &ChestConfig::position_deltas)
|
|
49
|
+
.def_readwrite("initial_inventory", &ChestConfig::initial_inventory)
|
|
50
|
+
.def_readwrite("max_inventory", &ChestConfig::max_inventory)
|
|
45
51
|
.def_readwrite("tag_ids", &ChestConfig::tag_ids);
|
|
46
52
|
}
|
|
47
53
|
|