Skip to content

Commit 9e953ca

Browse files
committed
loading and uloading chunks in distance
1 parent a5f5cc1 commit 9e953ca

File tree

4 files changed

+84
-56
lines changed

4 files changed

+84
-56
lines changed

coffee/client/module/World/World.coffee

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,19 @@ class World
6262
return
6363
getBlock: (voxelX,voxelY,voxelZ) ->
6464
return @cellTerrain.getVoxel voxelX,voxelY,voxelZ
65-
updateCells: ->
66-
_this=@
67-
Object.keys(@cellNeedsUpdate).forEach (id)->
68-
if _this.cellNeedsUpdate[id]
69-
_this._genCellGeo id.split(":")...
70-
delete _this.cellNeedsUpdate[id]
71-
return
65+
updateCellsAroundPlayer: (pos,radius)->
66+
for k,v of @cellMesh
67+
v.visible=false
68+
cell=@cellTerrain.computeCellForVoxel (Math.floor pos.x),(Math.floor pos.y),(Math.floor pos.z)
69+
for i in [-radius..radius]
70+
for j in [-radius..radius]
71+
for k in [-radius..radius]
72+
pcell=[cell[0]+i,cell[1]+j,cell[2]+k]
73+
try
74+
@cellMesh[@cellTerrain.vec3(pcell...)].visible=true
75+
if @cellNeedsUpdate[@cellTerrain.vec3(pcell...)]
76+
@_genCellGeo pcell...
77+
delete @cellNeedsUpdate[@cellTerrain.vec3(pcell...)]
7278
updateCell: (data)->
7379
cellId=@cellTerrain.vec3 data.info...
7480
cell=data.cell
@@ -154,11 +160,6 @@ class World
154160
tzMax += tzDelta
155161
steppedIndex = 2
156162
return null
157-
replaceWorld: (voxels)->
158-
_this=@
159-
Object.keys(voxels).forEach (id)->
160-
if voxels[id] isnt _this.getBlock id.split(":")...
161-
_this.setBlock id.split(":")...,voxels[id]
162163
getRayBlock: ->
163164
start = new THREE.Vector3().setFromMatrixPosition(@camera.matrixWorld)
164165
end = new THREE.Vector3().set(0,0, 1).unproject(@camera)

coffee/client/module/index.coffee

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,9 @@ init = ()->
1818
PixelRatio:window.devicePixelRatio
1919
}
2020
scene=new THREE.Scene
21-
camera = new THREE.PerspectiveCamera 90, 2, 0.1, 64
21+
camera = new THREE.PerspectiveCamera 90, 2, 0.1, 1000
2222
camera.rotation.order = "YXZ"
2323
camera.position.set 26, 26, 26
24-
color = new THREE.Color "#adc8ff"
25-
near = 32
26-
far = 64
27-
scene.fog = new THREE.Fog color, near, far
2824

2925
rt = new THREE.WebGLCubeRenderTarget al.get("skybox").image.height
3026
rt.fromEquirectangularTexture renderer, al.get "skybox"
@@ -131,11 +127,19 @@ init = ()->
131127
# pos[2]=Math.floor pos[2]
132128
# socket.emit "blockUpdate",[pos...,voxelId]
133129
# return
130+
color = new THREE.Color "#adc8ff"
131+
near = 32
132+
far = 64
134133
gui = new GUI()
135134
params={
136-
test:true
135+
fog:false
137136
}
138-
gui.add( params, 'test' ).name( 'test' )
137+
gui.add( params, 'fog' ).name( 'Enable fog' ).listen().onChange ()->
138+
if params.fog
139+
scene.fog = new THREE.Fog color, near, far
140+
else
141+
scene.fog = null
142+
gui.add( world.material, 'wireframe' ).name( 'Wireframe' ).listen()
139143
animate()
140144
return
141145
render = ->
@@ -159,7 +163,7 @@ render = ->
159163
else
160164
cursor.visible=false
161165

162-
world.updateCells()
166+
world.updateCellsAroundPlayer camera.position,5
163167
TWEEN.update();
164168
renderer.render scene, camera
165169
return

src/client/module/World/World.js

Lines changed: 45 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/client/module/index.js

Lines changed: 14 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)