refactor: mixin

This commit is contained in:
cha0s 2024-01-19 03:59:24 -06:00
parent 344d9de2cf
commit b8cdb46f34
7 changed files with 111 additions and 118 deletions

View File

@ -12,22 +12,21 @@ export const hooks = {
cache.reset();
}
},
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoBehavior extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
this.avocado.behavior = {
globals: {},
};
}
}
),
'@flecks/core.starting': async (flecks) => {
flecks.avocado.behavior.globals = flecks.invokeMerge('@avocado/behavior.globals');
},
};
export const mixin = (Flecks) => class FlecksWithAvocadoBehavior extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
this.avocado.behavior = {
globals: {},
};
}
};

View File

@ -10,21 +10,6 @@ export const hooks = {
Flecks.decorate(require.context('./traits/decorators', false, /\.js$/))
),
'@avocado/traits.traits': Flecks.provide(require.context('./traits', false, /\.js$/)),
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoDialog extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
this.avocado.dialog = {
parser: undefined,
};
}
}
),
'@flecks/core.starting': (flecks) => {
const dialogFunctions = flecks.invokeMerge('@avocado/dialog.functions');
const resolver = (type) => (dialogFunctions[type] ? dialogFunctions[type] : (i) => i);
@ -42,3 +27,17 @@ export const hooks = {
},
'@flecks/socket.packets': Flecks.provide(require.context('./packets', false, /\.js$/)),
};
export const mixin = (Flecks) => class FlecksWithAvocadoDialog extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
this.avocado.dialog = {
parser: undefined,
};
}
};

View File

@ -10,22 +10,6 @@ export const hooks = {
resourceCache.reset();
}
},
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoResource extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.resource) {
this.avocado.resource = {};
}
this.avocado.resource.Resources = {};
}
}
),
'@flecks/core.starting': (flecks) => {
flecks.avocado.resource.Resources = flecks.gather(
'@avocado/resource.resources',
@ -36,3 +20,18 @@ export const hooks = {
);
},
};
export const mixin = (Flecks) => class FlecksWithAvocadoResource extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.resource) {
this.avocado.resource = {};
}
this.avocado.resource.Resources = {};
}
};

View File

@ -22,25 +22,6 @@ export {
};
export const hooks = {
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoResourcePersea extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.resource) {
this.avocado.resource = {};
}
if (!this.avocado.resource.persea) {
this.avocado.resource.persea = {};
}
this.avocado.resource.persea.Controllers = {};
}
}
),
'@flecks/core.starting': async (flecks) => {
const Controllers = (
await flecks.invokeSequentialAsync('@avocado/resource/persea.controllers')
@ -54,3 +35,21 @@ export const hooks = {
},
'@flecks/redux.reducers': () => reducer,
};
export const mixin = (Flecks) => class FlecksWithAvocadoResourcePersea extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.resource) {
this.avocado.resource = {};
}
if (!this.avocado.resource.persea) {
this.avocado.resource.persea = {};
}
this.avocado.resource.persea.Controllers = {};
}
};

View File

@ -10,24 +10,6 @@ export const hooks = {
'@avocado/resource/persea.controllers': () => [
RoomController,
],
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoTopdownPersea extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.topdown) {
this.avocado.topdown = {};
}
this.avocado.topdown.persea = {
RoomSides: {},
};
}
}
),
'@flecks/core.starting': (flecks) => {
flecks.avocado.topdown.persea.RoomSides = flecks.invokeFlat(
'@avocado/topdown/persea.room-sides',
@ -38,3 +20,20 @@ export const hooks = {
EntitiesSide,
],
};
export const mixin = (Flecks) => class FlecksWithAvocadoTopdownPersea extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.topdown) {
this.avocado.topdown = {};
}
this.avocado.topdown.persea = {
RoomSides: {},
};
}
};

View File

@ -2,23 +2,22 @@ export {default as Trait} from './trait';
export {default as StateProperty} from './state-property';
export const hooks = {
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoTraitrs extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.traits) {
this.avocado.traits = {};
}
this.avocado.traits.Traits = {};
}
}
),
'@flecks/core.starting': (flecks) => {
flecks.avocado.traits.Traits = flecks.gather('@avocado/traits.traits');
},
};
export const mixin = (Flecks) => class FlecksWithAvocadoTraitrs extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.traits) {
this.avocado.traits = {};
}
this.avocado.traits.Traits = {};
}
};

View File

@ -1,26 +1,25 @@
export const hooks = {
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoTraits extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.traits) {
this.avocado.traits = {};
}
if (!this.avocado.traits.persea) {
this.avocado.traits.persea = {};
}
this.avocado.traits.persea.Components = {};
}
}
),
'@flecks/core.starting': async (flecks) => {
flecks.avocado.traits.persea.Components = flecks.invokeMerge(
'@avocado/traits/persea.components',
);
},
};
export const mixin = (Flecks) => class FlecksWithAvocadoTraits extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
if (!this.avocado.traits) {
this.avocado.traits = {};
}
if (!this.avocado.traits.persea) {
this.avocado.traits.persea = {};
}
this.avocado.traits.persea.Components = {};
}
};