pixospritz-core 0.10.1 → 1.0.1

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 (157) hide show
  1. package/README.md +36 -286
  2. package/dist/bundle.js +13 -3
  3. package/dist/bundle.js.map +1 -1
  4. package/dist/style.css +1 -0
  5. package/package.json +43 -44
  6. package/src/components/WebGLView.jsx +318 -0
  7. package/src/css/pixos.css +372 -0
  8. package/src/engine/actions/animate.js +41 -0
  9. package/src/engine/actions/changezone.js +135 -0
  10. package/src/engine/actions/chat.js +109 -0
  11. package/src/engine/actions/dialogue.js +90 -0
  12. package/src/engine/actions/face.js +22 -0
  13. package/src/engine/actions/greeting.js +28 -0
  14. package/src/engine/actions/interact.js +86 -0
  15. package/src/engine/actions/move.js +67 -0
  16. package/src/engine/actions/patrol.js +109 -0
  17. package/src/engine/actions/prompt.js +185 -0
  18. package/src/engine/actions/script.js +42 -0
  19. package/src/engine/core/audio/AudioSystem.js +543 -0
  20. package/src/engine/core/cutscene/PxcPlayer.js +956 -0
  21. package/src/engine/core/cutscene/manager.js +243 -0
  22. package/src/engine/core/database/index.js +75 -0
  23. package/src/engine/core/debug/index.js +371 -0
  24. package/src/engine/core/hud/index.js +765 -0
  25. package/src/engine/core/index.js +540 -0
  26. package/src/engine/core/input/gamepad/Controller.js +71 -0
  27. package/src/engine/core/input/gamepad/ControllerButtons.js +231 -0
  28. package/src/engine/core/input/gamepad/ControllerStick.js +173 -0
  29. package/src/engine/core/input/gamepad/index.js +592 -0
  30. package/src/engine/core/input/keyboard.js +196 -0
  31. package/src/engine/core/input/manager.js +485 -0
  32. package/src/engine/core/input/mouse.js +203 -0
  33. package/src/engine/core/input/touch.js +175 -0
  34. package/src/engine/core/mode/manager.js +199 -0
  35. package/src/engine/core/net/manager.js +535 -0
  36. package/src/engine/core/queue/action.js +83 -0
  37. package/src/engine/core/queue/event.js +82 -0
  38. package/src/engine/core/queue/index.js +44 -0
  39. package/src/engine/core/queue/loadable.js +33 -0
  40. package/src/engine/core/render/CameraEffects.js +494 -0
  41. package/src/engine/core/render/FrustumCuller.js +417 -0
  42. package/src/engine/core/render/LODManager.js +285 -0
  43. package/src/engine/core/render/ParticleManager.js +529 -0
  44. package/src/engine/core/render/TextureAtlas.js +465 -0
  45. package/src/engine/core/render/camera.js +338 -0
  46. package/src/engine/core/render/light.js +197 -0
  47. package/src/engine/core/render/manager.js +1079 -0
  48. package/src/engine/core/render/shaders.js +110 -0
  49. package/src/engine/core/render/skybox.js +342 -0
  50. package/src/engine/core/resource/manager.js +133 -0
  51. package/src/engine/core/resource/object.js +611 -0
  52. package/src/engine/core/resource/texture.js +103 -0
  53. package/src/engine/core/resource/tileset.js +177 -0
  54. package/src/engine/core/scene/avatar.js +215 -0
  55. package/src/engine/core/scene/speech.js +138 -0
  56. package/src/engine/core/scene/sprite.js +702 -0
  57. package/src/engine/core/scene/spritz.js +189 -0
  58. package/src/engine/core/scene/world.js +681 -0
  59. package/src/engine/core/scene/zone.js +1167 -0
  60. package/src/engine/core/store/index.js +110 -0
  61. package/src/engine/dynamic/animatedSprite.js +64 -0
  62. package/src/engine/dynamic/animatedTile.js +98 -0
  63. package/src/engine/dynamic/avatar.js +110 -0
  64. package/src/engine/dynamic/map.js +174 -0
  65. package/src/engine/dynamic/sprite.js +255 -0
  66. package/src/engine/dynamic/spritz.js +119 -0
  67. package/src/engine/events/EventSystem.js +609 -0
  68. package/src/engine/events/camera.js +142 -0
  69. package/src/engine/events/chat.js +75 -0
  70. package/src/engine/events/menu.js +186 -0
  71. package/src/engine/scripting/CallbackManager.js +514 -0
  72. package/src/engine/scripting/PixoScriptInterpreter.js +81 -0
  73. package/src/engine/scripting/PixoScriptLibrary.js +704 -0
  74. package/src/engine/shaders/effects/index.js +450 -0
  75. package/src/engine/shaders/fs.js +222 -0
  76. package/src/engine/shaders/particles/fs.js +41 -0
  77. package/src/engine/shaders/particles/vs.js +61 -0
  78. package/src/engine/shaders/picker/fs.js +34 -0
  79. package/src/engine/shaders/picker/init.js +62 -0
  80. package/src/engine/shaders/picker/vs.js +42 -0
  81. package/src/engine/shaders/pxsl/README.md +250 -0
  82. package/src/engine/shaders/pxsl/index.js +25 -0
  83. package/src/engine/shaders/pxsl/library.js +608 -0
  84. package/src/engine/shaders/pxsl/manager.js +338 -0
  85. package/src/engine/shaders/pxsl/specification.js +363 -0
  86. package/src/engine/shaders/pxsl/transpiler.js +753 -0
  87. package/src/engine/shaders/skybox/cosmic/fs.js +147 -0
  88. package/src/engine/shaders/skybox/cosmic/vs.js +23 -0
  89. package/src/engine/shaders/skybox/matrix/fs.js +127 -0
  90. package/src/engine/shaders/skybox/matrix/vs.js +23 -0
  91. package/src/engine/shaders/skybox/morning/fs.js +109 -0
  92. package/src/engine/shaders/skybox/morning/vs.js +23 -0
  93. package/src/engine/shaders/skybox/neon/fs.js +119 -0
  94. package/src/engine/shaders/skybox/neon/vs.js +23 -0
  95. package/src/engine/shaders/skybox/sky/fs.js +114 -0
  96. package/src/engine/shaders/skybox/sky/vs.js +23 -0
  97. package/src/engine/shaders/skybox/sunset/fs.js +101 -0
  98. package/src/engine/shaders/skybox/sunset/vs.js +23 -0
  99. package/src/engine/shaders/transition/blur/fs.js +42 -0
  100. package/src/engine/shaders/transition/blur/vs.js +26 -0
  101. package/src/engine/shaders/transition/cross/fs.js +36 -0
  102. package/src/engine/shaders/transition/cross/vs.js +26 -0
  103. package/src/engine/shaders/transition/crossBlur/fs.js +41 -0
  104. package/src/engine/shaders/transition/crossBlur/vs.js +25 -0
  105. package/src/engine/shaders/transition/dissolve/fs.js +78 -0
  106. package/src/engine/shaders/transition/dissolve/vs.js +24 -0
  107. package/src/engine/shaders/transition/fade/fs.js +31 -0
  108. package/src/engine/shaders/transition/fade/vs.js +27 -0
  109. package/src/engine/shaders/transition/iris/fs.js +52 -0
  110. package/src/engine/shaders/transition/iris/vs.js +24 -0
  111. package/src/engine/shaders/transition/pixelate/fs.js +44 -0
  112. package/src/engine/shaders/transition/pixelate/vs.js +24 -0
  113. package/src/engine/shaders/transition/slide/fs.js +53 -0
  114. package/src/engine/shaders/transition/slide/vs.js +24 -0
  115. package/src/engine/shaders/transition/swirl/fs.js +39 -0
  116. package/src/engine/shaders/transition/swirl/vs.js +26 -0
  117. package/src/engine/shaders/transition/wipe/fs.js +50 -0
  118. package/src/engine/shaders/transition/wipe/vs.js +24 -0
  119. package/src/engine/shaders/vs.js +60 -0
  120. package/src/engine/utils/CameraController.js +506 -0
  121. package/src/engine/utils/ObjHelper.js +551 -0
  122. package/src/engine/utils/debug-logger.js +110 -0
  123. package/src/engine/utils/enums.js +305 -0
  124. package/src/engine/utils/generator.js +156 -0
  125. package/src/engine/utils/index.js +21 -0
  126. package/src/engine/utils/loaders/ActionLoader.js +77 -0
  127. package/src/engine/utils/loaders/AudioLoader.js +157 -0
  128. package/src/engine/utils/loaders/EventLoader.js +66 -0
  129. package/src/engine/utils/loaders/ObjectLoader.js +67 -0
  130. package/src/engine/utils/loaders/SpriteLoader.js +77 -0
  131. package/src/engine/utils/loaders/TilesetLoader.js +103 -0
  132. package/src/engine/utils/loaders/index.js +21 -0
  133. package/src/engine/utils/math/matrix4.js +367 -0
  134. package/src/engine/utils/math/vector.js +458 -0
  135. package/src/engine/utils/obj/_old_js/index.js +46 -0
  136. package/src/engine/utils/obj/_old_js/layout.js +308 -0
  137. package/src/engine/utils/obj/_old_js/material.js +711 -0
  138. package/src/engine/utils/obj/_old_js/mesh.js +761 -0
  139. package/src/engine/utils/obj/_old_js/utils.js +647 -0
  140. package/src/engine/utils/obj/index.js +24 -0
  141. package/src/engine/utils/obj/js/index.js +277 -0
  142. package/src/engine/utils/obj/js/loader.js +232 -0
  143. package/src/engine/utils/obj/layout.js +246 -0
  144. package/src/engine/utils/obj/material.js +665 -0
  145. package/src/engine/utils/obj/mesh.js +657 -0
  146. package/src/engine/utils/obj/ts/index.ts +72 -0
  147. package/src/engine/utils/obj/ts/layout.ts +265 -0
  148. package/src/engine/utils/obj/ts/material.ts +760 -0
  149. package/src/engine/utils/obj/ts/mesh.ts +785 -0
  150. package/src/engine/utils/obj/ts/utils.ts +501 -0
  151. package/src/engine/utils/obj/utils.js +428 -0
  152. package/src/engine/utils/resources.js +18 -0
  153. package/src/index.jsx +55 -0
  154. package/src/spritz/player.js +18 -0
  155. package/src/spritz/readme.md +18 -0
  156. package/LICENSE +0 -437
  157. package/dist/bundle.js.LICENSE.txt +0 -31
