tilemap-editor 3.2.0__tar.gz → 3.2.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.2.0/src/tilemap_editor.egg-info → tilemap_editor-3.2.1}/PKG-INFO +1 -1
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/pyproject.toml +1 -1
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/editor.py +6 -1
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/spritesheet_grid.py +53 -15
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/LICENSE +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/MANIFEST.in +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/README.md +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/arrow-down.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/check.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/checked.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/close.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/duplicate.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/error.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/file.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/filedead.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/fit.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/folder.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/grid.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/image.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/info.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/load.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/loop.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/pan.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/pause.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/pencil.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/play.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/plus.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/radio.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/reset.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/save.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/stop.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/tilemap.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/tileset.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/unchecked.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/warning.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/zoomin.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/zoomout.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/setup.cfg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/configs/themes.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/constants.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/event_map.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/layers.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/main.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/editor.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/models.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/protocols.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/shape_editor.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/standalone.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/editor.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/models.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/protocols.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/standalone.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/__main__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/clipboard_util.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/editor.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/frame_picker.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/models.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/preview.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/protocols.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/runtime_load.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/standalone.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/timeline.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/validation.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_editor/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_editor/editor.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_editor/standalone.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/collision_painter.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/editor.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/models.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/protocols.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/standalone.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/standalone_automap.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/standalone_error_console.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/standalone_filemanager.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/standalone_image_viewer.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/__main__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/ToolMove.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/arrow-down.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/check.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/checked.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/close.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/duplicate.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/error.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/file.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/filedead.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/fit.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/folder.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/grid.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/image.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/info.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/load.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/loop.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/pan.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/pause.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/pencil.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/play.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/plus.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/radio.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/reset.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/save.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/stop.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/tilemap.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/tileset.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/unchecked.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/warning.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/zoomin.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/zoomout.svg +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/cli.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/main.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/settings.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/SOURCES.txt +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/requires.txt +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/top_level.txt +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/ttypes/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/ttypes/tilemap.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/editor_preference.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/error_handler.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/font_manager.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/history.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/icon_manager.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/icons_cache.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/log_capture.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/project_paths.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/serialization.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/standalone.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/validation.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/__init__.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/automap_models.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/autotile_template.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/autotiler.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/filemanager.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/input.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/layer_selector.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/map_properties.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/mapsetup.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/regex_automap_designer.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/tile_grid.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/tile_selector.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/collision_layer_mask.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/collision_layer_sidebar.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/draw_utils.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/fileinput.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/layer_type_dialog.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/menubar.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/mode_indicator.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/notification.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/property_editor.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/region_selector.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/status_bar.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/theme.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/tileset_type_dialog.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/toolbar.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/tooltip.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_collision_layer_mask.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_collision_layer_sidebar.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_project_paths.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_render_scale.py +0 -0
- {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_tilemap_save.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.2.
|
|
7
|
+
version = "3.2.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"
|
|
@@ -723,7 +723,12 @@ class Editor:
|
|
|
723
723
|
def _launch_sprite_editor_with_image(self, path: Path):
|
|
724
724
|
"""Launch sprite editor subprocess with selected image."""
|
|
725
725
|
try:
|
|
726
|
-
|
|
726
|
+
tile_size = "32x32"
|
|
727
|
+
if hasattr(self.tilemap, "tile_size") and self.tilemap.tile_size:
|
|
728
|
+
tw, th = self.tilemap.tile_size
|
|
729
|
+
tile_size = f"{tw}x{th}"
|
|
730
|
+
|
|
731
|
+
args = [str(path), "--tile-size", tile_size, "--data-root", str(self.data_root)]
|
|
727
732
|
process = launch_standalone(
|
|
728
733
|
"plugins.sprite_editor.standalone",
|
|
729
734
|
args,
|
|
@@ -318,27 +318,65 @@ class SpritesheetGrid:
|
|
|
318
318
|
return result
|
|
319
319
|
|
|
320
320
|
def paste_at(self, target_idx: int, tiles: Dict[int, Surface]) -> None:
|
|
321
|
-
"""Write previously copied tiles
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
321
|
+
"""Write previously copied tiles preserving 2D layout.
|
|
322
|
+
|
|
323
|
+
Each source tile's row/col offset from the selection origin is
|
|
324
|
+
preserved at the target grid position. The canvas auto-expands
|
|
325
|
+
if pasted tiles exceed the current bounds.
|
|
325
326
|
"""
|
|
326
327
|
if not tiles or target_idx < 0 or target_idx >= self.total_frames:
|
|
327
328
|
return
|
|
329
|
+
|
|
330
|
+
src_origin_col = min(idx % self.cols for idx in tiles)
|
|
331
|
+
src_origin_row = min(idx // self.cols for idx in tiles)
|
|
332
|
+
target_col = target_idx % self.cols
|
|
333
|
+
target_row = target_idx // self.cols
|
|
334
|
+
|
|
335
|
+
# Pre-compute all destination positions using current grid dimensions
|
|
336
|
+
dst_positions: List[Tuple[int, int, Surface]] = []
|
|
337
|
+
for src_idx, tile in tiles.items():
|
|
338
|
+
src_c = src_idx % self.cols - src_origin_col
|
|
339
|
+
src_r = src_idx // self.cols - src_origin_row
|
|
340
|
+
dst_c = target_col + src_c
|
|
341
|
+
dst_r = target_row + src_r
|
|
342
|
+
dst_positions.append((dst_r, dst_c, tile))
|
|
343
|
+
|
|
344
|
+
# Expand canvas if needed
|
|
345
|
+
need_rows = max(r for r, _, _ in dst_positions) + 1
|
|
346
|
+
need_cols = max(c for _, c, _ in dst_positions) + 1
|
|
347
|
+
if need_rows > self.rows or need_cols > self.cols:
|
|
348
|
+
self._expand_canvas(max(self.cols, need_cols), max(self.rows, need_rows))
|
|
349
|
+
|
|
328
350
|
self.snapshot()
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
break
|
|
334
|
-
tile = tiles[src_idx]
|
|
351
|
+
for dst_row, dst_col, tile in dst_positions:
|
|
352
|
+
if dst_row >= self.rows or dst_col >= self.cols:
|
|
353
|
+
continue
|
|
354
|
+
dst = dst_row * self.cols + dst_col
|
|
335
355
|
self.write_tile(dst, tile)
|
|
356
|
+
|
|
336
357
|
# Select the newly pasted tiles
|
|
337
|
-
self.selected_indices =
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
358
|
+
self.selected_indices = set()
|
|
359
|
+
for dst_row, dst_col, _ in dst_positions:
|
|
360
|
+
if dst_row < self.rows and dst_col < self.cols:
|
|
361
|
+
self.selected_indices.add(dst_row * self.cols + dst_col)
|
|
362
|
+
|
|
363
|
+
def _expand_canvas(self, new_cols: int, new_rows: int) -> None:
|
|
364
|
+
"""Enlarge the spritesheet surface to fit new_cols x new_rows tiles."""
|
|
365
|
+
tw, th = self.tile_size
|
|
366
|
+
new_w = new_cols * tw + self.grid_offset_x
|
|
367
|
+
new_h = new_rows * th + self.grid_offset_y
|
|
368
|
+
new_surf = Surface((new_w, new_h), SRCALPHA)
|
|
369
|
+
new_surf.fill((0, 0, 0, 0))
|
|
370
|
+
new_surf.blit(self.surface, (0, 0))
|
|
371
|
+
self.surface = new_surf
|
|
372
|
+
self.cols = new_cols
|
|
373
|
+
self.rows = new_rows
|
|
374
|
+
self.total_frames = new_cols * new_rows
|
|
375
|
+
# Reset view so the new area is visible
|
|
376
|
+
if self.offset_x < 0:
|
|
377
|
+
self.offset_x = 0
|
|
378
|
+
if self.offset_y < 0:
|
|
379
|
+
self.offset_y = 0
|
|
342
380
|
|
|
343
381
|
def save_png(self, path: Path) -> None:
|
|
344
382
|
"""Write current surface to a PNG file."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf
RENAMED
|
File without changes
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.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
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/shape_editor.py
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/__init__.py
RENAMED
|
File without changes
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/editor.py
RENAMED
|
File without changes
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/models.py
RENAMED
|
File without changes
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/protocols.py
RENAMED
|
File without changes
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/standalone.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.2.0 → tilemap_editor-3.2.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.2.0 → tilemap_editor-3.2.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.2.0 → tilemap_editor-3.2.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.2.0 → tilemap_editor-3.2.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.2.0 → tilemap_editor-3.2.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
|