Skip to content

Commit

Permalink
Merge pull request #136 from mind-ar/fix-flushevents
Browse files Browse the repository at this point in the history
fix: duplicated flushEvent on reload
  • Loading branch information
PalumboN authored Mar 20, 2024
2 parents 618d2dd + 0f41fec commit b067e56
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions src/commands/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,6 @@ export const eventsFor = (io: Server, interpreter: Interpreter, dynamicDiagramCl
const sizeCanvas = canvasResolution(interpreter)
io.on('connection', socket => {
logger.info(successDescription('Running game!'))
socket.on('disconnect', () => { logger.info(successDescription('Game finished')) })
socket.on('keyPressed', key => {
queueEvent(interpreter, buildKeyPressEvent(interpreter, wKeyCode(key.key, key.keyCode)), buildKeyPressEvent(interpreter, 'ANY'))
})
Expand All @@ -200,12 +199,13 @@ export const eventsFor = (io: Server, interpreter: Interpreter, dynamicDiagramCl
socket.emit('images', getImages(project, assets))
socket.emit('sizeCanvasInic', [sizeCanvas.width, sizeCanvas.height])

const flushInterval = 100
const id = setInterval(() => {
const gameSingleton = interpreter?.object('wollok.game.game')
socket.emit('cellPixelSize', gameSingleton.get('cellSize')!.innerNumber!)
try {
interpreter.send('flushEvents', gameSingleton, interpreter.reify(timer))
timer += 300
timer += flushInterval
// We could pass the interpreter but a program does not change it
dynamicDiagramClient.onReload()
if (!gameSingleton.get('running')?.innerBoolean) {
Expand All @@ -217,7 +217,13 @@ export const eventsFor = (io: Server, interpreter: Interpreter, dynamicDiagramCl
socket.emit('errorDetected', error.message)
clearInterval(id)
}
}, 100)
}, flushInterval)

socket.on('disconnect', () => {
clearInterval(id)
logger.info(successDescription('Game finished'))
})

})
}

Expand Down

0 comments on commit b067e56

Please sign in to comment.