@nice2dev/ui-graphics 1.0.0 → 1.0.2

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 (146) hide show
  1. package/CHANGELOG.md +147 -1
  2. package/dist/cjs/animation/AnimatedPerson.js +2 -2
  3. package/dist/cjs/animation/AnimatedPerson.js.map +1 -1
  4. package/dist/cjs/animation/AnimationEditor.js +11 -6
  5. package/dist/cjs/animation/AnimationEditor.js.map +1 -1
  6. package/dist/cjs/animation/Audience.js +4 -3
  7. package/dist/cjs/animation/Audience.js.map +1 -1
  8. package/dist/cjs/animation/BodyRenderer.js +5 -2
  9. package/dist/cjs/animation/BodyRenderer.js.map +1 -1
  10. package/dist/cjs/animation/rig/RigPlayer.js +2 -2
  11. package/dist/cjs/animation/rig/RigPlayer.js.map +1 -1
  12. package/dist/cjs/animation/rig/RiggedBody.js +2 -2
  13. package/dist/cjs/animation/rig/RiggedBody.js.map +1 -1
  14. package/dist/cjs/animation/shapes/heads.js +4 -1
  15. package/dist/cjs/animation/shapes/heads.js.map +1 -1
  16. package/dist/cjs/core/LocalUI.js +1 -1
  17. package/dist/cjs/core/NiceBrushEngine.js +446 -0
  18. package/dist/cjs/core/NiceBrushEngine.js.map +1 -0
  19. package/dist/cjs/core/yjsCollaboration.js +292 -0
  20. package/dist/cjs/core/yjsCollaboration.js.map +1 -0
  21. package/dist/cjs/font/NiceFontEditor.js +89 -85
  22. package/dist/cjs/font/NiceFontEditor.js.map +1 -1
  23. package/dist/cjs/font/fontFormatUtils.js +468 -0
  24. package/dist/cjs/font/fontFormatUtils.js.map +1 -0
  25. package/dist/cjs/game/GameAsset2dEditor.js +38 -24
  26. package/dist/cjs/game/GameAsset2dEditor.js.map +1 -1
  27. package/dist/cjs/icon/NiceIconEditor.js +218 -133
  28. package/dist/cjs/icon/NiceIconEditor.js.map +1 -1
  29. package/dist/cjs/index.js +83 -1
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/nice2dev-ui-graphics.css +1 -1
  32. package/dist/cjs/photo/NiceAITools.js +446 -0
  33. package/dist/cjs/photo/NiceAITools.js.map +1 -0
  34. package/dist/cjs/photo/PhotoEditor.js +2 -2
  35. package/dist/cjs/photo/PhotoEditor.js.map +1 -1
  36. package/dist/cjs/pixel/PixelEditor.js +16 -5
  37. package/dist/cjs/pixel/PixelEditor.js.map +1 -1
  38. package/dist/cjs/pixel/PixelEditor.module.css.js +1 -1
  39. package/dist/cjs/pixel/PixelEditorMenuBar.js +2 -1
  40. package/dist/cjs/pixel/PixelEditorMenuBar.js.map +1 -1
  41. package/dist/cjs/pixel/PixelEditorRightPanel.js +3 -2
  42. package/dist/cjs/pixel/PixelEditorRightPanel.js.map +1 -1
  43. package/dist/cjs/pixel/PixelEditorTimeline.js +2 -1
  44. package/dist/cjs/pixel/PixelEditorTimeline.js.map +1 -1
  45. package/dist/cjs/pixel/PixelEditorToolbar.js +2 -1
  46. package/dist/cjs/pixel/PixelEditorToolbar.js.map +1 -1
  47. package/dist/cjs/pixel/SpriteGeneratorPanel.js +224 -0
  48. package/dist/cjs/pixel/SpriteGeneratorPanel.js.map +1 -0
  49. package/dist/cjs/pixel/animalGeneratorPresets.js +654 -0
  50. package/dist/cjs/pixel/animalGeneratorPresets.js.map +1 -0
  51. package/dist/cjs/pixel/buildingGeneratorPresets.js +573 -0
  52. package/dist/cjs/pixel/buildingGeneratorPresets.js.map +1 -0
  53. package/dist/cjs/pixel/characterGeneratorPresets.js +563 -0
  54. package/dist/cjs/pixel/characterGeneratorPresets.js.map +1 -0
  55. package/dist/cjs/pixel/spriteGeneratorCore.js +297 -0
  56. package/dist/cjs/pixel/spriteGeneratorCore.js.map +1 -0
  57. package/dist/cjs/pixel/usePixelEditor.js +16 -0
  58. package/dist/cjs/pixel/usePixelEditor.js.map +1 -1
  59. package/dist/cjs/texture/Nice3DTexturePainter.js +123 -79
  60. package/dist/cjs/texture/Nice3DTexturePainter.js.map +1 -1
  61. package/dist/cjs/ui/NiceUIDesigner.js +175 -62
  62. package/dist/cjs/ui/NiceUIDesigner.js.map +1 -1
  63. package/dist/cjs/ui/dist/index.js +50089 -0
  64. package/dist/cjs/ui/dist/index.js.map +1 -0
  65. package/dist/cjs/vector/NiceSvgToCode.js +427 -0
  66. package/dist/cjs/vector/NiceSvgToCode.js.map +1 -0
  67. package/dist/cjs/vector/VectorEditor.js +7 -3
  68. package/dist/cjs/vector/VectorEditor.js.map +1 -1
  69. package/dist/cjs/vector/VectorEditor.module.css.js +1 -1
  70. package/dist/cjs/vector/VectorEditorMenuBar.js +5 -1
  71. package/dist/cjs/vector/VectorEditorMenuBar.js.map +1 -1
  72. package/dist/cjs/vector/VectorEditorRightPanel.js +23 -19
  73. package/dist/cjs/vector/VectorEditorRightPanel.js.map +1 -1
  74. package/dist/esm/animation/AnimatedPerson.js +2 -2
  75. package/dist/esm/animation/AnimatedPerson.js.map +1 -1
  76. package/dist/esm/animation/AnimationEditor.js +12 -8
  77. package/dist/esm/animation/AnimationEditor.js.map +1 -1
  78. package/dist/esm/animation/Audience.js +5 -4
  79. package/dist/esm/animation/Audience.js.map +1 -1
  80. package/dist/esm/animation/BodyRenderer.js +4 -2
  81. package/dist/esm/animation/BodyRenderer.js.map +1 -1
  82. package/dist/esm/animation/rig/RigPlayer.js +4 -4
  83. package/dist/esm/animation/rig/RigPlayer.js.map +1 -1
  84. package/dist/esm/animation/rig/RiggedBody.js +2 -2
  85. package/dist/esm/animation/rig/RiggedBody.js.map +1 -1
  86. package/dist/esm/animation/shapes/heads.js +4 -2
  87. package/dist/esm/animation/shapes/heads.js.map +1 -1
  88. package/dist/esm/core/LocalUI.js +4 -4
  89. package/dist/esm/core/NiceBrushEngine.js +442 -0
  90. package/dist/esm/core/NiceBrushEngine.js.map +1 -0
  91. package/dist/esm/core/yjsCollaboration.js +283 -0
  92. package/dist/esm/core/yjsCollaboration.js.map +1 -0
  93. package/dist/esm/font/NiceFontEditor.js +89 -85
  94. package/dist/esm/font/NiceFontEditor.js.map +1 -1
  95. package/dist/esm/font/fontFormatUtils.js +461 -0
  96. package/dist/esm/font/fontFormatUtils.js.map +1 -0
  97. package/dist/esm/game/GameAsset2dEditor.js +38 -25
  98. package/dist/esm/game/GameAsset2dEditor.js.map +1 -1
  99. package/dist/esm/icon/NiceIconEditor.js +218 -133
  100. package/dist/esm/icon/NiceIconEditor.js.map +1 -1
  101. package/dist/esm/index.js +21 -11
  102. package/dist/esm/index.js.map +1 -1
  103. package/dist/esm/nice2dev-ui-graphics.css +1 -1
  104. package/dist/esm/photo/NiceAITools.js +439 -0
  105. package/dist/esm/photo/NiceAITools.js.map +1 -0
  106. package/dist/esm/photo/PhotoEditor.js +2 -2
  107. package/dist/esm/photo/PhotoEditor.js.map +1 -1
  108. package/dist/esm/pixel/PixelEditor.js +16 -6
  109. package/dist/esm/pixel/PixelEditor.js.map +1 -1
  110. package/dist/esm/pixel/PixelEditor.module.css.js +1 -1
  111. package/dist/esm/pixel/PixelEditorMenuBar.js +2 -1
  112. package/dist/esm/pixel/PixelEditorMenuBar.js.map +1 -1
  113. package/dist/esm/pixel/PixelEditorRightPanel.js +3 -2
  114. package/dist/esm/pixel/PixelEditorRightPanel.js.map +1 -1
  115. package/dist/esm/pixel/PixelEditorTimeline.js +2 -1
  116. package/dist/esm/pixel/PixelEditorTimeline.js.map +1 -1
  117. package/dist/esm/pixel/PixelEditorToolbar.js +2 -1
  118. package/dist/esm/pixel/PixelEditorToolbar.js.map +1 -1
  119. package/dist/esm/pixel/SpriteGeneratorPanel.js +222 -0
  120. package/dist/esm/pixel/SpriteGeneratorPanel.js.map +1 -0
  121. package/dist/esm/pixel/animalGeneratorPresets.js +647 -0
  122. package/dist/esm/pixel/animalGeneratorPresets.js.map +1 -0
  123. package/dist/esm/pixel/buildingGeneratorPresets.js +566 -0
  124. package/dist/esm/pixel/buildingGeneratorPresets.js.map +1 -0
  125. package/dist/esm/pixel/characterGeneratorPresets.js +556 -0
  126. package/dist/esm/pixel/characterGeneratorPresets.js.map +1 -0
  127. package/dist/esm/pixel/spriteGeneratorCore.js +279 -0
  128. package/dist/esm/pixel/spriteGeneratorCore.js.map +1 -0
  129. package/dist/esm/pixel/usePixelEditor.js +16 -0
  130. package/dist/esm/pixel/usePixelEditor.js.map +1 -1
  131. package/dist/esm/texture/Nice3DTexturePainter.js +123 -79
  132. package/dist/esm/texture/Nice3DTexturePainter.js.map +1 -1
  133. package/dist/esm/ui/NiceUIDesigner.js +175 -62
  134. package/dist/esm/ui/NiceUIDesigner.js.map +1 -1
  135. package/dist/esm/ui/dist/index.js +49686 -0
  136. package/dist/esm/ui/dist/index.js.map +1 -0
  137. package/dist/esm/vector/NiceSvgToCode.js +423 -0
  138. package/dist/esm/vector/NiceSvgToCode.js.map +1 -0
  139. package/dist/esm/vector/VectorEditor.js +7 -4
  140. package/dist/esm/vector/VectorEditor.js.map +1 -1
  141. package/dist/esm/vector/VectorEditor.module.css.js +1 -1
  142. package/dist/esm/vector/VectorEditorMenuBar.js +5 -1
  143. package/dist/esm/vector/VectorEditorMenuBar.js.map +1 -1
  144. package/dist/esm/vector/VectorEditorRightPanel.js +23 -19
  145. package/dist/esm/vector/VectorEditorRightPanel.js.map +1 -1
  146. package/package.json +3 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animalGeneratorPresets.js","sources":["../../../src/pixel/animalGeneratorPresets.ts"],"sourcesContent":[null],"names":["createPartData","generateMirroredDirections","registerParts"],"mappings":"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"}
