cyberia 3.2.5 → 3.2.9
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/.github/workflows/engine-cyberia.cd.yml +2 -2
- package/.github/workflows/release.cd.yml +1 -2
- package/CHANGELOG.md +351 -1
- package/CLI-HELP.md +40 -13
- package/Dockerfile +0 -4
- package/README.md +242 -497
- package/bin/build.js +19 -5
- package/bin/cyberia.js +1149 -240
- package/bin/deploy.js +570 -1
- package/bin/file.js +6 -0
- package/bin/index.js +1149 -240
- package/bin/vs.js +1 -1
- package/conf.js +67 -89
- package/deployment.yaml +4 -222
- package/hardhat/package-lock.json +32 -32
- package/hardhat/package.json +3 -3
- package/jsconfig.json +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +2 -2
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +4 -222
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +10 -118
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
- package/manifests/deployment/dd-test-development/deployment.yaml +136 -66
- package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
- package/package.json +23 -14
- package/proxy.yaml +10 -118
- package/scripts/k3s-node-setup.sh +2 -2
- package/scripts/nat-iptables.sh +103 -18
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +18 -18
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +7 -14
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +76 -21
- package/src/api/core/core.controller.js +10 -10
- package/src/api/core/core.service.js +10 -10
- package/src/api/crypto/crypto.controller.js +8 -8
- package/src/api/crypto/crypto.service.js +8 -8
- package/src/api/cyberia-action/cyberia-action.controller.js +74 -0
- package/src/api/cyberia-action/cyberia-action.model.js +87 -0
- package/src/api/cyberia-action/cyberia-action.router.js +27 -0
- package/src/api/cyberia-action/cyberia-action.service.js +42 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +13 -13
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +11 -11
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +2 -2
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +16 -16
- package/src/api/cyberia-entity/cyberia-entity.controller.js +10 -10
- package/src/api/cyberia-entity/cyberia-entity.service.js +10 -10
- package/src/api/cyberia-instance/cyberia-fallback-world.js +19 -209
- package/src/api/cyberia-instance/cyberia-instance.controller.js +14 -14
- package/src/api/cyberia-instance/cyberia-instance.model.js +3 -0
- package/src/api/cyberia-instance/cyberia-instance.service.js +22 -57
- package/src/api/cyberia-instance/cyberia-portal-connector.js +20 -246
- package/src/api/cyberia-instance/cyberia-world-generator.js +505 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +10 -10
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +216 -55
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +4 -1
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +18 -14
- package/src/api/cyberia-map/cyberia-map.controller.js +10 -10
- package/src/api/cyberia-map/cyberia-map.service.js +10 -10
- package/src/api/cyberia-quest/cyberia-quest.controller.js +74 -0
- package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
- package/src/api/cyberia-quest/cyberia-quest.router.js +27 -0
- package/src/api/cyberia-quest/cyberia-quest.service.js +42 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +74 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +49 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +27 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
- package/src/api/default/default.controller.js +10 -10
- package/src/api/default/default.service.js +10 -10
- package/src/api/document/document.controller.js +12 -12
- package/src/api/document/document.model.js +10 -16
- package/src/api/file/file.controller.js +8 -8
- package/src/api/file/file.model.js +10 -10
- package/src/api/file/file.service.js +36 -36
- package/src/api/instance/instance.controller.js +10 -10
- package/src/api/instance/instance.model.js +4 -10
- package/src/api/instance/instance.service.js +10 -10
- package/src/api/ipfs/ipfs.controller.js +12 -12
- package/src/api/ipfs/ipfs.model.js +4 -13
- package/src/api/ipfs/ipfs.service.js +14 -28
- package/src/api/object-layer/object-layer.controller.js +12 -12
- package/src/api/object-layer/object-layer.model.js +4 -17
- package/src/api/object-layer/object-layer.service.js +12 -12
- package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +10 -10
- package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +6 -16
- package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +18 -14
- package/src/api/test/test.controller.js +8 -8
- package/src/api/test/test.service.js +8 -8
- package/src/api/user/guest.service.js +99 -0
- package/src/api/user/user.controller.js +6 -6
- package/src/api/user/user.model.js +8 -13
- package/src/api/user/user.service.js +3 -20
- package/src/cli/cluster.js +61 -14
- package/src/cli/db.js +47 -2
- package/src/cli/deploy.js +67 -35
- package/src/cli/fs.js +79 -8
- package/src/cli/image.js +43 -1
- package/src/cli/index.js +26 -1
- package/src/cli/release.js +57 -1
- package/src/cli/repository.js +69 -31
- package/src/cli/run.js +415 -36
- package/src/cli/ssh.js +1 -1
- package/src/cli/static.js +43 -115
- package/src/client/Cryptokoyn.index.js +18 -21
- package/src/client/CyberiaPortal.index.js +19 -23
- package/src/client/Default.index.js +21 -33
- package/src/client/Itemledger.index.js +20 -26
- package/src/client/Underpost.index.js +19 -23
- package/src/client/components/core/404.js +4 -4
- package/src/client/components/core/500.js +4 -4
- package/src/client/components/core/Account.js +73 -60
- package/src/client/components/core/AgGrid.js +23 -33
- package/src/client/components/core/Alert.js +12 -13
- package/src/client/components/core/AppStore.js +1 -1
- package/src/client/components/core/Auth.js +35 -37
- package/src/client/components/core/Badge.js +7 -13
- package/src/client/components/core/BtnIcon.js +15 -17
- package/src/client/components/core/CalendarCore.js +42 -63
- package/src/client/components/core/Chat.js +13 -15
- package/src/client/components/core/ClientEvents.js +87 -0
- package/src/client/components/core/ColorPaletteElement.js +309 -0
- package/src/client/components/core/Content.js +17 -14
- package/src/client/components/core/Css.js +15 -71
- package/src/client/components/core/CssCore.js +12 -16
- package/src/client/components/core/D3Chart.js +4 -4
- package/src/client/components/core/Docs.js +64 -91
- package/src/client/components/core/DropDown.js +69 -91
- package/src/client/components/core/EventBus.js +92 -0
- package/src/client/components/core/EventsUI.js +14 -17
- package/src/client/components/core/FileExplorer.js +96 -228
- package/src/client/components/core/FullScreen.js +47 -75
- package/src/client/components/core/Input.js +24 -69
- package/src/client/components/core/Keyboard.js +25 -18
- package/src/client/components/core/KeyboardAvoidance.js +145 -0
- package/src/client/components/core/LoadingAnimation.js +25 -31
- package/src/client/components/core/LogIn.js +41 -41
- package/src/client/components/core/LogOut.js +23 -14
- package/src/client/components/core/Modal.js +462 -178
- package/src/client/components/core/NotificationManager.js +14 -18
- package/src/client/components/core/Panel.js +54 -50
- package/src/client/components/core/PanelForm.js +25 -125
- package/src/client/components/core/Polyhedron.js +110 -214
- package/src/client/components/core/PublicProfile.js +39 -32
- package/src/client/components/core/Recover.js +48 -44
- package/src/client/components/core/Responsive.js +88 -32
- package/src/client/components/core/RichText.js +9 -18
- package/src/client/components/core/Router.js +24 -3
- package/src/client/components/core/SearchBox.js +37 -37
- package/src/client/components/core/SignUp.js +39 -30
- package/src/client/components/core/SocketIo.js +31 -2
- package/src/client/components/core/SocketIoHandler.js +6 -6
- package/src/client/components/core/ToggleSwitch.js +8 -20
- package/src/client/components/core/ToolTip.js +5 -17
- package/src/client/components/core/Translate.js +56 -59
- package/src/client/components/core/Validator.js +26 -16
- package/src/client/components/core/Wallet.js +15 -26
- package/src/client/components/core/Worker.js +163 -27
- package/src/client/components/core/windowGetDimensions.js +7 -7
- package/src/client/components/cryptokoyn/{MenuCryptokoyn.js → AppShellCryptokoyn.js} +57 -57
- package/src/client/components/cryptokoyn/CssCryptokoyn.js +15 -15
- package/src/client/components/cryptokoyn/LogInCryptokoyn.js +6 -4
- package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +6 -4
- package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
- package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +4 -4
- package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +6 -4
- package/src/client/components/cyberia/InstanceEngineCyberia.js +141 -60
- package/src/client/components/cyberia/MapEngineCyberia.js +691 -214
- package/src/client/components/cyberia/ObjectLayerEngine.js +19 -0
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +1204 -94
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +196 -298
- package/src/client/components/cyberia-portal/{MenuCyberiaPortal.js → AppShellCyberiaPortal.js} +102 -102
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +305 -61
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +15 -15
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +60 -0
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -4
- package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +87 -87
- package/src/client/components/default/CssDefault.js +12 -12
- package/src/client/components/default/LogInDefault.js +6 -4
- package/src/client/components/default/LogOutDefault.js +6 -4
- package/src/client/components/default/RouterDefault.js +47 -0
- package/src/client/components/default/SettingsDefault.js +4 -4
- package/src/client/components/default/SignUpDefault.js +6 -4
- package/src/client/components/default/TranslateDefault.js +3 -3
- package/src/client/components/itemledger/{MenuItemledger.js → AppShellItemledger.js} +57 -57
- package/src/client/components/itemledger/CssItemledger.js +15 -15
- package/src/client/components/itemledger/LogInItemledger.js +6 -4
- package/src/client/components/itemledger/LogOutItemledger.js +6 -4
- package/src/client/components/itemledger/RouterItemledger.js +38 -0
- package/src/client/components/itemledger/SettingsItemledger.js +4 -4
- package/src/client/components/itemledger/SignUpItemledger.js +6 -4
- package/src/client/components/itemledger/TranslateItemledger.js +3 -3
- package/src/client/components/underpost/{MenuUnderpost.js → AppShellUnderpost.js} +88 -88
- package/src/client/components/underpost/CssUnderpost.js +14 -14
- package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +4 -4
- package/src/client/components/underpost/DocumentSearchProvider.js +1 -1
- package/src/client/components/underpost/LabGalleryUnderpost.js +12 -15
- package/src/client/components/underpost/LogInUnderpost.js +6 -4
- package/src/client/components/underpost/LogOutUnderpost.js +6 -4
- package/src/client/components/underpost/RouterUnderpost.js +45 -0
- package/src/client/components/underpost/SettingsUnderpost.js +4 -4
- package/src/client/components/underpost/SignUpUnderpost.js +6 -4
- package/src/client/components/underpost/TranslateUnderpost.js +4 -4
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +235 -0
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +443 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +417 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +313 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +260 -0
- package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +241 -0
- package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
- package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +279 -0
- package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +206 -0
- package/src/client/public/cyberia-docs/ROADMAP.md +240 -0
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +732 -0
- package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +14 -20
- package/src/client/services/core/core.service.js +17 -49
- package/src/client/services/crypto/crypto.service.js +8 -13
- package/src/client/services/cyberia-action/cyberia-action.service.js +99 -0
- package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +10 -16
- package/src/client/services/cyberia-entity/cyberia-entity.management.js +5 -5
- package/src/client/services/cyberia-entity/cyberia-entity.service.js +10 -16
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +6 -6
- package/src/client/services/cyberia-instance/cyberia-instance.service.js +12 -18
- package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +10 -16
- package/src/client/services/cyberia-map/cyberia-map.management.js +6 -6
- package/src/client/services/cyberia-map/cyberia-map.service.js +12 -18
- package/src/client/services/cyberia-quest/cyberia-quest.service.js +99 -0
- package/src/client/services/cyberia-quest-progress/cyberia-quest-progress.service.js +99 -0
- package/src/client/services/default/default.management.js +159 -267
- package/src/client/services/default/default.service.js +10 -16
- package/src/client/services/document/document.service.js +14 -19
- package/src/client/services/file/file.service.js +8 -13
- package/src/client/services/instance/instance.management.js +5 -5
- package/src/client/services/instance/instance.service.js +10 -15
- package/src/client/services/ipfs/ipfs.service.js +12 -18
- package/src/client/services/object-layer/object-layer.management.js +12 -12
- package/src/client/services/object-layer/object-layer.service.js +20 -26
- package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +10 -16
- package/src/client/services/test/test.service.js +8 -13
- package/src/client/services/user/guest.service.js +86 -0
- package/src/client/services/user/user.management.js +5 -5
- package/src/client/services/user/user.service.js +14 -20
- package/src/client/ssr/body/404.js +3 -3
- package/src/client/ssr/body/500.js +3 -3
- package/src/client/ssr/body/CacheControl.js +5 -2
- package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +13 -6
- package/src/client/ssr/head/PwaItemledger.js +197 -60
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
- package/src/client/ssr/offline/Maintenance.js +12 -11
- package/src/client/ssr/offline/NoNetworkConnection.js +3 -3
- package/src/client/ssr/pages/Test.js +2 -2
- package/src/client/sw/core.sw.js +212 -0
- package/src/grpc/cyberia/grpc-server.js +179 -67
- package/src/index.js +1 -1
- package/src/runtime/cyberia-client/Dockerfile +80 -0
- package/src/runtime/cyberia-server/Dockerfile +37 -0
- package/src/runtime/express/Dockerfile +4 -4
- package/src/runtime/lampp/Dockerfile +8 -7
- package/src/runtime/wp/Dockerfile +11 -17
- package/src/server/atlas-sprite-sheet-generator.js +4 -2
- package/src/server/client-build-docs.js +45 -46
- package/src/server/client-build.js +334 -60
- package/src/server/client-formatted.js +47 -16
- package/src/server/conf.js +5 -4
- package/src/server/data-query.js +32 -20
- package/src/server/dns.js +22 -0
- package/src/server/ipfs-client.js +232 -91
- package/src/server/object-layer.js +1 -6
- package/src/server/process.js +13 -27
- package/src/server/semantic-layer-generator-floor.js +11 -51
- package/src/server/semantic-layer-generator-resource.js +259 -0
- package/src/server/semantic-layer-generator-skin.js +41 -171
- package/src/server/semantic-layer-generator.js +122 -14
- package/src/server/shape-generator.js +108 -0
- package/src/server/start.js +17 -3
- package/src/server/valkey.js +141 -235
- package/tsconfig.docs.json +15 -0
- package/typedoc.dd-cyberia.json +29 -0
- package/typedoc.json +29 -0
- package/WHITE-PAPER.md +0 -1540
- package/hardhat/README.md +0 -531
- package/hardhat/WHITE-PAPER.md +0 -1540
- package/jsdoc.dd-cyberia.json +0 -68
- package/jsdoc.json +0 -68
- package/src/api/object-layer/README.md +0 -672
- package/src/client/components/core/ColorPalette.js +0 -5267
- package/src/client/components/core/JoyStick.js +0 -80
- package/src/client/components/cryptokoyn/RoutesCryptokoyn.js +0 -39
- package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +0 -62
- package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +0 -136
- package/src/client/components/default/RoutesDefault.js +0 -49
- package/src/client/components/itemledger/RoutesItemledger.js +0 -40
- package/src/client/components/underpost/RoutesUnderpost.js +0 -47
- package/src/client/sw/default.sw.js +0 -127
- package/src/client/sw/template.sw.js +0 -84
- package/src/grpc/cyberia/OFF_CHAIN_ECONOMY.md +0 -305
- package/src/grpc/cyberia/README.md +0 -326
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://www.cyberiaonline.com/assets/splash/apple-touch-icon-precomposed.png" alt="CYBERIA Network Object Layer Engine"/>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<div align="center">
|
|
6
|
+
|
|
7
|
+
### CYBERIA
|
|
8
|
+
|
|
9
|
+
**Network Object Layers**
|
|
10
|
+
|
|
11
|
+
_Stackable Rendering Layers as a Unified Tokenized Reality_
|
|
12
|
+
|
|
13
|
+
[](https://www.npmjs.org/package/cyberia)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
# Cyberia CLI
|
|
18
|
+
|
|
19
|
+
**Path:** `bin/cyberia.js`
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Overview
|
|
24
|
+
|
|
25
|
+
The Cyberia CLI (`cyberia`) is an extension of the **Underpost CLI** specifically for the Cyberia MMORPG ecosystem. Underpost is the end-to-end bare-metal infrastructure platform for general-purpose applications; `cyberia` extends it with tooling for the game's content pipeline, economy, and MMO engine toolchain. Unrecognized commands are transparently passed through to `underpost` for infrastructure operations.
|
|
26
|
+
|
|
27
|
+
The CLI manages:
|
|
28
|
+
|
|
29
|
+
- **Object Layer (`ol`)** — import, generate, and manage game item definitions and sprite atlases.
|
|
30
|
+
- **Instance (`instance`)** — export/import/seed game instance data (maps, entities, configs).
|
|
31
|
+
- **Chain (`chain`)** — Hyperledger Besu deployment and ERC-1155 ObjectLayerToken lifecycle.
|
|
32
|
+
- **Run-Workflow (`run-workflow`)** — execute named operational scripts (seed defaults, build manifests).
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Global Usage
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
node bin/cyberia.js <command> [subcommand] [options]
|
|
40
|
+
# or if installed globally:
|
|
41
|
+
cyberia <command> [subcommand] [options]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## `cyberia ol` — Object Layer Management
|
|
47
|
+
|
|
48
|
+
Manages the Object Layer content pipeline: import PNG assets, generate procedural layers, build atlas sprite sheets, and push to IPFS/MongoDB.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
cyberia ol [item-id] [options]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Options
|
|
55
|
+
|
|
56
|
+
| Option | Description |
|
|
57
|
+
| ------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
58
|
+
| `--import` | Import specific item-id(s) (comma-separated) from the PNG asset directory into MongoDB + IPFS |
|
|
59
|
+
| `--import-types [types]` | Batch import by type (e.g. `skin,floor`) or `all` |
|
|
60
|
+
| `--generate` | Generate procedural layers for a semantic item-id (see Semantic Registry below) |
|
|
61
|
+
| `--count <n>` | Shape element count multiplier for `--generate` (default: `3`) |
|
|
62
|
+
| `--seed <seed>` | Deterministic seed string for `--generate` (e.g. `fx-42`) |
|
|
63
|
+
| `--frame-index <n>` | Starting frame index for `--generate` (default: `0`) |
|
|
64
|
+
| `--frame-count <n>` | Number of frames to generate for `--generate` (default: `1`) |
|
|
65
|
+
| `--density <0..1>` | Shape density factor for `--generate` (default: `0.5`) |
|
|
66
|
+
| `--to-atlas-sprite-sheet [dim]` | Convert ObjectLayer frames to a consolidated atlas PNG |
|
|
67
|
+
| `--show-atlas-sprite-sheet` | Display the atlas PNG for the given item-id |
|
|
68
|
+
| `--show-frame [dir_frame]` | View a single frame (e.g. `08_0`; default: `08_0`) |
|
|
69
|
+
| `--drop` | Drop existing data before importing |
|
|
70
|
+
| `--client-public` | With `--drop`: also remove static client asset folders |
|
|
71
|
+
| `--git-clean` | With `--drop`: run clean on the cyberia asset directory |
|
|
72
|
+
| `--dev` | Force development env (uses `.env.development` for localhost IPFS) |
|
|
73
|
+
| `--env-path <path>` | Path to `.env` file (e.g. `./engine-private/conf/dd-cyberia/.env.development`) |
|
|
74
|
+
| `--mongo-host <host>` | MongoDB host override |
|
|
75
|
+
| `--storage-file-path <path>` | Storage filter JSON path override |
|
|
76
|
+
|
|
77
|
+
### Examples
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Import a single item from PNG source
|
|
81
|
+
cyberia ol hatchet --import --env-path ./engine-private/conf/dd-cyberia/.env.development
|
|
82
|
+
|
|
83
|
+
# Import all items of type 'skin' and 'floor'
|
|
84
|
+
cyberia ol --import-types skin,floor
|
|
85
|
+
|
|
86
|
+
# Import all types
|
|
87
|
+
cyberia ol --import-types all
|
|
88
|
+
|
|
89
|
+
# Generate a procedural floor tile (desert biome, seed fx-42)
|
|
90
|
+
cyberia ol floor-desert --generate --seed fx-42
|
|
91
|
+
|
|
92
|
+
# Generate 4 frames of a procedural floor with custom count and density
|
|
93
|
+
cyberia ol floor-grass --generate --frame-count 4 --count 5 --density 0.7
|
|
94
|
+
|
|
95
|
+
# Generate a character skin
|
|
96
|
+
cyberia ol skin-dark-001 --generate --seed my-seed
|
|
97
|
+
|
|
98
|
+
# View a specific frame of an item
|
|
99
|
+
cyberia ol hatchet --show-frame 08_0
|
|
100
|
+
|
|
101
|
+
# Rebuild atlas sprite sheet for an item
|
|
102
|
+
cyberia ol hatchet --to-atlas-sprite-sheet
|
|
103
|
+
|
|
104
|
+
# Drop and re-import a single item
|
|
105
|
+
cyberia ol hatchet --drop --import
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Semantic Item-ID Registry
|
|
111
|
+
|
|
112
|
+
The `--generate` flag uses item-id prefixes to look up a procedural descriptor from the semantic registry.
|
|
113
|
+
|
|
114
|
+
### Floor Prefixes
|
|
115
|
+
|
|
116
|
+
| Prefix | Biome | Description |
|
|
117
|
+
| -------------- | ------ | ----------------------------------------------- |
|
|
118
|
+
| `floor-desert` | Desert | Sandy, arid tile with warm yellow/brown palette |
|
|
119
|
+
| `floor-grass` | Grass | Meadow tile with green/earth tones |
|
|
120
|
+
| `floor-water` | Water | Ocean/lake tile with blue/teal palette |
|
|
121
|
+
| `floor-stone` | Stone | Rock/cobble tile with grey palette |
|
|
122
|
+
| `floor-lava` | Lava | Magma tile with red/orange palette |
|
|
123
|
+
|
|
124
|
+
### Skin Prefixes
|
|
125
|
+
|
|
126
|
+
| Prefix | Description |
|
|
127
|
+
| -------------- | ----------------------------------------------- |
|
|
128
|
+
| `skin-random` | Fully random skin tone and hair |
|
|
129
|
+
| `skin-dark` | Dark skin tones |
|
|
130
|
+
| `skin-light` | Light / pale skin tones |
|
|
131
|
+
| `skin-vivid` | Vivid / exotic hair colours (blue, red, green…) |
|
|
132
|
+
| `skin-natural` | Natural hair colours (brown, blond, grey…) |
|
|
133
|
+
| `skin-shaved` | Shaved / bald head — no hair |
|
|
134
|
+
|
|
135
|
+
### Resource Prefixes
|
|
136
|
+
|
|
137
|
+
Resource prefixes follow the pattern `resource-{biome}-{shape}`:
|
|
138
|
+
|
|
139
|
+
| Shape Family | Description |
|
|
140
|
+
| ------------ | -------------------------------------- |
|
|
141
|
+
| `petal` | Parabolic arc shapes — coloured petals |
|
|
142
|
+
| `stone` | Hard, angular mineral shapes |
|
|
143
|
+
| `polygon` | Crystal/geometric faceted shapes |
|
|
144
|
+
| `thread` | Thin, wispy Bézier lines |
|
|
145
|
+
|
|
146
|
+
**Biomes:** `desert`, `grass`, `water`, `stone`, `lava`
|
|
147
|
+
|
|
148
|
+
**Full matrix (20 prefixes):**
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
resource-desert-petal resource-grass-petal resource-water-petal
|
|
152
|
+
resource-desert-stone resource-grass-stone resource-water-stone
|
|
153
|
+
resource-desert-polygon resource-grass-polygon resource-water-polygon
|
|
154
|
+
resource-desert-thread resource-grass-thread resource-water-thread
|
|
155
|
+
|
|
156
|
+
resource-stone-petal resource-lava-petal
|
|
157
|
+
resource-stone-stone resource-lava-stone
|
|
158
|
+
resource-stone-polygon resource-lava-polygon
|
|
159
|
+
resource-stone-thread resource-lava-thread
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## `cyberia instance` — Instance Management
|
|
165
|
+
|
|
166
|
+
Manages game instance documents (maps, entities, actions, quests, skill config) in MongoDB.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
cyberia instance [instance-code] [options]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Options
|
|
173
|
+
|
|
174
|
+
| Option | Description |
|
|
175
|
+
| --------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
176
|
+
| `--export [path]` | Export instance and all related documents to a backup directory |
|
|
177
|
+
| `--import [path]` | Import instance documents from a backup directory (upsert, preserves UUIDs) |
|
|
178
|
+
| `--conf` | With `--export`/`--import`: only process instance and instance-conf documents (skip maps, entities, ObjectLayers) |
|
|
179
|
+
| `--drop` | Drop all documents associated with the instance code |
|
|
180
|
+
| `--env-path <path>` | Path to `.env` file |
|
|
181
|
+
| `--mongo-host <host>` | MongoDB host override |
|
|
182
|
+
| `--dev` | Force development environment |
|
|
183
|
+
|
|
184
|
+
### Examples
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# Export instance to backup
|
|
188
|
+
cyberia instance cyberia-main --export ./backups/cyberia-main
|
|
189
|
+
|
|
190
|
+
# Import instance from backup
|
|
191
|
+
cyberia instance cyberia-main --import ./backups/cyberia-main
|
|
192
|
+
|
|
193
|
+
# Drop instance data
|
|
194
|
+
cyberia instance cyberia-main --drop
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## `cyberia chain` — Blockchain Lifecycle
|
|
200
|
+
|
|
201
|
+
Full lifecycle management for the Hyperledger Besu network and `ObjectLayerToken` ERC-1155 contract.
|
|
202
|
+
|
|
203
|
+
### Network Commands
|
|
204
|
+
|
|
205
|
+
#### `cyberia chain deploy`
|
|
206
|
+
|
|
207
|
+
Deploy a new Hyperledger Besu IBFT2 network to Kubernetes:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
cyberia chain deploy [options]
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
| Option | Default | Description |
|
|
214
|
+
| ------------------------ | -------------------------- | ----------------------------------------- |
|
|
215
|
+
| `--validators <n>` | `4` | Number of IBFT2 validators |
|
|
216
|
+
| `--chain-id <id>` | `777771` | EVM chain ID |
|
|
217
|
+
| `--block-period <s>` | `5` | IBFT2 block period in seconds |
|
|
218
|
+
| `--epoch-length <n>` | `30000` | IBFT2 epoch length |
|
|
219
|
+
| `--besu-image <img>` | `hyperledger/besu:24.12.1` | Besu container image |
|
|
220
|
+
| `--node-port-rpc <port>` | `30545` | Kubernetes NodePort for JSON-RPC |
|
|
221
|
+
| `--node-port-ws <port>` | `30546` | Kubernetes NodePort for WebSocket |
|
|
222
|
+
| `--namespace <ns>` | `besu` | Kubernetes namespace |
|
|
223
|
+
| `--pull-image` | — | Pull Besu images before deploying |
|
|
224
|
+
| `--skip-generate` | — | Use existing `manifests/besu/` as-is |
|
|
225
|
+
| `--skip-wait` | — | Skip waiting for validators to be Running |
|
|
226
|
+
|
|
227
|
+
#### `cyberia chain remove`
|
|
228
|
+
|
|
229
|
+
Remove the Besu network from Kubernetes:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
cyberia chain remove [--namespace besu] [--clean-keys] [--clean-manifests]
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
#### `cyberia chain generate-manifests`
|
|
236
|
+
|
|
237
|
+
Generate Kubernetes manifests without deploying:
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
cyberia chain generate-manifests [options] # same options as deploy
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
### Contract Commands
|
|
246
|
+
|
|
247
|
+
#### `cyberia chain compile`
|
|
248
|
+
|
|
249
|
+
Compile the Solidity contracts:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
cyberia chain compile
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
#### `cyberia chain deploy-contract`
|
|
256
|
+
|
|
257
|
+
Deploy `ObjectLayerToken` to a Besu network (mints 10M CKY to the coinbase address):
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
cyberia chain deploy-contract --network besu-k8s
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
| Option | Default | Description |
|
|
264
|
+
| ------------------ | ---------- | ------------------------------------------------------------ |
|
|
265
|
+
| `--network <name>` | `besu-k8s` | Hardhat network name (`besu-ibft2`, `besu-qbft`, `besu-k8s`) |
|
|
266
|
+
|
|
267
|
+
#### `cyberia chain test`
|
|
268
|
+
|
|
269
|
+
Run the Hardhat contract test suite:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
cyberia chain test
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
### Key Management
|
|
278
|
+
|
|
279
|
+
#### `cyberia chain key-gen`
|
|
280
|
+
|
|
281
|
+
Generate a new secp256k1 Ethereum key pair for the coinbase deployer account:
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
cyberia chain key-gen
|
|
285
|
+
# Output: address + private key + key file written to engine-private/
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
#### `cyberia chain set-coinbase`
|
|
289
|
+
|
|
290
|
+
Set the active coinbase key used for contract deployment and minting:
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
cyberia chain set-coinbase --private-key 0xYOUR_KEY
|
|
294
|
+
cyberia chain set-coinbase --from-file ./engine-private/eth-networks/besu/<address>.key.json
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
### Token Commands
|
|
300
|
+
|
|
301
|
+
#### `cyberia chain register`
|
|
302
|
+
|
|
303
|
+
Register a single Object Layer item on-chain:
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
cyberia chain register <item-id> [options]
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
| Option | Default | Description |
|
|
310
|
+
| ---------------------- | ---------- | ----------------------------------------------------- |
|
|
311
|
+
| `--from-db` | — | Resolve canonical IPFS CID from MongoDB (recommended) |
|
|
312
|
+
| `--metadata-cid <cid>` | `""` | Manual CID override (ignored when `--from-db` is set) |
|
|
313
|
+
| `--supply <n>` | `1` | Initial token supply (1 = NFT, >1 = semi-fungible) |
|
|
314
|
+
| `--network <name>` | `besu-k8s` | Hardhat network name |
|
|
315
|
+
| `--env-path <path>` | `./.env` | Path to `.env` file |
|
|
316
|
+
| `--mongo-host <host>` | — | MongoDB host override |
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
# Register unique NFT item (non-fungible)
|
|
320
|
+
cyberia chain register legendary-hatchet --from-db --supply 1
|
|
321
|
+
|
|
322
|
+
# Register stackable resource (semi-fungible)
|
|
323
|
+
cyberia chain register gold-ore --from-db --supply 1000000
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
#### `cyberia chain batch-register`
|
|
327
|
+
|
|
328
|
+
Register multiple items in a single batch transaction:
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
cyberia chain batch-register --from-db --items '[{"itemId":"wood","supply":500000},{"itemId":"stone","supply":500000}]'
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
#### `cyberia chain mint`
|
|
335
|
+
|
|
336
|
+
Mint additional tokens for an existing token ID:
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
cyberia chain mint --token-id 0 --to 0xABCD...1234 --amount 1000000000000000000000
|
|
340
|
+
cyberia chain mint --token-id <tokenId> --to <address> --amount <uint256>
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
#### `cyberia chain balance`
|
|
344
|
+
|
|
345
|
+
Query the token balance of an address:
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
cyberia chain balance --address 0xABCD...1234 --token-id 0
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
#### `cyberia chain transfer`
|
|
352
|
+
|
|
353
|
+
Transfer tokens between addresses:
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
cyberia chain transfer --from 0x... --to 0x... --token-id 0 --amount 1000
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
#### `cyberia chain burn`
|
|
360
|
+
|
|
361
|
+
Burn tokens from an address:
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
cyberia chain burn --token-id 0 --amount 500 --address 0x...
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
#### `cyberia chain status`
|
|
368
|
+
|
|
369
|
+
Query chain and contract status:
|
|
370
|
+
|
|
371
|
+
```bash
|
|
372
|
+
cyberia chain status [--network besu-k8s]
|
|
373
|
+
# Outputs: chain ID, block number, CKY total supply, deployer address, pause state
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
#### `cyberia chain pause` / `cyberia chain unpause`
|
|
377
|
+
|
|
378
|
+
Emergency transfer freeze / resume (owner only):
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
cyberia chain pause [--network besu-k8s]
|
|
382
|
+
cyberia chain unpause [--network besu-k8s]
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## `cyberia run-workflow` — Operational Scripts
|
|
388
|
+
|
|
389
|
+
Pre-built operational workflows for seeding and maintenance:
|
|
390
|
+
|
|
391
|
+
| Subcommand | Description |
|
|
392
|
+
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
393
|
+
| `import-default-items` | Import the canonical default item set (`DefaultCyberiaItems`) into MongoDB + IPFS, then seed skill config and dialogues |
|
|
394
|
+
| `seed-skill-config` | Upsert `DefaultSkillConfig` into `CyberiaInstanceConf` for the target instance |
|
|
395
|
+
| `seed-dialogues` | Upsert `DefaultCyberiaDialogues` (NPC dialogue lines) into the `cyberia-dialogue` collection |
|
|
396
|
+
| `generate-semantic-examples` | Generate procedural examples for skin prefixes (`skin-*`); floor and resource generation is available but commented out by default |
|
|
397
|
+
| `build-manifest` | Build Kubernetes Deployment + Service YAML manifests for mmo-client and mmo-server instances (kubeadm + kind variants) |
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
cyberia run-workflow import-default-items --env-path ./engine-private/conf/dd-cyberia/.env.development
|
|
401
|
+
cyberia run-workflow seed-skill-config --env-path ./engine-private/conf/dd-cyberia/.env.development
|
|
402
|
+
cyberia run-workflow build-manifest
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## Environment Variables
|
|
408
|
+
|
|
409
|
+
The CLI respects the following environment variables (typically loaded from an `--env-path` file):
|
|
410
|
+
|
|
411
|
+
| Variable | Description |
|
|
412
|
+
| --------------------- | ---------------------------------------------------------------- |
|
|
413
|
+
| `DEFAULT_DEPLOY_ID` | Engine deployment ID — resolves to `engine-private/conf/{id}/` |
|
|
414
|
+
| `DEFAULT_DEPLOY_HOST` | Deploy host (used to index the conf object) |
|
|
415
|
+
| `DEFAULT_DEPLOY_PATH` | Deploy path (used to index the conf object) |
|
|
416
|
+
| `MONGODB_URI` | MongoDB connection string (loaded from conf if not set directly) |
|
|
417
|
+
| `IPFS_API_URL` | IPFS API URL for pinning (e.g. `http://localhost:5001`) |
|