different approach

This commit is contained in:
Hanusiak Piotr 2022-01-27 14:05:30 +01:00
parent 2781b72799
commit 68c4a5f5ce
5 changed files with 97 additions and 90 deletions

View file

@ -3,14 +3,17 @@ import { writable } from "svelte/store";
export function createColorStore() {
const { subscribe, set } = writable<number | undefined>(undefined);
let color: number | undefined = undefined;
let focused: boolean = false;
let followColor: number | undefined = undefined;
let apiColor: number | undefined = undefined;
let pointedByPointer: boolean = false;
let pointedByCharacter: boolean = false;
const updateColor = () => {
if (focused) {
if (pointedByPointer || pointedByCharacter) {
set(0xffff00);
} else {
set(color);
set(followColor ?? apiColor);
}
};
@ -18,22 +21,42 @@ export function createColorStore() {
subscribe,
pointerOver() {
focused = true;
pointedByPointer = true;
updateColor();
},
pointerOut() {
focused = false;
pointedByPointer = false;
updateColor();
},
setColor(newColor: number) {
color = newColor;
characterCloseBy() {
pointedByCharacter = true;
updateColor();
},
removeColor() {
color = undefined;
characterFarAway() {
pointedByCharacter = false;
updateColor();
},
setFollowColor(newColor: number) {
followColor = newColor;
updateColor();
},
removeFollowColor() {
followColor = undefined;
updateColor();
},
setApiColor(newColor: number) {
apiColor = newColor;
updateColor();
},
removeApiColor() {
apiColor = undefined;
updateColor();
},
};