Skip to content

Commit a52a29f

Browse files
committed
cleanup worker
1 parent a9a0800 commit a52a29f

File tree

1 file changed

+74
-137
lines changed

1 file changed

+74
-137
lines changed

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

Lines changed: 74 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -276,108 +276,67 @@ var TerrainManager = class TerrainManager {
276276
for (var x = -1; x <= 1; x++) {
277277
for (var y = -1; y <= 1; y++) {
278278
for (var z = -1; z <= 1; z++) {
279-
if (
279+
loaded[`${x}:${y}:${z}`] =
280280
_this.cellTerrain.getBlock(
281281
pos[0] + x,
282282
pos[1] + y,
283283
pos[2] + z
284284
).boundingBox === "block"
285-
) {
286-
loaded[`${x}:${y}:${z}`] = 1;
287-
} else {
288-
loaded[`${x}:${y}:${z}`] = 0;
289-
}
285+
? 1
286+
: 0;
290287
}
291288
}
292289
}
293-
var col1 = aoColor(0);
294-
var col2 = aoColor(0);
295-
var col3 = aoColor(0);
296-
var col4 = aoColor(0);
297-
if (type === "py") {
298-
col1 = aoColor(
299-
loaded["1:1:-1"] + loaded["0:1:-1"] + loaded["1:1:0"]
300-
);
301-
col2 = aoColor(
302-
loaded["1:1:1"] + loaded["0:1:1"] + loaded["1:1:0"]
303-
);
304-
col3 = aoColor(
305-
loaded["-1:1:-1"] + loaded["0:1:-1"] + loaded["-1:1:0"]
306-
);
307-
col4 = aoColor(
308-
loaded["-1:1:1"] + loaded["0:1:1"] + loaded["-1:1:0"]
309-
);
310-
}
311-
if (type === "ny") {
312-
col2 = aoColor(
313-
loaded["1:-1:-1"] + loaded["0:-1:-1"] + loaded["1:-1:0"]
314-
);
315-
col1 = aoColor(
316-
loaded["1:-1:1"] + loaded["0:-1:1"] + loaded["1:-1:0"]
317-
);
318-
col4 = aoColor(
319-
loaded["-1:-1:-1"] + loaded["0:-1:-1"] + loaded["-1:-1:0"]
320-
);
321-
col3 = aoColor(
322-
loaded["-1:-1:1"] + loaded["0:-1:1"] + loaded["-1:-1:0"]
323-
);
324-
}
325-
if (type === "px") {
326-
col1 = aoColor(
327-
loaded["-1:-1:0"] + loaded["-1:-1:-1"] + loaded["-1:0:-1"]
328-
);
329-
col2 = aoColor(
330-
loaded["-1:1:0"] + loaded["-1:1:-1"] + loaded["-1:0:-1"]
331-
);
332-
col3 = aoColor(
333-
loaded["-1:-1:0"] + loaded["-1:-1:1"] + loaded["-1:0:1"]
334-
);
335-
col4 = aoColor(
336-
loaded["-1:1:0"] + loaded["-1:1:1"] + loaded["-1:0:1"]
337-
);
338-
}
339-
if (type === "nx") {
340-
col3 = aoColor(
341-
loaded["1:-1:0"] + loaded["1:-1:-1"] + loaded["1:0:-1"]
342-
);
343-
col4 = aoColor(
344-
loaded["1:1:0"] + loaded["1:1:-1"] + loaded["1:0:-1"]
345-
);
346-
col1 = aoColor(
347-
loaded["1:-1:0"] + loaded["1:-1:1"] + loaded["1:0:1"]
348-
);
349-
col2 = aoColor(
350-
loaded["1:1:0"] + loaded["1:1:1"] + loaded["1:0:1"]
351-
);
352-
}
353-
if (type === "pz") {
354-
col1 = aoColor(
355-
loaded["0:-1:1"] + loaded["-1:-1:1"] + loaded["-1:0:1"]
356-
);
357-
col2 = aoColor(
358-
loaded["0:1:1"] + loaded["-1:1:1"] + loaded["-1:0:1"]
359-
);
360-
col3 = aoColor(
361-
loaded["0:-1:1"] + loaded["1:-1:1"] + loaded["1:0:1"]
362-
);
363-
col4 = aoColor(
364-
loaded["0:1:1"] + loaded["1:1:1"] + loaded["1:0:1"]
365-
);
366-
}
367-
if (type === "nz") {
368-
col3 = aoColor(
369-
loaded["0:-1:-1"] + loaded["-1:-1:-1"] + loaded["-1:0:-1"]
370-
);
371-
col4 = aoColor(
372-
loaded["0:1:-1"] + loaded["-1:1:-1"] + loaded["-1:0:-1"]
373-
);
374-
col1 = aoColor(
375-
loaded["0:-1:-1"] + loaded["1:-1:-1"] + loaded["1:0:-1"]
290+
var aoMap = {
291+
py: [
292+
[1, 1, -1, 0, 1, -1, 1, 1, 0],
293+
[1, 1, 1, 0, 1, 1, 1, 1, 0],
294+
[-1, 1, -1, 0, 1, -1, -1, 1, 0],
295+
[-1, 1, 1, 0, 1, 1, -1, 1, 0],
296+
],
297+
ny: [
298+
[1, -1, 1, 0, -1, 1, 1, -1, 0],
299+
[1, -1, -1, 0, -1, -1, 1, -1, 0],
300+
[-1, -1, 1, 0, -1, 1, -1, -1, 0],
301+
[-1, -1, -1, 0, -1, -1, -1, -1, 0],
302+
],
303+
px: [
304+
[-1, -1, 0, -1, -1, -1, -1, 0, -1],
305+
[-1, 1, 0, -1, 1, -1, -1, 0, -1],
306+
[-1, -1, 0, -1, -1, 1, -1, 0, 1],
307+
[-1, 1, 0, -1, 1, 1, -1, 0, 1],
308+
],
309+
nx: [
310+
[1, -1, 0, 1, -1, 1, 1, 0, 1],
311+
[1, 1, 0, 1, 1, 1, 1, 0, 1],
312+
[1, -1, 0, 1, -1, -1, 1, 0, -1],
313+
[1, 1, 0, 1, 1, -1, 1, 0, -1],
314+
],
315+
pz: [
316+
[0, -1, 1, -1, -1, 1, -1, 0, 1],
317+
[0, 1, 1, -1, 1, 1, -1, 0, 1],
318+
[0, -1, 1, 1, -1, 1, 1, 0, 1],
319+
[0, 1, 1, 1, 1, 1, 1, 0, 1],
320+
],
321+
nz: [
322+
[0, -1, -1, 1, -1, -1, 1, 0, -1],
323+
[0, 1, -1, 1, 1, -1, 1, 0, -1],
324+
[0, -1, -1, -1, -1, -1, -1, 0, -1],
325+
[0, 1, -1, -1, 1, -1, -1, 0, -1],
326+
],
327+
};
328+
var c1 = aoMap[type];
329+
var getCol = function (num) {
330+
return aoColor(
331+
loaded[`${c1[num][0]}:${c1[num][1]}:${c1[num][2]}`] +
332+
loaded[`${c1[num][3]}:${c1[num][4]}:${c1[num][5]}`] +
333+
loaded[`${c1[num][6]}:${c1[num][7]}:${c1[num][8]}`]
376334
);
377-
col2 = aoColor(
378-
loaded["0:1:-1"] + loaded["1:1:-1"] + loaded["1:0:-1"]
379-
);
380-
}
335+
};
336+
var col1 = getCol(0);
337+
var col2 = getCol(1);
338+
var col3 = getCol(2);
339+
var col4 = getCol(3);
381340
var ile = 4;
382341
if (block.name === "water") {
383342
col1[0] /= ile;
@@ -441,54 +400,32 @@ var TerrainManager = class TerrainManager {
441400
cellY * this.cellSize + j,
442401
cellZ * this.cellSize + k,
443402
];
444-
if (
445-
this.cellTerrain.getBlock(...pos).boundingBox ===
446-
"block"
447-
) {
448-
for (let l in this.neighbours) {
449-
let m = this.neighbours[l];
450-
if (this.cellTerrain.getBlock(...pos).transparent) {
451-
if (
452-
this.cellTerrain.getBlock(
453-
pos[0] + m[0],
454-
pos[1] + m[1],
455-
pos[2] + m[2]
456-
).boundingBox !== "block"
457-
) {
458-
addFace(l, pos);
459-
}
460-
} else {
461-
if (
462-
this.cellTerrain.getBlock(
463-
pos[0] + m[0],
464-
pos[1] + m[1],
465-
pos[2] + m[2]
466-
).boundingBox !== "block" ||
467-
this.cellTerrain.getBlock(
468-
pos[0] + m[0],
469-
pos[1] + m[1],
470-
pos[2] + m[2]
471-
).transparent
472-
) {
473-
addFace(l, pos);
474-
}
475-
}
476-
}
477-
} else if (
478-
this.cellTerrain.getBlock(...pos).name === "water" ||
479-
this.cellTerrain.getBlock(...pos).name === "lava"
480-
) {
481-
for (var l in this.neighbours) {
482-
let m = this.neighbours[l];
403+
var mainBlock = this.cellTerrain.getBlock(...pos);
404+
for (let l in this.neighbours) {
405+
let m = this.neighbours[l];
406+
var neiBlock = this.cellTerrain.getBlock(
407+
pos[0] + m[0],
408+
pos[1] + m[1],
409+
pos[2] + m[2]
410+
);
411+
if (mainBlock.boundingBox === "block") {
483412
if (
484-
this.cellTerrain.getBlock(
485-
pos[0] + m[0],
486-
pos[1] + m[1],
487-
pos[2] + m[2]
488-
).name === "air"
413+
mainBlock.transparent &&
414+
neiBlock.boundingBox !== "block"
415+
) {
416+
addFace(l, pos);
417+
} else if (
418+
neiBlock.boundingBox !== "block" ||
419+
neiBlock.transparent
489420
) {
490421
addFace(l, pos);
491422
}
423+
} else if (
424+
(mainBlock.name === "water" ||
425+
mainBlock.name === "lava") &&
426+
neiBlock.name === "air"
427+
) {
428+
addFace(l, pos);
492429
}
493430
}
494431
}

0 commit comments

Comments
 (0)