From 55003db99dc7dc3591a955388b7fd63fc26a154b Mon Sep 17 00:00:00 2001 From: cha0s Date: Mon, 15 Jun 2020 17:26:20 -0500 Subject: [PATCH] refactor: neutrino! --- packages/behavior/context/index.js | 3 ++- packages/behavior/item/registry.js | 2 +- packages/behavior/traits/behaved.trait.js | 2 +- packages/core/hook/hook.avopack.js | 15 ----------- packages/core/hook/loader.js | 11 ++++++-- packages/entity/entity.synchronized.js | 4 +-- packages/entity/index.js | 6 ++--- packages/entity/list/index.js | 4 +-- packages/entity/packets/died.packet.js | 2 +- .../entity-list-update-entity.packet.js | 2 +- .../packets/entity-update-trait.packet.js | 2 +- .../packets/trait-update-alive.packet.js | 2 +- ...ait-update-directional-direction.packet.js | 2 +- ...trait-update-positioned-position.packet.js | 2 +- packages/entity/trait/registry.js | 2 +- packages/entity/trait/traits.avopack.js | 20 --------------- packages/entity/trait/traits.scwp.js | 10 ++++++++ packages/entity/traits/alive.trait.js | 6 ++--- packages/entity/traits/debuggable.trait.js | 2 +- packages/entity/traits/directional.trait.js | 6 ++--- packages/entity/traits/existent.trait.js | 2 +- packages/entity/traits/listed.trait.js | 2 +- packages/entity/traits/mobile.trait.js | 2 +- packages/entity/traits/perishable.trait.js | 2 +- packages/entity/traits/positioned.trait.js | 4 +-- packages/entity/traits/spawner.trait.js | 2 +- .../packets/trait-update-visible.packet.js | 2 +- packages/graphics/renderer.js | 2 +- packages/graphics/shim/pixi/pixi.avopack.js | 20 --------------- packages/graphics/shim/pixi/pixi.scwp.js | 25 +++++++++++++++++++ packages/graphics/traits/pictured.trait.js | 2 +- packages/graphics/traits/primitive.trait.js | 2 +- packages/graphics/traits/staged.trait.js | 2 +- packages/graphics/traits/textual.trait.js | 2 +- packages/graphics/traits/visible.trait.js | 6 ++--- packages/input/index.js | 2 +- packages/input/packet/input.packet.js | 2 +- packages/net/client/socket-worker.js | 2 +- packages/net/client/worker.js | 2 +- packages/net/packet/packet.js | 6 ----- packages/net/packet/packets.avopack.js | 23 ----------------- packages/net/s13n/client.js | 6 ++--- packages/net/s13n/index.js | 8 +++--- packages/net/s13n/registry.js | 2 +- packages/net/s13n/s13n.avopack.js | 20 --------------- packages/net/s13n/s13n.scwp.js | 12 +++++++++ packages/net/s13n/server.js | 4 +-- .../net/s13n/synchronized-create.packet.js | 4 +-- .../net/s13n/synchronized-destroy.packet.js | 4 +-- .../net/s13n/synchronized-update.packet.js | 4 +-- packages/net/s13n/synchronized.js | 4 +-- packages/net/s13n/synchronized.packet.js | 2 +- packages/physics/traits/collider.trait.js | 2 +- packages/physics/traits/emitted.trait.js | 2 +- packages/physics/traits/emitter.trait.js | 2 +- packages/physics/traits/physical.trait.js | 2 +- packages/physics/traits/shaped.trait.js | 2 +- packages/sound/traits/audible.trait.js | 2 +- .../packets/trait-update-animated.packet.js | 2 +- packages/timing/traits/animated.trait.js | 4 +-- packages/topdown/index.js | 2 +- packages/topdown/layer.js | 8 ++---- packages/topdown/layers.js | 2 +- .../layer-update-tileset-uri.packet.js | 2 +- .../packets/layers-update-layer.packet.js | 2 +- .../packets/room-update-layers.packet.js | 2 +- .../packets/room-update-size.packet.js | 2 +- .../topdown/packets/tiles-update.packet.js | 2 +- packages/topdown/room.synchronized.js | 6 ++--- packages/topdown/tiles.js | 2 +- packages/topdown/traits/followed.trait.js | 2 +- packages/topdown/traits/layered.trait.js | 2 +- packages/topdown/traits/roomed.trait.js | 2 +- packages/topdown/traits/tile-entity.trait.js | 2 +- 74 files changed, 143 insertions(+), 202 deletions(-) delete mode 100644 packages/core/hook/hook.avopack.js delete mode 100644 packages/entity/trait/traits.avopack.js create mode 100644 packages/entity/trait/traits.scwp.js delete mode 100644 packages/graphics/shim/pixi/pixi.avopack.js create mode 100644 packages/graphics/shim/pixi/pixi.scwp.js delete mode 100644 packages/net/packet/packets.avopack.js delete mode 100644 packages/net/s13n/s13n.avopack.js create mode 100644 packages/net/s13n/s13n.scwp.js diff --git a/packages/behavior/context/index.js b/packages/behavior/context/index.js index 0ab4a6a..a260898 100644 --- a/packages/behavior/context/index.js +++ b/packages/behavior/context/index.js @@ -1,6 +1,7 @@ import D from 'debug'; +import {invokeHookFlat} from 'scwp'; -import {fastApply, invokeHookFlat} from '@avocado/core'; +import {fastApply} from '@avocado/core'; const debug = D('@avocado:behavior:context'); diff --git a/packages/behavior/item/registry.js b/packages/behavior/item/registry.js index f5c9811..a2f06d5 100644 --- a/packages/behavior/item/registry.js +++ b/packages/behavior/item/registry.js @@ -1,4 +1,4 @@ -import {invokeHookFlat} from '@avocado/core'; +import {invokeHookFlat} from 'scwp'; let _behaviorItems; diff --git a/packages/behavior/traits/behaved.trait.js b/packages/behavior/traits/behaved.trait.js index eb9d26e..ae06fb8 100644 --- a/packages/behavior/traits/behaved.trait.js +++ b/packages/behavior/traits/behaved.trait.js @@ -11,7 +11,7 @@ const decorate = compose( StateProperty('isBehaving'), ); -export class Behaved extends decorate(Trait) { +export default class Behaved extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/core/hook/hook.avopack.js b/packages/core/hook/hook.avopack.js deleted file mode 100644 index 146b751..0000000 --- a/packages/core/hook/hook.avopack.js +++ /dev/null @@ -1,15 +0,0 @@ -const path = require('path'); - -module.exports = ({entries, paths, root, rules}) => { - rules.push({ - test: new RegExp('@avocado/packages/core/hook/entry.js$'), - use: { - loader: '@avocado/core/hook/loader', - options: { - paths, - root, - }, - }, - }); - entries.push('@avocado/core/hook/entry'); -}; diff --git a/packages/core/hook/loader.js b/packages/core/hook/loader.js index 68d0533..0b1ae25 100644 --- a/packages/core/hook/loader.js +++ b/packages/core/hook/loader.js @@ -35,21 +35,28 @@ module.exports = function(source) { const parts = relativePath.split('/'); // Chop off basename. const basename = parts.pop(); + const moduleName = path.basename(basename, '.js'); // Module or local? + let hookKey; let importDirectory; if ('node_modules' === parts[0]) { importDirectory = parts.slice(1).join('/'); + hookKey = `${importDirectory}/${moduleName}`; } else { importDirectory = `${root}/${parts.join('/')}`; + hookKey = `./${parts.join('/')}/${moduleName}`; } - const moduleName = path.basename(basename, '.js'); // Register hooks. const importPath = `${importDirectory}/${moduleName}`; return [ - `registerHooks('${importPath}', require('${importPath}'));`, + `registerHooks('${hookKey}', require('${importPath}'));`, ].join('\n'); }); + // Shortcut. + if (0 === registers.length) { + return ''; + } // Import trait registry first. const output = [ `import {registerHooks} from '@avocado/core/hook/registry'`, diff --git a/packages/entity/entity.synchronized.js b/packages/entity/entity.synchronized.js index 9da79b1..4997106 100644 --- a/packages/entity/entity.synchronized.js +++ b/packages/entity/entity.synchronized.js @@ -12,7 +12,7 @@ import {SynchronizedMixin} from '@avocado/net'; import {Resource} from '@avocado/resource'; import {hasTrait, lookupTrait} from './trait/registry'; -import {EntityUpdateTraitPacket} from './packets/entity-update-trait.packet'; +import EntityUpdateTraitPacket from './packets/entity-update-trait.packet'; const debug = D('@avocado:entity:traits'); @@ -88,7 +88,7 @@ const decorate = compose( let numericUid = AVOCADO_SERVER ? 1 : 1000000000; -export class Entity extends decorate(Resource) { +export default class Entity extends decorate(Resource) { constructor(json, jsonext) { super(); diff --git a/packages/entity/index.js b/packages/entity/index.js index 581c98b..b20fe44 100644 --- a/packages/entity/index.js +++ b/packages/entity/index.js @@ -1,8 +1,6 @@ -export {Entity} from './entity.synchronized'; +export {default as Entity} from './entity.synchronized'; -export { - EntityListUpdateEntityPacket, -} from './packets/entity-list-update-entity.packet'; +export {default as EntityListUpdateEntityPacket} from './packets/entity-list-update-entity.packet'; export {EntityList, EntityListView} from './list'; diff --git a/packages/entity/list/index.js b/packages/entity/list/index.js index c1ddafd..d4748ae 100644 --- a/packages/entity/list/index.js +++ b/packages/entity/list/index.js @@ -5,8 +5,8 @@ import { SynchronizedDestroyPacket, } from '@avocado/net'; -import {EntityListUpdateEntityPacket} from '../packets/entity-list-update-entity.packet'; -import {Entity} from '../entity.synchronized'; +import EntityListUpdateEntityPacket from '../packets/entity-list-update-entity.packet'; +import Entity from '../entity.synchronized'; const decorate = compose( EventEmitter, diff --git a/packages/entity/packets/died.packet.js b/packages/entity/packets/died.packet.js index 09bdae4..5a7973e 100644 --- a/packages/entity/packets/died.packet.js +++ b/packages/entity/packets/died.packet.js @@ -1,3 +1,3 @@ import {Packet} from '@avocado/net'; -export class DiedPacket extends Packet {} +export default class DiedPacket extends Packet {} diff --git a/packages/entity/packets/entity-list-update-entity.packet.js b/packages/entity/packets/entity-list-update-entity.packet.js index 3f5a271..42f504a 100644 --- a/packages/entity/packets/entity-list-update-entity.packet.js +++ b/packages/entity/packets/entity-list-update-entity.packet.js @@ -1,6 +1,6 @@ import {BundlePacket, Packet} from '@avocado/net'; -export class EntityListUpdateEntityPacket extends Packet { +export default class EntityListUpdateEntityPacket extends Packet { static pack(packet) { const data = packet.data[1]; diff --git a/packages/entity/packets/entity-update-trait.packet.js b/packages/entity/packets/entity-update-trait.packet.js index 2ca334f..13ba502 100644 --- a/packages/entity/packets/entity-update-trait.packet.js +++ b/packages/entity/packets/entity-update-trait.packet.js @@ -2,7 +2,7 @@ import {BundlePacket, SynchronizedUpdatePacket} from '@avocado/net'; import {idFromTrait, lookupTrait, traitFromId} from '../trait/registry'; -export class EntityUpdateTraitPacket extends SynchronizedUpdatePacket { +export default class EntityUpdateTraitPacket extends SynchronizedUpdatePacket { static pack(packet) { const data = packet.data[1]; diff --git a/packages/entity/packets/trait-update-alive.packet.js b/packages/entity/packets/trait-update-alive.packet.js index 10defe2..70cd229 100644 --- a/packages/entity/packets/trait-update-alive.packet.js +++ b/packages/entity/packets/trait-update-alive.packet.js @@ -1,6 +1,6 @@ import {Packet} from '@avocado/net'; -export class TraitUpdateAlivePacket extends Packet { +export default class TraitUpdateAlivePacket extends Packet { static get schema() { return { diff --git a/packages/entity/packets/trait-update-directional-direction.packet.js b/packages/entity/packets/trait-update-directional-direction.packet.js index 779959f..3d0b42d 100644 --- a/packages/entity/packets/trait-update-directional-direction.packet.js +++ b/packages/entity/packets/trait-update-directional-direction.packet.js @@ -1,6 +1,6 @@ import {Packet} from '@avocado/net'; -export class TraitUpdateDirectionalDirectionPacket extends Packet { +export default class TraitUpdateDirectionalDirectionPacket extends Packet { static get schema() { return { diff --git a/packages/entity/packets/trait-update-positioned-position.packet.js b/packages/entity/packets/trait-update-positioned-position.packet.js index 68d240f..e9cab70 100644 --- a/packages/entity/packets/trait-update-positioned-position.packet.js +++ b/packages/entity/packets/trait-update-positioned-position.packet.js @@ -1,7 +1,7 @@ import {Vector} from '@avocado/math'; import {Packet} from '@avocado/net'; -export class TraitUpdatePositionedPositionPacket extends Packet { +export default class TraitUpdatePositionedPositionPacket extends Packet { static pack(packet) { const data = packet.data[1]; diff --git a/packages/entity/trait/registry.js b/packages/entity/trait/registry.js index 65fb492..f147d21 100644 --- a/packages/entity/trait/registry.js +++ b/packages/entity/trait/registry.js @@ -3,7 +3,7 @@ const idToTraitMap = new Map(); const traitToIdMap = new Map(); const traitRegistry = new Map(); -export function registerTrait(Trait) { +export function registerTrait({default: Trait}) { const hadTrait = traitRegistry.has(Trait.type()); traitRegistry.set(Trait.type(), Trait); if (!hadTrait) { diff --git a/packages/entity/trait/traits.avopack.js b/packages/entity/trait/traits.avopack.js deleted file mode 100644 index 66734e7..0000000 --- a/packages/entity/trait/traits.avopack.js +++ /dev/null @@ -1,20 +0,0 @@ -const path = require('path'); - -module.exports = ({entries, paths, root, rules}) => { - rules.push({ - test: new RegExp('@avocado/packages/entity/trait/traits.avopack.js$'), - use: { - loader: '@avocado/core/webpack/autoreg', - options: { - paths, - registrar: { - function: 'registerTrait', - module: '@avocado/entity', - }, - root, - type: 'trait', - }, - }, - }); - entries.push('@avocado/entity/trait/traits.avopack'); -}; diff --git a/packages/entity/trait/traits.scwp.js b/packages/entity/trait/traits.scwp.js new file mode 100644 index 0000000..61a074f --- /dev/null +++ b/packages/entity/trait/traits.scwp.js @@ -0,0 +1,10 @@ +function traits(scwp) { + scwp.enterSelf(); + scwp.loadSelf('scwp/autoreg', { + paths: scwp.paths, + registrar: './registry:registerTrait', + root: scwp.root, + type: 'trait', + }); +} +module.exports = traits; diff --git a/packages/entity/traits/alive.trait.js b/packages/entity/traits/alive.trait.js index 765ce08..28864ed 100644 --- a/packages/entity/traits/alive.trait.js +++ b/packages/entity/traits/alive.trait.js @@ -8,8 +8,8 @@ import { import {compose} from '@avocado/core'; import {StateProperty, Trait} from '../trait'; -import {DiedPacket} from '../packets/died.packet'; -import {TraitUpdateAlivePacket} from '../packets/trait-update-alive.packet'; +import DiedPacket from '../packets/died.packet'; +import TraitUpdateAlivePacket from '../packets/trait-update-alive.packet'; const decorate = compose( StateProperty('isDying', { @@ -23,7 +23,7 @@ const decorate = compose( }), ); -export class Alive extends decorate(Trait) { +export default class Alive extends decorate(Trait) { static defaultParams() { const playDeathSound = buildInvoke(['entity', 'playSound'], [ diff --git a/packages/entity/traits/debuggable.trait.js b/packages/entity/traits/debuggable.trait.js index 761c04c..b10a508 100644 --- a/packages/entity/traits/debuggable.trait.js +++ b/packages/entity/traits/debuggable.trait.js @@ -8,7 +8,7 @@ const decorate = compose( }), ); -export class Debuggable extends decorate(Trait) { +export default class Debuggable extends decorate(Trait) { static defaultState() { return { diff --git a/packages/entity/traits/directional.trait.js b/packages/entity/traits/directional.trait.js index 71b9f7c..9cf3d2d 100644 --- a/packages/entity/traits/directional.trait.js +++ b/packages/entity/traits/directional.trait.js @@ -2,9 +2,7 @@ import {compose} from '@avocado/core'; import {Vector} from '@avocado/math'; import {StateProperty, Trait} from '../trait'; -import { - TraitUpdateDirectionalDirectionPacket, -} from '../packets/trait-update-directional-direction.packet'; +import TraitUpdateDirectionalDirectionPacket from '../packets/trait-update-directional-direction.packet'; const decorate = compose( StateProperty('direction', { @@ -12,7 +10,7 @@ const decorate = compose( }), ); -export class Directional extends decorate(Trait) { +export default class Directional extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/entity/traits/existent.trait.js b/packages/entity/traits/existent.trait.js index dea0ce2..0f71c1a 100644 --- a/packages/entity/traits/existent.trait.js +++ b/packages/entity/traits/existent.trait.js @@ -8,7 +8,7 @@ const decorate = compose( StateProperty('isTicking'), ); -export class Existent extends decorate(Trait) { +export default class Existent extends decorate(Trait) { static defaultState() { return { diff --git a/packages/entity/traits/listed.trait.js b/packages/entity/traits/listed.trait.js index 81979a8..e85d488 100644 --- a/packages/entity/traits/listed.trait.js +++ b/packages/entity/traits/listed.trait.js @@ -2,7 +2,7 @@ import {Rectangle, Vector} from '@avocado/math'; import {Trait} from '../trait'; -export class Listed extends Trait { +export default class Listed extends Trait { static type() { return 'listed'; diff --git a/packages/entity/traits/mobile.trait.js b/packages/entity/traits/mobile.trait.js index 8f80160..d9fb264 100644 --- a/packages/entity/traits/mobile.trait.js +++ b/packages/entity/traits/mobile.trait.js @@ -8,7 +8,7 @@ const decorate = compose( StateProperty('speed'), ) -export class Mobile extends decorate(Trait) { +export default class Mobile extends decorate(Trait) { static defaultState() { return { diff --git a/packages/entity/traits/perishable.trait.js b/packages/entity/traits/perishable.trait.js index 99d1df0..b2997d1 100644 --- a/packages/entity/traits/perishable.trait.js +++ b/packages/entity/traits/perishable.trait.js @@ -5,7 +5,7 @@ import {StateProperty, Trait} from '../trait'; const decorate = compose( ); -export class Perishable extends decorate(Trait) { +export default class Perishable extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/entity/traits/positioned.trait.js b/packages/entity/traits/positioned.trait.js index 14a5ac9..ea165b1 100644 --- a/packages/entity/traits/positioned.trait.js +++ b/packages/entity/traits/positioned.trait.js @@ -2,7 +2,7 @@ import {compose, EventEmitter} from '@avocado/core'; import {Vector} from '@avocado/math'; import {Trait} from '../trait'; -import {TraitUpdatePositionedPositionPacket} from '../packets/trait-update-positioned-position.packet'; +import TraitUpdatePositionedPositionPacket from '../packets/trait-update-positioned-position.packet'; const decorate = compose( EventEmitter, @@ -15,7 +15,7 @@ const decorate = compose( ); // < 16768 will pack into 1 short per axe and give +/- 0.25 precision. -export class Positioned extends decorate(Trait) { +export default class Positioned extends decorate(Trait) { static defaultState() { return { diff --git a/packages/entity/traits/spawner.trait.js b/packages/entity/traits/spawner.trait.js index 2f0f69b..707c1cd 100644 --- a/packages/entity/traits/spawner.trait.js +++ b/packages/entity/traits/spawner.trait.js @@ -11,7 +11,7 @@ const decorate = compose( StateProperty('maxSpawns'), ); -export class Spawner extends decorate(Trait) { +export default class Spawner extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/graphics/packets/trait-update-visible.packet.js b/packages/graphics/packets/trait-update-visible.packet.js index 3057ebc..7162c57 100644 --- a/packages/graphics/packets/trait-update-visible.packet.js +++ b/packages/graphics/packets/trait-update-visible.packet.js @@ -1,6 +1,6 @@ import {Packet} from '@avocado/net'; -export class TraitUpdateVisiblePacket extends Packet { +export default class TraitUpdateVisiblePacket extends Packet { static pack(packet) { const data = packet.data[1]; diff --git a/packages/graphics/renderer.js b/packages/graphics/renderer.js index a8e6771..0329e41 100644 --- a/packages/graphics/renderer.js +++ b/packages/graphics/renderer.js @@ -3,7 +3,7 @@ import {Renderer as PIXIRenderer} from '@pixi/core'; export class Renderer { constructor(size = [0, 0], type = 'auto') { - this.renderer = new PIXIRenderer(size[0], size[1]); + this.renderer = new PIXIRenderer({width: size[0], height: size[1]}); // Need to set size explicitly since v5. this.renderer.view.width = size[0]; this.renderer.view.height = size[1]; diff --git a/packages/graphics/shim/pixi/pixi.avopack.js b/packages/graphics/shim/pixi/pixi.avopack.js deleted file mode 100644 index fce15bf..0000000 --- a/packages/graphics/shim/pixi/pixi.avopack.js +++ /dev/null @@ -1,20 +0,0 @@ -const path = require('path'); - -module.exports = ({options, side}) => { - if ('server' === side) { - const pixiPackages = [ - 'constants', - 'core', - 'display', - 'graphics', - 'settings', - 'text', - ]; - pixiPackages.forEach((pixiPackage) => { - options.resolve.alias[`@pixi/${pixiPackage}`] = path.join( - __dirname, - pixiPackage, - ); - }); - } -}; diff --git a/packages/graphics/shim/pixi/pixi.scwp.js b/packages/graphics/shim/pixi/pixi.scwp.js new file mode 100644 index 0000000..03476a3 --- /dev/null +++ b/packages/graphics/shim/pixi/pixi.scwp.js @@ -0,0 +1,25 @@ +const {join} = require('path'); + +function pixi(scwp) { + const {neutrino} = scwp; + if (neutrino) { + if ('server' === (process.env.SIDE || '').toLowerCase()) { + const pixiPackages = [ + 'constants', + 'core', + 'display', + 'graphics', + 'settings', + 'text', + ]; + pixiPackages.forEach((pixiPackage) => { + neutrino.config.resolve.alias + .set(`@pixi/${pixiPackage}`, join( + __dirname, + pixiPackage, + )); + }); + } + } +} +module.exports = pixi; diff --git a/packages/graphics/traits/pictured.trait.js b/packages/graphics/traits/pictured.trait.js index da27469..950f1b8 100644 --- a/packages/graphics/traits/pictured.trait.js +++ b/packages/graphics/traits/pictured.trait.js @@ -11,7 +11,7 @@ const decorate = compose( }), ); -export class Pictured extends decorate(Trait) { +export default class Pictured extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/graphics/traits/primitive.trait.js b/packages/graphics/traits/primitive.trait.js index 943374d..925681c 100644 --- a/packages/graphics/traits/primitive.trait.js +++ b/packages/graphics/traits/primitive.trait.js @@ -5,7 +5,7 @@ import {Color, Primitives} from '@avocado/graphics'; const decorate = compose( ) -export class Primitive extends decorate(Trait) { +export default class Primitive extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/graphics/traits/staged.trait.js b/packages/graphics/traits/staged.trait.js index 28076ac..e890ad5 100644 --- a/packages/graphics/traits/staged.trait.js +++ b/packages/graphics/traits/staged.trait.js @@ -10,7 +10,7 @@ const decorate = compose( }), ) -export class Staged extends decorate(Trait) { +export default class Staged extends decorate(Trait) { static type() { return 'staged'; diff --git a/packages/graphics/traits/textual.trait.js b/packages/graphics/traits/textual.trait.js index a4fddf4..8022c07 100644 --- a/packages/graphics/traits/textual.trait.js +++ b/packages/graphics/traits/textual.trait.js @@ -8,7 +8,7 @@ const decorate = compose( }), ) -export class Textual extends decorate(Trait) { +export default class Textual extends decorate(Trait) { static defaultState() { return { diff --git a/packages/graphics/traits/visible.trait.js b/packages/graphics/traits/visible.trait.js index 9887968..ac64b23 100644 --- a/packages/graphics/traits/visible.trait.js +++ b/packages/graphics/traits/visible.trait.js @@ -6,9 +6,7 @@ import {Rectangle, Vector} from '@avocado/math'; import {Container} from '../container'; import {hasGraphics} from '../has-graphics'; -import { - TraitUpdateVisiblePacket, -} from '../packets/trait-update-visible.packet'; +import TraitUpdateVisiblePacket from '../packets/trait-update-visible.packet'; const AUTO_ZINDEX = 1 << 16; @@ -30,7 +28,7 @@ const decorate = compose( }), ); -export class Visible extends decorate(Trait) { +export default class Visible extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/input/index.js b/packages/input/index.js index 5212b2d..90a43d2 100644 --- a/packages/input/index.js +++ b/packages/input/index.js @@ -1,3 +1,3 @@ export {ActionRegistry} from './action-registry'; export {InputNormalizer} from './normalizer'; -export {InputPacket} from './packet/input.packet'; +export {default as InputPacket} from './packet/input.packet'; diff --git a/packages/input/packet/input.packet.js b/packages/input/packet/input.packet.js index 1661e7b..78a031f 100644 --- a/packages/input/packet/input.packet.js +++ b/packages/input/packet/input.packet.js @@ -2,7 +2,7 @@ import * as I from 'immutable'; import {Packet} from '@avocado/net'; -export class InputPacket extends Packet { +export default class InputPacket extends Packet { static setActionIds(actionIds) { this._actionIds = actionIds; diff --git a/packages/net/client/socket-worker.js b/packages/net/client/socket-worker.js index c8915ba..54294ac 100644 --- a/packages/net/client/socket-worker.js +++ b/packages/net/client/socket-worker.js @@ -3,7 +3,7 @@ import io from 'socket.io-client'; import {compose, EventEmitter} from '@avocado/core'; -import {allPackets, idFromPacket} from '../packet'; +import allPackets, idFromPacket from '...packet'; const debug = D('@avocado:client:socket'); diff --git a/packages/net/client/worker.js b/packages/net/client/worker.js index 5eff588..f58728c 100644 --- a/packages/net/client/worker.js +++ b/packages/net/client/worker.js @@ -1,7 +1,7 @@ import io from 'socket.io-client'; import 'register-packets'; -import {SocketIoParser} from '../packet'; +import SocketIoParser from '...packet'; let socket = null; diff --git a/packages/net/packet/packet.js b/packages/net/packet/packet.js index 65a8cce..f2995bf 100644 --- a/packages/net/packet/packet.js +++ b/packages/net/packet/packet.js @@ -16,12 +16,6 @@ export class Packet { 'inherit from Packet.schema within your packet subclass schema definition.', ].join(' ')); } - if (!schema.data) { - throw new Error([ - `No data found in '${this.name}.schema'. This is usually due to forgetting to`, - 'inherit from Packet.schema within your packet subclass schema definition.', - ].join(' ')); - } this._builder = schemapack.build(schema); } return this._builder; diff --git a/packages/net/packet/packets.avopack.js b/packages/net/packet/packets.avopack.js deleted file mode 100644 index 856dae4..0000000 --- a/packages/net/packet/packets.avopack.js +++ /dev/null @@ -1,23 +0,0 @@ -const path = require('path'); - -module.exports = ({entries, paths, root, rules}) => { - rules.push({ - test: new RegExp('@avocado/packages/net/packet/packets.avopack.js$'), - use: { - loader: '@avocado/core/webpack/autoreg', - options: { - classTransformer: (Packet) => { - return `${Packet}Packet`; - }, - paths, - registrar: { - function: 'registerPacket', - module: '@avocado/net', - }, - root, - type: 'packet', - }, - }, - }); - entries.push('@avocado/net/packet/packets.avopack'); -}; diff --git a/packages/net/s13n/client.js b/packages/net/s13n/client.js index 0bd1611..503c06b 100644 --- a/packages/net/s13n/client.js +++ b/packages/net/s13n/client.js @@ -1,8 +1,8 @@ import {idFromSynchronized, synchronizedFromId} from './registry'; -import {SynchronizedCreatePacket} from './synchronized-create.packet'; -import {SynchronizedDestroyPacket} from './synchronized-destroy.packet'; -import {SynchronizedUpdatePacket} from './synchronized-update.packet'; +import SynchronizedCreatePacket from './synchronized-create.packet'; +import SynchronizedDestroyPacket from './synchronized-destroy.packet'; +import SynchronizedUpdatePacket from './synchronized-update.packet'; export class ClientSynchronizer { diff --git a/packages/net/s13n/index.js b/packages/net/s13n/index.js index ebce87d..ce52831 100644 --- a/packages/net/s13n/index.js +++ b/packages/net/s13n/index.js @@ -10,7 +10,7 @@ export {ServerSynchronizer} from './server'; export {SynchronizedMixin} from './synchronized' -export {SynchronizedPacket} from './synchronized.packet'; -export {SynchronizedCreatePacket} from './synchronized-create.packet'; -export {SynchronizedDestroyPacket} from './synchronized-destroy.packet'; -export {SynchronizedUpdatePacket} from './synchronized-update.packet'; +export {default as SynchronizedPacket} from './synchronized.packet'; +export {default as SynchronizedCreatePacket} from './synchronized-create.packet'; +export {default as SynchronizedDestroyPacket} from './synchronized-destroy.packet'; +export {default as SynchronizedUpdatePacket} from './synchronized-update.packet'; diff --git a/packages/net/s13n/registry.js b/packages/net/s13n/registry.js index 59259d2..a1d57e5 100644 --- a/packages/net/s13n/registry.js +++ b/packages/net/s13n/registry.js @@ -10,7 +10,7 @@ export function idFromSynchronized(Synchronized) { export function synchronizedFromId(id) { return idToSynchronizedMap.get(id); } -export function registerSynchronized(Synchronized) { +export function registerSynchronized({default: Synchronized}) { if (synchronizedToIdMap.has(Synchronized)) { return; } diff --git a/packages/net/s13n/s13n.avopack.js b/packages/net/s13n/s13n.avopack.js deleted file mode 100644 index b400a18..0000000 --- a/packages/net/s13n/s13n.avopack.js +++ /dev/null @@ -1,20 +0,0 @@ -const path = require('path'); - -module.exports = ({entries, paths, root, rules}) => { - rules.push({ - test: new RegExp('@avocado/packages/net/s13n/s13n.avopack.js$'), - use: { - loader: '@avocado/core/webpack/autoreg', - options: { - paths, - registrar: { - function: 'registerSynchronized', - module: '@avocado/net', - }, - root, - type: 'synchronized', - }, - }, - }); - entries.push('@avocado/net/s13n/s13n.avopack'); -}; diff --git a/packages/net/s13n/s13n.scwp.js b/packages/net/s13n/s13n.scwp.js new file mode 100644 index 0000000..c6bb7cd --- /dev/null +++ b/packages/net/s13n/s13n.scwp.js @@ -0,0 +1,12 @@ +const {join} = require('path'); + +function s13n(scwp) { + scwp.enterSelf(); + scwp.loadSelf('scwp/autoreg', { + paths: scwp.paths, + registrar: './registry:registerSynchronized', + root: scwp.root, + type: 'synchronized', + }); +} +module.exports = s13n; diff --git a/packages/net/s13n/server.js b/packages/net/s13n/server.js index 3ed301d..0ae5ef6 100644 --- a/packages/net/s13n/server.js +++ b/packages/net/s13n/server.js @@ -1,7 +1,7 @@ import {idFromSynchronized} from './registry'; -import {SynchronizedCreatePacket} from './synchronized-create.packet'; -import {SynchronizedDestroyPacket} from './synchronized-destroy.packet'; +import SynchronizedCreatePacket from './synchronized-create.packet'; +import SynchronizedDestroyPacket from './synchronized-destroy.packet'; export class ServerSynchronizer { diff --git a/packages/net/s13n/synchronized-create.packet.js b/packages/net/s13n/synchronized-create.packet.js index 6dcf828..84efffe 100644 --- a/packages/net/s13n/synchronized-create.packet.js +++ b/packages/net/s13n/synchronized-create.packet.js @@ -1,8 +1,8 @@ import msgpack from 'msgpack-lite'; -import {SynchronizedPacket} from './synchronized.packet'; +import SynchronizedPacket from './synchronized.packet'; -export class SynchronizedCreatePacket extends SynchronizedPacket { +export default class SynchronizedCreatePacket extends SynchronizedPacket { static pack(packet) { const data = packet.data[1]; diff --git a/packages/net/s13n/synchronized-destroy.packet.js b/packages/net/s13n/synchronized-destroy.packet.js index bbcbdb5..547d583 100644 --- a/packages/net/s13n/synchronized-destroy.packet.js +++ b/packages/net/s13n/synchronized-destroy.packet.js @@ -1,3 +1,3 @@ -import {SynchronizedPacket} from './synchronized.packet'; +import SynchronizedPacket from './synchronized.packet'; -export class SynchronizedDestroyPacket extends SynchronizedPacket {} +export default class SynchronizedDestroyPacket extends SynchronizedPacket {} diff --git a/packages/net/s13n/synchronized-update.packet.js b/packages/net/s13n/synchronized-update.packet.js index 93961de..3ce1943 100644 --- a/packages/net/s13n/synchronized-update.packet.js +++ b/packages/net/s13n/synchronized-update.packet.js @@ -1,3 +1,3 @@ -import {SynchronizedPacket} from './synchronized.packet'; +import SynchronizedPacket from './synchronized.packet'; -export class SynchronizedUpdatePacket extends SynchronizedPacket {} +export default class SynchronizedUpdatePacket extends SynchronizedPacket {} diff --git a/packages/net/s13n/synchronized.js b/packages/net/s13n/synchronized.js index 35cf0eb..12a2acd 100644 --- a/packages/net/s13n/synchronized.js +++ b/packages/net/s13n/synchronized.js @@ -1,6 +1,6 @@ import {idFromSynchronized} from './registry'; -import {SynchronizedCreatePacket} from './synchronized-create.packet'; -import {SynchronizedDestroyPacket} from './synchronized-destroy.packet'; +import SynchronizedCreatePacket from './synchronized-create.packet'; +import SynchronizedDestroyPacket from './synchronized-destroy.packet'; export function SynchronizedMixin(Superclass) { diff --git a/packages/net/s13n/synchronized.packet.js b/packages/net/s13n/synchronized.packet.js index b457ac7..73951f7 100644 --- a/packages/net/s13n/synchronized.packet.js +++ b/packages/net/s13n/synchronized.packet.js @@ -1,6 +1,6 @@ import {Packet} from '../packet/packet'; -export class SynchronizedPacket extends Packet { +export default class SynchronizedPacket extends Packet { static get schema() { return { diff --git a/packages/physics/traits/collider.trait.js b/packages/physics/traits/collider.trait.js index 594f9dd..dd5d3da 100644 --- a/packages/physics/traits/collider.trait.js +++ b/packages/physics/traits/collider.trait.js @@ -8,7 +8,7 @@ const decorate = compose( StateProperty('isColliding'), ); -export class Collider extends decorate(Trait) { +export default class Collider extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/physics/traits/emitted.trait.js b/packages/physics/traits/emitted.trait.js index f0810b2..c32c97d 100644 --- a/packages/physics/traits/emitted.trait.js +++ b/packages/physics/traits/emitted.trait.js @@ -6,7 +6,7 @@ import {Range, Vector} from '@avocado/math'; const decorate = compose( ); -export class Emitted extends decorate(Trait) { +export default class Emitted extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/physics/traits/emitter.trait.js b/packages/physics/traits/emitter.trait.js index 8aa5a63..f4a5dc7 100644 --- a/packages/physics/traits/emitter.trait.js +++ b/packages/physics/traits/emitter.trait.js @@ -12,7 +12,7 @@ const PI_180 = Math.PI / 180; const decorate = compose( ); -export class Emitter extends decorate(Trait) { +export default class Emitter extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/physics/traits/physical.trait.js b/packages/physics/traits/physical.trait.js index 2d03f50..2867ff5 100644 --- a/packages/physics/traits/physical.trait.js +++ b/packages/physics/traits/physical.trait.js @@ -10,7 +10,7 @@ const decorate = compose( }), ); -export class Physical extends decorate(Trait) { +export default class Physical extends decorate(Trait) { static defaultState() { return { diff --git a/packages/physics/traits/shaped.trait.js b/packages/physics/traits/shaped.trait.js index bbaa592..5a86c1a 100644 --- a/packages/physics/traits/shaped.trait.js +++ b/packages/physics/traits/shaped.trait.js @@ -7,7 +7,7 @@ import {ShapeView} from '../shape-view'; const decorate = compose( ); -export class Shaped extends decorate(Trait) { +export default class Shaped extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/sound/traits/audible.trait.js b/packages/sound/traits/audible.trait.js index 588e5cd..ef88e49 100644 --- a/packages/sound/traits/audible.trait.js +++ b/packages/sound/traits/audible.trait.js @@ -2,7 +2,7 @@ import {Trait} from '@avocado/entity'; import {Sound} from '..'; -export class Audible extends Trait { +export default class Audible extends Trait { static defaultParams() { return { diff --git a/packages/timing/packets/trait-update-animated.packet.js b/packages/timing/packets/trait-update-animated.packet.js index 86d812b..730e0d2 100644 --- a/packages/timing/packets/trait-update-animated.packet.js +++ b/packages/timing/packets/trait-update-animated.packet.js @@ -1,6 +1,6 @@ import {Packet} from '@avocado/net'; -export class TraitUpdateAnimatedPacket extends Packet { +export default class TraitUpdateAnimatedPacket extends Packet { static get schema() { return { diff --git a/packages/timing/traits/animated.trait.js b/packages/timing/traits/animated.trait.js index 9de060c..d614cd3 100644 --- a/packages/timing/traits/animated.trait.js +++ b/packages/timing/traits/animated.trait.js @@ -4,7 +4,7 @@ import {Rectangle, Vector} from '@avocado/math'; import {Animation} from '../animation'; import {AnimationView} from '../animation-view'; -import {TraitUpdateAnimatedPacket} from '../packets/trait-update-animated.packet'; +import TraitUpdateAnimatedPacket from '../packets/trait-update-animated.packet'; const decorate = compose( StateProperty('currentAnimation', { @@ -15,7 +15,7 @@ const decorate = compose( }), ); -export class Animated extends decorate(Trait) { +export default class Animated extends decorate(Trait) { static defaultParams() { return { diff --git a/packages/topdown/index.js b/packages/topdown/index.js index 83c4880..93694c8 100644 --- a/packages/topdown/index.js +++ b/packages/topdown/index.js @@ -1,7 +1,7 @@ export {Camera} from './camera'; export {Layer} from './layer'; export {LayerView} from './layer-view'; -export {Room} from './room.synchronized'; +export {default as Room} from './room.synchronized'; export {RoomView} from './room-view'; export {TilesRenderer} from './tiles-renderer'; export {Tiles} from './tiles'; diff --git a/packages/topdown/layer.js b/packages/topdown/layer.js index 6056eda..57caeca 100644 --- a/packages/topdown/layer.js +++ b/packages/topdown/layer.js @@ -11,12 +11,8 @@ import { } from '@avocado/net'; import {ShapeList} from '@avocado/physics'; -import { - LayerUpdateTilesetUriPacket, -} from './packets/layer-update-tileset-uri.packet'; -import { - TilesUpdatePacket, -} from './packets/tiles-update.packet'; +import LayerUpdateTilesetUriPacket from './packets/layer-update-tileset-uri.packet'; +import TilesUpdatePacket from './packets/tiles-update.packet'; import {Tiles} from './tiles'; diff --git a/packages/topdown/layers.js b/packages/topdown/layers.js index c1f8d94..99ad598 100644 --- a/packages/topdown/layers.js +++ b/packages/topdown/layers.js @@ -3,7 +3,7 @@ import * as I from 'immutable'; import {arrayUnique, compose, EventEmitter, flatten} from '@avocado/core'; import {Layer} from './layer'; -import {LayersUpdateLayerPacket} from './packets/layers-update-layer.packet'; +import LayersUpdateLayerPacket from './packets/layers-update-layer.packet'; const decorate = compose( EventEmitter, diff --git a/packages/topdown/packets/layer-update-tileset-uri.packet.js b/packages/topdown/packets/layer-update-tileset-uri.packet.js index 0fea49b..6c81412 100644 --- a/packages/topdown/packets/layer-update-tileset-uri.packet.js +++ b/packages/topdown/packets/layer-update-tileset-uri.packet.js @@ -1,6 +1,6 @@ import {Packet} from '@avocado/net'; -export class LayerUpdateTilesetUriPacket extends Packet { +export default class LayerUpdateTilesetUriPacket extends Packet { static get schema() { return { diff --git a/packages/topdown/packets/layers-update-layer.packet.js b/packages/topdown/packets/layers-update-layer.packet.js index 29cba04..ee650a7 100644 --- a/packages/topdown/packets/layers-update-layer.packet.js +++ b/packages/topdown/packets/layers-update-layer.packet.js @@ -1,6 +1,6 @@ import {BundlePacket, Packet} from '@avocado/net'; -export class LayersUpdateLayerPacket extends Packet { +export default class LayersUpdateLayerPacket extends Packet { static pack(packet) { const data = packet.data[1]; diff --git a/packages/topdown/packets/room-update-layers.packet.js b/packages/topdown/packets/room-update-layers.packet.js index 996f3e6..395c5a5 100644 --- a/packages/topdown/packets/room-update-layers.packet.js +++ b/packages/topdown/packets/room-update-layers.packet.js @@ -1,7 +1,7 @@ import {BundlePacket} from '@avocado/net'; import {SynchronizedUpdatePacket} from '@avocado/net'; -export class RoomUpdateLayersPacket extends SynchronizedUpdatePacket { +export default class RoomUpdateLayersPacket extends SynchronizedUpdatePacket { static pack(packet) { const data = packet.data[1]; diff --git a/packages/topdown/packets/room-update-size.packet.js b/packages/topdown/packets/room-update-size.packet.js index abe1316..a93fa23 100644 --- a/packages/topdown/packets/room-update-size.packet.js +++ b/packages/topdown/packets/room-update-size.packet.js @@ -1,7 +1,7 @@ import {Vector} from '@avocado/math'; import {SynchronizedUpdatePacket} from '@avocado/net'; -export class RoomUpdateSizePacket extends SynchronizedUpdatePacket { +export default class RoomUpdateSizePacket extends SynchronizedUpdatePacket { static pack(packet) { const data = packet.data[1]; diff --git a/packages/topdown/packets/tiles-update.packet.js b/packages/topdown/packets/tiles-update.packet.js index 6e3be05..3177b3d 100644 --- a/packages/topdown/packets/tiles-update.packet.js +++ b/packages/topdown/packets/tiles-update.packet.js @@ -1,7 +1,7 @@ import {Vector} from '@avocado/math'; import {Packet} from '@avocado/net'; -export class TilesUpdatePacket extends Packet { +export default class TilesUpdatePacket extends Packet { static pack(packet) { const data = packet.data[1]; diff --git a/packages/topdown/room.synchronized.js b/packages/topdown/room.synchronized.js index d1861e9..06c86b3 100644 --- a/packages/topdown/room.synchronized.js +++ b/packages/topdown/room.synchronized.js @@ -7,8 +7,8 @@ import {RectangleShape} from '@avocado/physics'; import {Resource} from '@avocado/resource'; import {Layers} from './layers'; -import {RoomUpdateSizePacket} from './packets/room-update-size.packet'; -import {RoomUpdateLayersPacket} from './packets/room-update-layers.packet'; +import RoomUpdateSizePacket from './packets/room-update-size.packet'; +import RoomUpdateLayersPacket from './packets/room-update-layers.packet'; const ROOM_BOUND_SIZE = 64; const HALF_ROOM_BOUND_SIZE = ROOM_BOUND_SIZE / 2; @@ -27,7 +27,7 @@ const decorate = compose( let synchronizationId = 1; -export class Room extends decorate(Resource) { +export default class Room extends decorate(Resource) { constructor(json) { super(); diff --git a/packages/topdown/tiles.js b/packages/topdown/tiles.js index 7981386..aa4254c 100644 --- a/packages/topdown/tiles.js +++ b/packages/topdown/tiles.js @@ -3,7 +3,7 @@ import * as I from 'immutable'; import {compose, EventEmitter} from '@avocado/core'; import {Rectangle, Vector} from '@avocado/math'; -import {TilesUpdatePacket} from './packets/tiles-update.packet'; +import TilesUpdatePacket from './packets/tiles-update.packet'; const CHUNK_AXIS = 10; diff --git a/packages/topdown/traits/followed.trait.js b/packages/topdown/traits/followed.trait.js index ff92e83..977269f 100644 --- a/packages/topdown/traits/followed.trait.js +++ b/packages/topdown/traits/followed.trait.js @@ -2,7 +2,7 @@ import {Trait} from '@avocado/entity'; import {Camera} from '../camera'; -export class Followed extends Trait { +export default class Followed extends Trait { static defaultParams() { return { diff --git a/packages/topdown/traits/layered.trait.js b/packages/topdown/traits/layered.trait.js index 08d3126..b12931a 100644 --- a/packages/topdown/traits/layered.trait.js +++ b/packages/topdown/traits/layered.trait.js @@ -1,7 +1,7 @@ import {Trait} from '@avocado/entity'; import {Vector} from '@avocado/math'; -export class Layered extends Trait { +export default class Layered extends Trait { static type() { return 'layered'; diff --git a/packages/topdown/traits/roomed.trait.js b/packages/topdown/traits/roomed.trait.js index 0043583..5803883 100644 --- a/packages/topdown/traits/roomed.trait.js +++ b/packages/topdown/traits/roomed.trait.js @@ -1,6 +1,6 @@ import {Trait} from '@avocado/entity'; -export class Roomed extends Trait { +export default class Roomed extends Trait { static type() { return 'roomed'; diff --git a/packages/topdown/traits/tile-entity.trait.js b/packages/topdown/traits/tile-entity.trait.js index f520067..eb7fd34 100644 --- a/packages/topdown/traits/tile-entity.trait.js +++ b/packages/topdown/traits/tile-entity.trait.js @@ -8,7 +8,7 @@ const decorate = compose( }), ); -export class TileEntity extends decorate(Trait) { +export default class TileEntity extends decorate(Trait) { static defaultState() { return {