Update to new data bindings, everythings an interface now.

This commit is contained in:
Oliver Rümpelein 2020-12-28 17:34:40 +01:00
parent 78be1c2370
commit 9385917edd
6 changed files with 40 additions and 50 deletions

View file

@ -1,26 +1,26 @@
export type DS4ActorDataType = EntityData<DS4ActorData>;
// TODO: Actually add a type for data
export class DS4ActorData {
public attributes: DS4ActorDataAttributes;
public traits: DS4ActorDataTraits;
export interface DS4ActorDataType {
attributes: DS4ActorDataAttributes;
traits: DS4ActorDataTraits;
}
class DS4ActorDataAttributes {
public body: ExpandableAttribute<number>;
public mobility: ExpandableAttribute<number>;
public mind: ExpandableAttribute<number>;
interface DS4ActorDataAttributes {
body: BodyAttribute;
mobility: ExtensibleData<number>;
mind: ExtensibleData<number>;
}
class ExpandableAttribute<T extends any> {
public initial: T;
interface ExtensibleData<T extends any> {
initial: T;
}
class DS4ActorDataTraits {
public strength: ExpandableAttribute<number>;
public constitution: ExpandableAttribute<number>;
public agility: ExpandableAttribute<number>;
public dexterity: ExpandableAttribute<number>;
public intellect: ExpandableAttribute<number>;
public aura: ExpandableAttribute<number>;
// Blueprint in case we need more detailed differentiation
type BodyAttribute = ExtensibleData<number>;
interface DS4ActorDataTraits {
strength: ExtensibleData<number>;
constitution: ExtensibleData<number>;
agility: ExtensibleData<number>;
dexterity: ExtensibleData<number>;
intellect: ExtensibleData<number>;
aura: ExtensibleData<number>;
}