aurasu 0.1.0 → 0.1.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.
package/README.md CHANGED
@@ -11,6 +11,22 @@ auramaxx play aurasu
11
11
 
12
12
  A hit-circle rhythm game built with AuraScript.
13
13
 
14
+ Play:
15
+
16
+ ```bash
17
+ auramaxx play aurasu
18
+
19
+ # or run the published game wrapper directly
20
+ npx aurasu play
21
+ ```
22
+
23
+ Project layout:
24
+
25
+ - `src/main.js` is the thin runtime bootstrap.
26
+ - `src/runtime/` owns the scaffold-backed app shell, registry, and continuity helpers.
27
+ - `scenes/gameplay.scene.js` owns the existing rhythm loop and async asset/audio setup.
28
+ - `config/`, `content/`, `prefabs/`, and `ui/` now mirror the scaffold structure used by open-source-ready AuraScript examples.
29
+
14
30
  Controls:
15
31
 
16
32
  - Hit notes: Left Mouse Button, `Z`, `X`, or `Space`
@@ -0,0 +1,26 @@
1
+ {
2
+ "schema": "aurajs.create-capabilities.v1",
3
+ "template": "example-aurasu",
4
+ "summary": "Aurasu rhythm runtime contract for native 2D drawing with optional asset and audio enrichment.",
5
+ "requiredApis": [
6
+ "aura.draw2d.clear",
7
+ "aura.draw2d.rectFill",
8
+ "aura.draw2d.circle",
9
+ "aura.draw2d.circleFill",
10
+ "aura.draw2d.line",
11
+ "aura.draw2d.text",
12
+ "aura.draw2d.measureText",
13
+ "aura.input.isKeyDown",
14
+ "aura.rgba"
15
+ ],
16
+ "optionalModules": {
17
+ "physics": false,
18
+ "network": false,
19
+ "multiplayer": false,
20
+ "steam": false
21
+ },
22
+ "notes": [
23
+ "When assets and audio are available the example loads the bundled skin, background image, and soundtrack.",
24
+ "The game still renders a playable fallback loop with draw2d primitives even if optional asset features are unavailable."
25
+ ]
26
+ }
package/aura.config.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "Aurasu",
4
4
  "version": "0.1.0",
5
5
  "executable": "aurasu",
6
- "icon": "assets/aurasu1.jpg"
6
+ "icon": "assets/icon.png"
7
7
  },
8
8
  "window": {
9
9
  "title": "Aurasu",
package/bin/play.js CHANGED
@@ -1,13 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { spawnSync } from 'node:child_process';
4
- import { existsSync } from 'node:fs';
4
+ import { existsSync, readFileSync } from 'node:fs';
5
5
  import { resolve, dirname } from 'node:path';
6
6
  import { fileURLToPath } from 'node:url';
7
7
 
8
8
  const __dirname = dirname(fileURLToPath(import.meta.url));
9
9
  const projectRoot = resolve(__dirname, '..');
10
10
  const localAuraCli = resolve(projectRoot, 'node_modules', '@auraindustry', 'aurajs', 'src', 'cli.mjs');
11
+ const projectPackage = JSON.parse(readFileSync(resolve(projectRoot, 'package.json'), 'utf8'));
12
+ const aurajsDependency = projectPackage?.dependencies?.['@auraindustry/aurajs'];
13
+ const fallbackAuraPackage = typeof aurajsDependency === 'string' && aurajsDependency.trim().length > 0
14
+ ? `@auraindustry/aurajs@${aurajsDependency.trim()}`
15
+ : '@auraindustry/aurajs';
11
16
  const runArgs = ['run', '--asset-mode', 'sibling'];
12
17
 
13
18
  const result = existsSync(localAuraCli)
@@ -16,7 +21,7 @@ const result = existsSync(localAuraCli)
16
21
  stdio: 'inherit',
17
22
  env: process.env,
18
23
  })
19
- : spawnSync('npm', ['exec', '--yes', '--package', '@auraindustry/aurajs', '--', 'aura', ...runArgs], {
24
+ : spawnSync('npm', ['exec', '--yes', '--package', fallbackAuraPackage, '--', 'aura', ...runArgs], {
20
25
  cwd: projectRoot,
21
26
  stdio: 'inherit',
22
27
  env: process.env,
@@ -0,0 +1,11 @@
1
+ const gameConfig = {
2
+ schema: 'aurajs.example-config.v1',
3
+ projectTitle: 'Aurasu',
4
+ theme: 'rhythm',
5
+ notes: [
6
+ 'Gameplay tuning still lives primarily in scenes/gameplay.scene.js until a deeper open-source cleanup pass.',
7
+ 'Use this module as the first authored home for timing windows, scoring knobs, and presentation constants.',
8
+ ],
9
+ };
10
+
11
+ export default gameConfig;
@@ -0,0 +1,17 @@
1
+ const beatmapContent = {
2
+ schema: 'aurajs.example-content.v1',
3
+ trackTitle: 'Aurasu',
4
+ assets: [
5
+ 'Aurasu.wav',
6
+ 'Aurasu.timing.json',
7
+ 'Aurasu.note-timings.csv',
8
+ 'aurasu.jpg',
9
+ 'aurasu1.jpg',
10
+ ],
11
+ notes: [
12
+ 'The authored beatmap recipe and note generation logic still live in scenes/gameplay.scene.js.',
13
+ 'This content module exists so the example exposes scaffold-style authored content ownership.',
14
+ ],
15
+ };
16
+
17
+ export default beatmapContent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aurasu",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "A hit-circle rhythm game built with AuraJS.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,10 +10,16 @@
10
10
  "bin/",
11
11
  "src/",
12
12
  "assets/",
13
- "aura.config.json"
13
+ "config/",
14
+ "content/",
15
+ "prefabs/",
16
+ "scenes/",
17
+ "ui/",
18
+ "aura.config.json",
19
+ "aura.capabilities.json"
14
20
  ],
15
21
  "dependencies": {
16
- "@auraindustry/aurajs": "0.0.2"
22
+ "@auraindustry/aurajs": "0.1.0"
17
23
  },
18
24
  "keywords": [
19
25
  "aurajs",
@@ -0,0 +1,17 @@
1
+ const playfieldPrefab = {
2
+ id: 'playfield',
3
+ kind: 'prefab',
4
+ role: 'world',
5
+ view: { kind: 'rhythm-board-2d' },
6
+ components: {
7
+ noteSurface: true,
8
+ cursorSurface: true,
9
+ },
10
+ hooks: {},
11
+ notes: [
12
+ 'The rhythm lane visuals and cursor rendering still live in the gameplay scene runtime.',
13
+ 'This prefab exists so the example presents scaffold-style authored world ownership.',
14
+ ],
15
+ };
16
+
17
+ export default playfieldPrefab;