tilemap-editor 3.3.8__tar.gz → 3.3.9__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.
Files changed (208) hide show
  1. {tilemap_editor-3.3.8/src/tilemap_editor.egg-info → tilemap_editor-3.3.9}/PKG-INFO +1 -1
  2. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/pyproject.toml +1 -1
  3. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/cli.py +11 -1
  4. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/settings.py +35 -1
  5. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
  6. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_project_paths.py +81 -1
  7. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/LICENSE +0 -0
  8. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/MANIFEST.in +0 -0
  9. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/README.md +0 -0
  10. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  11. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  12. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  13. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  14. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  15. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  16. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  17. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  18. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/arrow-down.svg +0 -0
  19. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/check.svg +0 -0
  20. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/checked.svg +0 -0
  21. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/close.svg +0 -0
  22. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/duplicate.svg +0 -0
  23. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/error.svg +0 -0
  24. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/file.svg +0 -0
  25. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/filedead.svg +0 -0
  26. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/fit.svg +0 -0
  27. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/folder.svg +0 -0
  28. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/grid.svg +0 -0
  29. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/image.svg +0 -0
  30. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/info.svg +0 -0
  31. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/load.svg +0 -0
  32. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/loop.svg +0 -0
  33. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/onion.svg +0 -0
  34. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/pan.svg +0 -0
  35. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/pause.svg +0 -0
  36. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/pencil.svg +0 -0
  37. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/play.svg +0 -0
  38. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/plus.svg +0 -0
  39. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/radio.svg +0 -0
  40. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/reset.svg +0 -0
  41. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/save.svg +0 -0
  42. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/skip-back.svg +0 -0
  43. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/skip-forward.svg +0 -0
  44. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/stop.svg +0 -0
  45. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/tilemap.svg +0 -0
  46. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/tileset.svg +0 -0
  47. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/unchecked.svg +0 -0
  48. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/warning.svg +0 -0
  49. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/zoomin.svg +0 -0
  50. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/assets/icons/zoomout.svg +0 -0
  51. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/setup.cfg +0 -0
  52. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/configs/themes.py +0 -0
  53. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/constants.py +0 -0
  54. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/editor.py +0 -0
  55. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/event_map.py +0 -0
  56. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/layers.py +0 -0
  57. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/main.py +0 -0
  58. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/node_manager.py +0 -0
  59. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/nodes.py +0 -0
  60. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/__init__.py +0 -0
  61. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/character_collision/__init__.py +0 -0
  62. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/character_collision/editor.py +0 -0
  63. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/character_collision/models.py +0 -0
  64. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/character_collision/protocols.py +0 -0
  65. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/character_collision/shape_editor.py +0 -0
  66. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/character_collision/standalone.py +0 -0
  67. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/object_tileset_collision/__init__.py +0 -0
  68. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/object_tileset_collision/editor.py +0 -0
  69. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/object_tileset_collision/models.py +0 -0
  70. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/object_tileset_collision/protocols.py +0 -0
  71. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/object_tileset_collision/standalone.py +0 -0
  72. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/__init__.py +0 -0
  73. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/__main__.py +0 -0
  74. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/clipboard_util.py +0 -0
  75. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/editor.py +0 -0
  76. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/frame_picker.py +0 -0
  77. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/models.py +0 -0
  78. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/preview.py +0 -0
  79. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/protocols.py +0 -0
  80. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/runtime_load.py +0 -0
  81. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/standalone.py +0 -0
  82. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/timeline.py +0 -0
  83. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_animation/validation.py +0 -0
  84. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_editor/__init__.py +0 -0
  85. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_editor/editor.py +0 -0
  86. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/sprite_editor/standalone.py +0 -0
  87. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/tileset_collision/__init__.py +0 -0
  88. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/tileset_collision/collision_painter.py +0 -0
  89. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/tileset_collision/editor.py +0 -0
  90. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/tileset_collision/models.py +0 -0
  91. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/tileset_collision/protocols.py +0 -0
  92. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/plugins/tileset_collision/standalone.py +0 -0
  93. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/standalone_automap.py +0 -0
  94. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/standalone_error_console.py +0 -0
  95. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/standalone_filemanager.py +0 -0
  96. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/standalone_image_viewer.py +0 -0
  97. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap.py +0 -0
  98. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/__init__.py +0 -0
  99. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/__main__.py +0 -0
  100. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/__init__.py +0 -0
  101. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  102. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  103. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  104. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  105. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  106. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  107. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  108. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  109. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/ToolMove.svg +0 -0
  110. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/arrow-down.svg +0 -0
  111. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/check.svg +0 -0
  112. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/checked.svg +0 -0
  113. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/close.svg +0 -0
  114. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/duplicate.svg +0 -0
  115. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/error.svg +0 -0
  116. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/file.svg +0 -0
  117. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/filedead.svg +0 -0
  118. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/fit.svg +0 -0
  119. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/folder.svg +0 -0
  120. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/grid.svg +0 -0
  121. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/image.svg +0 -0
  122. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/info.svg +0 -0
  123. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/load.svg +0 -0
  124. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/loop.svg +0 -0
  125. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/onion.svg +0 -0
  126. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/pan.svg +0 -0
  127. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/pause.svg +0 -0
  128. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/pencil.svg +0 -0
  129. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/play.svg +0 -0
  130. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/plus.svg +0 -0
  131. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/radio.svg +0 -0
  132. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/reset.svg +0 -0
  133. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/save.svg +0 -0
  134. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/skip-back.svg +0 -0
  135. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/skip-forward.svg +0 -0
  136. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/stop.svg +0 -0
  137. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/tilemap.svg +0 -0
  138. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/tileset.svg +0 -0
  139. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/unchecked.svg +0 -0
  140. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/warning.svg +0 -0
  141. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/zoomin.svg +0 -0
  142. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/assets/icons/zoomout.svg +0 -0
  143. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor/main.py +0 -0
  144. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor.egg-info/SOURCES.txt +0 -0
  145. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
  146. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
  147. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor.egg-info/requires.txt +0 -0
  148. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/tilemap_editor.egg-info/top_level.txt +0 -0
  149. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/ttypes/__init__.py +0 -0
  150. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/ttypes/tilemap.py +0 -0
  151. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/__init__.py +0 -0
  152. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/editor_preference.py +0 -0
  153. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/error_handler.py +0 -0
  154. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/font_manager.py +0 -0
  155. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/history.py +0 -0
  156. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/icon_manager.py +0 -0
  157. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/icons_cache.py +0 -0
  158. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/log_capture.py +0 -0
  159. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/project_paths.py +0 -0
  160. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/serialization.py +0 -0
  161. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/standalone.py +0 -0
  162. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/utils/validation.py +0 -0
  163. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/__init__.py +0 -0
  164. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/automap_models.py +0 -0
  165. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/autotile_template.py +0 -0
  166. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/autotiler.py +0 -0
  167. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/filemanager.py +0 -0
  168. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/input.py +0 -0
  169. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/layer_selector.py +0 -0
  170. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/map_properties.py +0 -0
  171. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/mapsetup.py +0 -0
  172. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/particle_presets.py +0 -0
  173. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/particle_system.py +0 -0
  174. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/regex_automap_designer.py +0 -0
  175. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/spritesheet_grid.py +0 -0
  176. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/tile_grid.py +0 -0
  177. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/tile_selector.py +0 -0
  178. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/checkbox.py +0 -0
  179. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/collision_layer_mask.py +0 -0
  180. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/collision_layer_sidebar.py +0 -0
  181. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/confirm_dialog.py +0 -0
  182. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/draw_utils.py +0 -0
  183. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/fileinput.py +0 -0
  184. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/layer_type_dialog.py +0 -0
  185. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/menubar.py +0 -0
  186. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/mode_indicator.py +0 -0
  187. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/node_editor.py +0 -0
  188. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/node_selector.py +0 -0
  189. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/notification.py +0 -0
  190. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/particle_config_dialog.py +0 -0
  191. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/property_editor.py +0 -0
  192. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/region_selector.py +0 -0
  193. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/status_bar.py +0 -0
  194. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/theme.py +0 -0
  195. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/tileset_type_dialog.py +0 -0
  196. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/toolbar.py +0 -0
  197. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/src/widgets/ui/tooltip.py +0 -0
  198. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_animation_library_grid_offset.py +0 -0
  199. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_collision_layer_mask.py +0 -0
  200. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_collision_layer_sidebar.py +0 -0
  201. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_editor_pan_mode.py +0 -0
  202. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_render_scale.py +0 -0
  203. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_sprite_animation_editor_grid.py +0 -0
  204. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_tile_grid_selection.py +0 -0
  205. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_tile_selector_pick.py +0 -0
  206. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_tilemap_save.py +0 -0
  207. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_timeline_invalidate_cache.py +0 -0
  208. {tilemap_editor-3.3.8 → tilemap_editor-3.3.9}/tests/test_toolbar_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 3.3.8
