Renamed grid data -> state

This commit is contained in:
thepaperpilot 2021-09-19 10:40:18 -05:00
parent 2eeb96a66f
commit 7c0f93b7ad
4 changed files with 24 additions and 24 deletions

View file

@ -62,7 +62,7 @@ export default {
maxRows: 3,
rows: 2,
cols: 2,
getStartData(cell: string) {
getStartState(cell: string) {
return cell;
},
getUnlocked() {
@ -73,11 +73,11 @@ export default {
return player.points.eq(10);
},
getStyle(cell) {
return { backgroundColor: "#" + ((Number((this[cell] as GridCell).data) * 1234) % 999999) };
return { backgroundColor: "#" + ((Number((this[cell] as GridCell).state) * 1234) % 999999) };
},
click(cell) {
// Don't forget onHold
(this[cell] as GridCell).data = ((this[cell] as GridCell).data as number) + 1;
(this[cell] as GridCell).state = ((this[cell] as GridCell).state as number) + 1;
},
getTitle(cell) {
let direction;
@ -95,7 +95,7 @@ export default {
</tooltip>`;
},
getDisplay(cell) {
return (this[cell] as GridCell).data;
return (this[cell] as GridCell).state;
}
}
}

View file

@ -404,23 +404,23 @@ export function addLayer(layer: RawLayer, player?: Partial<PlayerData>): void {
setupFeatures<NonNullable<RawLayer["grids"]>, Grid>(layer.id, layer.grids);
for (const id in layer.grids.data) {
setDefault(player.layers[layer.id].grids, id, {});
layer.grids.data[id].getData = function(cell): State {
layer.grids.data[id].getState = function(cell): State {
if (playerProxy.layers[this.layer].grids[id][cell] != undefined) {
return playerProxy.layers[this.layer].grids[id][cell];
}
if (isFunction(this.getStartData)) {
return (this.getStartData as (this: Grid, cell: string | number) => State)(
if (isFunction(this.getStartState)) {
return (this.getStartState as (this: Grid, cell: string | number) => State)(
cell
);
}
return this.getStartData;
return this.getStartState;
};
layer.grids.data[id].setData = function(cell, data) {
playerProxy.layers[this.layer].grids[id][cell] = data;
layer.grids.data[id].setState = function(cell, state) {
playerProxy.layers[this.layer].grids[id][cell] = state;
};
setDefault(layer.grids.data[id], "getUnlocked", true, false);
setDefault(layer.grids.data[id], "getCanClick", true, false);
setDefault(layer.grids.data[id], "getStartData", "", false);
setDefault(layer.grids.data[id], "getStartState", "", false);
setDefault(layer.grids.data[id], "getStyle", undefined, false);
setDefault(layer.grids.data[id], "click", undefined, false);
setDefault(layer.grids.data[id], "hold", undefined, false);
@ -433,15 +433,15 @@ export function addLayer(layer: RawLayer, player?: Partial<PlayerData>): void {
for (const id in layer.boards.data) {
setDefault(layer.boards.data[id], "width", "100%");
setDefault(layer.boards.data[id], "height", "400px");
setDefault(layer.boards.data[id], "nodes", function() {
setDefault(layer.boards.data[id], "nodes", function(this: Board) {
return playerProxy.layers[this.layer].boards[this.id].nodes;
});
setDefault(layer.boards.data[id], "selectedNode", function() {
setDefault(layer.boards.data[id], "selectedNode", function(this: Board) {
return playerProxy.layers[this.layer].boards[this.id].nodes.find(
node => node.id === playerProxy.layers[this.layer].boards[this.id].selectedNode
);
});
setDefault(layer.boards.data[id], "selectedAction", function() {
setDefault(layer.boards.data[id], "selectedAction", function(this: Board) {
if (this.selectedNode == null) {
return null;
}
@ -460,11 +460,11 @@ export function addLayer(layer: RawLayer, player?: Partial<PlayerData>): void {
action.id === playerProxy.layers[this.layer].boards[this.id].selectedAction
);
});
setDefault(layer.boards.data[id], "links", function() {
setDefault(layer.boards.data[id], "links", function(this: Board) {
if (this.selectedAction == null) {
return null;
}
if (this.selectedAction.links) {
if (this.selectedAction.links && this.selectedNode) {
if (typeof this.selectedAction.links === "function") {
return this.selectedAction.links(this.selectedNode);
}

View file

@ -5,11 +5,11 @@ export interface Grid extends Feature {
maxRows: number;
rows: number;
cols: number;
getData?: (cell: string | number) => State;
setData?: (cell: string | number, data: State) => void;
getState?: (cell: string | number) => State;
setState?: (cell: string | number, state: State) => void;
getUnlocked: boolean | ((cell: string | number) => boolean);
getCanClick: boolean | ((cell: string | number) => boolean);
getStartData: State | ((cell: string | number) => State);
getStartState: State | ((cell: string | number) => State);
getStyle?:
| Partial<CSSStyleDeclaration>
| ((cell: string | number) => Partial<CSSStyleDeclaration> | undefined);
@ -20,8 +20,8 @@ export interface Grid extends Feature {
}
export interface GridCell extends Feature {
data: State;
dataSet: (data: State) => void;
state: State;
stateSet: (state: State) => void;
effect?: State;
unlocked: boolean;
canClick: boolean;

View file

@ -151,7 +151,7 @@ function getCellHandler(id: string) {
let prop = target[key];
if (isFunction(prop) && prop.forceCached === false) {
return () => prop.call(receiver, id, target.getData(id));
return () => prop.call(receiver, id, target.getState(id));
}
if (prop != undefined || key.slice == undefined) {
return prop;
@ -160,14 +160,14 @@ function getCellHandler(id: string) {
key = key.slice(0, 1).toUpperCase() + key.slice(1);
prop = target[`get${key}`];
if (isFunction(prop)) {
return prop.call(receiver, id, target.getData(id));
return prop.call(receiver, id, target.getState(id));
} else if (prop != undefined) {
return prop;
}
prop = target[`on${key}`];
if (isFunction(prop)) {
return () => prop.call(receiver, id, target.getData(id));
return () => prop.call(receiver, id, target.getState(id));
} else if (prop != undefined) {
return prop;
}