Skip to content

Commit 1d9bda0

Browse files
committed
worker clean up
1 parent 1349373 commit 1d9bda0

File tree

1 file changed

+8
-29
lines changed

1 file changed

+8
-29
lines changed

src/client/scripts/World/chunk.worker.js

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,7 @@ class TerrainManager {
2323
[0, 0, -1],
2424
[0, 0, 1],
2525
];
26-
this.states = {
27-
needsUpdate: 0,
28-
disposed: 1,
29-
};
30-
this.chunkState = {};
26+
this.chunkNeedsUpdate = {};
3127
this.generatedChunks = {};
3228
this.renderRadius = 10;
3329
this.playerChunk = [0, 0, 0];
@@ -50,7 +46,7 @@ class TerrainManager {
5046
data[2]
5147
)
5248
);
53-
this.chunkState[chunkId] = this.states.needsUpdate;
49+
this.chunkNeedsUpdate[chunkId] = true;
5450
for (var l = 0; l < this.neighbours.length; l++) {
5551
var nei = this.neighbours[l];
5652
var neiChunkId = this.chunkTerrain.vecToStr(
@@ -60,47 +56,30 @@ class TerrainManager {
6056
data[2] + nei[2]
6157
)
6258
);
63-
this.chunkState[neiChunkId] = this.states.needsUpdate;
59+
this.chunkNeedsUpdate[neiChunkId] = true;
6460
}
6561
}
6662

6763
setChunk(data) {
6864
this.chunkTerrain.setChunk(data[0], data[1], data[2], data[3]);
6965
var chunkId = terrain.chunkTerrain.vecToStr(data[0], data[1], data[2]);
70-
this.chunkState[chunkId] = this.states.needsUpdate;
66+
this.chunkNeedsUpdate[chunkId] = true;
7167
for (var l = 0; l < this.neighbours.length; l++) {
7268
var nei = this.neighbours[l];
7369
var neiChunkId = this.chunkTerrain.vecToStr(
7470
data[0] + nei[0],
7571
data[1] + nei[1],
7672
data[2] + nei[2]
7773
);
78-
this.chunkState[neiChunkId] = this.states.needsUpdate;
74+
this.chunkNeedsUpdate[neiChunkId] = true;
7975
}
8076
}
8177

82-
sortQueue() {
83-
this.chunkQueue.sort((a, b) => {
84-
var chunkA = vec3(...this.chunkTerrain.strToVec(a));
85-
var chunkB = vec3(...this.chunkTerrain.strToVec(b));
86-
var chunkP = vec3(...this.playerChunk);
87-
var roz1 = chunkP.distanceTo(chunkA);
88-
var roz2 = chunkP.distanceTo(chunkB);
89-
if (roz1 < roz2) {
90-
return -1;
91-
} else if (roz1 > roz2) {
92-
return 1;
93-
} else {
94-
return 0;
95-
}
96-
});
97-
}
98-
9978
genNearestChunk() {
10079
var nearestChunkId = "";
10180
var nearestDistance = -1;
10281
var isNearest = false;
103-
for (var chunkId in this.chunkState) {
82+
for (var chunkId in this.chunkNeedsUpdate) {
10483
var dist = this.distance(chunkId);
10584
if (
10685
(nearestDistance === -1 || nearestDistance > dist) &&
@@ -122,7 +101,7 @@ class TerrainManager {
122101
p: performance.now(),
123102
},
124103
});
125-
delete this.chunkState[nearestChunkId];
104+
delete this.chunkNeedsUpdate[nearestChunkId];
126105
}
127106
}
128107

@@ -131,7 +110,7 @@ class TerrainManager {
131110
var dist = this.distance(chunkId);
132111
if (dist > this.renderRadius) {
133112
delete this.generatedChunks[chunkId];
134-
this.chunkState[chunkId] = this.states.disposed;
113+
this.chunkNeedsUpdate[chunkId] = true;
135114
postMessage({
136115
type: "removeCell",
137116
data: chunkId,

0 commit comments

Comments
 (0)