mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2025-02-18 00:30:43 +00:00
scripting: don't need $$reset (i think?)
This commit is contained in:
parent
8fc94aad25
commit
65a16db7b7
@ -25,7 +25,6 @@ export function $$loadData(data: {}) {
|
|||||||
// object that can load state from backing store
|
// object that can load state from backing store
|
||||||
export interface Loadable {
|
export interface Loadable {
|
||||||
// called during script, from io.data.load()
|
// called during script, from io.data.load()
|
||||||
$$reset() : void;
|
|
||||||
$$setstate?(newstate: {}) : void;
|
$$setstate?(newstate: {}) : void;
|
||||||
// called after script, from io.data.save()
|
// called after script, from io.data.save()
|
||||||
$$getstate() : {};
|
$$getstate() : {};
|
||||||
@ -39,9 +38,8 @@ export namespace data {
|
|||||||
object.$$setstate(override);
|
object.$$setstate(override);
|
||||||
} else if (override) {
|
} else if (override) {
|
||||||
Object.assign(object, override);
|
Object.assign(object, override);
|
||||||
} else if (object.$$reset) {
|
} else if (object.$$getstate) {
|
||||||
object.$$reset();
|
save(object, key); // $$reset not needed
|
||||||
data.save(object, key);
|
|
||||||
}
|
}
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
@ -155,9 +153,6 @@ export class InteractionRecord implements Loadable {
|
|||||||
private $$callback
|
private $$callback
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
$$reset() {
|
|
||||||
this.$$setstate({interactid: ++$$seq})
|
|
||||||
}
|
|
||||||
$$setstate(newstate: {interactid: number}) {
|
$$setstate(newstate: {interactid: number}) {
|
||||||
this.interactid = newstate.interactid;
|
this.interactid = newstate.interactid;
|
||||||
this.interacttarget.$$interact = this;
|
this.interacttarget.$$interact = this;
|
||||||
@ -193,9 +188,8 @@ export function interact(object: any, callback) : InteractionRecord {
|
|||||||
// TODO: what if this isn't top level?
|
// TODO: what if this isn't top level?
|
||||||
export class Mutable<T> implements Loadable {
|
export class Mutable<T> implements Loadable {
|
||||||
value : T;
|
value : T;
|
||||||
constructor(public readonly initial : T) { }
|
constructor(public readonly initial : T) {
|
||||||
$$reset() {
|
this.value = initial;
|
||||||
this.value = this.initial;
|
|
||||||
}
|
}
|
||||||
$$setstate(newstate) {
|
$$setstate(newstate) {
|
||||||
this.value = newstate.value;
|
this.value = newstate.value;
|
||||||
|
@ -13,18 +13,16 @@ export class ScriptUISliderType implements ScriptUIType {
|
|||||||
readonly max: number,
|
readonly max: number,
|
||||||
readonly step: number
|
readonly step: number
|
||||||
) {
|
) {
|
||||||
|
this.value = min;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ScriptUISlider extends ScriptUISliderType implements io.Loadable {
|
export class ScriptUISlider extends ScriptUISliderType implements io.Loadable {
|
||||||
initvalue: number;
|
initvalue: number;
|
||||||
initial(value: number) {
|
initial(value: number) {
|
||||||
this.initvalue = value;
|
this.value = value;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
$$reset() {
|
|
||||||
this.value = this.initvalue != null ? this.initvalue : this.min;
|
|
||||||
}
|
|
||||||
$$getstate() {
|
$$getstate() {
|
||||||
return { value: this.value };
|
return { value: this.value };
|
||||||
}
|
}
|
||||||
@ -39,23 +37,21 @@ export function slider(min: number, max: number, step?: number) {
|
|||||||
export class ScriptUISelectType<T> implements ScriptUIType {
|
export class ScriptUISelectType<T> implements ScriptUIType {
|
||||||
readonly uitype = 'select';
|
readonly uitype = 'select';
|
||||||
value: T;
|
value: T;
|
||||||
index: number = -1;
|
index: number;
|
||||||
constructor(
|
constructor(
|
||||||
readonly options: T[]
|
readonly options: T[]
|
||||||
) {
|
) {
|
||||||
|
this.value = null;
|
||||||
|
this.index = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ScriptUISelect<T> extends ScriptUISelectType<T> implements io.Loadable {
|
export class ScriptUISelect<T> extends ScriptUISelectType<T> implements io.Loadable {
|
||||||
initindex : number;
|
|
||||||
initial(index: number) {
|
initial(index: number) {
|
||||||
this.initindex = index;
|
this.index = index;
|
||||||
|
this.value = this.options[index];
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
$$reset() {
|
|
||||||
this.index = this.initindex >= 0 ? this.initindex : -1;
|
|
||||||
this.value = null;
|
|
||||||
}
|
|
||||||
$$getstate() {
|
$$getstate() {
|
||||||
return { value: this.value, index: this.index };
|
return { value: this.value, index: this.index };
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user