tilemap-editor 3.3.0__tar.gz → 3.3.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 (198) hide show
  1. {tilemap_editor-3.3.0/src/tilemap_editor.egg-info → tilemap_editor-3.3.1}/PKG-INFO +1 -1
  2. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/pyproject.toml +1 -1
  3. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/editor.py +65 -1
  4. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
  5. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/tile_grid.py +5 -4
  6. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/menubar.py +5 -0
  7. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/tileset_type_dialog.py +2 -2
  8. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/LICENSE +0 -0
  9. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/MANIFEST.in +0 -0
  10. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/README.md +0 -0
  11. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  12. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  13. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  14. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  15. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  16. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  17. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  18. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  19. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/arrow-down.svg +0 -0
  20. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/check.svg +0 -0
  21. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/checked.svg +0 -0
  22. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/close.svg +0 -0
  23. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/duplicate.svg +0 -0
  24. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/error.svg +0 -0
  25. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/file.svg +0 -0
  26. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/filedead.svg +0 -0
  27. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/fit.svg +0 -0
  28. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/folder.svg +0 -0
  29. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/grid.svg +0 -0
  30. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/image.svg +0 -0
  31. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/info.svg +0 -0
  32. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/load.svg +0 -0
  33. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/loop.svg +0 -0
  34. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/pan.svg +0 -0
  35. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/pause.svg +0 -0
  36. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/pencil.svg +0 -0
  37. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/play.svg +0 -0
  38. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/plus.svg +0 -0
  39. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/radio.svg +0 -0
  40. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/reset.svg +0 -0
  41. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/save.svg +0 -0
  42. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/stop.svg +0 -0
  43. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/tilemap.svg +0 -0
  44. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/tileset.svg +0 -0
  45. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/unchecked.svg +0 -0
  46. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/warning.svg +0 -0
  47. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/zoomin.svg +0 -0
  48. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/assets/icons/zoomout.svg +0 -0
  49. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/setup.cfg +0 -0
  50. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/configs/themes.py +0 -0
  51. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/constants.py +0 -0
  52. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/event_map.py +0 -0
  53. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/layers.py +0 -0
  54. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/main.py +0 -0
  55. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/node_manager.py +0 -0
  56. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/nodes.py +0 -0
  57. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/__init__.py +0 -0
  58. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/__init__.py +0 -0
  59. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/editor.py +0 -0
  60. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/models.py +0 -0
  61. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/protocols.py +0 -0
  62. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/shape_editor.py +0 -0
  63. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/character_collision/standalone.py +0 -0
  64. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/__init__.py +0 -0
  65. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/editor.py +0 -0
  66. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/models.py +0 -0
  67. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/protocols.py +0 -0
  68. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/object_tileset_collision/standalone.py +0 -0
  69. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/__init__.py +0 -0
  70. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/__main__.py +0 -0
  71. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/clipboard_util.py +0 -0
  72. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/editor.py +0 -0
  73. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/frame_picker.py +0 -0
  74. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/models.py +0 -0
  75. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/preview.py +0 -0
  76. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/protocols.py +0 -0
  77. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/runtime_load.py +0 -0
  78. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/standalone.py +0 -0
  79. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/timeline.py +0 -0
  80. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_animation/validation.py +0 -0
  81. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_editor/__init__.py +0 -0
  82. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_editor/editor.py +0 -0
  83. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/sprite_editor/standalone.py +0 -0
  84. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/__init__.py +0 -0
  85. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/collision_painter.py +0 -0
  86. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/editor.py +0 -0
  87. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/models.py +0 -0
  88. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/protocols.py +0 -0
  89. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/plugins/tileset_collision/standalone.py +0 -0
  90. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/standalone_automap.py +0 -0
  91. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/standalone_error_console.py +0 -0
  92. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/standalone_filemanager.py +0 -0
  93. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/standalone_image_viewer.py +0 -0
  94. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap.py +0 -0
  95. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/__init__.py +0 -0
  96. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/__main__.py +0 -0
  97. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/__init__.py +0 -0
  98. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  99. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  100. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  101. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  102. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  103. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  104. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  105. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  106. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/ToolMove.svg +0 -0
  107. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/arrow-down.svg +0 -0
  108. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/check.svg +0 -0
  109. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/checked.svg +0 -0
  110. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/close.svg +0 -0
  111. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/duplicate.svg +0 -0
  112. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/error.svg +0 -0
  113. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/file.svg +0 -0
  114. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/filedead.svg +0 -0
  115. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/fit.svg +0 -0
  116. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/folder.svg +0 -0
  117. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/grid.svg +0 -0
  118. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/image.svg +0 -0
  119. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/info.svg +0 -0
  120. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/load.svg +0 -0
  121. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/loop.svg +0 -0
  122. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/pan.svg +0 -0
  123. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/pause.svg +0 -0
  124. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/pencil.svg +0 -0
  125. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/play.svg +0 -0
  126. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/plus.svg +0 -0
  127. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/radio.svg +0 -0
  128. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/reset.svg +0 -0
  129. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/save.svg +0 -0
  130. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/stop.svg +0 -0
  131. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/tilemap.svg +0 -0
  132. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/tileset.svg +0 -0
  133. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/unchecked.svg +0 -0
  134. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/warning.svg +0 -0
  135. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/zoomin.svg +0 -0
  136. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/assets/icons/zoomout.svg +0 -0
  137. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/cli.py +0 -0
  138. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/main.py +0 -0
  139. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor/settings.py +0 -0
  140. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/SOURCES.txt +0 -0
  141. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
  142. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
  143. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/requires.txt +0 -0
  144. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/tilemap_editor.egg-info/top_level.txt +0 -0
  145. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/ttypes/__init__.py +0 -0
  146. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/ttypes/tilemap.py +0 -0
  147. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/__init__.py +0 -0
  148. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/editor_preference.py +0 -0
  149. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/error_handler.py +0 -0
  150. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/font_manager.py +0 -0
  151. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/history.py +0 -0
  152. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/icon_manager.py +0 -0
  153. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/icons_cache.py +0 -0
  154. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/log_capture.py +0 -0
  155. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/project_paths.py +0 -0
  156. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/serialization.py +0 -0
  157. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/standalone.py +0 -0
  158. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/utils/validation.py +0 -0
  159. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/__init__.py +0 -0
  160. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/automap_models.py +0 -0
  161. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/autotile_template.py +0 -0
  162. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/autotiler.py +0 -0
  163. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/filemanager.py +0 -0
  164. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/input.py +0 -0
  165. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/layer_selector.py +0 -0
  166. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/map_properties.py +0 -0
  167. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/mapsetup.py +0 -0
  168. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/regex_automap_designer.py +0 -0
  169. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/spritesheet_grid.py +0 -0
  170. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/tile_selector.py +0 -0
  171. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/collision_layer_mask.py +0 -0
  172. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/collision_layer_sidebar.py +0 -0
  173. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/confirm_dialog.py +0 -0
  174. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/draw_utils.py +0 -0
  175. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/fileinput.py +0 -0
  176. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/layer_type_dialog.py +0 -0
  177. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/mode_indicator.py +0 -0
  178. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/node_editor.py +0 -0
  179. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/node_selector.py +0 -0
  180. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/notification.py +0 -0
  181. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/property_editor.py +0 -0
  182. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/region_selector.py +0 -0
  183. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/status_bar.py +0 -0
  184. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/theme.py +0 -0
  185. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/toolbar.py +0 -0
  186. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/src/widgets/ui/tooltip.py +0 -0
  187. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_animation_library_grid_offset.py +0 -0
  188. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_collision_layer_mask.py +0 -0
  189. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_collision_layer_sidebar.py +0 -0
  190. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_editor_pan_mode.py +0 -0
  191. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_project_paths.py +0 -0
  192. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_render_scale.py +0 -0
  193. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_sprite_animation_editor_grid.py +0 -0
  194. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_tile_grid_selection.py +0 -0
  195. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_tile_selector_pick.py +0 -0
  196. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_tilemap_save.py +0 -0
  197. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/tests/test_timeline_invalidate_cache.py +0 -0
  198. {tilemap_editor-3.3.0 → tilemap_editor-3.3.1}/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.0
