@@ -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