@shipload/sdk 1.0.0-next.62 → 1.0.0-next.64
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/lib/shipload.d.ts +1829 -501
- package/lib/shipload.js +4325 -1324
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +4286 -1389
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +391 -13
- package/lib/testing.js +1692 -107
- package/lib/testing.js.map +1 -1
- package/lib/testing.m.js +1693 -108
- package/lib/testing.m.js.map +1 -1
- package/package.json +2 -2
- package/src/contracts/fund.ts +201 -0
- package/src/contracts/platform.ts +73 -1
- package/src/contracts/server.ts +946 -26
- package/src/contracts/token.ts +170 -0
- package/src/contracts.ts +2 -0
- package/src/data/catalog.test.ts +19 -0
- package/src/data/catalog.ts +6 -0
- package/src/data/charters.json +198 -0
- package/src/data/citizenry-adjectives.json +42 -0
- package/src/data/citizenry-nouns.json +50 -0
- package/src/data/entities.json +36 -0
- package/src/data/item-ids.ts +2 -0
- package/src/data/items.json +12 -0
- package/src/data/kind-registry.json +20 -3
- package/src/data/kind-registry.ts +5 -0
- package/src/data/metadata.ts +14 -0
- package/src/data/recipes.json +0 -48
- package/src/derivation/capabilities.ts +14 -0
- package/src/derivation/recipe-usage.test.ts +0 -2
- package/src/format.ts +9 -0
- package/src/index-module.ts +32 -2
- package/src/influence/categories.ts +32 -0
- package/src/influence/charters.test.ts +126 -0
- package/src/influence/charters.ts +120 -0
- package/src/influence/citizenry.ts +38 -0
- package/src/influence/constants.ts +63 -0
- package/src/influence/decay.ts +20 -0
- package/src/influence/decomp.ts +95 -0
- package/src/influence/demand.ts +106 -0
- package/src/influence/duration.ts +36 -0
- package/src/influence/index.ts +63 -0
- package/src/influence/influence.test.ts +317 -0
- package/src/influence/quality.ts +25 -0
- package/src/influence/valuation.ts +154 -0
- package/src/managers/actions.ts +227 -5
- package/src/managers/balances.test.ts +161 -0
- package/src/managers/balances.ts +93 -0
- package/src/managers/construction.ts +11 -1
- package/src/managers/context.ts +18 -0
- package/src/managers/entities.ts +11 -0
- package/src/managers/index.ts +15 -1
- package/src/managers/influence.test.ts +58 -0
- package/src/managers/influence.ts +347 -0
- package/src/managers/nft.test.ts +8 -1
- package/src/managers/nft.ts +56 -16
- package/src/nft/description.ts +7 -0
- package/src/scheduling/task-cargo.ts +1 -0
- package/src/shipload.ts +10 -0
- package/src/types.ts +23 -4
- package/src/utils/hash.ts +4 -0
- package/src/utils/system.ts +1 -5
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import type {Action, AssetType, NameType} from '@wharfkit/antelope'
|
|
2
|
+
import {ABI, Asset, Blob, Name, Struct} from '@wharfkit/antelope'
|
|
3
|
+
import type {ActionOptions, ContractArgs, PartialBy, Table} from '@wharfkit/contract'
|
|
4
|
+
import {Contract as BaseContract} from '@wharfkit/contract'
|
|
5
|
+
export const abiBlob = Blob.from(
|
|
6
|
+
'DmVvc2lvOjphYmkvMS4yAAoHYWNjb3VudAABB2JhbGFuY2UFYXNzZXQFY2xvc2UAAgVvd25lcgRuYW1lBnN5bWJvbAZzeW1ib2wGY3JlYXRlAAIGaXNzdWVyBG5hbWUObWF4aW11bV9zdXBwbHkFYXNzZXQOY3VycmVuY3lfc3RhdHMAAwZzdXBwbHkFYXNzZXQKbWF4X3N1cHBseQVhc3NldAZpc3N1ZXIEbmFtZQVpc3N1ZQADAnRvBG5hbWUIcXVhbnRpdHkFYXNzZXQEbWVtbwZzdHJpbmcKaXNzdWVmaXhlZAADAnRvBG5hbWUGc3VwcGx5BWFzc2V0BG1lbW8Gc3RyaW5nBG9wZW4AAwVvd25lcgRuYW1lBnN5bWJvbAZzeW1ib2wJcmFtX3BheWVyBG5hbWUGcmV0aXJlAAIIcXVhbnRpdHkFYXNzZXQEbWVtbwZzdHJpbmcMc2V0bWF4c3VwcGx5AAIGaXNzdWVyBG5hbWUObWF4aW11bV9zdXBwbHkFYXNzZXQIdHJhbnNmZXIABARmcm9tBG5hbWUCdG8EbmFtZQhxdWFudGl0eQVhc3NldARtZW1vBnN0cmluZwgAAAAAAIVpRAVjbG9zZfkDLS0tCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogQ2xvc2UgVG9rZW4gQmFsYW5jZQpzdW1tYXJ5OiAnQ2xvc2Uge3tub3dyYXAgb3duZXJ9feKAmXMgemVybyBxdWFudGl0eSBiYWxhbmNlJwppY29uOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZW9zbmV0d29ya2ZvdW5kYXRpb24vZW9zLXN5c3RlbS1jb250cmFjdHMvbWFpbi9jb250cmFjdHMvaWNvbnMvdG9rZW4ucG5nIzIwN2ZmNjhiMDQwNmVhYTU2NjE4YjA4YmRhODFkNmEwOTU0NTQzZjM2YWRjMzI4YWIzMDY1ZjMxYTVjNWQ2NTQKLS0tCgp7e293bmVyfX0gYWdyZWVzIHRvIGNsb3NlIHRoZWlyIHplcm8gcXVhbnRpdHkgYmFsYW5jZSBmb3IgdGhlIHt7c3ltYm9sX3RvX3N5bWJvbF9jb2RlIHN5bWJvbH19IHRva2VuLgoKUkFNIHdpbGwgYmUgcmVmdW5kZWQgdG8gdGhlIFJBTSBwYXllciBvZiB0aGUge3tzeW1ib2xfdG9fc3ltYm9sX2NvZGUgc3ltYm9sfX0gdG9rZW4gYmFsYW5jZSBmb3Ige3tvd25lcn19LgAAAACobNRFBmNyZWF0ZZoFLS0tCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogQ3JlYXRlIE5ldyBUb2tlbgpzdW1tYXJ5OiAnQ3JlYXRlIGEgbmV3IHRva2VuJwppY29uOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZW9zbmV0d29ya2ZvdW5kYXRpb24vZW9zLXN5c3RlbS1jb250cmFjdHMvbWFpbi9jb250cmFjdHMvaWNvbnMvdG9rZW4ucG5nIzIwN2ZmNjhiMDQwNmVhYTU2NjE4YjA4YmRhODFkNmEwOTU0NTQzZjM2YWRjMzI4YWIzMDY1ZjMxYTVjNWQ2NTQKLS0tCgp7eyRhY3Rpb24uYWNjb3VudH19IGFncmVlcyB0byBjcmVhdGUgYSBuZXcgdG9rZW4gd2l0aCBzeW1ib2wge3thc3NldF90b19zeW1ib2xfY29kZSBtYXhpbXVtX3N1cHBseX19IHRvIGJlIG1hbmFnZWQgYnkge3tpc3N1ZXJ9fS4KClRoaXMgYWN0aW9uIHdpbGwgbm90IHJlc3VsdCBhbnkgYW55IHRva2VucyBiZWluZyBpc3N1ZWQgaW50byBjaXJjdWxhdGlvbi4KCnt7aXNzdWVyfX0gd2lsbCBiZSBhbGxvd2VkIHRvIGlzc3VlIHRva2VucyBpbnRvIGNpcmN1bGF0aW9uLCB1cCB0byBhIG1heGltdW0gc3VwcGx5IG9mIHt7bWF4aW11bV9zdXBwbHl9fS4KClJBTSB3aWxsIGRlZHVjdGVkIGZyb20ge3skYWN0aW9uLmFjY291bnR9feKAmXMgcmVzb3VyY2VzIHRvIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IHJlY29yZHMuAAAAAAClMXYFaXNzdWXuBy0tLQpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IElzc3VlIFRva2VucyBpbnRvIENpcmN1bGF0aW9uCnN1bW1hcnk6ICdJc3N1ZSB7e25vd3JhcCBxdWFudGl0eX19IGludG8gY2lyY3VsYXRpb24gYW5kIHRyYW5zZmVyIGludG8ge3tub3dyYXAgdG99feKAmXMgYWNjb3VudCcKaWNvbjogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Vvc25ldHdvcmtmb3VuZGF0aW9uL2Vvcy1zeXN0ZW0tY29udHJhY3RzL21haW4vY29udHJhY3RzL2ljb25zL3Rva2VuLnBuZyMyMDdmZjY4YjA0MDZlYWE1NjYxOGIwOGJkYTgxZDZhMDk1NDU0M2YzNmFkYzMyOGFiMzA2NWYzMWE1YzVkNjU0Ci0tLQoKVGhlIHRva2VuIG1hbmFnZXIgYWdyZWVzIHRvIGlzc3VlIHt7cXVhbnRpdHl9fSBpbnRvIGNpcmN1bGF0aW9uLCBhbmQgdHJhbnNmZXIgaXQgaW50byB7e3RvfX3igJlzIGFjY291bnQuCgp7eyNpZiBtZW1vfX1UaGVyZSBpcyBhIG1lbW8gYXR0YWNoZWQgdG8gdGhlIHRyYW5zZmVyIHN0YXRpbmc6Cnt7bWVtb319Cnt7L2lmfX0KCklmIHt7dG99fSBkb2VzIG5vdCBoYXZlIGEgYmFsYW5jZSBmb3Ige3thc3NldF90b19zeW1ib2xfY29kZSBxdWFudGl0eX19LCBvciB0aGUgdG9rZW4gbWFuYWdlciBkb2VzIG5vdCBoYXZlIGEgYmFsYW5jZSBmb3Ige3thc3NldF90b19zeW1ib2xfY29kZSBxdWFudGl0eX19LCB0aGUgdG9rZW4gbWFuYWdlciB3aWxsIGJlIGRlc2lnbmF0ZWQgYXMgdGhlIFJBTSBwYXllciBvZiB0aGUge3thc3NldF90b19zeW1ib2xfY29kZSBxdWFudGl0eX19IHRva2VuIGJhbGFuY2UgZm9yIHt7dG99fS4gQXMgYSByZXN1bHQsIFJBTSB3aWxsIGJlIGRlZHVjdGVkIGZyb20gdGhlIHRva2VuIG1hbmFnZXLigJlzIHJlc291cmNlcyB0byBjcmVhdGUgdGhlIG5lY2Vzc2FyeSByZWNvcmRzLgoKVGhpcyBhY3Rpb24gZG9lcyBub3QgYWxsb3cgdGhlIHRvdGFsIHF1YW50aXR5IHRvIGV4Y2VlZCB0aGUgbWF4IGFsbG93ZWQgc3VwcGx5IG9mIHRoZSB0b2tlbi4AQFLdLaUxdgppc3N1ZWZpeGVkoQgtLS0Kc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBJc3N1ZSBGaXhlZCBTdXBwbHkgb2YgVG9rZW5zIGludG8gQ2lyY3VsYXRpb24Kc3VtbWFyeTogJ0lzc3VlIHVwIHRvIHt7bm93cmFwIHN1cHBseX19IHN1cHBseSBpbnRvIGNpcmN1bGF0aW9uIGFuZCB0cmFuc2ZlciBpbnRvIHt7bm93cmFwIHRvfX3igJlzIGFjY291bnQnCmljb246IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9lb3NuZXR3b3JrZm91bmRhdGlvbi9lb3Mtc3lzdGVtLWNvbnRyYWN0cy9tYWluL2NvbnRyYWN0cy9pY29ucy90b2tlbi5wbmcjMjA3ZmY2OGIwNDA2ZWFhNTY2MThiMDhiZGE4MWQ2YTA5NTQ1NDNmMzZhZGMzMjhhYjMwNjVmMzFhNWM1ZDY1NAotLS0KClRoZSB0b2tlbiBtYW5hZ2VyIGFncmVlcyB0byBpc3N1ZSB0b2tlbnMgdXAgdG8ge3tzdXBwbHl9fSBmaXhlZCBzdXBwbHkgaW50byBjaXJjdWxhdGlvbiwgYW5kIHRyYW5zZmVyIGl0IGludG8ge3t0b3194oCZcyBhY2NvdW50LgoKe3sjaWYgbWVtb319VGhlcmUgaXMgYSBtZW1vIGF0dGFjaGVkIHRvIHRoZSB0cmFuc2ZlciBzdGF0aW5nOgp7e21lbW99fQp7ey9pZn19CgpJZiB7e3RvfX0gZG9lcyBub3QgaGF2ZSBhIGJhbGFuY2UgZm9yIHt7YXNzZXRfdG9fc3ltYm9sX2NvZGUgcXVhbnRpdHl9fSwgb3IgdGhlIHRva2VuIG1hbmFnZXIgZG9lcyBub3QgaGF2ZSBhIGJhbGFuY2UgZm9yIHt7YXNzZXRfdG9fc3ltYm9sX2NvZGUgcXVhbnRpdHl9fSwgdGhlIHRva2VuIG1hbmFnZXIgd2lsbCBiZSBkZXNpZ25hdGVkIGFzIHRoZSBSQU0gcGF5ZXIgb2YgdGhlIHt7YXNzZXRfdG9fc3ltYm9sX2NvZGUgcXVhbnRpdHl9fSB0b2tlbiBiYWxhbmNlIGZvciB7e3RvfX0uIEFzIGEgcmVzdWx0LCBSQU0gd2lsbCBiZSBkZWR1Y3RlZCBmcm9tIHRoZSB0b2tlbiBtYW5hZ2Vy4oCZcyByZXNvdXJjZXMgdG8gY3JlYXRlIHRoZSBuZWNlc3NhcnkgcmVjb3Jkcy4KClRoaXMgYWN0aW9uIGRvZXMgbm90IGFsbG93IHRoZSB0b3RhbCBxdWFudGl0eSB0byBleGNlZWQgdGhlIG1heCBhbGxvd2VkIHN1cHBseSBvZiB0aGUgdG9rZW4uAAAAAAAwVaUEb3BlbsYFLS0tCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogT3BlbiBUb2tlbiBCYWxhbmNlCnN1bW1hcnk6ICdPcGVuIGEgemVybyBxdWFudGl0eSBiYWxhbmNlIGZvciB7e25vd3JhcCBvd25lcn19JwppY29uOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZW9zbmV0d29ya2ZvdW5kYXRpb24vZW9zLXN5c3RlbS1jb250cmFjdHMvbWFpbi9jb250cmFjdHMvaWNvbnMvdG9rZW4ucG5nIzIwN2ZmNjhiMDQwNmVhYTU2NjE4YjA4YmRhODFkNmEwOTU0NTQzZjM2YWRjMzI4YWIzMDY1ZjMxYTVjNWQ2NTQKLS0tCgp7e3JhbV9wYXllcn19IGFncmVlcyB0byBlc3RhYmxpc2ggYSB6ZXJvIHF1YW50aXR5IGJhbGFuY2UgZm9yIHt7b3duZXJ9fSBmb3IgdGhlIHt7c3ltYm9sX3RvX3N5bWJvbF9jb2RlIHN5bWJvbH19IHRva2VuLgoKSWYge3tvd25lcn19IGRvZXMgbm90IGhhdmUgYSBiYWxhbmNlIGZvciB7e3N5bWJvbF90b19zeW1ib2xfY29kZSBzeW1ib2x9fSwge3tyYW1fcGF5ZXJ9fSB3aWxsIGJlIGRlc2lnbmF0ZWQgYXMgdGhlIFJBTSBwYXllciBvZiB0aGUge3tzeW1ib2xfdG9fc3ltYm9sX2NvZGUgc3ltYm9sfX0gdG9rZW4gYmFsYW5jZSBmb3Ige3tvd25lcn19LiBBcyBhIHJlc3VsdCwgUkFNIHdpbGwgYmUgZGVkdWN0ZWQgZnJvbSB7e3JhbV9wYXllcn194oCZcyByZXNvdXJjZXMgdG8gY3JlYXRlIHRoZSBuZWNlc3NhcnkgcmVjb3Jkcy4AAAAAqOuyugZyZXRpcmXcAy0tLQpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IFJlbW92ZSBUb2tlbnMgZnJvbSBDaXJjdWxhdGlvbgpzdW1tYXJ5OiAnUmVtb3ZlIHt7bm93cmFwIHF1YW50aXR5fX0gZnJvbSBjaXJjdWxhdGlvbicKaWNvbjogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Vvc25ldHdvcmtmb3VuZGF0aW9uL2Vvcy1zeXN0ZW0tY29udHJhY3RzL21haW4vY29udHJhY3RzL2ljb25zL3Rva2VuLnBuZyMyMDdmZjY4YjA0MDZlYWE1NjYxOGIwOGJkYTgxZDZhMDk1NDU0M2YzNmFkYzMyOGFiMzA2NWYzMWE1YzVkNjU0Ci0tLQoKVGhlIHRva2VuIG1hbmFnZXIgYWdyZWVzIHRvIHJlbW92ZSB7e3F1YW50aXR5fX0gZnJvbSBjaXJjdWxhdGlvbiwgdGFrZW4gZnJvbSB0aGVpciBvd24gYWNjb3VudC4KCnt7I2lmIG1lbW99fSBUaGVyZSBpcyBhIG1lbW8gYXR0YWNoZWQgdG8gdGhlIGFjdGlvbiBzdGF0aW5nOgp7e21lbW99fQp7ey9pZn194GOtGncjs8IMc2V0bWF4c3VwcGx5wAMtLS0Kc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBTZXQgTWF4IFN1cHBseQpzdW1tYXJ5OiAnU2V0IG1heCBzdXBwbHkgZm9yIHRva2VuJwppY29uOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZW9zbmV0d29ya2ZvdW5kYXRpb24vZW9zLXN5c3RlbS1jb250cmFjdHMvbWFpbi9jb250cmFjdHMvaWNvbnMvdG9rZW4ucG5nIzIwN2ZmNjhiMDQwNmVhYTU2NjE4YjA4YmRhODFkNmEwOTU0NTQzZjM2YWRjMzI4YWIzMDY1ZjMxYTVjNWQ2NTQKLS0tCgp7e2lzc3Vlcn19IHdpbGwgYmUgYWxsb3dlZCB0byBpc3N1ZSB0b2tlbnMgaW50byBjaXJjdWxhdGlvbiwgdXAgdG8gYSBtYXhpbXVtIHN1cHBseSBvZiB7e21heGltdW1fc3VwcGx5fX0uCgpUaGlzIGFjdGlvbiB3aWxsIG5vdCByZXN1bHQgYW55IGFueSB0b2tlbnMgYmVpbmcgaXNzdWVkIGludG8gY2lyY3VsYXRpb24uAAAAVy08zc0IdHJhbnNmZXK2By0tLQpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IFRyYW5zZmVyIFRva2VucwpzdW1tYXJ5OiAnU2VuZCB7e25vd3JhcCBxdWFudGl0eX19IGZyb20ge3tub3dyYXAgZnJvbX19IHRvIHt7bm93cmFwIHRvfX0nCmljb246IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9lb3NuZXR3b3JrZm91bmRhdGlvbi9lb3Mtc3lzdGVtLWNvbnRyYWN0cy9tYWluL2NvbnRyYWN0cy9pY29ucy90cmFuc2Zlci5wbmcjNWRmYWQwZGY3Mjc3MmVlMWNjYzE1NWU2NzBjMWQxMjRmNWM1MTIyZjFkNTAyNzU2NWRmMzhiNDE4MDQyZDFkZAotLS0KCnt7ZnJvbX19IGFncmVlcyB0byBzZW5kIHt7cXVhbnRpdHl9fSB0byB7e3RvfX0uCgp7eyNpZiBtZW1vfX1UaGVyZSBpcyBhIG1lbW8gYXR0YWNoZWQgdG8gdGhlIHRyYW5zZmVyIHN0YXRpbmc6Cnt7bWVtb319Cnt7L2lmfX0KCklmIHt7ZnJvbX19IGlzIG5vdCBhbHJlYWR5IHRoZSBSQU0gcGF5ZXIgb2YgdGhlaXIge3thc3NldF90b19zeW1ib2xfY29kZSBxdWFudGl0eX19IHRva2VuIGJhbGFuY2UsIHt7ZnJvbX19IHdpbGwgYmUgZGVzaWduYXRlZCBhcyBzdWNoLiBBcyBhIHJlc3VsdCwgUkFNIHdpbGwgYmUgZGVkdWN0ZWQgZnJvbSB7e2Zyb219feKAmXMgcmVzb3VyY2VzIHRvIHJlZnVuZCB0aGUgb3JpZ2luYWwgUkFNIHBheWVyLgoKSWYge3t0b319IGRvZXMgbm90IGhhdmUgYSBiYWxhbmNlIGZvciB7e2Fzc2V0X3RvX3N5bWJvbF9jb2RlIHF1YW50aXR5fX0sIHt7ZnJvbX19IHdpbGwgYmUgZGVzaWduYXRlZCBhcyB0aGUgUkFNIHBheWVyIG9mIHRoZSB7e2Fzc2V0X3RvX3N5bWJvbF9jb2RlIHF1YW50aXR5fX0gdG9rZW4gYmFsYW5jZSBmb3Ige3t0b319LiBBcyBhIHJlc3VsdCwgUkFNIHdpbGwgYmUgZGVkdWN0ZWQgZnJvbSB7e2Zyb219feKAmXMgcmVzb3VyY2VzIHRvIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IHJlY29yZHMuAgAAADhPTREyA2k2NAAAB2FjY291bnQAAAAAAJBNxgNpNjQAAA5jdXJyZW5jeV9zdGF0cwAAAAAA'
|
|
7
|
+
)
|
|
8
|
+
export const abi = ABI.from(abiBlob)
|
|
9
|
+
export namespace Types {
|
|
10
|
+
@Struct.type('account')
|
|
11
|
+
export class account extends Struct {
|
|
12
|
+
@Struct.field(Asset)
|
|
13
|
+
declare balance: Asset
|
|
14
|
+
}
|
|
15
|
+
@Struct.type('close')
|
|
16
|
+
export class close extends Struct {
|
|
17
|
+
@Struct.field(Name)
|
|
18
|
+
declare owner: Name
|
|
19
|
+
@Struct.field(Asset.Symbol)
|
|
20
|
+
declare symbol: Asset.Symbol
|
|
21
|
+
}
|
|
22
|
+
@Struct.type('create')
|
|
23
|
+
export class create extends Struct {
|
|
24
|
+
@Struct.field(Name)
|
|
25
|
+
declare issuer: Name
|
|
26
|
+
@Struct.field(Asset)
|
|
27
|
+
declare maximum_supply: Asset
|
|
28
|
+
}
|
|
29
|
+
@Struct.type('currency_stats')
|
|
30
|
+
export class currency_stats extends Struct {
|
|
31
|
+
@Struct.field(Asset)
|
|
32
|
+
declare supply: Asset
|
|
33
|
+
@Struct.field(Asset)
|
|
34
|
+
declare max_supply: Asset
|
|
35
|
+
@Struct.field(Name)
|
|
36
|
+
declare issuer: Name
|
|
37
|
+
}
|
|
38
|
+
@Struct.type('issue')
|
|
39
|
+
export class issue extends Struct {
|
|
40
|
+
@Struct.field(Name)
|
|
41
|
+
declare to: Name
|
|
42
|
+
@Struct.field(Asset)
|
|
43
|
+
declare quantity: Asset
|
|
44
|
+
@Struct.field('string')
|
|
45
|
+
declare memo: string
|
|
46
|
+
}
|
|
47
|
+
@Struct.type('issuefixed')
|
|
48
|
+
export class issuefixed extends Struct {
|
|
49
|
+
@Struct.field(Name)
|
|
50
|
+
declare to: Name
|
|
51
|
+
@Struct.field(Asset)
|
|
52
|
+
declare supply: Asset
|
|
53
|
+
@Struct.field('string')
|
|
54
|
+
declare memo: string
|
|
55
|
+
}
|
|
56
|
+
@Struct.type('open')
|
|
57
|
+
export class open extends Struct {
|
|
58
|
+
@Struct.field(Name)
|
|
59
|
+
declare owner: Name
|
|
60
|
+
@Struct.field(Asset.Symbol)
|
|
61
|
+
declare symbol: Asset.Symbol
|
|
62
|
+
@Struct.field(Name)
|
|
63
|
+
declare ram_payer: Name
|
|
64
|
+
}
|
|
65
|
+
@Struct.type('retire')
|
|
66
|
+
export class retire extends Struct {
|
|
67
|
+
@Struct.field(Asset)
|
|
68
|
+
declare quantity: Asset
|
|
69
|
+
@Struct.field('string')
|
|
70
|
+
declare memo: string
|
|
71
|
+
}
|
|
72
|
+
@Struct.type('setmaxsupply')
|
|
73
|
+
export class setmaxsupply extends Struct {
|
|
74
|
+
@Struct.field(Name)
|
|
75
|
+
declare issuer: Name
|
|
76
|
+
@Struct.field(Asset)
|
|
77
|
+
declare maximum_supply: Asset
|
|
78
|
+
}
|
|
79
|
+
@Struct.type('transfer')
|
|
80
|
+
export class transfer extends Struct {
|
|
81
|
+
@Struct.field(Name)
|
|
82
|
+
declare from: Name
|
|
83
|
+
@Struct.field(Name)
|
|
84
|
+
declare to: Name
|
|
85
|
+
@Struct.field(Asset)
|
|
86
|
+
declare quantity: Asset
|
|
87
|
+
@Struct.field('string')
|
|
88
|
+
declare memo: string
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export const TableMap = {
|
|
92
|
+
accounts: Types.account,
|
|
93
|
+
stat: Types.currency_stats,
|
|
94
|
+
}
|
|
95
|
+
export interface TableTypes {
|
|
96
|
+
accounts: Types.account
|
|
97
|
+
stat: Types.currency_stats
|
|
98
|
+
}
|
|
99
|
+
export type RowType<T> = T extends keyof TableTypes ? TableTypes[T] : any
|
|
100
|
+
export type TableNames = keyof TableTypes
|
|
101
|
+
export namespace ActionParams {
|
|
102
|
+
export namespace Type {}
|
|
103
|
+
export interface close {
|
|
104
|
+
owner: NameType
|
|
105
|
+
symbol: Asset.SymbolType
|
|
106
|
+
}
|
|
107
|
+
export interface create {
|
|
108
|
+
issuer: NameType
|
|
109
|
+
maximum_supply: AssetType
|
|
110
|
+
}
|
|
111
|
+
export interface issue {
|
|
112
|
+
to: NameType
|
|
113
|
+
quantity: AssetType
|
|
114
|
+
memo: string
|
|
115
|
+
}
|
|
116
|
+
export interface issuefixed {
|
|
117
|
+
to: NameType
|
|
118
|
+
supply: AssetType
|
|
119
|
+
memo: string
|
|
120
|
+
}
|
|
121
|
+
export interface open {
|
|
122
|
+
owner: NameType
|
|
123
|
+
symbol: Asset.SymbolType
|
|
124
|
+
ram_payer: NameType
|
|
125
|
+
}
|
|
126
|
+
export interface retire {
|
|
127
|
+
quantity: AssetType
|
|
128
|
+
memo: string
|
|
129
|
+
}
|
|
130
|
+
export interface setmaxsupply {
|
|
131
|
+
issuer: NameType
|
|
132
|
+
maximum_supply: AssetType
|
|
133
|
+
}
|
|
134
|
+
export interface transfer {
|
|
135
|
+
from: NameType
|
|
136
|
+
to: NameType
|
|
137
|
+
quantity: AssetType
|
|
138
|
+
memo: string
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
export interface ActionNameParams {
|
|
142
|
+
close: ActionParams.close
|
|
143
|
+
create: ActionParams.create
|
|
144
|
+
issue: ActionParams.issue
|
|
145
|
+
issuefixed: ActionParams.issuefixed
|
|
146
|
+
open: ActionParams.open
|
|
147
|
+
retire: ActionParams.retire
|
|
148
|
+
setmaxsupply: ActionParams.setmaxsupply
|
|
149
|
+
transfer: ActionParams.transfer
|
|
150
|
+
}
|
|
151
|
+
export type ActionNames = keyof ActionNameParams
|
|
152
|
+
export class Contract extends BaseContract {
|
|
153
|
+
constructor(args: PartialBy<ContractArgs, 'abi' | 'account'>) {
|
|
154
|
+
super({
|
|
155
|
+
client: args.client,
|
|
156
|
+
abi: abi,
|
|
157
|
+
account: args.account || Name.from('eosio.token'),
|
|
158
|
+
})
|
|
159
|
+
}
|
|
160
|
+
action<T extends ActionNames>(
|
|
161
|
+
name: T,
|
|
162
|
+
data: ActionNameParams[T],
|
|
163
|
+
options?: ActionOptions
|
|
164
|
+
): Action {
|
|
165
|
+
return super.action(name, data, options)
|
|
166
|
+
}
|
|
167
|
+
table<T extends TableNames>(name: T, scope?: NameType): Table<RowType<T>> {
|
|
168
|
+
return super.table(name, scope, TableMap[name])
|
|
169
|
+
}
|
|
170
|
+
}
|
package/src/contracts.ts
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {describe, expect, test} from 'bun:test'
|
|
2
|
+
import {getItems, itemTypeIndex, typeLabel} from './catalog'
|
|
3
|
+
|
|
4
|
+
describe('itemTypeIndex', () => {
|
|
5
|
+
test('agrees with typeLabel for every item in the catalog', () => {
|
|
6
|
+
for (const item of getItems()) {
|
|
7
|
+
expect(typeLabel(itemTypeIndex(item.id))).toBe(typeLabel(item.type))
|
|
8
|
+
}
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
test('covers every type in the chain enum order', () => {
|
|
12
|
+
const indexes = new Set(getItems().map((item) => itemTypeIndex(item.id)))
|
|
13
|
+
expect([...indexes].sort()).toEqual([0, 1, 2, 3])
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
test('throws for an unknown item', () => {
|
|
17
|
+
expect(() => itemTypeIndex(65535)).toThrow()
|
|
18
|
+
})
|
|
19
|
+
})
|
package/src/data/catalog.ts
CHANGED
|
@@ -106,6 +106,12 @@ const TYPE_LABEL_BY_STRING: Record<ItemType, string> = {
|
|
|
106
106
|
|
|
107
107
|
const TYPE_BY_INDEX: ItemType[] = ['resource', 'component', 'module', 'entity']
|
|
108
108
|
|
|
109
|
+
export function itemTypeIndex(itemId: UInt16Type): number {
|
|
110
|
+
const index = TYPE_BY_INDEX.indexOf(getItem(itemId).type)
|
|
111
|
+
if (index < 0) throw new Error(`Unknown item type for item ${UInt16.from(itemId).toNumber()}`)
|
|
112
|
+
return index
|
|
113
|
+
}
|
|
114
|
+
|
|
109
115
|
export function typeLabel(type: ItemType | number): string {
|
|
110
116
|
if (typeof type === 'number') {
|
|
111
117
|
const t = TYPE_BY_INDEX[type]
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
{
|
|
2
|
+
"nodes": [
|
|
3
|
+
{
|
|
4
|
+
"nodeId": 1,
|
|
5
|
+
"cost": "2000000000",
|
|
6
|
+
"prereqs": [],
|
|
7
|
+
"effect": {
|
|
8
|
+
"kind": 1,
|
|
9
|
+
"itemId": 10208,
|
|
10
|
+
"targetItemId": 0,
|
|
11
|
+
"slotMask": 0,
|
|
12
|
+
"stat": 213
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"nodeId": 2,
|
|
17
|
+
"cost": "4000000000",
|
|
18
|
+
"prereqs": [
|
|
19
|
+
1
|
|
20
|
+
],
|
|
21
|
+
"effect": {
|
|
22
|
+
"kind": 1,
|
|
23
|
+
"itemId": 10216,
|
|
24
|
+
"targetItemId": 0,
|
|
25
|
+
"slotMask": 0,
|
|
26
|
+
"stat": 213
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"nodeId": 3,
|
|
31
|
+
"cost": "3000000000",
|
|
32
|
+
"prereqs": [
|
|
33
|
+
1
|
|
34
|
+
],
|
|
35
|
+
"effect": {
|
|
36
|
+
"kind": 1,
|
|
37
|
+
"itemId": 10209,
|
|
38
|
+
"targetItemId": 0,
|
|
39
|
+
"slotMask": 0,
|
|
40
|
+
"stat": 213
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"nodeId": 4,
|
|
45
|
+
"cost": "2000000000",
|
|
46
|
+
"prereqs": [
|
|
47
|
+
1
|
|
48
|
+
],
|
|
49
|
+
"effect": {
|
|
50
|
+
"kind": 2,
|
|
51
|
+
"itemId": 10104,
|
|
52
|
+
"targetItemId": 10208,
|
|
53
|
+
"slotMask": 0,
|
|
54
|
+
"stat": 400
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"nodeId": 5,
|
|
59
|
+
"cost": "3000000000",
|
|
60
|
+
"prereqs": [
|
|
61
|
+
3
|
|
62
|
+
],
|
|
63
|
+
"effect": {
|
|
64
|
+
"kind": 2,
|
|
65
|
+
"itemId": 10110,
|
|
66
|
+
"targetItemId": 10209,
|
|
67
|
+
"slotMask": 2,
|
|
68
|
+
"stat": 400
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"nodeId": 6,
|
|
73
|
+
"cost": "2500000000",
|
|
74
|
+
"prereqs": [
|
|
75
|
+
1
|
|
76
|
+
],
|
|
77
|
+
"effect": {
|
|
78
|
+
"kind": 1,
|
|
79
|
+
"itemId": 10219,
|
|
80
|
+
"targetItemId": 0,
|
|
81
|
+
"slotMask": 1,
|
|
82
|
+
"stat": 0
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"nodeId": 7,
|
|
87
|
+
"cost": "1000000000",
|
|
88
|
+
"prereqs": [
|
|
89
|
+
6
|
|
90
|
+
],
|
|
91
|
+
"effect": {
|
|
92
|
+
"kind": 2,
|
|
93
|
+
"itemId": 10105,
|
|
94
|
+
"targetItemId": 10219,
|
|
95
|
+
"slotMask": 2,
|
|
96
|
+
"stat": 213
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"nodeId": 8,
|
|
101
|
+
"cost": "1500000000",
|
|
102
|
+
"prereqs": [
|
|
103
|
+
7
|
|
104
|
+
],
|
|
105
|
+
"effect": {
|
|
106
|
+
"kind": 2,
|
|
107
|
+
"itemId": 10105,
|
|
108
|
+
"targetItemId": 10219,
|
|
109
|
+
"slotMask": 4,
|
|
110
|
+
"stat": 213
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"nodeId": 9,
|
|
115
|
+
"cost": "2000000000",
|
|
116
|
+
"prereqs": [
|
|
117
|
+
8
|
|
118
|
+
],
|
|
119
|
+
"effect": {
|
|
120
|
+
"kind": 2,
|
|
121
|
+
"itemId": 10105,
|
|
122
|
+
"targetItemId": 10219,
|
|
123
|
+
"slotMask": 8,
|
|
124
|
+
"stat": 213
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"nodeId": 10,
|
|
129
|
+
"cost": "2500000000",
|
|
130
|
+
"prereqs": [
|
|
131
|
+
9
|
|
132
|
+
],
|
|
133
|
+
"effect": {
|
|
134
|
+
"kind": 2,
|
|
135
|
+
"itemId": 10105,
|
|
136
|
+
"targetItemId": 10219,
|
|
137
|
+
"slotMask": 16,
|
|
138
|
+
"stat": 213
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"nodeId": 11,
|
|
143
|
+
"cost": "800000000",
|
|
144
|
+
"prereqs": [
|
|
145
|
+
6
|
|
146
|
+
],
|
|
147
|
+
"effect": {
|
|
148
|
+
"kind": 2,
|
|
149
|
+
"itemId": 10103,
|
|
150
|
+
"targetItemId": 10219,
|
|
151
|
+
"slotMask": 1,
|
|
152
|
+
"stat": 100
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"nodeId": 12,
|
|
157
|
+
"cost": "1200000000",
|
|
158
|
+
"prereqs": [
|
|
159
|
+
11
|
|
160
|
+
],
|
|
161
|
+
"effect": {
|
|
162
|
+
"kind": 2,
|
|
163
|
+
"itemId": 10103,
|
|
164
|
+
"targetItemId": 10219,
|
|
165
|
+
"slotMask": 1,
|
|
166
|
+
"stat": 200
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"nodeId": 13,
|
|
171
|
+
"cost": "1600000000",
|
|
172
|
+
"prereqs": [
|
|
173
|
+
12
|
|
174
|
+
],
|
|
175
|
+
"effect": {
|
|
176
|
+
"kind": 2,
|
|
177
|
+
"itemId": 10103,
|
|
178
|
+
"targetItemId": 10219,
|
|
179
|
+
"slotMask": 1,
|
|
180
|
+
"stat": 300
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"nodeId": 14,
|
|
185
|
+
"cost": "2000000000",
|
|
186
|
+
"prereqs": [
|
|
187
|
+
13
|
|
188
|
+
],
|
|
189
|
+
"effect": {
|
|
190
|
+
"kind": 2,
|
|
191
|
+
"itemId": 10103,
|
|
192
|
+
"targetItemId": 10219,
|
|
193
|
+
"slotMask": 1,
|
|
194
|
+
"stat": 400
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
]
|
|
198
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[
|
|
2
|
+
"Free",
|
|
3
|
+
"Civic",
|
|
4
|
+
"United",
|
|
5
|
+
"Sovereign",
|
|
6
|
+
"Common",
|
|
7
|
+
"Greater",
|
|
8
|
+
"Outer",
|
|
9
|
+
"Inner",
|
|
10
|
+
"New",
|
|
11
|
+
"Old",
|
|
12
|
+
"Grand",
|
|
13
|
+
"High",
|
|
14
|
+
"Deep",
|
|
15
|
+
"Bright",
|
|
16
|
+
"Open",
|
|
17
|
+
"Steadfast",
|
|
18
|
+
"Enduring",
|
|
19
|
+
"Rising",
|
|
20
|
+
"Standing",
|
|
21
|
+
"Unified",
|
|
22
|
+
"Allied",
|
|
23
|
+
"Independent",
|
|
24
|
+
"Provisional",
|
|
25
|
+
"Perpetual",
|
|
26
|
+
"Elder",
|
|
27
|
+
"Prime",
|
|
28
|
+
"Central",
|
|
29
|
+
"Frontier",
|
|
30
|
+
"Distant",
|
|
31
|
+
"Kindred",
|
|
32
|
+
"Mutual",
|
|
33
|
+
"Shared",
|
|
34
|
+
"Reformed",
|
|
35
|
+
"Restored",
|
|
36
|
+
"Second",
|
|
37
|
+
"Orbital",
|
|
38
|
+
"Solar",
|
|
39
|
+
"Verdant",
|
|
40
|
+
"Far",
|
|
41
|
+
"Wayward"
|
|
42
|
+
]
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
[
|
|
2
|
+
"Collective",
|
|
3
|
+
"Compact",
|
|
4
|
+
"Concord",
|
|
5
|
+
"Union",
|
|
6
|
+
"Assembly",
|
|
7
|
+
"League",
|
|
8
|
+
"Accord",
|
|
9
|
+
"Commune",
|
|
10
|
+
"Congress",
|
|
11
|
+
"Coalition",
|
|
12
|
+
"Charter",
|
|
13
|
+
"Syndicate",
|
|
14
|
+
"Directorate",
|
|
15
|
+
"Movement",
|
|
16
|
+
"Pact",
|
|
17
|
+
"Circle",
|
|
18
|
+
"Council",
|
|
19
|
+
"Conclave",
|
|
20
|
+
"Convention",
|
|
21
|
+
"Federation",
|
|
22
|
+
"Confederacy",
|
|
23
|
+
"Alliance",
|
|
24
|
+
"Association",
|
|
25
|
+
"Fellowship",
|
|
26
|
+
"Order",
|
|
27
|
+
"Chapter",
|
|
28
|
+
"Guild",
|
|
29
|
+
"Consortium",
|
|
30
|
+
"Cooperative",
|
|
31
|
+
"Bloc",
|
|
32
|
+
"Front",
|
|
33
|
+
"Caucus",
|
|
34
|
+
"Chamber",
|
|
35
|
+
"Quorum",
|
|
36
|
+
"Covenant",
|
|
37
|
+
"Communion",
|
|
38
|
+
"Trust",
|
|
39
|
+
"Society",
|
|
40
|
+
"Company",
|
|
41
|
+
"Corps",
|
|
42
|
+
"Delegation",
|
|
43
|
+
"Ministry",
|
|
44
|
+
"Authority",
|
|
45
|
+
"Commission",
|
|
46
|
+
"Bureau",
|
|
47
|
+
"Polity",
|
|
48
|
+
"Dominion",
|
|
49
|
+
"Protectorate"
|
|
50
|
+
]
|
package/src/data/entities.json
CHANGED
|
@@ -313,6 +313,11 @@
|
|
|
313
313
|
],
|
|
314
314
|
"baseHullmass": 4000000
|
|
315
315
|
},
|
|
316
|
+
{
|
|
317
|
+
"entityItemId": 10216,
|
|
318
|
+
"slots": [],
|
|
319
|
+
"baseHullmass": 100000
|
|
320
|
+
},
|
|
316
321
|
{
|
|
317
322
|
"entityItemId": 10218,
|
|
318
323
|
"slots": [
|
|
@@ -334,6 +339,37 @@
|
|
|
334
339
|
],
|
|
335
340
|
"baseHullmass": 4000000
|
|
336
341
|
},
|
|
342
|
+
{
|
|
343
|
+
"entityItemId": 10219,
|
|
344
|
+
"slots": [
|
|
345
|
+
{
|
|
346
|
+
"type": "loader",
|
|
347
|
+
"outputPct": 100,
|
|
348
|
+
"maxTier": 1
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"type": "storage",
|
|
352
|
+
"outputPct": 100,
|
|
353
|
+
"maxTier": 1
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"type": "storage",
|
|
357
|
+
"outputPct": 100,
|
|
358
|
+
"maxTier": 1
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"type": "storage",
|
|
362
|
+
"outputPct": 100,
|
|
363
|
+
"maxTier": 1
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"type": "storage",
|
|
367
|
+
"outputPct": 100,
|
|
368
|
+
"maxTier": 1
|
|
369
|
+
}
|
|
370
|
+
],
|
|
371
|
+
"baseHullmass": 100000
|
|
372
|
+
},
|
|
337
373
|
{
|
|
338
374
|
"entityItemId": 11200,
|
|
339
375
|
"slots": [],
|
package/src/data/item-ids.ts
CHANGED
|
@@ -87,7 +87,9 @@ export const ITEM_TENDER_T1A_PACKED = 10212
|
|
|
87
87
|
export const ITEM_WRIGHT_T1A_PACKED = 10213
|
|
88
88
|
export const ITEM_TUG_T1A_PACKED = 10214
|
|
89
89
|
export const ITEM_PORTER_T1A_PACKED = 10215
|
|
90
|
+
export const ITEM_NEXUS_T1_PACKED = 10216
|
|
90
91
|
export const ITEM_SMITH_T1A_PACKED = 10218
|
|
92
|
+
export const ITEM_DEPOT_T1_PACKED = 10219
|
|
91
93
|
export const ITEM_PLATE_T2 = 11001
|
|
92
94
|
export const ITEM_FRAME_T2 = 11002
|
|
93
95
|
export const ITEM_PLASMA_CELL_T2 = 11003
|
package/src/data/items.json
CHANGED
|
@@ -582,12 +582,24 @@
|
|
|
582
582
|
"type": "entity",
|
|
583
583
|
"tier": 1
|
|
584
584
|
},
|
|
585
|
+
{
|
|
586
|
+
"id": 10216,
|
|
587
|
+
"mass": 4800000,
|
|
588
|
+
"type": "entity",
|
|
589
|
+
"tier": 1
|
|
590
|
+
},
|
|
585
591
|
{
|
|
586
592
|
"id": 10218,
|
|
587
593
|
"mass": 2400000,
|
|
588
594
|
"type": "entity",
|
|
589
595
|
"tier": 1
|
|
590
596
|
},
|
|
597
|
+
{
|
|
598
|
+
"id": 10219,
|
|
599
|
+
"mass": 4800000,
|
|
600
|
+
"type": "entity",
|
|
601
|
+
"tier": 1
|
|
602
|
+
},
|
|
591
603
|
{
|
|
592
604
|
"id": 11001,
|
|
593
605
|
"mass": 4800,
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"kind": "nexus",
|
|
54
|
-
"classification": "
|
|
54
|
+
"classification": "OrbitalStructure",
|
|
55
55
|
"capabilityFlags": 0,
|
|
56
|
-
"zCoord":
|
|
56
|
+
"zCoord": 0,
|
|
57
57
|
"defaultLabel": "Nexus"
|
|
58
58
|
},
|
|
59
59
|
{
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
"kind": "workshop",
|
|
75
|
-
"classification": "
|
|
75
|
+
"classification": "PlanetaryStructure",
|
|
76
76
|
"capabilityFlags": 20,
|
|
77
77
|
"zCoord": 0,
|
|
78
78
|
"defaultLabel": "Workshop"
|
|
@@ -83,6 +83,13 @@
|
|
|
83
83
|
"capabilityFlags": 20,
|
|
84
84
|
"zCoord": 0,
|
|
85
85
|
"defaultLabel": "Construction Dock"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"kind": "depot",
|
|
89
|
+
"classification": "PlanetaryStructure",
|
|
90
|
+
"capabilityFlags": 0,
|
|
91
|
+
"zCoord": 0,
|
|
92
|
+
"defaultLabel": "Depot"
|
|
86
93
|
}
|
|
87
94
|
],
|
|
88
95
|
"templates": [
|
|
@@ -176,6 +183,11 @@
|
|
|
176
183
|
"kind": "builddock",
|
|
177
184
|
"displayLabel": ""
|
|
178
185
|
},
|
|
186
|
+
{
|
|
187
|
+
"itemId": 10216,
|
|
188
|
+
"kind": "nexus",
|
|
189
|
+
"displayLabel": ""
|
|
190
|
+
},
|
|
179
191
|
{
|
|
180
192
|
"itemId": 11212,
|
|
181
193
|
"kind": "ship",
|
|
@@ -190,6 +202,11 @@
|
|
|
190
202
|
"itemId": 11214,
|
|
191
203
|
"kind": "ship",
|
|
192
204
|
"displayLabel": "Dredger"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"itemId": 10219,
|
|
208
|
+
"kind": "depot",
|
|
209
|
+
"displayLabel": ""
|
|
193
210
|
}
|
|
194
211
|
]
|
|
195
212
|
}
|
|
@@ -34,6 +34,7 @@ export type EntityTypeName =
|
|
|
34
34
|
| 'mdriver'
|
|
35
35
|
| 'mcatcher'
|
|
36
36
|
| 'hub'
|
|
37
|
+
| 'depot'
|
|
37
38
|
|
|
38
39
|
export interface KindMeta {
|
|
39
40
|
kind: Name
|
|
@@ -143,6 +144,7 @@ export const ENTITY_PLOT = Name.from('plot')
|
|
|
143
144
|
export const ENTITY_MASS_DRIVER = Name.from('mdriver')
|
|
144
145
|
export const ENTITY_MASS_CATCHER = Name.from('mcatcher')
|
|
145
146
|
export const ENTITY_HUB = Name.from('hub')
|
|
147
|
+
export const ENTITY_DEPOT = Name.from('depot')
|
|
146
148
|
|
|
147
149
|
export function isShip(entity: {type?: Name}): boolean {
|
|
148
150
|
return entity.type?.equals(ENTITY_SHIP) ?? false
|
|
@@ -180,3 +182,6 @@ export function isMassCatcher(entity: {type?: Name}): boolean {
|
|
|
180
182
|
export function isHub(entity: {type?: Name}): boolean {
|
|
181
183
|
return entity.type?.equals(ENTITY_HUB) ?? false
|
|
182
184
|
}
|
|
185
|
+
export function isDepot(entity: {type?: Name}): boolean {
|
|
186
|
+
return entity.type?.equals(ENTITY_DEPOT) ?? false
|
|
187
|
+
}
|