tilemap-editor 4.3.8__tar.gz → 4.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 (245) hide show
  1. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/CHANGELOG.md +9 -1
  2. {tilemap_editor-4.3.8/src/tilemap_editor.egg-info → tilemap_editor-4.3.9}/PKG-INFO +1 -1
  3. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/pyproject.toml +1 -1
  4. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/editor.py +12 -5
  5. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
  6. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/font_manager.py +15 -1
  7. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/region_selector.py +20 -6
  8. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/LICENSE +0 -0
  9. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/MANIFEST.in +0 -0
  10. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/README.md +0 -0
  11. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  12. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  13. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  14. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  15. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  16. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  17. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  18. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  19. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/arrow-down.svg +0 -0
  20. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/check.svg +0 -0
  21. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/checked.svg +0 -0
  22. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/close.svg +0 -0
  23. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/duplicate.svg +0 -0
  24. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/error.svg +0 -0
  25. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/file.svg +0 -0
  26. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/filedead.svg +0 -0
  27. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/fit.svg +0 -0
  28. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/folder.svg +0 -0
  29. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/grid.svg +0 -0
  30. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/image.svg +0 -0
  31. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/info.svg +0 -0
  32. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/load.svg +0 -0
  33. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/loop.svg +0 -0
  34. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/onion.svg +0 -0
  35. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/pan.svg +0 -0
  36. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/pause.svg +0 -0
  37. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/pencil.svg +0 -0
  38. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/play.svg +0 -0
  39. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/plus.svg +0 -0
  40. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/radio.svg +0 -0
  41. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/reset.svg +0 -0
  42. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/save.svg +0 -0
  43. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/skip-back.svg +0 -0
  44. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/skip-forward.svg +0 -0
  45. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/stop.svg +0 -0
  46. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/tilemap.svg +0 -0
  47. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/tileset.svg +0 -0
  48. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/unchecked.svg +0 -0
  49. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/warning.svg +0 -0
  50. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/zoomin.svg +0 -0
  51. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/zoomout.svg +0 -0
  52. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/setup.cfg +0 -0
  53. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/constants.py +0 -0
  54. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/editor.py +0 -0
  55. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/event_map.py +0 -0
  56. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/layers.py +0 -0
  57. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/main.py +0 -0
  58. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/node_manager.py +0 -0
  59. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/nodes.py +0 -0
  60. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/__init__.py +0 -0
  61. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/__init__.py +0 -0
  62. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/editor.py +0 -0
  63. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/models.py +0 -0
  64. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/protocols.py +0 -0
  65. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/shape_editor.py +0 -0
  66. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/standalone.py +0 -0
  67. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/__init__.py +0 -0
  68. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/editor.py +0 -0
  69. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/models.py +0 -0
  70. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/protocols.py +0 -0
  71. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/standalone.py +0 -0
  72. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/__init__.py +0 -0
  73. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/__main__.py +0 -0
  74. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/clipboard_util.py +0 -0
  75. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/editor.py +0 -0
  76. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/frame_picker.py +0 -0
  77. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/models.py +0 -0
  78. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/preview.py +0 -0
  79. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/protocols.py +0 -0
  80. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/runtime_load.py +0 -0
  81. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/standalone.py +0 -0
  82. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/timeline.py +0 -0
  83. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/validation.py +0 -0
  84. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/__init__.py +0 -0
  85. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/camera.py +0 -0
  86. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/clipboard.py +0 -0
  87. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/commands.py +0 -0
  88. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/dialogs.py +0 -0
  89. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/document.py +0 -0
  90. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/editor.py +0 -0
  91. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/overlays.py +0 -0
  92. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/region_export.py +0 -0
  93. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/selection.py +0 -0
  94. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/standalone.py +0 -0
  95. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/tools.py +0 -0
  96. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/viewport.py +0 -0
  97. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/__init__.py +0 -0
  98. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/collision_painter.py +0 -0
  99. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/models.py +0 -0
  100. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/protocols.py +0 -0
  101. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/standalone.py +0 -0
  102. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/run.py +0 -0
  103. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/standalone_automap.py +0 -0
  104. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/standalone_error_console.py +0 -0
  105. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/standalone_filemanager.py +0 -0
  106. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/standalone_image_viewer.py +0 -0
  107. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap.py +0 -0
  108. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/__init__.py +0 -0
  109. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/__main__.py +0 -0
  110. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/__init__.py +0 -0
  111. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  112. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  113. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  114. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  115. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  116. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  117. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  118. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  119. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/ToolMove.svg +0 -0
  120. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/arrow-down.svg +0 -0
  121. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/check.svg +0 -0
  122. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/checked.svg +0 -0
  123. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/close.svg +0 -0
  124. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/duplicate.svg +0 -0
  125. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/error.svg +0 -0
  126. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/file.svg +0 -0
  127. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/filedead.svg +0 -0
  128. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/fit.svg +0 -0
  129. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/fold_down_arrow.svg +0 -0
  130. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/folder.svg +0 -0
  131. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/gear.svg +0 -0
  132. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/grid.svg +0 -0
  133. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/image.svg +0 -0
  134. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/info.svg +0 -0
  135. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/load.svg +0 -0
  136. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/loop.svg +0 -0
  137. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/miniobj.svg +0 -0
  138. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/onion.svg +0 -0
  139. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/pan.svg +0 -0
  140. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/pause.svg +0 -0
  141. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/pencil.svg +0 -0
  142. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/play.svg +0 -0
  143. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/plus.svg +0 -0
  144. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/radio.svg +0 -0
  145. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/reset.svg +0 -0
  146. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/save.svg +0 -0
  147. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/skip-back.svg +0 -0
  148. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/skip-forward.svg +0 -0
  149. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/stop.svg +0 -0
  150. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/tilemap.svg +0 -0
  151. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/tileset.svg +0 -0
  152. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/unchecked.svg +0 -0
  153. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/unfold_right_arrow.svg +0 -0
  154. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/warning.svg +0 -0
  155. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/zoomin.svg +0 -0
  156. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/zoomout.svg +0 -0
  157. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/cli.py +0 -0
  158. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/main.py +0 -0
  159. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/settings.py +0 -0
  160. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/SOURCES.txt +0 -0
  161. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
  162. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
  163. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/requires.txt +0 -0
  164. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/top_level.txt +0 -0
  165. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/ttypes/__init__.py +0 -0
  166. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/ttypes/tilemap.py +0 -0
  167. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/__init__.py +0 -0
  168. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/editor_preference.py +0 -0
  169. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/error_handler.py +0 -0
  170. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/history.py +0 -0
  171. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/icon_manager.py +0 -0
  172. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/icons_cache.py +0 -0
  173. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/log_capture.py +0 -0
  174. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/natural_sort.py +0 -0
  175. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/project_paths.py +0 -0
  176. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/property_suggestions.py +0 -0
  177. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/serialization.py +0 -0
  178. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/standalone.py +0 -0
  179. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/validation.py +0 -0
  180. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/__init__.py +0 -0
  181. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/automap_models.py +0 -0
  182. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/autotile_template.py +0 -0
  183. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/autotiler.py +0 -0
  184. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/filemanager.py +0 -0
  185. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/input.py +0 -0
  186. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/layer_selector.py +0 -0
  187. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/map_properties.py +0 -0
  188. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/mapsetup.py +0 -0
  189. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/particle_presets.py +0 -0
  190. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/particle_system.py +0 -0
  191. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/regex_automap_designer.py +0 -0
  192. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/tile_grid.py +0 -0
  193. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/tile_selector.py +0 -0
  194. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/button.py +0 -0
  195. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/checkbox.py +0 -0
  196. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/collision_layer_mask.py +0 -0
  197. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/collision_layer_sidebar.py +0 -0
  198. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/confirm_dialog.py +0 -0
  199. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/dialog_base.py +0 -0
  200. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/drag_tracker.py +0 -0
  201. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/draw_utils.py +0 -0
  202. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/fileinput.py +0 -0
  203. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/label.py +0 -0
  204. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/layer_type_dialog.py +0 -0
  205. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/menubar.py +0 -0
  206. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/mode_indicator.py +0 -0
  207. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/node_editor.py +0 -0
  208. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/node_selector.py +0 -0
  209. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/notification.py +0 -0
  210. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/particle_config_dialog.py +0 -0
  211. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/property_editor.py +0 -0
  212. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/resize_map_dialog.py +0 -0
  213. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/scrollbar.py +0 -0
  214. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/sidebar_container.py +0 -0
  215. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/splitter.py +0 -0
  216. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/status_bar.py +0 -0
  217. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/theme.py +0 -0
  218. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/tileset_type_dialog.py +0 -0
  219. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/toast.py +0 -0
  220. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/tool_manager.py +0 -0
  221. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/toolbar.py +0 -0
  222. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/tooltip.py +0 -0
  223. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/tree_widget.py +0 -0
  224. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/widget_base.py +0 -0
  225. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_animation_library_grid_offset.py +0 -0
  226. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_collision_layer_mask.py +0 -0
  227. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_collision_layer_sidebar.py +0 -0
  228. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_drag_tracker.py +0 -0
  229. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_editor_pan_mode.py +0 -0
  230. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_gid_collision.py +0 -0
  231. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_layers_autotile.py +0 -0
  232. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_map_resize_model.py +0 -0
  233. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_natural_sort.py +0 -0
  234. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_project_paths.py +0 -0
  235. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_render_scale.py +0 -0
  236. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_serialization_regression.py +0 -0
  237. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_sprite_animation_editor_grid.py +0 -0
  238. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_sprite_editor_commands.py +0 -0
  239. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_sprite_editor_interaction.py +0 -0
  240. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_sprite_editor_models.py +0 -0
  241. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_tile_grid_selection.py +0 -0
  242. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_tile_selector_pick.py +0 -0
  243. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_tilemap_save.py +0 -0
  244. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_timeline_invalidate_cache.py +0 -0
  245. {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_toolbar_tools.py +0 -0
@@ -1,15 +1,23 @@
1
1
  # Changelog
2
2
 
3
3
  <!-- towncrier release notes start -->
4
+ # tilemap_editor 4.3.9 (2026-08-04)
5
+
6
+ ## Bug Fixes
7
+
8
+ - Fixed tileset collision editor tile picking when the tileset is centered in the selector: mouse clicks now map to the correct tile after the centering offset is applied.
9
+ - Fixed region selector coordinate conversion (screen↔image) to account for the centered image when it is smaller than the viewport, so drawing, selection, and drag operations stay aligned.
10
+
4
11
  # tilemap_editor 4.3.8 (2026-08-04)
5
12
 
6
13
  ## Features
7
14
 
8
- - Sprite editor: two-row grouped toolbar (no more clipped buttons at the default window size), natural filename sorting on multi-sheet loads, and a Stack V/H toggle for vertical or horizontal sheet stacking. (sprite-editor-toolbar-sort)
15
+ - Sprite editor: two-row grouped toolbar, natural filename sorting on multi-sheet loads, and a Stack V/H toggle for vertical or horizontal sheet stacking.
9
16
  - Rewrote the sprite editor around a command stack with single-canvas undo memory: shared clipboard with relative-tile pasting that survives scale/grid changes, drag-move and rubber-band selection that can expand the canvas, object-selection undo restore, and a pure camera with cursor-anchored zoom. (sprite-editor-v2)
10
17
 
11
18
  ## Bug Fixes
12
19
 
20
+ - Fixed sprite editor undo history corruption from shared region references, viewport cache staleness after region edits, coordinate errors after loading new sheets, index lookup failures with negative-origin canvases, and canvas expansion failures for negative cell coordinates
13
21
  - Fixed sprite editor paste landing in wrong cells after a scale or grid-size change (clipboard now stores relative tile offsets), paste/cut double-clipboard split-brain, paste preview lacking pixel ghost, and moves/pastes past the canvas edge now expanding the canvas. (sprite-editor-paste-fixes)
14
22
  - Fixed sprite editor theming and camera gestures: the canvas, header bar, grid lines, and overlays now use theme colors/fonts instead of hardcoded dark values (canvas no longer stays black on light themes), the canvas header no longer covers the sheet's top rows, and mouse wheel zoom/pan work again with the same 30px/1.12x behavior as the old editor. (sprite-editor-theme-wheel)
15
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 4.3.8
3
+ Version: 4.3.9
4
4
  Summary: Pygame tilemap editor with collision, animation, sprite & particle 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 = "4.3.8"
7
+ version = "4.3.9"
8
8
  description = "Pygame tilemap editor with collision, animation, sprite & particle tools"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -59,7 +59,6 @@ class TilesetCollisionEditor:
59
59
  self.rect = rect
60
60
  self.consumer = consumer
61
61
  self.visible = True
62
-
63
62
  if provider is not None:
64
63
  self._provider = provider
65
64
  self._tileset_surface = provider.get_surface()
@@ -791,17 +790,25 @@ class TilesetCollisionEditor:
791
790
  if not self.tileset_selector_rect.collidepoint(mouse):
792
791
  return None
793
792
 
794
- rel_x = mouse[0] - self.tileset_selector_rect.x + self.tileset_scroll_x
795
- rel_y = mouse[1] - self.tileset_selector_rect.y + self.tileset_scroll_y
796
-
797
793
  tw = int(self._tile_size[0] * self.tileset_zoom)
798
794
  th = int(self._tile_size[1] * self.tileset_zoom)
799
795
 
796
+ # Calculate centering offset (same as in _draw_tileset_selector)
797
+ tileset_scr_w = self.tile_cols * tw
798
+ tileset_scr_h = self.tile_rows * th
799
+ center_off_x = max(0, (self.tileset_selector_rect.w - tileset_scr_w) // 2)
800
+ center_off_y = max(0, (self.tileset_selector_rect.h - tileset_scr_h) // 2)
801
+
802
+ # Apply centering offset to mouse calculation
803
+ rel_x = mouse[0] - self.tileset_selector_rect.x + self.tileset_scroll_x - center_off_x
804
+ rel_y = mouse[1] - self.tileset_selector_rect.y + self.tileset_scroll_y - center_off_y
805
+
800
806
  col = rel_x // tw
801
807
  row = rel_y // th
802
808
 
803
809
  if 0 <= col < self.tile_cols and 0 <= row < self.tile_rows:
804
- return row * self.tile_cols + col
810
+ tile_id = row * self.tile_cols + col
811
+ return tile_id
805
812
 
806
813
  return None
807
814
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 4.3.8
3
+ Version: 4.3.9
4
4
  Summary: Pygame tilemap editor with collision, animation, sprite & particle tools
5
5
  Author: tilemap editor contributors
6
6
  License: Proprietary
@@ -50,7 +50,7 @@ class FontManager:
50
50
  self._fonts: dict[str, pygame.font.Font] = {}
51
51
  self._font_families: dict[str, dict[str, str]] = {}
52
52
  self._default_family = "Arial"
53
- self._assets_path = Path(__file__).parent.parent.parent / "assets" / "fonts"
53
+ self._assets_path = self._resolve_assets_path()
54
54
  logger.info(f"Font Manager initializing - Assets path: {self._assets_path}")
55
55
  self._load_font_families()
56
56
  logger.info(
@@ -58,6 +58,20 @@ class FontManager:
58
58
  )
59
59
  FontManager._initialized = True
60
60
 
61
+ @staticmethod
62
+ def _resolve_assets_path() -> Path:
63
+ """Find bundled fonts in package data, falling back to the dev layout."""
64
+ try:
65
+ from importlib.resources import files
66
+
67
+ pkg_path = files("tilemap_editor.assets") / "fonts"
68
+ path = Path(str(pkg_path))
69
+ if path.exists() and any(path.iterdir()):
70
+ return path
71
+ except (ImportError, TypeError, OSError):
72
+ pass
73
+ return Path(__file__).parent.parent.parent / "assets" / "fonts"
74
+
61
75
  def _load_font_families(self):
62
76
  """Load available font families from assets directory."""
63
77
  if not self._assets_path.exists():
@@ -114,23 +114,37 @@ class RegionSelector:
114
114
  self.on_region_modified: Callable[[Region], None] | None = None
115
115
  self.on_selection_changed: Callable[[str | None], None] | None = None
116
116
 
117
+ def _get_center_offset(self) -> tuple[int, int]:
118
+ """Calculate centering offset for image within rect"""
119
+ if not self.image:
120
+ return (0, 0)
121
+
122
+ img_w = int(self.image.get_width() * self.zoom)
123
+ img_h = int(self.image.get_height() * self.zoom)
124
+ center_off_x = max(0, (self.rect.w - img_w) // 2)
125
+ center_off_y = max(0, (self.rect.h - img_h) // 2)
126
+ return (center_off_x, center_off_y)
127
+
117
128
  def _image_to_screen(self, x: int, y: int) -> tuple[int, int]:
118
129
  """Convert image coordinates to screen coordinates"""
130
+ center_off_x, center_off_y = self._get_center_offset()
119
131
  return (
120
- self.rect.x + int(x * self.zoom) - self.scroll_x,
121
- self.rect.y + int(y * self.zoom) - self.scroll_y,
132
+ self.rect.x + int(x * self.zoom) - self.scroll_x + center_off_x,
133
+ self.rect.y + int(y * self.zoom) - self.scroll_y + center_off_y,
122
134
  )
123
135
 
124
136
  def _screen_to_image(self, x: int, y: int) -> tuple[int, int]:
137
+ center_off_x, center_off_y = self._get_center_offset()
125
138
  return (
126
- int((x - self.rect.x + self.scroll_x) / self.zoom),
127
- int((y - self.rect.y + self.scroll_y) / self.zoom),
139
+ int((x - self.rect.x + self.scroll_x - center_off_x) / self.zoom),
140
+ int((y - self.rect.y + self.scroll_y - center_off_y) / self.zoom),
128
141
  )
129
142
 
130
143
  def _screen_to_image_float(self, x: int, y: int) -> tuple[float, float]:
144
+ center_off_x, center_off_y = self._get_center_offset()
131
145
  return (
132
- (x - self.rect.x + self.scroll_x) / self.zoom,
133
- (y - self.rect.y + self.scroll_y) / self.zoom,
146
+ (x - self.rect.x + self.scroll_x - center_off_x) / self.zoom,
147
+ (y - self.rect.y + self.scroll_y - center_off_y) / self.zoom,
134
148
  )
135
149
 
136
150
  def _clamp_scroll(self) -> None:
File without changes
File without changes
File without changes