tilemap-editor 2.0.1__tar.gz → 2.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/CHANGELOG.md +19 -0
  2. {tilemap_editor-2.0.1/src/tilemap_editor.egg-info → tilemap_editor-2.0.2}/PKG-INFO +1 -1
  3. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/pyproject.toml +1 -1
  4. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
  5. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/autotiler.py +22 -10
  6. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/LICENSE +0 -0
  7. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/MANIFEST.in +0 -0
  8. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/README.md +0 -0
  9. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
  10. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
  11. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
  12. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
  13. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
  14. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
  15. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
  16. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
  17. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/arrow-down.svg +0 -0
  18. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/check.svg +0 -0
  19. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/checked.svg +0 -0
  20. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/close.svg +0 -0
  21. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/duplicate.svg +0 -0
  22. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/error.svg +0 -0
  23. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/file.svg +0 -0
  24. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/filedead.svg +0 -0
  25. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/fit.svg +0 -0
  26. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/folder.svg +0 -0
  27. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/grid.svg +0 -0
  28. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/image.svg +0 -0
  29. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/info.svg +0 -0
  30. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/load.svg +0 -0
  31. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/loop.svg +0 -0
  32. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/pan.svg +0 -0
  33. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/pause.svg +0 -0
  34. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/pencil.svg +0 -0
  35. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/play.svg +0 -0
  36. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/plus.svg +0 -0
  37. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/radio.svg +0 -0
  38. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/reset.svg +0 -0
  39. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/save.svg +0 -0
  40. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/stop.svg +0 -0
  41. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/tilemap.svg +0 -0
  42. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/tileset.svg +0 -0
  43. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/unchecked.svg +0 -0
  44. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/warning.svg +0 -0
  45. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/zoomin.svg +0 -0
  46. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/assets/icons/zoomout.svg +0 -0
  47. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/setup.cfg +0 -0
  48. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/configs/themes.py +0 -0
  49. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/constants.py +0 -0
  50. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/editor.py +0 -0
  51. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/event_map.py +0 -0
  52. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/layers.py +0 -0
  53. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/main.py +0 -0
  54. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/__init__.py +0 -0
  55. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/character_collision/__init__.py +0 -0
  56. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/character_collision/editor.py +0 -0
  57. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/character_collision/models.py +0 -0
  58. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/character_collision/protocols.py +0 -0
  59. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/character_collision/shape_editor.py +0 -0
  60. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/character_collision/standalone.py +0 -0
  61. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/__init__.py +0 -0
  62. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/__main__.py +0 -0
  63. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/clipboard_util.py +0 -0
  64. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/editor.py +0 -0
  65. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/frame_picker.py +0 -0
  66. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/models.py +0 -0
  67. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/preview.py +0 -0
  68. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/protocols.py +0 -0
  69. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/runtime_load.py +0 -0
  70. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/standalone.py +0 -0
  71. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/timeline.py +0 -0
  72. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/sprite_animation/validation.py +0 -0
  73. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/tileset_collision/__init__.py +0 -0
  74. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/tileset_collision/collision_painter.py +0 -0
  75. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/tileset_collision/editor.py +0 -0
  76. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/tileset_collision/models.py +0 -0
  77. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/tileset_collision/protocols.py +0 -0
  78. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/plugins/tileset_collision/standalone.py +0 -0
  79. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/standalone_automap.py +0 -0
  80. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/standalone_error_console.py +0 -0
  81. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/standalone_filemanager.py +0 -0
  82. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/standalone_image_viewer.py +0 -0
  83. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/tilemap.py +0 -0
  84. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/tilemap_editor/__init__.py +0 -0
  85. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/tilemap_editor/__main__.py +0 -0
  86. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/tilemap_editor/cli.py +0 -0
  87. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/tilemap_editor.egg-info/SOURCES.txt +0 -0
  88. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
  89. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
  90. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/tilemap_editor.egg-info/requires.txt +0 -0
  91. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/tilemap_editor.egg-info/top_level.txt +0 -0
  92. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/ttypes/__init__.py +0 -0
  93. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/ttypes/tilemap.py +0 -0
  94. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/__init__.py +0 -0
  95. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/error_handler.py +0 -0
  96. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/font_manager.py +0 -0
  97. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/history.py +0 -0
  98. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/icon_manager.py +0 -0
  99. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/icons_cache.py +0 -0
  100. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/log_capture.py +0 -0
  101. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/serialization.py +0 -0
  102. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/settings.py +0 -0
  103. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/standalone.py +0 -0
  104. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/utils/validation.py +0 -0
  105. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/__init__.py +0 -0
  106. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/automap_models.py +0 -0
  107. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/autotile_template.py +0 -0
  108. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/filemanager.py +0 -0
  109. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/layer_selector.py +0 -0
  110. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/mapsetup.py +0 -0
  111. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/regex_automap_designer.py +0 -0
  112. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/tile_grid.py +0 -0
  113. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/tile_selector.py +0 -0
  114. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/draw_utils.py +0 -0
  115. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/fileinput.py +0 -0
  116. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/layer_type_dialog.py +0 -0
  117. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/menubar.py +0 -0
  118. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/notification.py +0 -0
  119. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/property_editor.py +0 -0
  120. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/theme.py +0 -0
  121. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/tileset_type_dialog.py +0 -0
  122. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/toolbar.py +0 -0
  123. {tilemap_editor-2.0.1 → tilemap_editor-2.0.2}/src/widgets/ui/tooltip.py +0 -0
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.0.1] - 2025-04-23
9
+
10
+ ### Added
11
+ - **Tileset Collision Plugin**: Godot-like polygon collision editor
12
+ - `CollisionPainter`: Interactive polygon drawing with edge-constrain mode
13
+ - `TilesetCollisionEditor`: Full editor with tile selector and painted tiles list
14
+ - `TilesetCollisionLibrary`: Persistent collision data management
15
+ - Edge-draw mode (`E` key + `Shift`) for precise slope/stair creation
16
+ - Help panel (`H` key) with all controls documented
17
+ - One-way collision support for platforms
18
+ - Zoom, pan, and grid controls
19
+ - **Character Collision Plugin**: Shape-based character collision editor
20
+ - Rectangle, Circle, and Capsule shape support
21
+ - Protocol-based design for easy integration
22
+
23
+ ### Changed
24
+ - Updated pyproject.toml version to 2.0.1
25
+ - Improved editor.py and tile_selector.py integration
26
+
8
27
  ## [2.0.0] - 2025-04-22