3
+ Version: 3.3.9
4
4
  Summary: Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools
5
5
  Author: tilemap editor contributors
6
6
  License: Proprietary
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tilemap-editor"
7
- version = "3.3.8"
7
+ version = "3.3.9"
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"
@@ -5,7 +5,7 @@ import sys
5
5
 
6
6
  from editor import Editor
7
7
  from utils import error_handler, error_context
8
- from .settings import init_settings
8
+ from .settings import init_settings, update_settings
9
9
 
10
10
 
11
11
  def _parse_size(text: str) -> tuple[int, int]:
@@ -29,6 +29,12 @@ def main() -> None:
29
29
  help="Also create src/main.py boilerplate"
30
30
  )
31
31
 
32
+ update_parser = subparsers.add_parser("update", help="Update settings.json base_path for current device")
33
+ update_parser.add_argument(
34
+ "--path", default=None,
35
+ help="Explicit base path (default: resolves cwd to absolute path)"
36
+ )
37
+
32
38
  run_parser = subparsers.add_parser("run", help="Run the tilemap editor")
33
39
  run_parser.add_argument(
34
40
  "--size", default="1500x900", help="Window size as WIDTHxHEIGHT"
@@ -43,6 +49,10 @@ def main() -> None:
43
49
  init_settings(generate_main=args.with_main)
44
50
  return
45
51
 
52
+ if args.command == "update":
53
+ update_settings(path=args.path)
54
+ return
55
+
46
56
  if args.command is None or args.command == "run":
47
57
  _run_editor(args)
48
58
  return
@@ -1,6 +1,7 @@
1
1
  import json
2
2
  import sys
3
3
  from pathlib import Path
4
+ from typing import Optional
4
5
 
5
6
 
6
7
  def init_settings(generate_main: bool = False) -> None:
@@ -71,4 +72,37 @@ if __name__ == "__main__":
71
72
  with open(main_file, "w") as f:
72
73
  f.write(boilerplate)
73
74
 
74
- print(f"Created {main_file}")
75
+ print(f"Created {main_file}")
76
+
77
+
78
+ def update_settings(path: Optional[str] = None) -> None:
79
+ """Update base_path in an existing settings.json to the current device path.
80
+
81
+ If no path is given, resolves the current working directory to an absolute
82
+ path and writes it as base_path. This makes settings.json portable when
83
+ shared across devices — run update on each device to fix the path.
84
+
85
+ Args:
86
+ path: Optional explicit base_path to write (e.g. --path /home/user/project)
87
+ """
88
+ settings_file = Path.cwd() / "settings.json"
89
+
90
+ if not settings_file.exists():
91
+ raise RuntimeError(
92
+ "settings.json not found. Run 'tilemap-editor init' first."
93
+ )
94
+
95
+ with open(settings_file, "r") as f:
96
+ config = json.load(f)
97
+
98
+ if path is not None:
99
+ new_base = str(Path(path).expanduser().resolve())
100
+ else:
101
+ new_base = str(Path.cwd().resolve())
102
+
103
+ config["base_path"] = new_base
104
+
105
+ with open(settings_file, "w") as f:
106
+ json.dump(config, f, indent=4)
107
+
108
+ print(f"Updated base_path to '{new_base}' in {settings_file}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 3.3.8
3
+ Version: 3.3.9
4
4
  Summary: Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools
5
5
  Author: tilemap editor contributors
6
6
  License: Proprietary
@@ -10,7 +10,7 @@ import sys
10
10
  sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
11
11
 
12
12
  from utils.project_paths import to_project_path, resolve_project_path
13
- from tilemap_editor.settings import init_settings
13
+ from tilemap_editor.settings import init_settings, update_settings
14
14
 
15
15
 
16
16
  @pytest.fixture
@@ -143,3 +143,83 @@ class TestInitSettings:
143
143
  assert src_main.exists()
144
144
  finally:
145
145
  os.chdir(str(orig_cwd))
146
+
147
+
148
+ class TestUpdateSettings:
149
+ def test_updates_base_path_to_cwd_when_no_path_given(self):
150
+ with tempfile.TemporaryDirectory() as tmp:
151
+ tmp_path = Path(tmp).resolve()
152
+ orig_cwd = Path.cwd()
153
+ os.chdir(str(tmp_path))
154
+ try:
155
+ settings_file = tmp_path / "settings.json"
156
+ with open(settings_file, "w") as f:
157
+ json.dump({"base_path": "/old/path", "data_path": "data"}, f)
158
+
159
+ update_settings()
160
+
161
+ with open(settings_file) as f:
162
+ cfg = json.load(f)
163
+ assert cfg["base_path"] == str(tmp_path)
164
+ assert cfg["data_path"] == "data"
165
+ finally:
166
+ os.chdir(str(orig_cwd))
167
+
168
+ def test_updates_base_path_to_given_path(self):
169
+ with tempfile.TemporaryDirectory() as tmp:
170
+ tmp_path = Path(tmp).resolve()
171
+ orig_cwd = Path.cwd()
172
+ os.chdir(str(tmp_path))
173
+ try:
174
+ settings_file = tmp_path / "settings.json"
175
+ with open(settings_file, "w") as f:
176
+ json.dump({"base_path": "/old/path", "data_path": "data"}, f)
177
+
178
+ new_path = tmp_path / "some" / "other"
179
+ update_settings(path=str(new_path))
180
+
181
+ with open(settings_file) as f:
182
+ cfg = json.load(f)
183
+ assert cfg["base_path"] == str(new_path.resolve())
184
+ finally:
185
+ os.chdir(str(orig_cwd))
186
+
187
+ def test_raises_when_settings_json_missing(self):
188
+ with tempfile.TemporaryDirectory() as tmp:
189
+ tmp_path = Path(tmp).resolve()
190
+ orig_cwd = Path.cwd()
191
+ os.chdir(str(tmp_path))
192
+ try:
193
+ with pytest.raises(RuntimeError, match="settings.json not found"):
194
+ update_settings()
195
+ finally:
196
+ os.chdir(str(orig_cwd))
197
+
198
+ def test_does_not_touch_other_fields(self):
199
+ with tempfile.TemporaryDirectory() as tmp:
200
+ tmp_path = Path(tmp).resolve()
201
+ orig_cwd = Path.cwd()
202
+ os.chdir(str(tmp_path))
203
+ try:
204
+ original = {
205
+ "base_path": "/old/path",
206
+ "data_path": "data",
207
+ "collision_paths": {"tileset": "collision"},
208
+ "nodes_path": "nodes",
209
+ "error_handler": {"log_path": "errors.log"},
210
+ }
211
+ settings_file = tmp_path / "settings.json"
212
+ with open(settings_file, "w") as f:
213
+ json.dump(original, f)
214
+
215
+ update_settings()
216
+
217
+ with open(settings_file) as f:
218
+ cfg = json.load(f)
219
+ assert cfg["base_path"] == str(tmp_path)
220
+ assert cfg["data_path"] == "data"
221
+ assert cfg["collision_paths"] == {"tileset": "collision"}
222
+ assert cfg["nodes_path"] == "nodes"
223
+ assert cfg["error_handler"] == {"log_path": "errors.log"}
224
+ finally:
225
+ os.chdir(str(orig_cwd))
File without changes
File without changes
File without changes