3
+ Version: 3.3.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.3.0"
7
+ version = "3.3.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"
@@ -242,7 +242,7 @@ class Editor:
242
242
  center_x = (self.width - 400) // 2
243
243
  center_y = (self.height - 400) // 2
244
244
  self.map_setup_widget = MapSetup(self, Rect(center_x, center_y, 400, 400))
245
- self.map_setup_widget.visible = False
245
+ self.map_setup_widget.visible = True
246
246
  self.map_properties_dialog = MapPropertiesDialog(self, Rect(center_x, center_y, 400, 260))
247
247
  self.node_manager = NodeManager(self)
248
248
  self.node_selector = NodeSelector(self, 0, 65, 260, 240)
@@ -442,6 +442,67 @@ class Editor:
442
442
  except Exception as e:
443
443
  error_handler.capture(e, context="save_map_selected")
444
444
 
445
+ def export_selection_as_png(self):
446
+ rect = self.tile_grid_widget.selection_rect
447
+ if rect is None:
448
+ self.notifications.notify("No region selected", duration=2.0)
449
+ return
450
+ self.open_file_manager(
451
+ on_save=self._on_export_selection_png,
452
+ allowed_exts=[".png"],
453
+ mode="save",
454
+ default_name="selection.png",
455
+ )
456
+
457
+ def _on_export_selection_png(self, path: Path):
458
+ rect = self.tile_grid_widget.selection_rect
459
+ if rect is None:
460
+ return
461
+ x1, y1, x2, y2 = rect
462
+ tw, th = self.tilemap.tile_size
463
+ pw = (x2 - x1 + 1) * tw
464
+ ph = (y2 - y1 + 1) * th
465
+ if pw <= 0 or ph <= 0:
466
+ return
467
+
468
+ export_surf = pygame.Surface((pw, ph), pygame.SRCALPHA)
469
+ layers = self.tilemap.layer_manager.get_rendered_layers()
470
+ tileset_map = self.tileset_widget.tileset_map
471
+
472
+ for layer in layers:
473
+ if layer.layer_type != "tile":
474
+ continue
475
+ if layer.opacity < 1.0:
476
+ layer_surf = pygame.Surface((pw, ph), pygame.SRCALPHA)
477
+ else:
478
+ layer_surf = export_surf
479
+
480
+ for (gx, gy), tile in layer.tiles.items():
481
+ if not (x1 <= gx <= x2 and y1 <= gy <= y2):
482
+ continue
483
+ dx = (gx - x1) * tw
484
+ dy = (gy - y1) * th
485
+ ttype = int(tile["ttype"])
486
+ if ttype not in tileset_map:
487
+ continue
488
+ ts = tileset_map[ttype]
489
+ variant_id = tile["variant"]
490
+ sheet_w = ts.surface.get_width()
491
+ sheet_cols = sheet_w // tw
492
+ src_x = (variant_id % sheet_cols) * tw
493
+ src_y = (variant_id // sheet_cols) * th
494
+ src_rect = Rect(src_x, src_y, tw, th)
495
+ if not ts.surface.get_rect().contains(src_rect):
496
+ continue
497
+ layer_surf.blit(ts.surface, (dx, dy), src_rect)
498
+
499
+ if layer.opacity < 1.0:
500
+ layer_surf.set_alpha(int(layer.opacity * 255))
501
+ export_surf.blit(layer_surf, (0, 0))
502
+
503
+ pygame.image.save(export_surf, str(path))
504
+ self.notifications.notify(f"Exported selection to {path.name}", duration=2.0)
505
+
445
506
  def perform_load(self):
446
507
  self.open_file_manager(
447
508
  on_select=self.on_map_file_selected,
@@ -1152,6 +1213,9 @@ class Editor:
1152
1213
  elif event.mod & pygame.KMOD_CTRL and event.key == pygame.K_g:
1153
1214
  self.toggle_grid()
1154
1215
  continue
1216
+ elif event.key == pygame.K_e and ctrl_held and shift_held:
1217
+ self.export_selection_as_png()
1218
+ continue
1155
1219
  elif event.key == pygame.K_t and (ctrl_held or meta_held):
1156
1220
  self.cycle_theme()
1157
1221
  continue
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 3.3.0
3
+ Version: 3.3.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
@@ -1449,10 +1449,11 @@ class TileGrid:
1449
1449
 
1450
1450
  sel_rect = Rect(int(sx), int(sy), int(sw), int(sh))
1451
1451
 
1452
- # Semi-transparent fill
1453
- fill_surf = pygame.Surface((int(sw), int(sh)), pygame.SRCALPHA)
1454
- fill_surf.fill((100, 180, 255, 40))
1455
- screen.blit(fill_surf, (int(sx), int(sy)))
1452
+ # Semi-transparent fill (skip during drag to avoid visual noise)
1453
+ if not self.is_selecting:
1454
+ fill_surf = pygame.Surface((int(sw), int(sh)), pygame.SRCALPHA)
1455
+ fill_surf.fill((100, 180, 255, 40))
1456
+ screen.blit(fill_surf, (int(sx), int(sy)))
1456
1457
 
1457
1458
  # Dashed border (draw segments)
1458
1459
  border_color = (100, 180, 255) if not self.is_moving else (255, 200, 50)
@@ -76,6 +76,11 @@ class MenuBar:
76
76
  MenuAction(
77
77
  "Toggle Auto-Autotile", self.editor.toggle_auto_autotile
78
78
  ),
79
+ MenuAction(
80
+ "Export Selection as PNG",
81
+ self.editor.export_selection_as_png,
82
+ "Ctrl+Shift+E",
83
+ ),
79
84
  MenuAction(
80
85
  "Launch External Viewer", self.editor.launch_external_automap
81
86
  ),
@@ -71,7 +71,7 @@ class TilesetTypeDialog:
71
71
  """Position child controls from the current dialog rect."""
72
72
  self.rect.center = self.editor_rect.center
73
73
 
74
- h = 220
74
+ h = 260
75
75
  if self.animated or self._editing_field is not None:
76
76
  h = 420
77
77
  self.rect.h = h
@@ -97,7 +97,7 @@ class TilesetTypeDialog:
97
97
  )
98
98
 
99
99
  # Animated checkbox
100
- anim_y = first_y + (row_h + gap) * 2 + 6
100
+ anim_y = first_y + (row_h + gap) * 2 + 16
101
101
  self.anim_check_rect = Rect(radio_x, anim_y, 16, 16)
102
102
 
103
103
  # Animation fields (collapsible)
File without changes
File without changes
File without changes