package/README.md CHANGED
@@ -1,302 +1,52 @@
1
- # Calliope Pixos Plugin
1
+ # pixospritz-core
2
2
 
3
- This plugin is for [Calliope](https://calliope.site) and is designed to provide Pixospritz player functionality.
3
+ The core WebGL-based game engine for PixoSpritz.
4
4
 
5
- ## Pixospritz Tutorial Guide: Building a Spritz Package from the Example
5
+ ## Features
6
6
 
7
- ### Introduction to Pixospritz
7
+ - WebGL2 rendering with shader support
8
+ - Sprite and tileset management
9
+ - Map loading and rendering
10
+ - Entity/Actor system
11
+ - Event system (keyboard, mouse, touch, gamepad)
12
+ - Audio engine with BPM analysis
13
+ - Cutscene player with DSL support
14
+ - HUD/UI overlay system
8
15
 
9
- Pixospritz is a modular game engine and storytelling platform built in JavaScript/WebGL. It supports package-based content distribution, allowing games to be standalone or merged into persistent experiences. Key features include:
16
+ ## Installation
10
17
 
11
- - **Package-based design**: Games are distributed as "spritz" packages containing assets, configs, and scripts.
12
- - **Lua scripting**: Full engine API access for custom logic, triggers, callbacks, and events.
13
- - **Rendering pipeline**: WebGL with skybox shaders, tiles, sprites, models, and transitions.
14
- - **Modes, maps, and zones**: Define gameplay modes, spatial layouts, and interactive elements.
15
- - **Extensibility**: Supports multiplayer, editor integration, and runtime customization.
16
-
17
- This guide uses the `example/spritz/` folder as a complete example. We'll walk through setting up, configuring, and running a spritz package, explaining how each component works.
18
-
19
- ### Prerequisites
20
-
21
- - Node.js and npm installed.
22
- - Basic knowledge of JSON, Lua scripting, and game development concepts.
23
- - The Pixospritz engine codebase (assumed cloned in `/Users/kderbyma/Git/calliope-pixos`).
24
-
25
- ### Step 1: Understanding the Spritz Package Structure
26
-
27
- A spritz package is a ZIP archive (or folder) with a specific structure. The `example/spritz/` folder is our example package. Key folders:
28
-
29
- - `manifest.json`: Main config file defining initial zones, modes, maps, etc.
30
- - `audio/`: Sound files (e.g., MP3s).
31
- - `callbacks/`: Lua scripts for reusable functions (e.g., door interactions).
32
- - `maps/`: Zone layouts with tiles, objects, and scripts.
33
- - `models/`: 3D models (OBJ/MTL files).
34
- - `modes/`: Gameplay modes with setup/teardown/update scripts.
35
- - `sprites/`: Character/object definitions with animations.
36
- - `textures/`: Images for sprites, tiles, etc.
37
- - `tilesets/`: Tile definitions with geometry and textures.
38
- - `triggers/`: Conditional scripts for events (e.g., zone entry).
39
-
40
- The package is loaded by the engine, which parses JSON configs and executes Lua scripts.
41
-
42
- ### Step 2: Setting Up the Package
43
-
44
- 1. **Create the Folder Structure**:
45
- - Copy `example/spritz/` to a new folder, e.g., `my-spritz/`.
46
- - Ensure the structure matches the example.
47
-
48
- 2. **Install Dependencies**:
49
- - In the root project directory (`/Users/kderbyma/Git/calliope-pixos`), run `npm install`.
50
- - For the example, navigate to `example/` and run `npm install` if needed.
51
-
52
- 3. **Run the Engine**:
53
- - Start the Pixospritz engine: `npm run dev` in the root.
54
- - Open `http://localhost:3000` (or configured port) in a browser.
55
- - Load the spritz package via the editor or directly (engine supports package loading).
56
-
57
- The example package loads automatically in the `example/` app, demonstrating a dungeon room with explore/tactics modes.
58
-
59
- ### Step 3: Configuring the Manifest
60
-
61
- The `manifest.json` is the entry point. It defines global settings.
62
-
63
- Example from `example/spritz/manifest.json`:
64
-
65
- ```json
66
- {
67
- "initialZones": ["base"],
68
- "modes": ["explore", "fight", "debug", "tactics"],
69
- "maps": ["room", "dungeon-top", "dungeon-bottom"],
70
- "tilesets": ["common", "sewer"],
71
- "network": {
72
- "enabled": true,
73
- "url": "ws://localhost:8080",
74
- "authority": "server"
75
- },
76
- "sprites": ["characters/male", "npc/air-knight"],
77
- "objects": [],
78
- "textures": [],
79
- "fonts": [],
80
- "audio": []
81
- }
82
- ```
83
-
84
- - `initialZones`: Starting zones (maps) to load.
85
- - `modes`: Available gameplay modes (defined in `modes/`).
86
- - `maps`: Map IDs (folders in `maps/`).
87
- - `tilesets`: Tileset IDs (folders in `tilesets/`).
88
- - `network`: Multiplayer settings (WebSocket URL).
89
- - `sprites`: Sprite definitions (JSON files in `sprites/`).
90
- - Other arrays: Lists assets (populated by engine from folders).
91
-
92
- **How it Works**: The engine loads the manifest, initializes zones/maps, and sets up networking. Customize for your game (e.g., add new modes/maps).
93
-
94
- **Tutorial Tip**: Change `"initialZones": ["my-zone"]` and create a new map folder. Reload the engine to test.
95
-
96
- ### Step 4: Creating Maps
97
-
98
- Maps define spatial layouts using tilesets. Each map is a folder in `maps/` with `map.json` and `cells.json`.
99
-
100
- Example: `example/spritz/maps/room/map.json`:
101
-
102
- ```json
103
- {
104
- "extends": ["dungeon-top", "dungeon-bottom"],
105
- "tileset": "sewer",
106
- "bounds": [0, 0, 17, 19],
107
- "scripts": [
108
- {
109
- "id": "load-spritz",
110
- "trigger": "zone/room_clear_path"
111
- }
112
- ],
113
- "selectTrigger": "tile/select_test",
114
- "lights": [
115
- {
116
- "id": "spot-light",
117
- "pos": [2, 17, 0],
118
- "color": [1, 0, 0],
119
- "direction": [0.4, 0.8, 1],
120
- "attenuation": [0.9, 0.9, 0.9],
121
- "enabled": true
122
- }
123
- ]
124
- }
125
- ```
126
-
127
- - `extends`: Inherits from other maps.
128
- - `tileset`: References a tileset.
129
- - `bounds`: Map size.
130
- - `scripts`: Lua triggers to run.
131
- - `lights`: Lighting config (position, color, etc.).
132
-
133
- `cells.json` defines tile placements (empty in example, uses extensions).
134
-
135
- **How it Works**: Engine renders tiles based on tileset, applies lights, and runs scripts on load. Maps support procedural generation via Lua.
136
-
137
- **Tutorial Tip**: Add a new tile in `cells.json` (e.g., `{"cells": [[{"tile": "FLOOR", "x": 0, "y": 0}]]}`). Reload to see changes.
138
-
139
- ### Step 5: Defining Sprites
140
-
141
- Sprites are animated entities. Defined in JSON files in `sprites/`.
142
-
143
- Example: `example/spritz/sprites/characters/male.json`:
144
-
145
- ```json
146
- {
147
- "type": "avatar",
148
- "src": "character.png",
149
- "portraitSrc": "hero_portrait.gif",
150
- "sheetSize": [96, 384],
151
- "tileSize": [24, 48],
152
- "state": "intro",
153
- "gender": "male",
154
- "frames": {
155
- "N": [[0, 192], [24, 192], ...]
156
- },
157
- "drawOffset": { "N": [-0.25, -0.15, -1] },
158
- "hotspotOffset": [0.5, 0.5, 0],
159
- "bindCamera": true,
160
- "enableSpeech": true,
161
- "selectTrigger": "sprite/test_select",
162
- "cutouts": { "happy": "cutout_happy.png" }
163
- }
164
- ```
165
-
166
- - `type`: Entity type (avatar, npc, etc.).
167
- - `src`: Texture image.
168
- - `frames`: Animation frames by direction (N, E, S, W, etc.).
169
- - `drawOffset`: Rendering adjustments.
170
- - `bindCamera`: Follows player.
171
- - `selectTrigger`: Lua script on selection.
172
-
173
- **How it Works**: Engine loads textures, animates frames, handles interactions. Sprites can be controlled by modes or scripts.
174
-
175
- **Tutorial Tip**: Add a new sprite (e.g., copy and modify for "female"). Update `manifest.json` sprites array.
176
-
177
- ### Step 6: Configuring Tilesets
178
-
179
- Tilesets define tiles with textures and geometry. Folder in `tilesets/` with `tileset.json`.
180
-
181
- Example: `example/spritz/tilesets/common/tileset.json`:
182
-
183
- - `textures`: Maps tile names to image coords (e.g., `"FLOOR": [1, 1]`).
184
- - `geometry`: 3D models for tiles (vertices, surfaces, walkable polys).
185
- - `tiles`: Combines geometry/textures (e.g., `"FLOOR": ["FLAT_ALL", "FLOOR", 0]`).
186
-
187
- **How it Works**: Engine renders tiles as 3D meshes with textures. Supports stairs, walls, etc.
188
-
189
- **Tutorial Tip**: Add a new tile (e.g., `"MY_TILE": ["FLAT_ALL", "FLOOR", 0]`). Use in a map.
190
-
191
- ### Step 7: Defining Modes
192
-
193
- Modes control gameplay logic. Folder in `modes/` with `mode.json` and Lua scripts.
194
-
195
- Example: `example/spritz/modes/explore/mode.json`:
196
-
197
- ```json
198
- {
199
- "name": "explore",
200
- "update": "update.lua",
201
- "setup": "setup.lua"
202
- }
18
+ ```bash
19
+ npm install pixospritz-core
203
20
  ```
204
21
 
205
- `setup.lua`: Registers mode with setup/update/teardown functions.
206
-
207
- **How it Works**: Engine switches modes, calling Lua functions. Modes handle input, AI, etc.
22
+ ## Usage
208
23
 
209
- **Tutorial Tip**: Create a new mode (e.g., "combat"). Add to manifest.
210
-
211
- ### Step 8: Using Triggers, Callbacks, Actions, and Events
212
-
213
- - **Triggers**: Conditional scripts (e.g., `triggers/zone/room_load.lua` runs on zone entry).
214
- - **Callbacks**: Reusable functions (e.g., `callbacks/door_opened.lua` for door logic).
215
- - **Actions**: Engine-defined behaviors (move, chat, etc.).
216
- - **Events**: Async logic (camera, menu, etc.).
217
-
218
- Example Lua in `triggers/zone/room_load.lua`:
24
+ ```javascript
25
+ import { RenderManager, ActionQueue, GamePad } from 'pixospritz-core';
219
26
 
220
- ```lua
221
- pixos.set_mode('tactics');
222
- pixos.sync({ pixos.play_cutscene('strange-legend') });
27
+ // Initialize the engine
28
+ const renderer = new RenderManager(canvas, gl);
29
+ const gamepad = new GamePad();
30
+ const actions = new ActionQueue();
223
31
  ```
224
32
 
225
- **How it Works**: Lua API (`pixos.*`) accesses engine features. Scripts run on conditions.
226
-
227
- **Tutorial Tip**: Add a trigger (e.g., on sprite click). Use `pixos.log()` for debugging.
228
-
229
- ### Step 9: Scripting with Lua
230
-
231
- Pixospritz uses Lua for logic. API includes:
232
-
233
- - `pixos.get_world()`: Access game state.
234
- - `pixos.set_mode()`: Switch modes.
235
- - `pixos.create_particle()`: Effects.
236
- - Full engine access (skybox, audio, etc.).
237
-
238
- Example from `modes/explore/setup.lua`:
33
+ ## Package Structure
239
34
 
240
- ```lua
241
- pixos.register_mode('explore', {
242
- setup = function(params)
243
- pixos.log('explore: setup called')
244
- -- Focus camera on avatar
245
- end
246
- })
247
35
  ```
248
-
249
- **How it Works**: Lua interpreter runs scripts, integrates with JSON configs.
250
-
251
- **Tutorial Tip**: Modify a script (e.g., add logging). Reload engine.
252
-
253
- ### Step 10: Applying Assets
254
-
255
- - **Textures**: Images in `textures/` (e.g., PNGs for sprites/tiles).
256
- - **Audio**: MP3s in `audio/` (played via Lua).
257
- - **Models**: OBJ/MTL in `models/` (3D rendering).
258
-
259
- **How it Works**: Engine loads assets on demand. Reference in JSON/Lua.
260
-
261
- **Tutorial Tip**: Add a new texture (e.g., "my-texture.png"). Use in a sprite.
262
-
263
- ### Step 11: Running and Testing the Example
264
-
265
- 1. Start engine: `npm run dev`.
266
- 2. Load package in browser/editor.
267
- 3. Explore the room: Move avatar, trigger events.
268
- 4. Switch modes (e.g., tactics via trigger).
269
- 5. Use editor for debugging (maps, sprites).
270
-
271
- The example demonstrates a full dungeon scene with lighting, sprites, and scripting.
272
-
273
- ### Installation
274
-
275
- The plugin can be installed from NPM via:
276
-
277
- npm install calliope-pixos
278
-
279
- ### Usage
280
-
281
- Inside of your `_calliope/app/config/plugins/index.jsx` file, add the following:
282
-
283
- ```javascript
284
- // Import the module at the top
285
- import Pixos from "calliope-pixos";
286
- // and then further down inside of the switch statement add the following
287
- // ...
288
- case "pixos":
289
- let Plugin = Pixos['calliope-pixos'].default;
290
- return <Plugin />;
291
- // ...
36
+ src/
37
+ ├── components/ # React components (WebGLView)
38
+ ├── engine/
39
+ │ ├── actions/ # Action system (prompt, delay, move, etc.)
40
+ │ ├── core/ # Core systems (render, HUD, audio)
41
+ │ ├── dynamic/ # Dynamic assets (sprites, maps, actors)
42
+ │ ├── events/ # Event handlers (menu, keyboard)
43
+ │ ├── scripting/ # Script execution engine
44
+ │ ├── shaders/ # GLSL shaders
45
+ │ └── utils/ # Utility functions
46
+ └── spritz/ # Spritz player integration
292
47
  ```
293
48
 
294
- ### Assets
295
-
296
- All paths are relative to the a core package folder (see /example/spritz) from the public directory when loading asssets. Place any of your assets used such as tilesets, sprites, and fonts and place them within the package folder directories for proper fetching. Please see example for how to load and extend assets.
297
-
298
- ### LICENSE
299
-
300
- <a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/">Creative Commons Attribution-NonCommercial 4.0 International License</a>.
49
+ ## Dependencies
301
50
 
302
- This plugin is free to use for non-commercial use only. If you are an individual, a hobbyist, or a tinkerer than this is free to use for your personal use excluding any commercial use. All modifications to the source code must be released back as open source to the community and preferably a pull request will be made with the available updates and improvements if applicable. There is commercial licensing available upon an individual request basis. The licensing will be based upon the scope and revenue expectations of the commercial use-case. For more information, please reach out via email to director@sovereign.enterprises for licensing details. For more information on the non-commerical license which is included by default - please see [LICENSE](LICENSE)
51
+ - `pixospritz-math` - Math utilities
52
+ - `pixoscript` - Scripting engine