aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstonedDiscord <Tukz@gmx.de>2024-08-31 15:14:48 +0200
committerstonedDiscord <Tukz@gmx.de>2024-08-31 15:14:48 +0200
commit705bb39fbe20c2b17788b4f2ab859674edc02de6 (patch)
tree614e829cdf7442d3acce59b5f27a5ea062fb18c0
parent84db1ce9a2eaf6670605104d2ede8683159b67df (diff)
hide out of area players
-rw-r--r--webAO/client.ts2
-rw-r--r--webAO/dom/areaClick.ts5
-rw-r--r--webAO/dom/updatePlayerAreas.ts16
-rw-r--r--webAO/packets/handlers/handlePR.ts1
-rw-r--r--webAO/packets/handlers/handlePU.ts5
-rw-r--r--webAO/styles/client.css1
6 files changed, 29 insertions, 1 deletions
diff --git a/webAO/client.ts b/webAO/client.ts
index ebfb36f..301fdfa 100644
--- a/webAO/client.ts
+++ b/webAO/client.ts
@@ -124,6 +124,7 @@ class Client extends EventEmitter {
chars: any;
emotes: any;
evidences: any;
+ area: number;
areas: any;
musics: any;
musics_time: boolean;
@@ -183,6 +184,7 @@ class Client extends EventEmitter {
this.chars = [];
this.emotes = [];
this.evidences = [];
+ this.area = 0;
this.areas = [];
this.musics = [];
this.musics_time = false;
diff --git a/webAO/dom/areaClick.ts b/webAO/dom/areaClick.ts
index 1b0fe52..e217c2c 100644
--- a/webAO/dom/areaClick.ts
+++ b/webAO/dom/areaClick.ts
@@ -1,15 +1,18 @@
import { client } from '../client'
+import { updatePlayerAreas } from './updatePlayerAreas'
/**
* Triggered when an item on the area list is clicked.
* @param {HTMLElement} el
*/
export function area_click(el: HTMLElement) {
- const area = client.areas[el.id.substr(4)].name;
+ const area = client.areas[el.id.substring(4)].name;
client.sender.sendMusicChange(area);
const areaHr = document.createElement("div");
areaHr.className = "hrtext";
areaHr.textContent = `switched to ${el.textContent}`;
document.getElementById("client_log")!.appendChild(areaHr);
+ client.area = Number(el.id.substring(4));
+ updatePlayerAreas(client.area);
}
window.area_click = area_click; \ No newline at end of file
diff --git a/webAO/dom/updatePlayerAreas.ts b/webAO/dom/updatePlayerAreas.ts
new file mode 100644
index 0000000..d2ec076
--- /dev/null
+++ b/webAO/dom/updatePlayerAreas.ts
@@ -0,0 +1,16 @@
+import { client } from '../client'
+import { area_click } from './areaClick';
+/**
+ * Triggered when someone switches areas
+ * @param {Number} ownarea
+ */
+export function updatePlayerAreas(ownarea: number) {
+ for (let i=0; i < client.areas.length; i++) {
+ if (i===ownarea)
+ for (let classelement of Array.from(document.getElementsByClassName(`area${i}`) as HTMLCollectionOf<HTMLElement>))
+ classelement.style.display = "";
+ else
+ for (let classelement of Array.from(document.getElementsByClassName(`area${i}`) as HTMLCollectionOf<HTMLElement>))
+ classelement.style.display = "none";
+ }
+} \ No newline at end of file
diff --git a/webAO/packets/handlers/handlePR.ts b/webAO/packets/handlers/handlePR.ts
index 0073140..cfb2d1e 100644
--- a/webAO/packets/handlers/handlePR.ts
+++ b/webAO/packets/handlers/handlePR.ts
@@ -5,6 +5,7 @@ function addPlayer(playerID: number) {
const list = <HTMLTableElement>document.getElementById("client_playerlist");
const playerRow = list.insertRow();
playerRow.id = `client_playerlist_entry${playerID}`;
+ playerRow.className = `area0`;
const imgCell = playerRow.insertCell(0);
const img = document.createElement('img');
diff --git a/webAO/packets/handlers/handlePU.ts b/webAO/packets/handlers/handlePU.ts
index 6db644b..e2fd4d7 100644
--- a/webAO/packets/handlers/handlePU.ts
+++ b/webAO/packets/handlers/handlePU.ts
@@ -1,4 +1,6 @@
+import { client } from "../../client";
import { getCharIcon } from "../../client/handleCharacterInfo";
+import { updatePlayerAreas } from '../../dom/updatePlayerAreas'
/**
* Handles a playerlist update
@@ -23,6 +25,9 @@ export const handlePU = (args: string[]) => {
const showName = <HTMLElement>playerRow.childNodes[2];
showName.innerText = data;
break;
+ case 3:
+ playerRow.className = `area${data}`;
+ updatePlayerAreas(client.area);
default:
break;
}
diff --git a/webAO/styles/client.css b/webAO/styles/client.css
index 1525500..6737953 100644
--- a/webAO/styles/client.css
+++ b/webAO/styles/client.css
@@ -564,6 +564,7 @@
}
#client_playerlist {
+ width: 100%;
overflow-y: scroll;
}