workadventure/front/src/Stores/OutlineColorStore.ts
Hanusiak Piotr 45a7e9331b ran prettier
2022-02-02 13:30:49 +01:00

64 lines
1.4 KiB
TypeScript

import { writable } from "svelte/store";
export function createColorStore() {
const { subscribe, set } = writable<number | undefined>(undefined);
let followColor: number | undefined = undefined;
let apiColor: number | undefined = undefined;
let pointedByPointer: boolean = false;
let pointedByCharacter: boolean = false;
const updateColor = () => {
if (pointedByPointer || pointedByCharacter) {
set(0xffff00);
} else {
set(followColor ?? apiColor);
}
};
return {
subscribe,
pointerOver() {
pointedByPointer = true;
updateColor();
},
pointerOut() {
pointedByPointer = false;
updateColor();
},
characterCloseBy() {
pointedByCharacter = true;
updateColor();
},
characterFarAway() {
pointedByCharacter = false;
updateColor();
},
setFollowColor(newColor: number) {
followColor = newColor;
updateColor();
},
removeFollowColor() {
followColor = undefined;
updateColor();
},
setApiColor(newColor: number) {
apiColor = newColor;
updateColor();
},
removeApiColor() {
apiColor = undefined;
updateColor();
},
};
}