tilemap-editor 3.1.1__tar.gz → 3.1.2__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.1.1/src/tilemap_editor.egg-info → tilemap_editor-3.1.2}/PKG-INFO +1 -1
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/pyproject.toml +1 -1
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap.py +11 -7
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor.egg-info/SOURCES.txt +2 -1
- tilemap_editor-3.1.2/tests/test_project_paths.py +73 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/LICENSE +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/MANIFEST.in +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/README.md +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/arrow-down.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/check.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/checked.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/close.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/duplicate.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/error.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/file.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/filedead.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/fit.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/folder.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/grid.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/image.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/info.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/load.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/loop.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/pan.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/pause.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/pencil.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/play.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/plus.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/radio.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/reset.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/save.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/stop.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/tilemap.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/tileset.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/unchecked.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/warning.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/zoomin.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/icons/zoomout.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/setup.cfg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/configs/themes.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/constants.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/editor.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/event_map.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/layers.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/main.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/character_collision/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/character_collision/editor.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/character_collision/models.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/character_collision/protocols.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/character_collision/shape_editor.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/character_collision/standalone.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/editor.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/models.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/protocols.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/standalone.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/__main__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/clipboard_util.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/editor.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/frame_picker.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/models.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/preview.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/protocols.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/runtime_load.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/standalone.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/timeline.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/sprite_animation/validation.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/tileset_collision/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/tileset_collision/collision_painter.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/tileset_collision/editor.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/tileset_collision/models.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/tileset_collision/protocols.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/tileset_collision/standalone.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/standalone_automap.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/standalone_error_console.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/standalone_filemanager.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/standalone_image_viewer.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/__main__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/ToolMove.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/arrow-down.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/check.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/checked.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/close.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/duplicate.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/error.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/file.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/filedead.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/fit.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/folder.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/grid.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/image.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/info.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/load.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/loop.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/pan.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/pause.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/pencil.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/play.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/plus.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/radio.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/reset.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/save.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/stop.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/tilemap.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/tileset.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/unchecked.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/warning.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/zoomin.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/assets/icons/zoomout.svg +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/cli.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/main.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor/settings.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor.egg-info/requires.txt +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/tilemap_editor.egg-info/top_level.txt +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/ttypes/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/ttypes/tilemap.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/editor_preference.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/error_handler.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/font_manager.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/history.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/icon_manager.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/icons_cache.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/log_capture.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/project_paths.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/serialization.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/standalone.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/utils/validation.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/__init__.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/automap_models.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/autotile_template.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/autotiler.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/filemanager.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/input.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/layer_selector.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/mapsetup.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/regex_automap_designer.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/tile_grid.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/tile_selector.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/collision_layer_mask.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/collision_layer_sidebar.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/draw_utils.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/fileinput.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/layer_type_dialog.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/menubar.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/mode_indicator.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/notification.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/property_editor.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/region_selector.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/status_bar.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/theme.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/tileset_type_dialog.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/toolbar.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/widgets/ui/tooltip.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/tests/test_collision_layer_mask.py +0 -0
- {tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/tests/test_collision_layer_sidebar.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.1.
|
|
7
|
+
version = "3.1.2"
|
|
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"
|
|
@@ -226,11 +226,13 @@ class Tilemap:
|
|
|
226
226
|
if path_obj.is_absolute():
|
|
227
227
|
target_path = path_obj
|
|
228
228
|
else:
|
|
229
|
-
data_root = getattr(getattr(self,
|
|
229
|
+
data_root = getattr(getattr(self, "editor", None), "data_root", None)
|
|
230
230
|
if data_root:
|
|
231
231
|
target_path = data_root / path_obj
|
|
232
232
|
else:
|
|
233
|
-
raise RuntimeError(
|
|
233
|
+
raise RuntimeError(
|
|
234
|
+
"Cannot determine data_root - Editor not initialized with settings.json"
|
|
235
|
+
)
|
|
234
236
|
|
|
235
237
|
self.active_project_path = target_path
|
|
236
238
|
elif self.active_project_path:
|
|
@@ -241,7 +243,7 @@ class Tilemap:
|
|
|
241
243
|
if not target_path.parent.exists():
|
|
242
244
|
target_path.parent.mkdir(parents=True, exist_ok=True)
|
|
243
245
|
|
|
244
|
-
|
|
246
|
+
map_dir = target_path.parent
|
|
245
247
|
|
|
246
248
|
save_data = {
|
|
247
249
|
"meta": {
|
|
@@ -279,7 +281,7 @@ class Tilemap:
|
|
|
279
281
|
|
|
280
282
|
if hasattr(self.editor, "tileset_widget") and self.editor.tileset_widget:
|
|
281
283
|
for ts in self.editor.tileset_widget.tilesets:
|
|
282
|
-
path_str = to_project_path(ts.path,
|
|
284
|
+
path_str = to_project_path(ts.path, map_dir)
|
|
283
285
|
|
|
284
286
|
ts_data: Dict[str, Any] = {"path": path_str, "type": ts.tileset_type}
|
|
285
287
|
if ts.properties:
|
|
@@ -301,7 +303,7 @@ class Tilemap:
|
|
|
301
303
|
{
|
|
302
304
|
"name": group.name,
|
|
303
305
|
"rules": [
|
|
304
|
-
self._serialize_autotile_rule(rule,
|
|
306
|
+
self._serialize_autotile_rule(rule, map_dir)
|
|
305
307
|
for rule in group.rules
|
|
306
308
|
],
|
|
307
309
|
}
|
|
@@ -407,14 +409,16 @@ class Tilemap:
|
|
|
407
409
|
return data
|
|
408
410
|
|
|
409
411
|
def _path_matches_project_path(self, stored_path: str, actual_path: Path) -> bool:
|
|
410
|
-
|
|
412
|
+
map_dir = (
|
|
413
|
+
self.active_project_path.parent if self.active_project_path else Path()
|
|
414
|
+
)
|
|
411
415
|
stored = Path(stored_path).expanduser()
|
|
412
416
|
actual = Path(actual_path).expanduser()
|
|
413
417
|
|
|
414
418
|
if stored.is_absolute():
|
|
415
419
|
return stored.resolve() == actual.resolve()
|
|
416
420
|
|
|
417
|
-
return stored.as_posix() == to_project_path(actual,
|
|
421
|
+
return stored.as_posix() == to_project_path(actual, map_dir)
|
|
418
422
|
|
|
419
423
|
def _resolve_rule_resources(self, rule: "AutotileRule", ts_widget):
|
|
420
424
|
resolved_ts = None
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import tempfile
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
import sys
|
|
5
|
+
sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
|
|
6
|
+
|
|
7
|
+
from utils.project_paths import to_project_path, resolve_project_path
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TestToProjectPath:
|
|
11
|
+
def test_relative_to_base(self):
|
|
12
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
13
|
+
base = Path(tmp)
|
|
14
|
+
target = base / "subdir" / "file.png"
|
|
15
|
+
target.parent.mkdir(parents=True)
|
|
16
|
+
target.touch()
|
|
17
|
+
|
|
18
|
+
result = to_project_path(target, base)
|
|
19
|
+
assert result == "subdir/file.png"
|
|
20
|
+
|
|
21
|
+
def test_absolute_input(self):
|
|
22
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
23
|
+
base = Path(tmp)
|
|
24
|
+
target = base / "file.png"
|
|
25
|
+
target.touch()
|
|
26
|
+
|
|
27
|
+
result = to_project_path(str(target), base)
|
|
28
|
+
assert result == "file.png"
|
|
29
|
+
|
|
30
|
+
def test_outside_base_directory(self):
|
|
31
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
32
|
+
base = Path(tmp) / "project"
|
|
33
|
+
base.mkdir()
|
|
34
|
+
outside = Path(tmp) / "outside" / "file.png"
|
|
35
|
+
outside.parent.mkdir(parents=True)
|
|
36
|
+
outside.touch()
|
|
37
|
+
|
|
38
|
+
result = to_project_path(outside, base)
|
|
39
|
+
assert ".." in result
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class TestResolveProjectPath:
|
|
43
|
+
def test_resolves_relative_to_base(self):
|
|
44
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
45
|
+
base = Path(tmp)
|
|
46
|
+
target = base / "subdir" / "file.png"
|
|
47
|
+
target.parent.mkdir(parents=True)
|
|
48
|
+
target.touch()
|
|
49
|
+
|
|
50
|
+
stored = "subdir/file.png"
|
|
51
|
+
result = resolve_project_path(stored, base, must_exist=True)
|
|
52
|
+
assert result == target.resolve()
|
|
53
|
+
|
|
54
|
+
def test_resolves_via_fallback(self):
|
|
55
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
56
|
+
base = Path(tmp) / "project"
|
|
57
|
+
base.mkdir()
|
|
58
|
+
fallback = Path(tmp) / "maps"
|
|
59
|
+
fallback.mkdir()
|
|
60
|
+
target = fallback / "assets" / "file.png"
|
|
61
|
+
target.parent.mkdir(parents=True)
|
|
62
|
+
target.touch()
|
|
63
|
+
|
|
64
|
+
stored = "assets/file.png"
|
|
65
|
+
result = resolve_project_path(stored, base, fallback_roots=[fallback], must_exist=True)
|
|
66
|
+
assert result == target.resolve()
|
|
67
|
+
|
|
68
|
+
def test_returns_first_candidate_when_not_exist(self):
|
|
69
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
70
|
+
base = Path(tmp)
|
|
71
|
+
stored = "nonexistent/file.png"
|
|
72
|
+
result = resolve_project_path(stored, base)
|
|
73
|
+
assert result == (base / stored).resolve()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf
RENAMED
|
File without changes
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/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
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/character_collision/shape_editor.py
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/__init__.py
RENAMED
|
File without changes
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/editor.py
RENAMED
|
File without changes
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/models.py
RENAMED
|
File without changes
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/protocols.py
RENAMED
|
File without changes
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/src/plugins/object_tileset_collision/standalone.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/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
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/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
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/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.1.1 → tilemap_editor-3.1.2}/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
|
{tilemap_editor-3.1.1 → tilemap_editor-3.1.2}/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
|