tilemap-editor 3.3.0__tar.gz → 3.3.1__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.
- {tilemap_editor-3.3.0/src/tilemap_editor.egg-info → tilemap_editor-3.3.1}/PKG-INFO +1 -1
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/pyproject.toml +1 -1
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/editor.py +65 -1
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/tile_grid.py +5 -4
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/menubar.py +5 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/tileset_type_dialog.py +2 -2
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/LICENSE +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/MANIFEST.in +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/README.md +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/arrow-down.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/check.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/checked.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/close.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/duplicate.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/error.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/file.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/filedead.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/fit.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/folder.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/grid.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/image.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/info.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/load.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/loop.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/pan.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/pause.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/pencil.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/play.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/plus.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/radio.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/reset.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/save.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/stop.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/tilemap.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/tileset.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/unchecked.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/warning.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/zoomin.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/zoomout.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/setup.cfg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/configs/themes.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/constants.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/event_map.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/layers.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/main.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/node_manager.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/nodes.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/editor.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/models.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/protocols.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/shape_editor.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/standalone.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/editor.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/models.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/protocols.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/standalone.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/__main__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/clipboard_util.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/editor.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/frame_picker.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/models.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/preview.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/protocols.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/runtime_load.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/standalone.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/timeline.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/validation.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_editor/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_editor/editor.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_editor/standalone.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/collision_painter.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/editor.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/models.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/protocols.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/standalone.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/standalone_automap.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/standalone_error_console.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/standalone_filemanager.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/standalone_image_viewer.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/__main__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/ToolMove.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/arrow-down.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/check.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/checked.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/close.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/duplicate.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/error.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/file.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/filedead.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/fit.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/folder.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/grid.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/image.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/info.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/load.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/loop.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/pan.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/pause.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/pencil.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/play.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/plus.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/radio.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/reset.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/save.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/stop.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/tilemap.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/tileset.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/unchecked.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/warning.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/zoomin.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/zoomout.svg +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/cli.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/main.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/settings.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/SOURCES.txt +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/requires.txt +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/top_level.txt +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/ttypes/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/ttypes/tilemap.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/editor_preference.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/error_handler.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/font_manager.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/history.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/icon_manager.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/icons_cache.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/log_capture.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/project_paths.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/serialization.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/standalone.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/validation.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/__init__.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/automap_models.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/autotile_template.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/autotiler.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/filemanager.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/input.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/layer_selector.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/map_properties.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/mapsetup.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/regex_automap_designer.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/spritesheet_grid.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/tile_selector.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/collision_layer_mask.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/collision_layer_sidebar.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/confirm_dialog.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/draw_utils.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/fileinput.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/layer_type_dialog.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/mode_indicator.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/node_editor.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/node_selector.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/notification.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/property_editor.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/region_selector.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/status_bar.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/theme.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/toolbar.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/tooltip.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_animation_library_grid_offset.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_collision_layer_mask.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_collision_layer_sidebar.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_editor_pan_mode.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_project_paths.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_render_scale.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_sprite_animation_editor_grid.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_tile_grid_selection.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_tile_selector_pick.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_tilemap_save.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_timeline_invalidate_cache.py +0 -0
- {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_toolbar_tools.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tilemap-editor"
|
|
7
|
-
version = "3.3.
|
|
7
|
+
version = "3.3.1"
|
|
8
8
|
description = "Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -242,7 +242,7 @@ class Editor:
|
|
|
242
242
|
center_x = (self.width - 400) // 2
|
|
243
243
|
center_y = (self.height - 400) // 2
|
|
244
244
|
self.map_setup_widget = MapSetup(self, Rect(center_x, center_y, 400, 400))
|
|
245
|
-
self.map_setup_widget.visible =
|
|
245
|
+
self.map_setup_widget.visible = True
|
|
246
246
|
self.map_properties_dialog = MapPropertiesDialog(self, Rect(center_x, center_y, 400, 260))
|
|
247
247
|
self.node_manager = NodeManager(self)
|
|
248
248
|
self.node_selector = NodeSelector(self, 0, 65, 260, 240)
|
|
@@ -442,6 +442,67 @@ class Editor:
|
|
|
442
442
|
except Exception as e:
|
|
443
443
|
error_handler.capture(e, context="save_map_selected")
|
|
444
444
|
|
|
445
|
+
def export_selection_as_png(self):
|
|
446
|
+
rect = self.tile_grid_widget.selection_rect
|
|
447
|
+
if rect is None:
|
|
448
|
+
self.notifications.notify("No region selected", duration=2.0)
|
|
449
|
+
return
|
|
450
|
+
self.open_file_manager(
|
|
451
|
+
on_save=self._on_export_selection_png,
|
|
452
|
+
allowed_exts=[".png"],
|
|
453
|
+
mode="save",
|
|
454
|
+
default_name="selection.png",
|
|
455
|
+
)
|
|
456
|
+
|
|
457
|
+
def _on_export_selection_png(self, path: Path):
|
|
458
|
+
rect = self.tile_grid_widget.selection_rect
|
|
459
|
+
if rect is None:
|
|
460
|
+
return
|
|
461
|
+
x1, y1, x2, y2 = rect
|
|
462
|
+
tw, th = self.tilemap.tile_size
|
|
463
|
+
pw = (x2 - x1 + 1) * tw
|
|
464
|
+
ph = (y2 - y1 + 1) * th
|
|
465
|
+
if pw <= 0 or ph <= 0:
|
|
466
|
+
return
|
|
467
|
+
|
|
468
|
+
export_surf = pygame.Surface((pw, ph), pygame.SRCALPHA)
|
|
469
|
+
layers = self.tilemap.layer_manager.get_rendered_layers()
|
|
470
|
+
tileset_map = self.tileset_widget.tileset_map
|
|
471
|
+
|
|
472
|
+
for layer in layers:
|
|
473
|
+
if layer.layer_type != "tile":
|
|
474
|
+
continue
|
|
475
|
+
if layer.opacity < 1.0:
|
|
476
|
+
layer_surf = pygame.Surface((pw, ph), pygame.SRCALPHA)
|
|
477
|
+
else:
|
|
478
|
+
layer_surf = export_surf
|
|
479
|
+
|
|
480
|
+
for (gx, gy), tile in layer.tiles.items():
|
|
481
|
+
if not (x1 <= gx <= x2 and y1 <= gy <= y2):
|
|
482
|
+
continue
|
|
483
|
+
dx = (gx - x1) * tw
|
|
484
|
+
dy = (gy - y1) * th
|
|
485
|
+
ttype = int(tile["ttype"])
|
|
486
|
+
if ttype not in tileset_map:
|
|
487
|
+
continue
|
|
488
|
+
ts = tileset_map[ttype]
|
|
489
|
+
variant_id = tile["variant"]
|
|
490
|
+
sheet_w = ts.surface.get_width()
|
|
491
|
+
sheet_cols = sheet_w // tw
|
|
492
|
+
src_x = (variant_id % sheet_cols) * tw
|
|
493
|
+
src_y = (variant_id // sheet_cols) * th
|
|
494
|
+
src_rect = Rect(src_x, src_y, tw, th)
|
|
495
|
+
if not ts.surface.get_rect().contains(src_rect):
|
|
496
|
+
continue
|
|
497
|
+
layer_surf.blit(ts.surface, (dx, dy), src_rect)
|
|
498
|
+
|
|
499
|
+
if layer.opacity < 1.0:
|
|
500
|
+
layer_surf.set_alpha(int(layer.opacity * 255))
|
|
501
|
+
export_surf.blit(layer_surf, (0, 0))
|
|
502
|
+
|
|
503
|
+
pygame.image.save(export_surf, str(path))
|
|
504
|
+
self.notifications.notify(f"Exported selection to {path.name}", duration=2.0)
|
|
505
|
+
|
|
445
506
|
def perform_load(self):
|
|
446
507
|
self.open_file_manager(
|
|
447
508
|
on_select=self.on_map_file_selected,
|
|
@@ -1152,6 +1213,9 @@ class Editor:
|
|
|
1152
1213
|
elif event.mod & pygame.KMOD_CTRL and event.key == pygame.K_g:
|
|
1153
1214
|
self.toggle_grid()
|
|
1154
1215
|
continue
|
|
1216
|
+
elif event.key == pygame.K_e and ctrl_held and shift_held:
|
|
1217
|
+
self.export_selection_as_png()
|
|
1218
|
+
continue
|
|
1155
1219
|
elif event.key == pygame.K_t and (ctrl_held or meta_held):
|
|
1156
1220
|
self.cycle_theme()
|
|
1157
1221
|
continue
|
|
@@ -1449,10 +1449,11 @@ class TileGrid:
|
|
|
1449
1449
|
|
|
1450
1450
|
sel_rect = Rect(int(sx), int(sy), int(sw), int(sh))
|
|
1451
1451
|
|
|
1452
|
-
# Semi-transparent fill
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1452
|
+
# Semi-transparent fill (skip during drag to avoid visual noise)
|
|
1453
|
+
if not self.is_selecting:
|
|
1454
|
+
fill_surf = pygame.Surface((int(sw), int(sh)), pygame.SRCALPHA)
|
|
1455
|
+
fill_surf.fill((100, 180, 255, 40))
|
|
1456
|
+
screen.blit(fill_surf, (int(sx), int(sy)))
|
|
1456
1457
|
|
|
1457
1458
|
# Dashed border (draw segments)
|
|
1458
1459
|
border_color = (100, 180, 255) if not self.is_moving else (255, 200, 50)
|
|
@@ -76,6 +76,11 @@ class MenuBar:
|
|
|
76
76
|
MenuAction(
|
|
77
77
|
"Toggle Auto-Autotile", self.editor.toggle_auto_autotile
|
|
78
78
|
),
|
|
79
|
+
MenuAction(
|
|
80
|
+
"Export Selection as PNG",
|
|
81
|
+
self.editor.export_selection_as_png,
|
|
82
|
+
"Ctrl+Shift+E",
|
|
83
|
+
),
|
|
79
84
|
MenuAction(
|
|
80
85
|
"Launch External Viewer", self.editor.launch_external_automap
|
|
81
86
|
),
|
|
@@ -71,7 +71,7 @@ class TilesetTypeDialog:
|
|
|
71
71
|
"""Position child controls from the current dialog rect."""
|
|
72
72
|
self.rect.center = self.editor_rect.center
|
|
73
73
|
|
|
74
|
-
h =
|
|
74
|
+
h = 260
|
|
75
75
|
if self.animated or self._editing_field is not None:
|
|
76
76
|
h = 420
|
|
77
77
|
self.rect.h = h
|
|
@@ -97,7 +97,7 @@ class TilesetTypeDialog:
|
|
|
97
97
|
)
|
|
98
98
|
|
|
99
99
|
# Animated checkbox
|
|
100
|
-
anim_y = first_y + (row_h + gap) * 2 +
|
|
100
|
+
anim_y = first_y + (row_h + gap) * 2 + 16
|
|
101
101
|
self.anim_check_rect = Rect(radio_x, anim_y, 16, 16)
|
|
102
102
|
|
|
103
103
|
# Animation fields (collapsible)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf
RENAMED
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/shape_editor.py
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/__init__.py
RENAMED
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/editor.py
RENAMED
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/models.py
RENAMED
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/protocols.py
RENAMED
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/standalone.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/clipboard_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/collision_painter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/arrow-down.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|