@@ -0,0 +1,573 @@
1
+ 'use strict';
2
+
3
+ var spriteGeneratorCore = require('./spriteGeneratorCore.js');
4
+
5
+ /**
6
+ * buildingGeneratorPresets.ts — Modular building generator.
7
+ *
8
+ * Buildings are assembled from stackable floors: foundation, wall floors,
9
+ * roof. Each floor has layout, style and colour options.
10
+ * Doors, windows, chimneys are placed as decoration parts.
11
+ */
12
+ /* ════════════════════════════════════════════════════════════════
13
+ COLOUR PALETTES
14
+ ════════════════════════════════════════════════════════════════ */
15
+ const WALL_PALETTES = {
16
+ stone: ['#a0a0a0', '#808080', '#606060', '#404040'],
17
+ brick: ['#c06040', '#a04830', '#803020', '#602018'],
18
+ wood: ['#c09060', '#a07848', '#806038', '#604828'],
19
+ sandstone: ['#e0c890', '#c8b070', '#b09850', '#988038'],
20
+ marble: ['#f0f0f0', '#d8d8e0', '#c0c0c8', '#a8a8b0'],
21
+ darkStone: ['#585860', '#404048', '#303038', '#202028'],
22
+ };
23
+ const ROOF_PALETTES = {
24
+ redTile: ['#c04030', '#a03020', '#802018', '#601010'],
25
+ darkTile: ['#505058', '#404048', '#303038', '#202028'],
26
+ thatch: ['#c0a040', '#a08830', '#807020', '#605818'],
27
+ blue: ['#4060b0', '#304890', '#203870', '#182850'],
28
+ green: ['#408040', '#306830', '#205020', '#103810'],
29
+ };
30
+ /* ════════════════════════════════════════════════════════════════
31
+ BUILDING PARTS — transparent shorthand
32
+ ════════════════════════════════════════════════════════════════ */
33
+ const _ = -1;
34
+ /* ── Foundations ── */
35
+ const FOUNDATION_STONE = spriteGeneratorCore.createPartData(16, 4, [
36
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
37
+ [0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0],
38
+ [0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0],
39
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
40
+ ], ['#a0a0a0', '#606060']);
41
+ const FOUNDATION_BRICK = spriteGeneratorCore.createPartData(16, 4, [
42
+ [1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0],
43
+ [0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0],
44
+ [1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0],
45
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
46
+ ], ['#c06040', '#803020']);
47
+ const FOUNDATION_WOOD = spriteGeneratorCore.createPartData(16, 3, [
48
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
49
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
50
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
51
+ ], ['#c09060', '#604828']);
52
+ /* ── Wall sections (one floor height) ── */
53
+ const WALL_STONE_SECTION = spriteGeneratorCore.createPartData(16, 8, [
54
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
55
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
56
+ [0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0],
57
+ [0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0],
58
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
59
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
60
+ [0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0],
61
+ [0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0],
62
+ ], ['#a0a0a0', '#808080', '#606060']);
63
+ const WALL_BRICK_SECTION = spriteGeneratorCore.createPartData(16, 8, [
64
+ [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0],
65
+ [0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0],
66
+ [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0],
67
+ [0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0],
68
+ [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0],
69
+ [0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0],
70
+ [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0],
71
+ [0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0],
72
+ ], ['#c06040', '#a04830', '#803020']);
73
+ const WALL_WOOD_SECTION = spriteGeneratorCore.createPartData(16, 8, [
74
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
75
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
76
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
77
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
78
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
79
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
80
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
81
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
82
+ ], ['#c09060', '#806038']);
83
+ const WALL_HALFTIMBER_SECTION = spriteGeneratorCore.createPartData(16, 8, [
84
+ [2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2],
85
+ [2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2],
86
+ [2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2],
87
+ [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
88
+ [2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2],
89
+ [2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2],
90
+ [2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2],
91
+ [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
92
+ ], ['#f0e8d0', '#e0d8c0', '#806038']);
93
+ /* ── Roofs ── */
94
+ const ROOF_TRIANGLE = spriteGeneratorCore.createPartData(20, 8, [
95
+ [_, _, _, _, _, _, _, _, _, 0, 0, _, _, _, _, _, _, _, _, _],
96
+ [_, _, _, _, _, _, _, _, 0, 1, 1, 0, _, _, _, _, _, _, _, _],
97
+ [_, _, _, _, _, _, _, 0, 1, 1, 1, 1, 0, _, _, _, _, _, _, _],
98
+ [_, _, _, _, _, _, 0, 1, 1, 1, 1, 1, 1, 0, _, _, _, _, _, _],
99
+ [_, _, _, _, _, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, _, _, _, _, _],
100
+ [_, _, _, _, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, _, _, _, _],
101
+ [_, _, _, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, _, _, _],
102
+ [_, _, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, _, _],
103
+ ], ['#c04030', '#a03020', '#602018']);
104
+ const ROOF_FLAT = spriteGeneratorCore.createPartData(18, 4, [
105
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
106
+ [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
107
+ [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
108
+ [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
109
+ ], ['#505058', '#404048', '#303038']);
110
+ const ROOF_PAGODA = spriteGeneratorCore.createPartData(22, 6, [
111
+ [_, _, _, _, _, _, _, _, _, _, 0, 0, _, _, _, _, _, _, _, _, _, _],
112
+ [_, _, _, _, _, _, _, _, 0, 0, 1, 1, 0, 0, _, _, _, _, _, _, _, _],
113
+ [_, _, _, _, _, _, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, _, _, _, _, _, _],
114
+ [_, _, _, _, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, _, _, _, _],
115
+ [_, _, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, _, _],
116
+ [0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],
117
+ ], ['#c04030', '#a03020', '#602018']);
118
+ const ROOF_DOME = spriteGeneratorCore.createPartData(18, 8, [
119
+ [_, _, _, _, _, _, _, 0, 0, 0, 0, _, _, _, _, _, _, _],
120
+ [_, _, _, _, _, 0, 0, 1, 1, 1, 1, 0, 0, _, _, _, _, _],
121
+ [_, _, _, _, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, _, _, _, _],
122
+ [_, _, _, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, _, _, _],
123
+ [_, _, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, _, _],
124
+ [_, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, _],
125
+ [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
126
+ [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],
127
+ ], ['#4060b0', '#304890', '#203870']);
128
+ /* ── Doors ── */
129
+ const DOOR_WOOD = spriteGeneratorCore.createPartData(4, 6, [
130
+ [_, 0, 0, _],
131
+ [0, 1, 1, 0],
132
+ [0, 1, 1, 0],
133
+ [0, 1, 2, 0],
134
+ [0, 1, 1, 0],
135
+ [0, 1, 1, 0],
136
+ ], ['#604828', '#c09060', '#f0d060']);
137
+ const DOOR_ARCH = spriteGeneratorCore.createPartData(6, 8, [
138
+ [_, _, 0, 0, _, _],
139
+ [_, 0, 1, 1, 0, _],
140
+ [0, 1, 1, 1, 1, 0],
141
+ [0, 1, 1, 1, 1, 0],
142
+ [0, 1, 1, 1, 1, 0],
143
+ [0, 1, 1, 2, 1, 0],
144
+ [0, 1, 1, 1, 1, 0],
145
+ [0, 1, 1, 1, 1, 0],
146
+ ], ['#604828', '#a07848', '#f0d060']);
147
+ const DOOR_DOUBLE = spriteGeneratorCore.createPartData(8, 7, [
148
+ [_, 0, 0, 0, 0, 0, 0, _],
149
+ [0, 1, 1, 0, 0, 1, 1, 0],
150
+ [0, 1, 1, 0, 0, 1, 1, 0],
151
+ [0, 1, 2, 0, 0, 2, 1, 0],
152
+ [0, 1, 1, 0, 0, 1, 1, 0],
153
+ [0, 1, 1, 0, 0, 1, 1, 0],
154
+ [0, 0, 0, 0, 0, 0, 0, 0],
155
+ ], ['#604828', '#c09060', '#f0d060']);
156
+ /* ── Windows ── */
157
+ const WINDOW_SIMPLE = spriteGeneratorCore.createPartData(4, 4, [
158
+ [0, 0, 0, 0],
159
+ [0, 1, 1, 0],
160
+ [0, 1, 1, 0],
161
+ [0, 0, 0, 0],
162
+ ], ['#404040', '#88c8ff']);
163
+ const WINDOW_CROSS = spriteGeneratorCore.createPartData(4, 4, [
164
+ [0, 0, 0, 0],
165
+ [0, 1, 0, 1],
166
+ [0, 0, 0, 0],
167
+ [0, 1, 0, 1],
168
+ ], ['#404040', '#88c8ff']);
169
+ const WINDOW_ARCH = spriteGeneratorCore.createPartData(4, 5, [
170
+ [_, 0, 0, _],
171
+ [0, 1, 1, 0],
172
+ [0, 1, 1, 0],
173
+ [0, 0, 0, 0],
174
+ [0, 1, 1, 0],
175
+ ], ['#404040', '#88c8ff']);
176
+ const WINDOW_ROUND = spriteGeneratorCore.createPartData(4, 4, [
177
+ [_, 0, 0, _],
178
+ [0, 1, 1, 0],
179
+ [0, 1, 1, 0],
180
+ [_, 0, 0, _],
181
+ ], ['#404040', '#88c8ff']);
182
+ /* ── Chimneys ── */
183
+ const CHIMNEY_BRICK = spriteGeneratorCore.createPartData(4, 6, [
184
+ [_, 2, 2, _],
185
+ [0, 0, 0, 0],
186
+ [0, 1, 1, 0],
187
+ [0, 1, 1, 0],
188
+ [0, 1, 1, 0],
189
+ [0, 0, 0, 0],
190
+ ], ['#c06040', '#a04830', '#606060']);
191
+ const CHIMNEY_STONE = spriteGeneratorCore.createPartData(3, 5, [
192
+ [_, 2, _],
193
+ [0, 0, 0],
194
+ [0, 1, 0],
195
+ [0, 1, 0],
196
+ [0, 0, 0],
197
+ ], ['#808080', '#a0a0a0', '#505050']);
198
+ /* ── Decorations ── */
199
+ const BALCONY = spriteGeneratorCore.createPartData(8, 3, [
200
+ [0, 0, 0, 0, 0, 0, 0, 0],
201
+ [0, _, 0, _, _, 0, _, 0],
202
+ [0, 0, 0, 0, 0, 0, 0, 0],
203
+ ], ['#808080']);
204
+ const BANNER = spriteGeneratorCore.createPartData(4, 6, [
205
+ [_, 0, 0, _],
206
+ [_, 1, 1, _],
207
+ [_, 1, 1, _],
208
+ [_, 1, 1, _],
209
+ [_, 1, 1, _],
210
+ [_, _, 1, _],
211
+ ], ['#806038', '#d04040']);
212
+ const TOWER_TOP = spriteGeneratorCore.createPartData(8, 4, [
213
+ [0, _, 0, _, 0, _, 0, _],
214
+ [0, 0, 0, 0, 0, 0, 0, 0],
215
+ [0, 1, 1, 1, 1, 1, 1, 0],
216
+ [0, 1, 1, 1, 1, 1, 1, 0],
217
+ ], ['#808080', '#a0a0a0']);
218
+ const SHOP_AWNING = spriteGeneratorCore.createPartData(14, 4, [
219
+ [_, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _],
220
+ [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
221
+ [_, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, _],
222
+ [_, _, 0, _, 0, _, 0, _, 0, _, 0, _, _, _],
223
+ ], ['#d04040', '#f0f0f0']);
224
+ /* ════════════════════════════════════════════════════════════════
225
+ REGISTER BUILDING PARTS
226
+ ════════════════════════════════════════════════════════════════ */
227
+ const BUILDING_PARTS = [
228
+ // ── Foundations ──
229
+ {
230
+ id: 'foundation-stone', name: 'Stone Foundation', category: 'foundation', slot: 'foundation',
231
+ anchorX: 8, anchorY: 0, zOrder: 0, tags: ['stone', 'foundation'],
232
+ pixels: { S: FOUNDATION_STONE }, recolorableIndices: [0, 1],
233
+ },
234
+ {
235
+ id: 'foundation-brick', name: 'Brick Foundation', category: 'foundation', slot: 'foundation',
236
+ anchorX: 8, anchorY: 0, zOrder: 0, tags: ['brick', 'foundation'],
237
+ pixels: { S: FOUNDATION_BRICK }, recolorableIndices: [0, 1],
238
+ },
239
+ {
240
+ id: 'foundation-wood', name: 'Wood Foundation', category: 'foundation', slot: 'foundation',
241
+ anchorX: 8, anchorY: 0, zOrder: 0, tags: ['wood', 'foundation'],
242
+ pixels: { S: FOUNDATION_WOOD }, recolorableIndices: [0, 1],
243
+ },
244
+ // ── Walls ──
245
+ {
246
+ id: 'wall-stone', name: 'Stone Wall', category: 'wall', slot: 'wall',
247
+ anchorX: 8, anchorY: 0, zOrder: 1, tags: ['stone', 'wall'],
248
+ pixels: { S: WALL_STONE_SECTION }, recolorableIndices: [0, 1, 2],
249
+ },
250
+ {
251
+ id: 'wall-brick', name: 'Brick Wall', category: 'wall', slot: 'wall',
252
+ anchorX: 8, anchorY: 0, zOrder: 1, tags: ['brick', 'wall'],
253
+ pixels: { S: WALL_BRICK_SECTION }, recolorableIndices: [0, 1, 2],
254
+ },
255
+ {
256
+ id: 'wall-wood', name: 'Wood Wall', category: 'wall', slot: 'wall',
257
+ anchorX: 8, anchorY: 0, zOrder: 1, tags: ['wood', 'wall'],
258
+ pixels: { S: WALL_WOOD_SECTION }, recolorableIndices: [0, 1],
259
+ },
260
+ {
261
+ id: 'wall-halftimber', name: 'Half-timber Wall', category: 'wall', slot: 'wall',
262
+ anchorX: 8, anchorY: 0, zOrder: 1, tags: ['halftimber', 'medieval', 'wall'],
263
+ pixels: { S: WALL_HALFTIMBER_SECTION }, recolorableIndices: [0, 1, 2],
264
+ },
265
+ // ── Roofs ──
266
+ {
267
+ id: 'roof-triangle', name: 'Triangle Roof', category: 'roof', slot: 'roof',
268
+ anchorX: 10, anchorY: 7, zOrder: 10, tags: ['triangle', 'classic'],
269
+ pixels: { S: ROOF_TRIANGLE }, recolorableIndices: [0, 1, 2],
270
+ },
271
+ {
272
+ id: 'roof-flat', name: 'Flat Roof', category: 'roof', slot: 'roof',
273
+ anchorX: 9, anchorY: 3, zOrder: 10, tags: ['flat', 'modern'],
274
+ pixels: { S: ROOF_FLAT }, recolorableIndices: [0, 1, 2],
275
+ },
276
+ {
277
+ id: 'roof-pagoda', name: 'Pagoda Roof', category: 'roof', slot: 'roof',
278
+ anchorX: 11, anchorY: 5, zOrder: 10, tags: ['pagoda', 'asian', 'curved'],
279
+ pixels: { S: ROOF_PAGODA }, recolorableIndices: [0, 1, 2],
280
+ },
281
+ {
282
+ id: 'roof-dome', name: 'Dome Roof', category: 'roof', slot: 'roof',
283
+ anchorX: 9, anchorY: 7, zOrder: 10, tags: ['dome', 'round', 'church'],
284
+ pixels: { S: ROOF_DOME }, recolorableIndices: [0, 1, 2],
285
+ },
286
+ // ── Doors ──
287
+ {
288
+ id: 'door-wood', name: 'Wooden Door', category: 'door', slot: 'door',
289
+ anchorX: 2, anchorY: 0, zOrder: 5, tags: ['wood', 'simple'],
290
+ pixels: { S: DOOR_WOOD }, recolorableIndices: [0, 1, 2],
291
+ },
292
+ {
293
+ id: 'door-arch', name: 'Arch Door', category: 'door', slot: 'door',
294
+ anchorX: 3, anchorY: 0, zOrder: 5, tags: ['arch', 'medieval'],
295
+ pixels: { S: DOOR_ARCH }, recolorableIndices: [0, 1, 2],
296
+ },
297
+ {
298
+ id: 'door-double', name: 'Double Door', category: 'door', slot: 'door',
299
+ anchorX: 4, anchorY: 0, zOrder: 5, tags: ['double', 'grand'],
300
+ pixels: { S: DOOR_DOUBLE }, recolorableIndices: [0, 1, 2],
301
+ },
302
+ // ── Windows ──
303
+ {
304
+ id: 'window-simple', name: 'Simple Window', category: 'window', slot: 'window',
305
+ anchorX: 2, anchorY: 2, zOrder: 5, tags: ['simple', 'basic'],
306
+ pixels: { S: WINDOW_SIMPLE }, recolorableIndices: [0, 1],
307
+ },
308
+ {
309
+ id: 'window-cross', name: 'Cross Window', category: 'window', slot: 'window',
310
+ anchorX: 2, anchorY: 2, zOrder: 5, tags: ['cross', 'medieval'],
311
+ pixels: { S: WINDOW_CROSS }, recolorableIndices: [0, 1],
312
+ },
313
+ {
314
+ id: 'window-arch', name: 'Arch Window', category: 'window', slot: 'window',
315
+ anchorX: 2, anchorY: 2, zOrder: 5, tags: ['arch', 'gothic'],
316
+ pixels: { S: WINDOW_ARCH }, recolorableIndices: [0, 1],
317
+ },
318
+ {
319
+ id: 'window-round', name: 'Round Window', category: 'window', slot: 'window',
320
+ anchorX: 2, anchorY: 2, zOrder: 5, tags: ['round', 'porthole'],
321
+ pixels: { S: WINDOW_ROUND }, recolorableIndices: [0, 1],
322
+ },
323
+ // ── Chimneys ──
324
+ {
325
+ id: 'chimney-brick', name: 'Brick Chimney', category: 'chimney', slot: 'chimney',
326
+ anchorX: 2, anchorY: 5, zOrder: 12, tags: ['brick', 'chimney'],
327
+ pixels: { S: CHIMNEY_BRICK }, recolorableIndices: [0, 1, 2],
328
+ },
329
+ {
330
+ id: 'chimney-stone', name: 'Stone Chimney', category: 'chimney', slot: 'chimney',
331
+ anchorX: 1, anchorY: 4, zOrder: 12, tags: ['stone', 'chimney'],
332
+ pixels: { S: CHIMNEY_STONE }, recolorableIndices: [0, 1, 2],
333
+ },
334
+ // ── Decorations ──
335
+ {
336
+ id: 'deco-balcony', name: 'Balcony', category: 'decoration', slot: 'wall',
337
+ anchorX: 4, anchorY: 0, zOrder: 6, tags: ['balcony', 'decoration'],
338
+ pixels: { S: BALCONY }, recolorableIndices: [0],
339
+ },
340
+ {
341
+ id: 'deco-banner', name: 'Banner', category: 'decoration', slot: 'wall',
342
+ anchorX: 2, anchorY: 0, zOrder: 7, tags: ['banner', 'decoration', 'flag'],
343
+ pixels: { S: BANNER }, recolorableIndices: [0, 1],
344
+ },
345
+ {
346
+ id: 'deco-tower-top', name: 'Tower Battlements', category: 'decoration', slot: 'roof',
347
+ anchorX: 4, anchorY: 3, zOrder: 11, tags: ['tower', 'castle', 'battlements'],
348
+ pixels: { S: TOWER_TOP }, recolorableIndices: [0, 1],
349
+ },
350
+ {
351
+ id: 'deco-shop-awning', name: 'Shop Awning', category: 'decoration', slot: 'wall',
352
+ anchorX: 7, anchorY: 0, zOrder: 6, tags: ['shop', 'awning', 'market'],
353
+ pixels: { S: SHOP_AWNING }, recolorableIndices: [0, 1],
354
+ },
355
+ ];
356
+ /** Assemble a building from config into a SpriteAssembly */
357
+ function assembleBuildingFromConfig(config) {
358
+ var _a;
359
+ const floorHeight = 8;
360
+ const foundationHeight = 4;
361
+ const roofHeight = 8;
362
+ const totalHeight = foundationHeight + config.floors.length * floorHeight + roofHeight + 4;
363
+ const parts = [];
364
+ // Foundation at bottom
365
+ const baseY = totalHeight - foundationHeight;
366
+ parts.push({ partId: config.foundationId, offsetX: 0, offsetY: baseY });
367
+ // Floors bottom-up
368
+ for (let i = 0; i < config.floors.length; i++) {
369
+ const floor = config.floors[i];
370
+ const floorY = baseY - (i + 1) * floorHeight;
371
+ // Wall
372
+ parts.push({
373
+ partId: floor.wallId,
374
+ offsetX: 0,
375
+ offsetY: floorY,
376
+ colorOverrides: floor.colorOverrides,
377
+ });
378
+ // Windows
379
+ for (const wx of floor.windowPositions) {
380
+ const winId = floor.windowIds[0] || 'window-simple';
381
+ parts.push({ partId: winId, offsetX: wx, offsetY: floorY + 2 });
382
+ }
383
+ // Door (only ground floor typically)
384
+ if (floor.doorId && floor.doorPosition !== undefined) {
385
+ parts.push({ partId: floor.doorId, offsetX: floor.doorPosition, offsetY: floorY + 2 });
386
+ }
387
+ // Decorations
388
+ if (floor.decorationIds) {
389
+ for (const dId of floor.decorationIds) {
390
+ parts.push({ partId: dId, offsetX: 0, offsetY: floorY });
391
+ }
392
+ }
393
+ }
394
+ // Roof
395
+ const roofY = baseY - config.floors.length * floorHeight - roofHeight;
396
+ parts.push({ partId: config.roofId, offsetX: -2, offsetY: roofY });
397
+ // Chimney
398
+ if (config.chimneyId) {
399
+ parts.push({
400
+ partId: config.chimneyId,
401
+ offsetX: (_a = config.chimneyPosition) !== null && _a !== void 0 ? _a : (config.width - 6),
402
+ offsetY: roofY - 3,
403
+ });
404
+ }
405
+ return {
406
+ id: `building-${config.name.toLowerCase().replace(/\s+/g, '-')}`,
407
+ name: config.name,
408
+ parts,
409
+ canvasWidth: Math.max(config.width, 24),
410
+ canvasHeight: totalHeight,
411
+ projection: 'sideView',
412
+ };
413
+ }
414
+ const BUILDING_PRESETS = [
415
+ {
416
+ id: 'preset-cottage', name: 'Cottage', description: 'Simple wooden cottage',
417
+ tags: ['wood', 'simple', 'village'],
418
+ config: {
419
+ name: 'Cottage', foundationId: 'foundation-wood', roofId: 'roof-triangle',
420
+ chimneyId: 'chimney-brick', chimneyPosition: 12, width: 16,
421
+ floors: [{
422
+ wallId: 'wall-wood',
423
+ windowIds: ['window-simple'],
424
+ windowPositions: [2, 10],
425
+ doorId: 'door-wood', doorPosition: 6,
426
+ }],
427
+ },
428
+ },
429
+ {
430
+ id: 'preset-house', name: 'Town House', description: 'Two-story brick house',
431
+ tags: ['brick', 'town', 'residential'],
432
+ config: {
433
+ name: 'Town House', foundationId: 'foundation-brick', roofId: 'roof-triangle',
434
+ chimneyId: 'chimney-brick', chimneyPosition: 11, width: 16,
435
+ floors: [
436
+ {
437
+ wallId: 'wall-brick',
438
+ windowIds: ['window-cross'],
439
+ windowPositions: [2, 10],
440
+ doorId: 'door-wood', doorPosition: 6,
441
+ },
442
+ {
443
+ wallId: 'wall-brick',
444
+ windowIds: ['window-cross'],
445
+ windowPositions: [2, 6, 10],
446
+ },
447
+ ],
448
+ },
449
+ },
450
+ {
451
+ id: 'preset-castle-tower', name: 'Castle Tower', description: 'Medieval stone tower',
452
+ tags: ['stone', 'castle', 'medieval', 'tower'],
453
+ config: {
454
+ name: 'Castle Tower', foundationId: 'foundation-stone', roofId: 'roof-flat',
455
+ width: 16,
456
+ floors: [
457
+ {
458
+ wallId: 'wall-stone',
459
+ windowIds: ['window-arch'],
460
+ windowPositions: [6],
461
+ doorId: 'door-arch', doorPosition: 5,
462
+ },
463
+ {
464
+ wallId: 'wall-stone',
465
+ windowIds: ['window-arch'],
466
+ windowPositions: [3, 9],
467
+ },
468
+ {
469
+ wallId: 'wall-stone',
470
+ windowIds: ['window-arch'],
471
+ windowPositions: [3, 9],
472
+ decorationIds: ['deco-banner'],
473
+ },
474
+ ],
475
+ },
476
+ },
477
+ {
478
+ id: 'preset-shop', name: 'Shop', description: 'Market shop with awning',
479
+ tags: ['wood', 'shop', 'market', 'town'],
480
+ config: {
481
+ name: 'Shop', foundationId: 'foundation-wood', roofId: 'roof-triangle',
482
+ width: 16,
483
+ floors: [{
484
+ wallId: 'wall-halftimber',
485
+ windowIds: ['window-simple'],
486
+ windowPositions: [2, 10],
487
+ doorId: 'door-double', doorPosition: 4,
488
+ decorationIds: ['deco-shop-awning'],
489
+ }],
490
+ },
491
+ },
492
+ {
493
+ id: 'preset-inn', name: 'Inn', description: 'Half-timber two-story inn',
494
+ tags: ['halftimber', 'inn', 'medieval', 'town'],
495
+ config: {
496
+ name: 'Inn', foundationId: 'foundation-stone', roofId: 'roof-triangle',
497
+ chimneyId: 'chimney-stone', chimneyPosition: 12, width: 16,
498
+ floors: [
499
+ {
500
+ wallId: 'wall-halftimber',
501
+ windowIds: ['window-simple'],
502
+ windowPositions: [2, 10],
503
+ doorId: 'door-double', doorPosition: 4,
504
+ },
505
+ {
506
+ wallId: 'wall-halftimber',
507
+ windowIds: ['window-cross'],
508
+ windowPositions: [2, 6, 10],
509
+ decorationIds: ['deco-balcony'],
510
+ },
511
+ ],
512
+ },
513
+ },
514
+ {
515
+ id: 'preset-temple', name: 'Temple', description: 'Domed temple building',
516
+ tags: ['stone', 'temple', 'church', 'dome'],
517
+ config: {
518
+ name: 'Temple', foundationId: 'foundation-stone', roofId: 'roof-dome',
519
+ width: 18,
520
+ floors: [
521
+ {
522
+ wallId: 'wall-stone',
523
+ windowIds: ['window-round'],
524
+ windowPositions: [3, 11],
525
+ doorId: 'door-arch', doorPosition: 6,
526
+ },
527
+ {
528
+ wallId: 'wall-stone',
529
+ windowIds: ['window-arch'],
530
+ windowPositions: [3, 7, 11],
531
+ },
532
+ ],
533
+ },
534
+ },
535
+ {
536
+ id: 'preset-pagoda', name: 'Pagoda', description: 'Multi-story pagoda tower',
537
+ tags: ['wood', 'pagoda', 'asian', 'tower'],
538
+ config: {
539
+ name: 'Pagoda', foundationId: 'foundation-stone', roofId: 'roof-pagoda',
540
+ width: 16,
541
+ floors: [
542
+ {
543
+ wallId: 'wall-wood',
544
+ windowIds: ['window-arch'],
545
+ windowPositions: [3, 9],
546
+ doorId: 'door-arch', doorPosition: 6,
547
+ },
548
+ {
549
+ wallId: 'wall-wood',
550
+ windowIds: ['window-arch'],
551
+ windowPositions: [3, 9],
552
+ },
553
+ {
554
+ wallId: 'wall-wood',
555
+ windowIds: ['window-round'],
556
+ windowPositions: [6],
557
+ },
558
+ ],
559
+ },
560
+ },
561
+ ];
562
+ /** Initialize: register all building parts */
563
+ function initBuildingParts() {
564
+ spriteGeneratorCore.registerParts(BUILDING_PARTS);
565
+ }
566
+
567
+ exports.BUILDING_PARTS = BUILDING_PARTS;
568
+ exports.BUILDING_PRESETS = BUILDING_PRESETS;
569
+ exports.ROOF_PALETTES = ROOF_PALETTES;
570
+ exports.WALL_PALETTES = WALL_PALETTES;
571
+ exports.assembleBuildingFromConfig = assembleBuildingFromConfig;
572
+ exports.initBuildingParts = initBuildingParts;
573
+ //# sourceMappingURL=buildingGeneratorPresets.js.map