spawnpoint-studio 0.3.0__tar.gz → 0.3.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 (164) hide show
  1. {spawnpoint_studio-0.3.0/compiler/spawnpoint_studio.egg-info → spawnpoint_studio-0.3.2}/PKG-INFO +7 -2
  2. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/README.md +6 -1
  3. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/analyze.py +5 -0
  4. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/cli.py +8 -0
  5. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/graph.py +1 -0
  6. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/llm_server.py +1 -1
  7. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/ai.py +6 -0
  8. spawnpoint_studio-0.3.2/compiler/spawnpoint/sprites/cartoon.py +1010 -0
  9. spawnpoint_studio-0.3.2/compiler/spawnpoint/sprites/chibi.py +612 -0
  10. spawnpoint_studio-0.3.2/compiler/spawnpoint/sprites/creatures.py +337 -0
  11. spawnpoint_studio-0.3.2/compiler/spawnpoint/sprites/gallery.py +67 -0
  12. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/generate.py +225 -38
  13. spawnpoint_studio-0.3.2/compiler/spawnpoint/sprites/items.py +205 -0
  14. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/assemble.py +81 -7
  15. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/edits.py +1 -1
  16. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/prompts.py +20 -3
  17. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2/compiler/spawnpoint_studio.egg-info}/PKG-INFO +7 -2
  18. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint_studio.egg-info/SOURCES.txt +4 -0
  19. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_sprites.py +303 -3
  20. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_studio.py +4 -2
  21. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/projectile_component.gd +4 -0
  22. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/build.gd +1 -0
  23. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/pyproject.toml +1 -1
  24. spawnpoint_studio-0.3.0/compiler/spawnpoint/sprites/cartoon.py +0 -477
  25. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/LICENSE +0 -0
  26. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/MANIFEST.in +0 -0
  27. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/__init__.py +0 -0
  28. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/build.py +0 -0
  29. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/cockpit/__init__.py +0 -0
  30. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/cockpit/server.py +0 -0
  31. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/cockpit/static/app.css +0 -0
  32. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/cockpit/static/app.js +0 -0
  33. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/cockpit/static/index.html +0 -0
  34. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/demo.py +0 -0
  35. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/demo_touch.js +0 -0
  36. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/diagnostics.py +0 -0
  37. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/expr.py +0 -0
  38. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/gif.py +0 -0
  39. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/godot.py +0 -0
  40. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/level.py +0 -0
  41. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/manifest.py +0 -0
  42. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/playtest/__init__.py +0 -0
  43. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/playtest/report.py +0 -0
  44. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/playtest/runner.py +0 -0
  45. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/playtest/tuner.py +0 -0
  46. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/project.py +0 -0
  47. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/py.typed +0 -0
  48. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/rules.py +0 -0
  49. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sfx.py +0 -0
  50. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/__init__.py +0 -0
  51. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/contour.py +0 -0
  52. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/importer.py +0 -0
  53. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/motion.py +0 -0
  54. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/palettes.py +0 -0
  55. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/resolve.py +0 -0
  56. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/scenery.py +0 -0
  57. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/spriteset.py +0 -0
  58. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/sprites/tiles.py +0 -0
  59. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/__init__.py +0 -0
  60. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/brief.py +0 -0
  61. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/creative.py +0 -0
  62. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/dataset.py +0 -0
  63. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/genres.py +0 -0
  64. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/levelgen.py +0 -0
  65. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/llm.py +0 -0
  66. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/orchestrator.py +0 -0
  67. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/web.py +0 -0
  68. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio/webcheck.py +0 -0
  69. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint/studio_cli.py +0 -0
  70. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint_studio.egg-info/dependency_links.txt +0 -0
  71. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint_studio.egg-info/entry_points.txt +0 -0
  72. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint_studio.egg-info/requires.txt +0 -0
  73. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/spawnpoint_studio.egg-info/top_level.txt +0 -0
  74. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/conftest.py +0 -0
  75. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_ai_sprites.py +0 -0
  76. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_analyze.py +0 -0
  77. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_cockpit.py +0 -0
  78. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_demo.py +0 -0
  79. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_e2e.py +0 -0
  80. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_expr.py +0 -0
  81. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_genres.py +0 -0
  82. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_gif.py +0 -0
  83. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_godot_library.py +0 -0
  84. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_graph.py +0 -0
  85. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_level.py +0 -0
  86. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_live_llm.py +0 -0
  87. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_manifest.py +0 -0
  88. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_playtest.py +0 -0
  89. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_rules.py +0 -0
  90. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_sfx.py +0 -0
  91. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/compiler/tests/test_web.py +0 -0
  92. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/castle_defense.json +0 -0
  93. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/coin_hopper.json +0 -0
  94. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/dino_eggs.json +0 -0
  95. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/knight_quest.json +0 -0
  96. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/neon_arena.json +0 -0
  97. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/night_survivor.json +0 -0
  98. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/ninja_rescue.json +0 -0
  99. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/pixel_arena.json +0 -0
  100. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/pixel_hopper.json +0 -0
  101. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/star_run.json +0 -0
  102. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/examples/sunny_farm.json +0 -0
  103. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/aim_component.gd +0 -0
  104. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/animator_component.gd +0 -0
  105. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/base_component.gd +0 -0
  106. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/bubble_board_component.gd +0 -0
  107. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/chase_ai_component.gd +0 -0
  108. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/collectible_component.gd +0 -0
  109. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/crop_pest_component.gd +0 -0
  110. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/experience_component.gd +0 -0
  111. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/farm_plot_component.gd +0 -0
  112. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/farmer_component.gd +0 -0
  113. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/flight_path_component.gd +0 -0
  114. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/gate_component.gd +0 -0
  115. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/ground_patch_component.gd +0 -0
  116. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/health_bar_component.gd +0 -0
  117. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/health_component.gd +0 -0
  118. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/hitbox_component.gd +0 -0
  119. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/hurtbox_component.gd +0 -0
  120. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/juice_component.gd +0 -0
  121. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/level_up_menu_component.gd +0 -0
  122. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/market_component.gd +0 -0
  123. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/path_follower_component.gd +0 -0
  124. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/patrol_ai_component.gd +0 -0
  125. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/platformer_movement_component.gd +0 -0
  126. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/player_input_component.gd +0 -0
  127. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/shmup_ship_component.gd +0 -0
  128. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/spawner_component.gd +0 -0
  129. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/stomp_component.gd +0 -0
  130. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/top_down_movement_component.gd +0 -0
  131. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/tower_brain_component.gd +0 -0
  132. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/tower_builder_component.gd +0 -0
  133. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/tower_slot_component.gd +0 -0
  134. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/trigger_zone_component.gd +0 -0
  135. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/wave_spawner_component.gd +0 -0
  136. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/weapon_component.gd +0 -0
  137. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/components/xp_orb_component.gd +0 -0
  138. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/manifest.json +0 -0
  139. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/camera_rig.gd +0 -0
  140. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/cockpit.gd +0 -0
  141. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/entity_core.gd +0 -0
  142. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/fx.gd +0 -0
  143. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/game_state.gd +0 -0
  144. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/hud.gd +0 -0
  145. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/level.gd +0 -0
  146. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/sfx.gd +0 -0
  147. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/sp.gd +0 -0
  148. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/runtime/world.gd +0 -0
  149. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/shaders/flash.gdshader +0 -0
  150. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/shaders/floor_grid.gdshader +0 -0
  151. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/build.tscn +0 -0
  152. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/capture.gd +0 -0
  153. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/capture.tscn +0 -0
  154. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/dump_manifest.gd +0 -0
  155. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/dump_manifest.tscn +0 -0
  156. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/playtest.gd +0 -0
  157. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/playtest.tscn +0 -0
  158. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/playtest_nav.gd +0 -0
  159. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/record.gd +0 -0
  160. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/record.tscn +0 -0
  161. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/smoke.gd +0 -0
  162. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/godot/addons/spawn_point/tools/smoke.tscn +0 -0
  163. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/setup.cfg +0 -0
  164. {spawnpoint_studio-0.3.0 → spawnpoint_studio-0.3.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spawnpoint-studio
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Turn a sentence into a juicy, playable Godot 4 game — locally, on a consumer GPU.
5
5
  Author: smoky1496
6
6
  License: MIT
@@ -156,7 +156,7 @@ Only what you asked for changes, and the level layout is kept. Prompts can be in
156
156
  **The model.** [SpawnPoint-Coder-7B](https://huggingface.co/smoky1496/SpawnPoint-Coder-7B-AWQ) is a 7B model
157
157
  fine-tuned to generate Godot 4 games through this pipeline: it writes the game design, tweaks and entity
158
158
  edits as strict JSON, and the compiler turns that into Godot scenes and GDScript. It runs on a single 12 GB
159
- GPU (AWQ 4-bit). v5 adds **side-scrolling shooters** (flight patterns, power-ups, a boss), reads **Vietnamese prompts directly** and writes a small per-genre format instead of one big form. The downloadable AWQ build gets 75% of a sealed set of 16 human-written prompts for shooters and the v4 fixes fully right, and 77% of 30 human-written game ideas in English and Vietnamese (v4 scored a bit higher on its older sets; the model card lists every number and where v5 is behind). The GGUF Q4_K_M build scores 73% on those 30. Older models still work with `SPAWNPOINT_BRIEF_FORMAT=v4`. It is tuned for the 2D game kinds Spawn Point builds; other genres are no better than a general 7B coder. `spawnpoint llm up` downloads and serves it: the AWQ build on vLLM when
159
+ GPU (AWQ 4-bit). v5 added **side-scrolling shooters** (flight patterns, power-ups, a boss), **Vietnamese prompts read directly** and a small per-genre format instead of one big form; v5.1 fixes prompts that name the hero only indirectly ("a tank shooting monsters"). The downloadable AWQ build gets 88% of a sealed set of 16 human-written prompts for shooters and the v4 fixes fully right, and 80% of 30 human-written game ideas in English and Vietnamese (v4: 87% on those 30; the model card lists every number and where v5.1 is behind). The GGUF Q4_K_M build scores 83% on those 30. Older models still work with `SPAWNPOINT_BRIEF_FORMAT=v4`. It is tuned for the 2D game kinds Spawn Point builds; other genres are no better than a general 7B coder. `spawnpoint llm up` downloads and serves it: the AWQ build on vLLM when
160
160
  Docker and an NVIDIA GPU are present, otherwise the [GGUF build](https://huggingface.co/smoky1496/SpawnPoint-Coder-7B-GGUF)
161
161
  (Q4_K_M, ~4.7 GB) in Ollama. Force one with `--backend vllm|ollama`.
162
162
 
@@ -204,8 +204,13 @@ spawnpoint sprites import hero.png --grid 32x32 --anim idle=0-3 --anim run=4-9
204
204
  spawnpoint sprites import sheet.png --rows idle,run,jump # auto-sliced by transparent gutters
205
205
  spawnpoint sprites import kenney_frames/ # idle_0.png, walk_1.png, ...
206
206
  spawnpoint sprites preview assets/sprites/Knight.sprite.json # contact sheet + collision outline
207
+ spawnpoint sprites gallery --style cartoon -o gallery.png # every kind on one sheet, for review
207
208
  ```
208
209
 
210
+ Names pick the art: `Knight` gets a helmet and shield, `SkeletonArcher` a skull and a bow (and shoots
211
+ arrows), `HealthPotion` is a potion, `GoldKey` a key. Layer 2 scatters trees, bushes and rocks that
212
+ match the palette, drawn behind everything and without collision.
213
+
209
214
  Record a clip of any built game to share it (a window opens for a few seconds; autopilot plays):
210
215
 
211
216
  ```bash
@@ -132,7 +132,7 @@ Only what you asked for changes, and the level layout is kept. Prompts can be in
132
132
  **The model.** [SpawnPoint-Coder-7B](https://huggingface.co/smoky1496/SpawnPoint-Coder-7B-AWQ) is a 7B model
133
133
  fine-tuned to generate Godot 4 games through this pipeline: it writes the game design, tweaks and entity
134
134
  edits as strict JSON, and the compiler turns that into Godot scenes and GDScript. It runs on a single 12 GB
135
- GPU (AWQ 4-bit). v5 adds **side-scrolling shooters** (flight patterns, power-ups, a boss), reads **Vietnamese prompts directly** and writes a small per-genre format instead of one big form. The downloadable AWQ build gets 75% of a sealed set of 16 human-written prompts for shooters and the v4 fixes fully right, and 77% of 30 human-written game ideas in English and Vietnamese (v4 scored a bit higher on its older sets; the model card lists every number and where v5 is behind). The GGUF Q4_K_M build scores 73% on those 30. Older models still work with `SPAWNPOINT_BRIEF_FORMAT=v4`. It is tuned for the 2D game kinds Spawn Point builds; other genres are no better than a general 7B coder. `spawnpoint llm up` downloads and serves it: the AWQ build on vLLM when
135
+ GPU (AWQ 4-bit). v5 added **side-scrolling shooters** (flight patterns, power-ups, a boss), **Vietnamese prompts read directly** and a small per-genre format instead of one big form; v5.1 fixes prompts that name the hero only indirectly ("a tank shooting monsters"). The downloadable AWQ build gets 88% of a sealed set of 16 human-written prompts for shooters and the v4 fixes fully right, and 80% of 30 human-written game ideas in English and Vietnamese (v4: 87% on those 30; the model card lists every number and where v5.1 is behind). The GGUF Q4_K_M build scores 83% on those 30. Older models still work with `SPAWNPOINT_BRIEF_FORMAT=v4`. It is tuned for the 2D game kinds Spawn Point builds; other genres are no better than a general 7B coder. `spawnpoint llm up` downloads and serves it: the AWQ build on vLLM when
136
136
  Docker and an NVIDIA GPU are present, otherwise the [GGUF build](https://huggingface.co/smoky1496/SpawnPoint-Coder-7B-GGUF)
137
137
  (Q4_K_M, ~4.7 GB) in Ollama. Force one with `--backend vllm|ollama`.
138
138
 
@@ -180,8 +180,13 @@ spawnpoint sprites import hero.png --grid 32x32 --anim idle=0-3 --anim run=4-9
180
180
  spawnpoint sprites import sheet.png --rows idle,run,jump # auto-sliced by transparent gutters
181
181
  spawnpoint sprites import kenney_frames/ # idle_0.png, walk_1.png, ...
182
182
  spawnpoint sprites preview assets/sprites/Knight.sprite.json # contact sheet + collision outline
183
+ spawnpoint sprites gallery --style cartoon -o gallery.png # every kind on one sheet, for review
183
184
  ```
184
185
 
186
+ Names pick the art: `Knight` gets a helmet and shield, `SkeletonArcher` a skull and a bow (and shoots
187
+ arrows), `HealthPotion` is a potion, `GoldKey` a key. Layer 2 scatters trees, bushes and rocks that
188
+ match the palette, drawn behind everything and without collision.
189
+
185
190
  Record a clip of any built game to share it (a window opens for a few seconds; autopilot plays):
186
191
 
187
192
  ```bash
@@ -347,6 +347,7 @@ class _Analyzer:
347
347
  "eye": ent.body == "character" and sprite is None,
348
348
  "pivot": "bottom" if g.genre == "platformer" and ent.body == "character" else "center",
349
349
  "sprite": sprite_resolve.plan_entry(name, sprite) if sprite is not None else None,
350
+ "z": -1 if ent.decor else 0,
350
351
  })
351
352
  entities[-1]["components"] = comps
352
353
 
@@ -413,6 +414,8 @@ class _Analyzer:
413
414
  }
414
415
 
415
416
  def _layer(self, ent: Entity, team: str) -> int:
417
+ if ent.decor:
418
+ return 0
416
419
  if ent.body == "character":
417
420
  return {"player": L_PLAYER, "enemy": L_ENEMY}.get(team, 0)
418
421
  if ent.body == "static":
@@ -420,6 +423,8 @@ class _Analyzer:
420
423
  return 0 if "Projectile" in ent.components else L_PICKUP
421
424
 
422
425
  def _mask(self, ent: Entity) -> int:
426
+ if ent.decor:
427
+ return 0
423
428
  if ent.body == "character":
424
429
  return L_WORLD
425
430
  if ent.body == "static":
@@ -121,6 +121,9 @@ def main(argv: list[str] | None = None) -> int:
121
121
  sv2.add_argument("sprite", type=Path)
122
122
  sv2.add_argument("-o", "--out", type=Path)
123
123
  sps.add_parser("kinds", help="list the procedural sprite kinds")
124
+ sga = sps.add_parser("gallery", help="render one contact sheet of every procedural kind, for review")
125
+ sga.add_argument("--style", choices=["pixel", "fine", "cartoon"], default="fine")
126
+ sga.add_argument("-o", "--out", type=Path, default=Path("sprite-gallery.png"))
124
127
 
125
128
  ds = sub.add_parser("dataset", help="recorded fine-tuning data")
126
129
  ds.add_argument("action", choices=["stats", "path"])
@@ -272,6 +275,11 @@ def _sprites(args) -> int:
272
275
  for k, spec in gen.KINDS.items():
273
276
  print(f"{k:<8} {spec.size[0]}x{spec.size[1]} px animations: {', '.join(spec.anims)}")
274
277
  return 0
278
+ if args.sprites_cmd == "gallery":
279
+ from .sprites.gallery import gallery
280
+ gallery(args.style).save(args.out)
281
+ print(f"Wrote {args.out}")
282
+ return 0
275
283
  if args.sprites_cmd == "preview":
276
284
  s = load(args.sprite)
277
285
  out = args.out or args.sprite.with_suffix("").with_suffix(".preview.png")
@@ -75,6 +75,7 @@ class Entity(_Model):
75
75
  sprite: Union[str, SpriteRef, None] = None
76
76
  components: dict[str, dict[str, Any]] = Field(default_factory=dict)
77
77
  juice: Union[Literal["none"], dict[str, Any], None] = None
78
+ decor: bool = Field(default=False, description="scenery (trees, bushes, rocks): drawn behind everything, no collision")
78
79
 
79
80
 
80
81
  class Level(_Model):
@@ -19,7 +19,7 @@ IMAGE = os.environ.get("VLLM_IMAGE", "vllm/vllm-openai:v0.10.2") # CUDA 12.8: N
19
19
  DEFAULT_MODEL = "smoky1496/SpawnPoint-Coder-7B-AWQ"
20
20
  MODEL = os.environ.get("SPAWNPOINT_MODEL", DEFAULT_MODEL)
21
21
  # This Spawn Point version speaks the v5 per-genre format: pin the weights that do, whatever the repo's main becomes.
22
- REVISION = os.environ.get("SPAWNPOINT_MODEL_REVISION") or ("v5-release" if MODEL == DEFAULT_MODEL else "")
22
+ REVISION = os.environ.get("SPAWNPOINT_MODEL_REVISION") or ("v5.1-release" if MODEL == DEFAULT_MODEL else "")
23
23
  SERVED = "SpawnPoint-Coder-7B"
24
24
  OLLAMA_MODEL = os.environ.get("SPAWNPOINT_OLLAMA_MODEL", "hf.co/smoky1496/SpawnPoint-Coder-7B-GGUF:Q4_K_M")
25
25
  OLLAMA_PORT = 11434
@@ -42,6 +42,12 @@ KIND_HINT = {
42
42
  "heart": "a single heart pickup", "orb": "a single glowing orb", "door": "a tall wooden door",
43
43
  "exit": "a glowing exit doorway", "portal": "a swirling magic portal", "spikes": "a row of metal spikes",
44
44
  "bullet": "a small glowing projectile",
45
+ "beast": "a small four-legged animal, side view", "spider": "a small spider, side view",
46
+ "dragon": "a small winged dragon, side view", "ghost": "a small floating ghost", "snake": "a small snake, side view",
47
+ "key": "a single golden key", "potion": "a single potion bottle with a cork", "scroll": "a single rolled paper scroll",
48
+ "bomb": "a single round black bomb with a lit fuse", "chest": "a single wooden treasure chest",
49
+ "arrow": "a single arrow pointing right", "tree": "a single tree", "bush": "a single round bush",
50
+ "rock": "a single boulder",
45
51
  }
46
52
 
47
53