9
28
 
10
29
  ### Major Changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 2.0.1
3
+ Version: 2.0.2
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 = "2.0.1"
7
+ version = "2.0.2"
8
8
  description = "Pygame tilemap editor with SVG icons, professional UI, and sprite animation tools"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilemap-editor
3
- Version: 2.0.1
3
+ Version: 2.0.2
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
@@ -156,7 +156,7 @@ class AutotileRuleDesigner:
156
156
 
157
157
  self.new_group_btn_rect = Rect(
158
158
  self.group_list_area.x + 10,
159
- self.group_list_area.bottom - 30,
159
+ self.group_list_area.bottom - 35,
160
160
  self.group_list_area.width - 20,
161
161
  25,
162
162
  )
@@ -250,7 +250,12 @@ class AutotileRuleDesigner:
250
250
  if self._handle_group_rename(event):
251
251
  return True
252
252
 
253
- mouse_pos = pygame.mouse.get_pos()
253
+ # Get mouse position from event if available, otherwise from pygame
254
+ if hasattr(event, 'pos'):
255
+ mouse_pos = event.pos
256
+ else:
257
+ mouse_pos = pygame.mouse.get_pos()
258
+
254
259
  self._update_preview_from_selector()
255
260
 
256
261
  if event.type == pygame.KEYDOWN:
@@ -272,6 +277,10 @@ class AutotileRuleDesigner:
272
277
  )
273
278
  return True
274
279
 
280
+ if self.new_group_btn_rect.collidepoint(mouse_pos):
281
+ self._create_new_group_with_focus()
282
+ return True
283
+
275
284
  if self.group_list_area.collidepoint(mouse_pos):
276
285
  self._handle_group_list_click(mouse_pos)
277
286
  return True
@@ -286,10 +295,6 @@ class AutotileRuleDesigner:
286
295
  if self.save_btn_rect.inflate(0, 40).collidepoint(mouse_pos):
287
296
  pass
288
297
 
289
- if self.new_group_btn_rect.collidepoint(mouse_pos):
290
- self._create_new_group_with_focus()
291
- return True
292
-
293
298
  if self.new_rule_btn_rect.collidepoint(mouse_pos):
294
299
  self._reset_selection()
295
300
  return True
@@ -409,7 +414,7 @@ class AutotileRuleDesigner:
409
414
  return False
410
415
 
411
416
  def _handle_group_list_click(self, mouse_pos):
412
- start_y = self.group_list_area.y + 10
417
+ start_y = self.group_list_area.y + 25
413
418
  item_h = 25
414
419
  for i, group in enumerate(self.groups):
415
420
  item_rect = Rect(
@@ -421,6 +426,7 @@ class AutotileRuleDesigner:
421
426
  if item_rect.collidepoint(mouse_pos):
422
427
  self.selected_group_idx = i
423
428
  self.selected_rule_index = -1
429
+ self.scroll_offset = 0
424
430
  return
425
431
 
426
432
  def _handle_rule_list_click(self, mouse_pos):
@@ -432,12 +438,18 @@ class AutotileRuleDesigner:
432
438
  return
433
439
 
434
440
  group = self.groups[self.selected_group_idx]
435
- start_y = self.rule_list_area.y + 10
441
+ start_y = self.rule_list_area.y + 25
436
442
  item_h = 25
437
- for i, rule in enumerate(group.rules):
443
+
444
+ visible_start = self.scroll_offset
445
+ visible_end = min(visible_start + self.max_visible_rules, len(group.rules))
446
+
447
+ for i in range(visible_start, visible_end):
448
+ rule = group.rules[i]
449
+ display_index = i - visible_start
438
450
  item_rect = Rect(
439
451
  self.rule_list_area.x + 5,
440
- start_y + i * item_h,
452
+ start_y + display_index * item_h,
441
453
  self.rule_list_area.width - 10,
442
454
  item_h,
443
455
  )
File without changes
File without changes
File without changes