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.
Files changed (186) hide show
  1. {tilemap_editor-3.2.0/src/tilemap_editor.egg-info → tilemap_editor-3.2.1}/PKG-INFO +1 -1
  2. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/pyproject.toml +1 -1
  3. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/editor.py +6 -1
  4. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
  5. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/spritesheet_grid.py +53 -15
  6. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/LICENSE +0 -0
  7. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/MANIFEST.in +0 -0
  8. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/README.md +0 -0
  9. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  10. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  11. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  12. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  13. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  14. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  15. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  16. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  17. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/arrow-down.svg +0 -0
  18. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/check.svg +0 -0
  19. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/checked.svg +0 -0
  20. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/close.svg +0 -0
  21. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/duplicate.svg +0 -0
  22. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/error.svg +0 -0
  23. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/file.svg +0 -0
  24. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/filedead.svg +0 -0
  25. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/fit.svg +0 -0
  26. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/folder.svg +0 -0
  27. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/grid.svg +0 -0
  28. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/image.svg +0 -0
  29. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/info.svg +0 -0
  30. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/load.svg +0 -0
  31. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/loop.svg +0 -0
  32. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/pan.svg +0 -0
  33. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/pause.svg +0 -0
  34. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/pencil.svg +0 -0
  35. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/play.svg +0 -0
  36. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/plus.svg +0 -0
  37. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/radio.svg +0 -0
  38. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/reset.svg +0 -0
  39. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/save.svg +0 -0
  40. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/stop.svg +0 -0
  41. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/tilemap.svg +0 -0
  42. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/tileset.svg +0 -0
  43. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/unchecked.svg +0 -0
  44. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/warning.svg +0 -0
  45. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/zoomin.svg +0 -0
  46. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/assets/icons/zoomout.svg +0 -0
  47. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/setup.cfg +0 -0
  48. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/configs/themes.py +0 -0
  49. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/constants.py +0 -0
  50. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/event_map.py +0 -0
  51. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/layers.py +0 -0
  52. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/main.py +0 -0
  53. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/__init__.py +0 -0
  54. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/__init__.py +0 -0
  55. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/editor.py +0 -0
  56. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/models.py +0 -0
  57. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/protocols.py +0 -0
  58. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/shape_editor.py +0 -0
  59. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/character_collision/standalone.py +0 -0
  60. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/__init__.py +0 -0
  61. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/editor.py +0 -0
  62. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/models.py +0 -0
  63. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/protocols.py +0 -0
  64. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/object_tileset_collision/standalone.py +0 -0
  65. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/__init__.py +0 -0
  66. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/__main__.py +0 -0
  67. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/clipboard_util.py +0 -0
  68. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/editor.py +0 -0
  69. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/frame_picker.py +0 -0
  70. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/models.py +0 -0
  71. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/preview.py +0 -0
  72. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/protocols.py +0 -0
  73. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/runtime_load.py +0 -0
  74. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/standalone.py +0 -0
  75. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/timeline.py +0 -0
  76. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_animation/validation.py +0 -0
  77. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_editor/__init__.py +0 -0
  78. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_editor/editor.py +0 -0
  79. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/sprite_editor/standalone.py +0 -0
  80. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/__init__.py +0 -0
  81. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/collision_painter.py +0 -0
  82. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/editor.py +0 -0
  83. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/models.py +0 -0
  84. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/protocols.py +0 -0
  85. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/plugins/tileset_collision/standalone.py +0 -0
  86. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/standalone_automap.py +0 -0
  87. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/standalone_error_console.py +0 -0
  88. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/standalone_filemanager.py +0 -0
  89. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/standalone_image_viewer.py +0 -0
  90. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap.py +0 -0
  91. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/__init__.py +0 -0
  92. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/__main__.py +0 -0
  93. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/__init__.py +0 -0
  94. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  95. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  96. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  97. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  98. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  99. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  100. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  101. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  102. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/ToolMove.svg +0 -0
  103. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/arrow-down.svg +0 -0
  104. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/check.svg +0 -0
  105. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/checked.svg +0 -0
  106. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/close.svg +0 -0
  107. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/duplicate.svg +0 -0
  108. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/error.svg +0 -0
  109. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/file.svg +0 -0
  110. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/filedead.svg +0 -0
  111. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/fit.svg +0 -0
  112. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/folder.svg +0 -0
  113. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/grid.svg +0 -0
  114. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/image.svg +0 -0
  115. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/info.svg +0 -0
  116. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/load.svg +0 -0
  117. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/loop.svg +0 -0
  118. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/pan.svg +0 -0
  119. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/pause.svg +0 -0
  120. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/pencil.svg +0 -0
  121. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/play.svg +0 -0
  122. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/plus.svg +0 -0
  123. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/radio.svg +0 -0
  124. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/reset.svg +0 -0
  125. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/save.svg +0 -0
  126. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/stop.svg +0 -0
  127. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/tilemap.svg +0 -0
  128. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/tileset.svg +0 -0
  129. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/unchecked.svg +0 -0
  130. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/warning.svg +0 -0
  131. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/zoomin.svg +0 -0
  132. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/assets/icons/zoomout.svg +0 -0
  133. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/cli.py +0 -0
  134. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/main.py +0 -0
  135. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor/settings.py +0 -0
  136. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/SOURCES.txt +0 -0
  137. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
  138. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
  139. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/requires.txt +0 -0
  140. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/tilemap_editor.egg-info/top_level.txt +0 -0
  141. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/ttypes/__init__.py +0 -0
  142. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/ttypes/tilemap.py +0 -0
  143. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/__init__.py +0 -0
  144. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/editor_preference.py +0 -0
  145. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/error_handler.py +0 -0
  146. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/font_manager.py +0 -0
  147. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/history.py +0 -0
  148. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/icon_manager.py +0 -0
  149. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/icons_cache.py +0 -0
  150. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/log_capture.py +0 -0
  151. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/project_paths.py +0 -0
  152. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/serialization.py +0 -0
  153. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/standalone.py +0 -0
  154. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/utils/validation.py +0 -0
  155. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/__init__.py +0 -0
  156. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/automap_models.py +0 -0
  157. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/autotile_template.py +0 -0
  158. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/autotiler.py +0 -0
  159. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/filemanager.py +0 -0
  160. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/input.py +0 -0
  161. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/layer_selector.py +0 -0
  162. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/map_properties.py +0 -0
  163. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/mapsetup.py +0 -0
  164. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/regex_automap_designer.py +0 -0
  165. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/tile_grid.py +0 -0
  166. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/tile_selector.py +0 -0
  167. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/collision_layer_mask.py +0 -0
  168. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/collision_layer_sidebar.py +0 -0
  169. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/draw_utils.py +0 -0
  170. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/fileinput.py +0 -0
  171. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/layer_type_dialog.py +0 -0
  172. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/menubar.py +0 -0
  173. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/mode_indicator.py +0 -0
  174. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/notification.py +0 -0
  175. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/property_editor.py +0 -0
  176. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/region_selector.py +0 -0
  177. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/status_bar.py +0 -0
  178. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/theme.py +0 -0
  179. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/tileset_type_dialog.py +0 -0
  180. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/toolbar.py +0 -0
  181. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/src/widgets/ui/tooltip.py +0 -0
  182. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_collision_layer_mask.py +0 -0
  183. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_collision_layer_sidebar.py +0 -0
  184. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_project_paths.py +0 -0
  185. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_render_scale.py +0 -0
  186. {tilemap_editor-3.2.0 → tilemap_editor-3.2.1}/tests/test_tilemap_save.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 3.2.0
3
+ Version: 3.2.1
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.2.0"
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
- args = [str(path), "--data-root", str(self.data_root)]
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,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 3.2.0
3
+ Version: 3.2.1
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
@@ -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 starting at target grid position.
322
-
323
- Tiles are written in sorted source-index order, filling left-to-right
324
- top-to-bottom from the target cell. Out-of-bounds writes are skipped.
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
- sorted_src = sorted(tiles.keys())
330
- for offset, src_idx in enumerate(sorted_src):
331
- dst = target_idx + offset
332
- if dst >= self.total_frames:
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
- target_idx + offset
339
- for offset in range(len(sorted_src))
340
- if target_idx + offset < self.total_frames
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