Skip to content

Commit a5f5cc1

Browse files
committed
delete saving world to file
1 parent 7f1c1e3 commit a5f5cc1

File tree

9 files changed

+3668
-209
lines changed

9 files changed

+3668
-209
lines changed

coffee/client/module/FirstPersonControls.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class FirstPersonControls
2424
@camera.rotation.x = THREE.MathUtils.degToRad -90
2525
if THREE.MathUtils.radToDeg( @camera.rotation.x ) > 90
2626
@camera.rotation.x = THREE.MathUtils.degToRad 90
27-
@socket.emit "playerRotate", [@camera.rotation.y,@camera.rotation.x]
27+
@socket.emit "rotate", [@camera.rotation.y,@camera.rotation.x]
2828
return
2929
listen: ->
3030
_this=@

coffee/client/module/index.coffee

Lines changed: 39 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@ import {FirstPersonControls} from './FirstPersonControls.js'
88
import {gpuInfo} from './gpuInfo.js'
99
import {AssetLoader} from './AssetLoader.js'
1010
import {InventoryBar} from './InventoryBar.js'
11-
import {Players} from './Players.js'
1211
import {RandomNick} from './RandomNick.js'
13-
12+
import {GUI} from './jsm/libs/dat.gui.module.js'
1413

1514
init = ()->
16-
#canvas,renderer,camera,lights
1715
canvas=document.querySelector '#c'
1816
renderer=new THREE.WebGLRenderer {
1917
canvas
@@ -23,34 +21,29 @@ init = ()->
2321
camera = new THREE.PerspectiveCamera 90, 2, 0.1, 64
2422
camera.rotation.order = "YXZ"
2523
camera.position.set 26, 26, 26
26-
color = new THREE.Color("#adc8ff")
24+
color = new THREE.Color "#adc8ff"
2725
near = 32
2826
far = 64
29-
scene.fog = new THREE.Fog(color, near, far)
30-
#skybox
31-
loader = new THREE.TextureLoader();
32-
skybox = loader.load "assets/images/skybox.jpg", () ->
33-
rt = new THREE.WebGLCubeRenderTarget skybox.image.height
34-
rt.fromEquirectangularTexture renderer, skybox
35-
scene.background = rt
36-
return
37-
#Lights
27+
scene.fog = new THREE.Fog color, near, far
28+
29+
rt = new THREE.WebGLCubeRenderTarget al.get("skybox").image.height
30+
rt.fromEquirectangularTexture renderer, al.get "skybox"
31+
scene.background = rt
32+
3833
ambientLight=new THREE.AmbientLight 0xcccccc
3934
scene.add ambientLight
4035
directionalLight = new THREE.DirectionalLight 0x333333, 2
4136
directionalLight.position.set(1, 1, 0.5).normalize()
4237
scene.add directionalLight
4338
console.warn gpuInfo()
4439

45-
#Clouds
4640
clouds=al.get "clouds"
4741
clouds.scale.x=0.1
4842
clouds.scale.y=0.1
4943
clouds.scale.z=0.1
5044
clouds.position.y=170
5145
scene.add clouds
5246

53-
#setup world
5447
world=new World({
5548
toxelSize:27
5649
cellSize:16
@@ -59,7 +52,6 @@ init = ()->
5952
al
6053
})
6154

62-
#Socket.io setup
6355
socket=io.connect "#{al.get("host")}:#{al.get("websocket-port")}"
6456
socket.on "connect",()->
6557
console.log "Połączono z serverem!"
@@ -72,32 +64,25 @@ init = ()->
7264
socket.emit "initClient", {
7365
nick:nick
7466
}
67+
console.log "First Load packet recieved!"
68+
# world.replaceWorld v
69+
$(".initLoading").css "display","none"
70+
stats = new Stats();
71+
stats.showPanel(0);
72+
document.body.appendChild stats.dom
7573
return
76-
socket.on "blockUpdate",(block)->
77-
world.setBlock block...
78-
return
74+
# socket.on "blockUpdate",(block)->
75+
# world.setBlock block...
76+
# return
7977
socket.on "mapChunk", (sections,x,z)->
8078
world._computeSections sections,x,z
81-
socket.on "botPosition", (pos)->
79+
socket.on "move", (pos)->
8280
to={x:pos.x-0.5,y:pos.y+17,z:pos.z-0.5}
8381
new TWEEN.Tween camera.position
84-
.to to, 40
82+
.to to, 100
8583
.easing TWEEN.Easing.Quadratic.Out
8684
.start()
87-
players=new Players {socket,scene,al}
88-
socket.on "playerUpdate",(data)->
89-
players.update data
90-
return
91-
socket.on "firstLoad",(v)->
92-
console.log "First Load packet recieved!"
93-
world.replaceWorld v
94-
$(".initLoading").css "display","none"
95-
stats = new Stats();
96-
stats.showPanel(0);
97-
document.body.appendChild stats.dom
98-
return
9985

100-
#Inventory Bar
10186
inv_bar = new InventoryBar({
10287
boxSize: 60
10388
padding: 4
@@ -114,15 +99,13 @@ init = ()->
11499
"assets/images/tnt.png"
115100
]).setFocusOnly(1).listen()
116101

117-
#First Person Controls
118102
FPC = new FirstPersonControls {
119103
canvas
120104
camera
121105
micromove: 0.3
122106
socket
123107
}
124108

125-
#Raycast cursor
126109
cursor=new THREE.LineSegments(
127110
new THREE.EdgesGeometry(
128111
new THREE.BoxGeometry 1, 1, 1
@@ -133,28 +116,29 @@ init = ()->
133116
}
134117
)
135118
scene.add cursor
136-
137-
#jquery events
138-
$(document).mousedown (e)->
139-
if FPC.gameState is "game"
140-
rayBlock=world.getRayBlock()
141-
if rayBlock
142-
if e.which is 1
143-
voxelId=0
144-
pos=rayBlock.posBreak
145-
else
146-
voxelId=inv_bar.activeBox
147-
pos=rayBlock.posPlace
148-
pos[0]=Math.floor pos[0]
149-
pos[1]=Math.floor pos[1]
150-
pos[2]=Math.floor pos[2]
151-
socket.emit "blockUpdate",[pos...,voxelId]
152-
return
153-
119+
# $(document).mousedown (e)->
120+
# if FPC.gameState is "game"
121+
# rayBlock=world.getRayBlock()
122+
# if rayBlock
123+
# if e.which is 1
124+
# voxelId=0
125+
# pos=rayBlock.posBreak
126+
# else
127+
# voxelId=inv_bar.activeBox
128+
# pos=rayBlock.posPlace
129+
# pos[0]=Math.floor pos[0]
130+
# pos[1]=Math.floor pos[1]
131+
# pos[2]=Math.floor pos[2]
132+
# socket.emit "blockUpdate",[pos...,voxelId]
133+
# return
134+
gui = new GUI()
135+
params={
136+
test:true
137+
}
138+
gui.add( params, 'test' ).name( 'test' )
154139
animate()
155140
return
156141
render = ->
157-
#Autoresize canvas
158142
width=window.innerWidth
159143
height=window.innerHeight
160144
if canvas.width isnt width or canvas.height isnt height
@@ -164,17 +148,6 @@ render = ->
164148
camera.aspect = width / height
165149
camera.updateProjectionMatrix()
166150

167-
#Player movement
168-
if FPC.gameState is "game"
169-
socket.emit "playerUpdate", {
170-
x:camera.position.x
171-
y:camera.position.y
172-
z:camera.position.z
173-
xyaw:-camera.rotation.x
174-
zyaw:camera.rotation.y+Math.PI
175-
}
176-
177-
#Update cursor
178151
rayBlock=world.getRayBlock()
179152
if rayBlock
180153
pos=rayBlock.posBreak
@@ -186,7 +159,6 @@ render = ->
186159
else
187160
cursor.visible=false
188161

189-
#Rendering
190162
world.updateCells()
191163
TWEEN.update();
192164
renderer.render scene, camera

coffee/server.coffee

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,7 @@ module.exports=(config)->
1111

1212
sf={}
1313
port=config["express-port"]
14-
world={}
15-
#Zapisywanie i odczytywanie świata
16-
saveWorld=->
17-
fs.writeFileSync __dirname+"/savedWorld.json",JSON.stringify(world)
18-
restoreWorld=->
19-
world=JSON.parse fs.readFileSync(__dirname+'/savedWorld.json')
2014

21-
restoreWorld()
22-
23-
players={}
2415
socketInfo={}
2516

2617
app.use express.static(__dirname + "/client/")
@@ -35,62 +26,44 @@ module.exports=(config)->
3526

3627
server.listen config["websocket-port"]
3728

38-
#On connect
3929
io.sockets.on "connection", (socket)->
40-
41-
#Trying to run special functions
4230
socket.on "initClient",(data)->
4331
console.log "[+] "+data.nick
44-
#init socketInfo
32+
4533
socketInfo[socket.id]=data
4634

47-
#socketInfo add Bot
4835
socketInfo[socket.id].bot=mineflayer.createBot {
4936
host: config.realServer.ip
5037
port: config.realServer.port
5138
username: socketInfo[socket.id].nick
5239
}
53-
#On recieve real Map Chunk
54-
socketInfo[socket.id].bot._client.on "map_chunk",(packet)->
5540

41+
socketInfo[socket.id].bot._client.on "map_chunk",(packet)->
5642
cell=new Chunk()
5743
cell.load packet.chunkData,packet.bitMap,false,true
5844
io.to(socket.id).emit "mapChunk", cell.sections,packet.x,packet.z
59-
# console.log packet
6045
return
6146

6247
socketInfo[socket.id].bot.on 'chat',(username, message)->
6348
if username is socketInfo[socket.id].bot.username
6449
return
6550
socketInfo[socket.id].bot.chat message
6651
return
52+
6753
socketInfo[socket.id].bot.on 'move',()->
6854
try
69-
console.log socketInfo[socket.id].bot.entity.position
70-
io.to(socket.id).emit "botPosition",socketInfo[socket.id].bot.entity.position
55+
io.to(socket.id).emit "move",socketInfo[socket.id].bot.entity.position
7156
return
72-
#first world load
73-
io.to(socket.id).emit "firstLoad",world
7457
return
7558
socket.on "move",(state,toggle)->
7659
socketInfo[socket.id].bot.setControlState(state,toggle);
77-
socket.on "playerRotate",(data)->
60+
socket.on "rotate",(data)->
7861
socketInfo[socket.id].bot.look data...
79-
socket.on "playerUpdate",(data)->
80-
players[socket.id]=data
81-
io.sockets.emit "playerUpdate", players
82-
socket.on "blockUpdate",(block)->
83-
world["#{block[0]}:#{block[1]}:#{block[2]}"]=block[3]
84-
if block[3] is 0
85-
delete world["#{block[0]}:#{block[1]}:#{block[2]}"]
86-
io.sockets.emit "blockUpdate",block
87-
saveWorld()
8862
socket.on "disconnect", ->
8963
console.log "[-] "+socketInfo[socket.id].nick
9064

9165
#end bot session
9266
socketInfo[socket.id].bot.end()
9367
#delete socketinfo
94-
delete players[socket.id]
9568
delete socketInfo[socket.id]
9669
return

src/client/assets/assetLoader.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@
4343
"path":"assets/models/anvil/anvil.fbx",
4444
"type":"fbx"
4545
},
46+
"skybox":{
47+
"path":"assets/images/skybox.jpg",
48+
"type":"texture"
49+
},
4650
"websocket-port":{
4751
"path":"/websocket/",
4852
"type":"text"
@@ -51,4 +55,4 @@
5155
"path":"/host/",
5256
"type":"text"
5357
}
54-
}
58+
}

src/client/module/FirstPersonControls.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)