@nice2dev/ui-graphics 1.0.0 → 1.0.3

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":"buildingGeneratorPresets.js","sources":["../../../src/pixel/buildingGeneratorPresets.ts"],"sourcesContent":[null],"names":[],"mappings":"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,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAC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,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAC7D,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE;AACtC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACvD,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE;AACxC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,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"}
@@ -0,0 +1,556 @@
1
+ import { createPartData, generateMirroredDirections, registerParts } from './spriteGeneratorCore.js';
2
+
3
+ /**
4
+ * characterGeneratorPresets.ts — Extensive library of character parts
5
+ * for the sprite generator. Provides heads, hair, torsos, arms, legs,
6
+ * faces, and equipment in multiple styles at 16×16 and 32×32 sizes.
7
+ *
8
+ * Each part has directional pixel data (S, E, N with mirroring for W, etc.)
9
+ */
10
+ /* ════════════════════════════════════════════════════════════════
11
+ COLOR PALETTES
12
+ ════════════════════════════════════════════════════════════════ */
13
+ const SKIN_PALETTES = {
14
+ light: ['#ffecd2', '#f5c6a0', '#e0a070', '#c07848', '#8b5e3c'],
15
+ medium: ['#e8c090', '#d4a06c', '#b88050', '#946038', '#6b4423'],
16
+ dark: ['#c08050', '#a06838', '#805028', '#603818', '#402010'],
17
+ fantasy1: ['#d0f0d0', '#a8d8a0', '#78b868', '#508030', '#304818'],
18
+ fantasy2: ['#d0d8f0', '#a8b0d8', '#7888b8', '#506090', '#303860'],
19
+ };
20
+ const HAIR_PALETTES = {
21
+ black: ['#1a1a2e', '#101020', '#080810'],
22
+ brown: ['#8b6914', '#6b4e0a', '#4a3508'],
23
+ blonde: ['#f0d060', '#d0b040', '#b09028'],
24
+ red: ['#d03020', '#a02018', '#781810'],
25
+ white: ['#f0f0f0', '#d0d0d0', '#a0a0a0'],
26
+ blue: ['#4080e0', '#3060b0', '#204080'],
27
+ green: ['#40c040', '#309030', '#206020'],
28
+ pink: ['#f080b0', '#d06090', '#a04070'],
29
+ purple: ['#a040e0', '#8030b0', '#602080'],
30
+ };
31
+ const CLOTHING_PALETTES = {
32
+ leather: ['#b08060', '#906840', '#705028'],
33
+ iron: ['#c0c0c8', '#909098', '#606068'],
34
+ gold: ['#f0d060', '#d0b040', '#a08020'],
35
+ cloth_r: ['#d04040', '#b02020', '#801010'],
36
+ cloth_b: ['#4060d0', '#3040b0', '#202880'],
37
+ cloth_g: ['#40b040', '#208020', '#105010'],
38
+ cloth_w: ['#f0f0f0', '#d0d0d0', '#b0b0b0'],
39
+ cloth_k: ['#404040', '#282828', '#181818'],
40
+ royal: ['#8020a0', '#601080', '#400860'],
41
+ };
42
+ /* ════════════════════════════════════════════════════════════════
43
+ 16×16 CHARACTER PARTS — HEADS
44
+ ════════════════════════════════════════════════════════════════ */
45
+ const _ = -1; // transparent shorthand
46
+ const HEAD_ROUND_S = createPartData(8, 8, [
47
+ [_, _, 1, 1, 1, 1, _, _],
48
+ [_, 1, 0, 0, 0, 0, 1, _],
49
+ [1, 0, 0, 0, 0, 0, 0, 1],
50
+ [1, 0, 3, 0, 0, 3, 0, 1],
51
+ [1, 0, 0, 0, 0, 0, 0, 1],
52
+ [1, 0, 0, 2, 2, 0, 0, 1],
53
+ [_, 1, 0, 0, 0, 0, 1, _],
54
+ [_, _, 1, 1, 1, 1, _, _],
55
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
56
+ const HEAD_ROUND_E = createPartData(7, 8, [
57
+ [_, _, 1, 1, 1, _, _],
58
+ [_, 1, 0, 0, 0, 1, _],
59
+ [1, 0, 0, 0, 0, 0, 1],
60
+ [1, 0, 0, 0, 3, 0, 1],
61
+ [1, 0, 0, 0, 0, 0, 1],
62
+ [1, 0, 0, 0, 2, 0, 1],
63
+ [_, 1, 0, 0, 0, 1, _],
64
+ [_, _, 1, 1, 1, _, _],
65
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
66
+ const HEAD_ROUND_N = createPartData(8, 8, [
67
+ [_, _, 1, 1, 1, 1, _, _],
68
+ [_, 1, 0, 0, 0, 0, 1, _],
69
+ [1, 0, 0, 0, 0, 0, 0, 1],
70
+ [1, 0, 0, 0, 0, 0, 0, 1],
71
+ [1, 0, 0, 0, 0, 0, 0, 1],
72
+ [1, 0, 0, 0, 0, 0, 0, 1],
73
+ [_, 1, 0, 0, 0, 0, 1, _],
74
+ [_, _, 1, 1, 1, 1, _, _],
75
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
76
+ const HEAD_SQUARE_S = createPartData(8, 7, [
77
+ [_, 1, 1, 1, 1, 1, 1, _],
78
+ [1, 0, 0, 0, 0, 0, 0, 1],
79
+ [1, 0, 3, 0, 0, 3, 0, 1],
80
+ [1, 0, 0, 0, 0, 0, 0, 1],
81
+ [1, 0, 0, 2, 2, 0, 0, 1],
82
+ [1, 0, 0, 0, 0, 0, 0, 1],
83
+ [_, 1, 1, 1, 1, 1, 1, _],
84
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
85
+ const HEAD_CHIBI_S = createPartData(10, 10, [
86
+ [_, _, _, 1, 1, 1, 1, _, _, _],
87
+ [_, _, 1, 0, 0, 0, 0, 1, _, _],
88
+ [_, 1, 0, 0, 0, 0, 0, 0, 1, _],
89
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
90
+ [1, 0, 0, 3, 0, 0, 3, 0, 0, 1],
91
+ [1, 0, 0, 3, 0, 0, 3, 0, 0, 1],
92
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
93
+ [1, 0, 0, 0, 2, 2, 0, 0, 0, 1],
94
+ [_, 1, 0, 0, 0, 0, 0, 0, 1, _],
95
+ [_, _, 1, 1, 1, 1, 1, 1, _, _],
96
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
97
+ /* ── HAIR ── */
98
+ const HAIR_SHORT_S = createPartData(8, 4, [
99
+ [_, _, 0, 0, 0, 0, _, _],
100
+ [_, 0, 0, 0, 0, 0, 0, _],
101
+ [0, 0, 1, 1, 1, 1, 0, 0],
102
+ [0, 1, _, _, _, _, 1, 0],
103
+ ], ['#4a3508', '#6b4e0a']);
104
+ const HAIR_LONG_S = createPartData(10, 10, [
105
+ [_, _, _, 0, 0, 0, 0, _, _, _],
106
+ [_, _, 0, 0, 0, 0, 0, 0, _, _],
107
+ [_, 0, 0, 1, 1, 1, 1, 0, 0, _],
108
+ [0, 0, 1, _, _, _, _, 1, 0, 0],
109
+ [0, 1, _, _, _, _, _, _, 1, 0],
110
+ [0, 1, _, _, _, _, _, _, 1, 0],
111
+ [0, 1, _, _, _, _, _, _, 1, 0],
112
+ [0, 0, _, _, _, _, _, _, 0, 0],
113
+ [_, 0, _, _, _, _, _, _, 0, _],
114
+ [_, 0, 0, _, _, _, _, 0, 0, _],
115
+ ], ['#4a3508', '#6b4e0a']);
116
+ const HAIR_MOHAWK_S = createPartData(8, 6, [
117
+ [_, _, _, 0, 0, _, _, _],
118
+ [_, _, 0, 0, 0, 0, _, _],
119
+ [_, _, 0, 0, 0, 0, _, _],
120
+ [_, _, 0, 1, 1, 0, _, _],
121
+ [_, 0, 1, _, _, 1, 0, _],
122
+ [0, 1, _, _, _, _, 1, 0],
123
+ ], ['#d03020', '#a02018']);
124
+ const HAIR_PONYTAIL_S = createPartData(10, 8, [
125
+ [_, _, _, 0, 0, 0, 0, _, _, _],
126
+ [_, _, 0, 0, 0, 0, 0, 0, _, _],
127
+ [_, 0, 0, 1, 1, 1, 1, 0, 0, _],
128
+ [0, 0, 1, _, _, _, _, 1, 0, 0],
129
+ [_, _, _, _, _, _, _, _, 0, 0],
130
+ [_, _, _, _, _, _, _, _, _, 0],
131
+ [_, _, _, _, _, _, _, _, _, 0],
132
+ [_, _, _, _, _, _, _, _, 0, _],
133
+ ], ['#f0d060', '#d0b040']);
134
+ const HAIR_SPIKY_S = createPartData(10, 6, [
135
+ [_, 0, _, _, 0, _, 0, _, _, _],
136
+ [_, 0, 0, 0, 0, 0, 0, 0, _, _],
137
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, _],
138
+ [0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
139
+ [0, 1, _, _, _, _, _, _, 1, 0],
140
+ [_, _, _, _, _, _, _, _, _, _],
141
+ ], ['#1a1a2e', '#101020']);
142
+ /* ── TORSOS ── */
143
+ const TORSO_BASIC_S = createPartData(8, 6, [
144
+ [_, _, 1, 1, 1, 1, _, _],
145
+ [_, 1, 0, 0, 0, 0, 1, _],
146
+ [1, 0, 0, 0, 0, 0, 0, 1],
147
+ [1, 0, 0, 0, 0, 0, 0, 1],
148
+ [_, 1, 0, 0, 0, 0, 1, _],
149
+ [_, _, 1, 1, 1, 1, _, _],
150
+ ], ['#4060d0', '#3040b0']);
151
+ const TORSO_ARMOR_S = createPartData(10, 7, [
152
+ [_, _, _, 1, 1, 1, 1, _, _, _],
153
+ [_, _, 1, 0, 2, 2, 0, 1, _, _],
154
+ [_, 1, 0, 0, 2, 2, 0, 0, 1, _],
155
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
156
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
157
+ [_, 1, 0, 0, 0, 0, 0, 0, 1, _],
158
+ [_, _, 1, 1, 1, 1, 1, 1, _, _],
159
+ ], ['#c0c0c8', '#909098', '#f0d060']);
160
+ const TORSO_ROBE_S = createPartData(10, 10, [
161
+ [_, _, _, 1, 1, 1, 1, _, _, _],
162
+ [_, _, 1, 0, 0, 0, 0, 1, _, _],
163
+ [_, 1, 0, 0, 2, 2, 0, 0, 1, _],
164
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
165
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
166
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
167
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
168
+ [_, 1, 0, 0, 0, 0, 0, 0, 1, _],
169
+ [_, _, 1, 0, 0, 0, 0, 1, _, _],
170
+ [_, _, _, 1, 1, 1, 1, _, _, _],
171
+ ], ['#8020a0', '#601080', '#f0d060']);
172
+ /* ── ARMS ── */
173
+ const ARM_BASIC_S = createPartData(3, 5, [
174
+ [_, 0, _],
175
+ [0, 0, 1],
176
+ [0, 0, 1],
177
+ [0, 0, 1],
178
+ [_, 0, _],
179
+ ], ['#ffecd2', '#c07848']);
180
+ const ARM_ARMORED_S = createPartData(4, 5, [
181
+ [_, 0, 1, _],
182
+ [0, 0, 0, 1],
183
+ [0, 0, 0, 1],
184
+ [0, 0, 0, 1],
185
+ [_, 0, 1, _],
186
+ ], ['#c0c0c8', '#909098']);
187
+ /* ── LEGS ── */
188
+ const LEG_BASIC_S = createPartData(3, 5, [
189
+ [_, 0, _],
190
+ [0, 0, 1],
191
+ [0, 0, 1],
192
+ [0, 0, 1],
193
+ [0, 1, 1],
194
+ ], ['#4060d0', '#3040b0']);
195
+ const LEG_BOOT_S = createPartData(4, 5, [
196
+ [_, 0, 0, _],
197
+ [_, 0, 0, _],
198
+ [_, 0, 0, _],
199
+ [0, 0, 0, 1],
200
+ [0, 0, 0, 1],
201
+ ], ['#b08060', '#906840']);
202
+ /* ── HATS ── */
203
+ const HAT_WIZARD_S = createPartData(10, 8, [
204
+ [_, _, _, _, 0, _, _, _, _, _],
205
+ [_, _, _, 0, 0, 0, _, _, _, _],
206
+ [_, _, 0, 0, 0, 0, 0, _, _, _],
207
+ [_, 0, 0, 0, 0, 0, 0, 0, _, _],
208
+ [_, 0, 0, 0, 2, 0, 0, 0, _, _],
209
+ [0, 0, 0, 0, 2, 0, 0, 0, 0, _],
210
+ [0, 1, 1, 1, 1, 1, 1, 1, 0, _],
211
+ [_, _, _, _, _, _, _, _, _, _],
212
+ ], ['#8020a0', '#601080', '#f0d060']);
213
+ const HAT_KNIGHT_S = createPartData(10, 6, [
214
+ [_, _, _, 0, 0, 0, 0, _, _, _],
215
+ [_, _, 0, 0, 0, 0, 0, 0, _, _],
216
+ [_, 0, 0, 0, 0, 0, 0, 0, 0, _],
217
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
218
+ [0, 0, 2, 2, 2, 2, 2, 2, 0, 0],
219
+ [_, _, _, 1, 1, 1, 1, _, _, _],
220
+ ], ['#c0c0c8', '#606068', '#f0d060']);
221
+ const HAT_CROWN_S = createPartData(10, 5, [
222
+ [_, 2, _, _, 2, _, _, 2, _, _],
223
+ [_, 0, 2, _, 0, _, 2, 0, _, _],
224
+ [_, 0, 0, 2, 0, 2, 0, 0, _, _],
225
+ [_, 0, 0, 0, 0, 0, 0, 0, _, _],
226
+ [_, 1, 1, 1, 1, 1, 1, 1, _, _],
227
+ ], ['#f0d060', '#d0b040', '#ff4040']);
228
+ const HAT_CAP_S = createPartData(9, 5, [
229
+ [_, _, _, 0, 0, 0, _, _, _],
230
+ [_, _, 0, 0, 0, 0, 0, _, _],
231
+ [_, 0, 0, 0, 0, 0, 0, 0, _],
232
+ [0, 0, 0, 0, 0, 0, 0, 0, 0],
233
+ [_, _, 1, 1, 1, 1, 1, _, _],
234
+ ], ['#d04040', '#b02020']);
235
+ /* ── WEAPONS ── */
236
+ const WEAPON_SWORD_S = createPartData(3, 10, [
237
+ [_, 0, _],
238
+ [_, 0, _],
239
+ [_, 0, _],
240
+ [_, 0, _],
241
+ [_, 0, _],
242
+ [_, 0, _],
243
+ [_, 0, _],
244
+ [1, 1, 1],
245
+ [_, 2, _],
246
+ [_, 2, _],
247
+ ], ['#c0c0c8', '#f0d060', '#8b5e3c']);
248
+ const WEAPON_STAFF_S = createPartData(3, 12, [
249
+ [_, 1, _],
250
+ [1, 1, 1],
251
+ [_, 1, _],
252
+ [_, 0, _],
253
+ [_, 0, _],
254
+ [_, 0, _],
255
+ [_, 0, _],
256
+ [_, 0, _],
257
+ [_, 0, _],
258
+ [_, 0, _],
259
+ [_, 0, _],
260
+ [_, 0, _],
261
+ ], ['#8b5e3c', '#4080e0']);
262
+ const WEAPON_BOW_S = createPartData(5, 10, [
263
+ [_, _, _, 0, _],
264
+ [_, _, 0, _, 1],
265
+ [_, 0, _, _, 1],
266
+ [0, _, _, _, 1],
267
+ [0, _, _, _, 1],
268
+ [0, _, _, _, 1],
269
+ [0, _, _, _, 1],
270
+ [_, 0, _, _, 1],
271
+ [_, _, 0, _, 1],
272
+ [_, _, _, 0, _],
273
+ ], ['#8b5e3c', '#c0c0c8']);
274
+ const SHIELD_ROUND_S = createPartData(6, 7, [
275
+ [_, _, 1, 1, _, _],
276
+ [_, 1, 0, 0, 1, _],
277
+ [1, 0, 0, 2, 0, 1],
278
+ [1, 0, 2, 2, 0, 1],
279
+ [1, 0, 0, 2, 0, 1],
280
+ [_, 1, 0, 0, 1, _],
281
+ [_, _, 1, 1, _, _],
282
+ ], ['#c0c0c8', '#909098', '#f0d060']);
283
+ /* ════════════════════════════════════════════════════════════════
284
+ REGISTER ALL CHARACTER PARTS
285
+ ════════════════════════════════════════════════════════════════ */
286
+ const CHARACTER_PARTS = [
287
+ // ── Heads ──
288
+ {
289
+ id: 'head-round', name: 'Round Head', category: 'head', slot: 'head',
290
+ anchorX: 4, anchorY: 7, zOrder: 10, tags: ['basic', 'round'],
291
+ pixels: generateMirroredDirections({ S: HEAD_ROUND_S, E: HEAD_ROUND_E, N: HEAD_ROUND_N }),
292
+ },
293
+ {
294
+ id: 'head-square', name: 'Square Head', category: 'head', slot: 'head',
295
+ anchorX: 4, anchorY: 6, zOrder: 10, tags: ['basic', 'angular'],
296
+ pixels: { S: HEAD_SQUARE_S },
297
+ },
298
+ {
299
+ id: 'head-chibi', name: 'Chibi Head', category: 'head', slot: 'head',
300
+ anchorX: 5, anchorY: 9, zOrder: 10, tags: ['cute', 'chibi', 'large'],
301
+ pixels: { S: HEAD_CHIBI_S },
302
+ },
303
+ // ── Hair ──
304
+ {
305
+ id: 'hair-short', name: 'Short Hair', category: 'hair', slot: 'head',
306
+ anchorX: 4, anchorY: 3, zOrder: 11, tags: ['basic', 'short'],
307
+ pixels: { S: HAIR_SHORT_S },
308
+ recolorableIndices: [0, 1],
309
+ },
310
+ {
311
+ id: 'hair-long', name: 'Long Hair', category: 'hair', slot: 'head',
312
+ anchorX: 5, anchorY: 3, zOrder: 11, tags: ['long', 'flowing'],
313
+ pixels: { S: HAIR_LONG_S },
314
+ recolorableIndices: [0, 1],
315
+ },
316
+ {
317
+ id: 'hair-mohawk', name: 'Mohawk', category: 'hair', slot: 'head',
318
+ anchorX: 4, anchorY: 5, zOrder: 12, tags: ['punk', 'mohawk'],
319
+ pixels: { S: HAIR_MOHAWK_S },
320
+ recolorableIndices: [0, 1],
321
+ },
322
+ {
323
+ id: 'hair-ponytail', name: 'Ponytail', category: 'hair', slot: 'head',
324
+ anchorX: 5, anchorY: 3, zOrder: 11, tags: ['long', 'ponytail'],
325
+ pixels: { S: HAIR_PONYTAIL_S },
326
+ recolorableIndices: [0, 1],
327
+ },
328
+ {
329
+ id: 'hair-spiky', name: 'Spiky Hair', category: 'hair', slot: 'head',
330
+ anchorX: 5, anchorY: 5, zOrder: 12, tags: ['spiky', 'anime'],
331
+ pixels: { S: HAIR_SPIKY_S },
332
+ recolorableIndices: [0, 1],
333
+ },
334
+ // ── Torsos ──
335
+ {
336
+ id: 'torso-basic', name: 'Basic Torso', category: 'torso', slot: 'torso',
337
+ anchorX: 4, anchorY: 0, zOrder: 5, tags: ['basic', 'shirt'],
338
+ pixels: { S: TORSO_BASIC_S },
339
+ recolorableIndices: [0, 1],
340
+ },
341
+ {
342
+ id: 'torso-armor', name: 'Armor Torso', category: 'torso', slot: 'torso',
343
+ anchorX: 5, anchorY: 0, zOrder: 5, tags: ['armor', 'knight'],
344
+ pixels: { S: TORSO_ARMOR_S },
345
+ recolorableIndices: [0, 1, 2],
346
+ },
347
+ {
348
+ id: 'torso-robe', name: 'Robe Torso', category: 'torso', slot: 'torso',
349
+ anchorX: 5, anchorY: 0, zOrder: 5, tags: ['robe', 'wizard', 'long'],
350
+ pixels: { S: TORSO_ROBE_S },
351
+ recolorableIndices: [0, 1, 2],
352
+ },
353
+ // ── Arms ──
354
+ {
355
+ id: 'arm-basic', name: 'Basic Arm', category: 'arm', slot: 'leftArm',
356
+ anchorX: 1, anchorY: 0, zOrder: 6, tags: ['basic', 'bare'],
357
+ pixels: { S: ARM_BASIC_S },
358
+ },
359
+ {
360
+ id: 'arm-armored', name: 'Armored Arm', category: 'arm', slot: 'leftArm',
361
+ anchorX: 2, anchorY: 0, zOrder: 6, tags: ['armor', 'knight'],
362
+ pixels: { S: ARM_ARMORED_S },
363
+ recolorableIndices: [0, 1],
364
+ },
365
+ // ── Legs ──
366
+ {
367
+ id: 'leg-basic', name: 'Basic Leg', category: 'leg', slot: 'leftLeg',
368
+ anchorX: 1, anchorY: 0, zOrder: 3, tags: ['basic', 'pants'],
369
+ pixels: { S: LEG_BASIC_S },
370
+ recolorableIndices: [0, 1],
371
+ },
372
+ {
373
+ id: 'leg-boot', name: 'Boot Leg', category: 'leg', slot: 'leftLeg',
374
+ anchorX: 2, anchorY: 0, zOrder: 3, tags: ['boot', 'heavy'],
375
+ pixels: { S: LEG_BOOT_S },
376
+ recolorableIndices: [0, 1],
377
+ },
378
+ // ── Hats ──
379
+ {
380
+ id: 'hat-wizard', name: 'Wizard Hat', category: 'hat', slot: 'head',
381
+ anchorX: 5, anchorY: 7, zOrder: 13, tags: ['wizard', 'magic'],
382
+ pixels: { S: HAT_WIZARD_S },
383
+ recolorableIndices: [0, 1, 2],
384
+ },
385
+ {
386
+ id: 'hat-knight', name: 'Knight Helmet', category: 'helmet', slot: 'head',
387
+ anchorX: 5, anchorY: 5, zOrder: 13, tags: ['knight', 'armor'],
388
+ pixels: { S: HAT_KNIGHT_S },
389
+ recolorableIndices: [0, 1, 2],
390
+ },
391
+ {
392
+ id: 'hat-crown', name: 'Crown', category: 'hat', slot: 'head',
393
+ anchorX: 5, anchorY: 4, zOrder: 14, tags: ['royal', 'king'],
394
+ pixels: { S: HAT_CROWN_S },
395
+ recolorableIndices: [0, 1, 2],
396
+ },
397
+ {
398
+ id: 'hat-cap', name: 'Cap', category: 'hat', slot: 'head',
399
+ anchorX: 4, anchorY: 4, zOrder: 13, tags: ['casual', 'cap'],
400
+ pixels: { S: HAT_CAP_S },
401
+ recolorableIndices: [0, 1],
402
+ },
403
+ // ── Weapons ──
404
+ {
405
+ id: 'weapon-sword', name: 'Sword', category: 'weapon', slot: 'rightHand',
406
+ anchorX: 1, anchorY: 7, zOrder: 15, tags: ['sword', 'melee'],
407
+ pixels: { S: WEAPON_SWORD_S },
408
+ },
409
+ {
410
+ id: 'weapon-staff', name: 'Staff', category: 'weapon', slot: 'rightHand',
411
+ anchorX: 1, anchorY: 2, zOrder: 15, tags: ['staff', 'magic'],
412
+ pixels: { S: WEAPON_STAFF_S },
413
+ },
414
+ {
415
+ id: 'weapon-bow', name: 'Bow', category: 'weapon', slot: 'rightHand',
416
+ anchorX: 0, anchorY: 5, zOrder: 15, tags: ['bow', 'ranged'],
417
+ pixels: { S: WEAPON_BOW_S },
418
+ },
419
+ // ── Shields ──
420
+ {
421
+ id: 'shield-round', name: 'Round Shield', category: 'shield', slot: 'leftHand',
422
+ anchorX: 3, anchorY: 3, zOrder: 7, tags: ['shield', 'defense'],
423
+ pixels: { S: SHIELD_ROUND_S },
424
+ recolorableIndices: [0, 1, 2],
425
+ },
426
+ ];
427
+ function charAssembly(name, parts, w = 32, h = 32) {
428
+ return {
429
+ id: `char-${name.toLowerCase().replace(/\s+/g, '-')}`,
430
+ name,
431
+ parts,
432
+ skeletonId: 'basic-humanoid',
433
+ canvasWidth: w,
434
+ canvasHeight: h,
435
+ projection: 'sideView',
436
+ };
437
+ }
438
+ const CHARACTER_PRESETS = [
439
+ {
440
+ id: 'preset-warrior', name: 'Warrior', description: 'Knight with armor and sword',
441
+ tags: ['knight', 'armor', 'melee'],
442
+ assembly: charAssembly('Warrior', [
443
+ { partId: 'leg-boot', offsetX: 10, offsetY: 24 },
444
+ { partId: 'leg-boot', offsetX: 18, offsetY: 24, flipH: true },
445
+ { partId: 'torso-armor', offsetX: 11, offsetY: 16 },
446
+ { partId: 'arm-armored', offsetX: 7, offsetY: 17 },
447
+ { partId: 'arm-armored', offsetX: 21, offsetY: 17, flipH: true },
448
+ { partId: 'head-round', offsetX: 12, offsetY: 8 },
449
+ { partId: 'hat-knight', offsetX: 11, offsetY: 3 },
450
+ { partId: 'weapon-sword', offsetX: 24, offsetY: 12 },
451
+ { partId: 'shield-round', offsetX: 3, offsetY: 16 },
452
+ ]),
453
+ },
454
+ {
455
+ id: 'preset-mage', name: 'Mage', description: 'Wizard with robe and staff',
456
+ tags: ['wizard', 'magic', 'ranged'],
457
+ assembly: charAssembly('Mage', [
458
+ { partId: 'leg-basic', offsetX: 11, offsetY: 24 },
459
+ { partId: 'leg-basic', offsetX: 18, offsetY: 24, flipH: true },
460
+ { partId: 'torso-robe', offsetX: 11, offsetY: 14 },
461
+ { partId: 'arm-basic', offsetX: 8, offsetY: 15 },
462
+ { partId: 'arm-basic', offsetX: 22, offsetY: 15, flipH: true },
463
+ { partId: 'head-round', offsetX: 12, offsetY: 6 },
464
+ { partId: 'hat-wizard', offsetX: 11, offsetY: -2 },
465
+ { partId: 'weapon-staff', offsetX: 24, offsetY: 6 },
466
+ ]),
467
+ },
468
+ {
469
+ id: 'preset-archer', name: 'Archer', description: 'Ranger with bow',
470
+ tags: ['ranger', 'bow', 'ranged'],
471
+ assembly: charAssembly('Archer', [
472
+ { partId: 'leg-boot', offsetX: 10, offsetY: 24 },
473
+ { partId: 'leg-boot', offsetX: 18, offsetY: 24, flipH: true },
474
+ { partId: 'torso-basic', offsetX: 12, offsetY: 17 },
475
+ { partId: 'arm-basic', offsetX: 9, offsetY: 18 },
476
+ { partId: 'arm-basic', offsetX: 21, offsetY: 18, flipH: true },
477
+ { partId: 'head-round', offsetX: 12, offsetY: 9 },
478
+ { partId: 'hair-short', offsetX: 12, offsetY: 6 },
479
+ { partId: 'weapon-bow', offsetX: 23, offsetY: 14 },
480
+ ]),
481
+ },
482
+ {
483
+ id: 'preset-king', name: 'King', description: 'Royal with crown and robe',
484
+ tags: ['royal', 'king', 'npc'],
485
+ assembly: charAssembly('King', [
486
+ { partId: 'leg-basic', offsetX: 11, offsetY: 24 },
487
+ { partId: 'leg-basic', offsetX: 18, offsetY: 24, flipH: true },
488
+ { partId: 'torso-robe', offsetX: 11, offsetY: 14 },
489
+ { partId: 'arm-basic', offsetX: 8, offsetY: 15 },
490
+ { partId: 'arm-basic', offsetX: 22, offsetY: 15, flipH: true },
491
+ { partId: 'head-round', offsetX: 12, offsetY: 6 },
492
+ { partId: 'hat-crown', offsetX: 11, offsetY: 2 },
493
+ ]),
494
+ },
495
+ {
496
+ id: 'preset-villager', name: 'Villager', description: 'Simple villager NPC',
497
+ tags: ['npc', 'villager', 'simple'],
498
+ assembly: charAssembly('Villager', [
499
+ { partId: 'leg-basic', offsetX: 11, offsetY: 24 },
500
+ { partId: 'leg-basic', offsetX: 18, offsetY: 24, flipH: true },
501
+ { partId: 'torso-basic', offsetX: 12, offsetY: 17 },
502
+ { partId: 'arm-basic', offsetX: 9, offsetY: 18 },
503
+ { partId: 'arm-basic', offsetX: 21, offsetY: 18, flipH: true },
504
+ { partId: 'head-round', offsetX: 12, offsetY: 9 },
505
+ { partId: 'hair-short', offsetX: 12, offsetY: 6 },
506
+ ]),
507
+ },
508
+ {
509
+ id: 'preset-punk', name: 'Punk', description: 'Edgy character with mohawk',
510
+ tags: ['punk', 'rebellious'],
511
+ assembly: charAssembly('Punk', [
512
+ { partId: 'leg-boot', offsetX: 10, offsetY: 24 },
513
+ { partId: 'leg-boot', offsetX: 18, offsetY: 24, flipH: true },
514
+ { partId: 'torso-basic', offsetX: 12, offsetY: 17 },
515
+ { partId: 'arm-basic', offsetX: 9, offsetY: 18 },
516
+ { partId: 'arm-basic', offsetX: 21, offsetY: 18, flipH: true },
517
+ { partId: 'head-round', offsetX: 12, offsetY: 9 },
518
+ { partId: 'hair-mohawk', offsetX: 12, offsetY: 4 },
519
+ ]),
520
+ },
521
+ {
522
+ id: 'preset-chibi-hero', name: 'Chibi Hero', description: 'Cute chibi character',
523
+ tags: ['chibi', 'cute', 'hero'],
524
+ assembly: charAssembly('Chibi Hero', [
525
+ { partId: 'leg-basic', offsetX: 11, offsetY: 26 },
526
+ { partId: 'leg-basic', offsetX: 18, offsetY: 26, flipH: true },
527
+ { partId: 'torso-basic', offsetX: 12, offsetY: 19 },
528
+ { partId: 'arm-basic', offsetX: 9, offsetY: 20 },
529
+ { partId: 'arm-basic', offsetX: 21, offsetY: 20, flipH: true },
530
+ { partId: 'head-chibi', offsetX: 11, offsetY: 9 },
531
+ { partId: 'hair-spiky', offsetX: 11, offsetY: 4 },
532
+ { partId: 'weapon-sword', offsetX: 24, offsetY: 14 },
533
+ ]),
534
+ },
535
+ {
536
+ id: 'preset-princess', name: 'Princess', description: 'Royal princess with crown and long hair',
537
+ tags: ['royal', 'princess', 'npc'],
538
+ assembly: charAssembly('Princess', [
539
+ { partId: 'leg-basic', offsetX: 11, offsetY: 24 },
540
+ { partId: 'leg-basic', offsetX: 18, offsetY: 24, flipH: true },
541
+ { partId: 'torso-robe', offsetX: 11, offsetY: 14 },
542
+ { partId: 'arm-basic', offsetX: 8, offsetY: 15 },
543
+ { partId: 'arm-basic', offsetX: 22, offsetY: 15, flipH: true },
544
+ { partId: 'head-round', offsetX: 12, offsetY: 6 },
545
+ { partId: 'hair-long', offsetX: 11, offsetY: 3 },
546
+ { partId: 'hat-crown', offsetX: 11, offsetY: 2 },
547
+ ]),
548
+ },
549
+ ];
550
+ /** Initialize: register all character parts */
551
+ function initCharacterParts() {
552
+ registerParts(CHARACTER_PARTS);
553
+ }
554
+
555
+ export { CHARACTER_PARTS, CHARACTER_PRESETS, CLOTHING_PALETTES, HAIR_PALETTES, SKIN_PALETTES, initCharacterParts };
556
+ //# sourceMappingURL=characterGeneratorPresets.js.map