mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-24 11:50:58 -04:00
SuperModel no longer emits progress going backward ever, and added a way to prevent it from getting to high in the middle of a chain of loading.
This commit is contained in:
parent
4b404ae124
commit
54af58baee
2 changed files with 11 additions and 2 deletions
app
|
@ -25,6 +25,7 @@ module.exports = class LevelLoader extends CocoClass
|
|||
@t0 = new Date().getTime()
|
||||
super()
|
||||
@supermodel = options.supermodel
|
||||
@supermodel.setMaxProgress 0.2
|
||||
@levelID = options.levelID
|
||||
@sessionID = options.sessionID
|
||||
@opponentSessionID = options.opponentSessionID
|
||||
|
@ -133,6 +134,7 @@ module.exports = class LevelLoader extends CocoClass
|
|||
|
||||
onWorldNecessitiesLoaded: =>
|
||||
@initWorld()
|
||||
@supermodel.clearMaxProgress()
|
||||
return if @headless and not @editorMode
|
||||
thangsToLoad = _.uniq( (t.spriteName for t in @world.thangs) )
|
||||
nameModelTuples = ([thangType.get('name'), thangType] for thangType in @thangNames.models)
|
||||
|
|
|
@ -5,6 +5,7 @@ module.exports = class SuperModel extends Backbone.Model
|
|||
@progress = 0
|
||||
@resources = {}
|
||||
@rid = 0
|
||||
@maxProgress = 1
|
||||
|
||||
@models = {}
|
||||
@collections = {}
|
||||
|
@ -154,11 +155,17 @@ module.exports = class SuperModel extends Backbone.Model
|
|||
# a bunch of things load all at once.
|
||||
# So make sure we only emit events if @progress has changed.
|
||||
newProg = if @denom then @num / @denom else 1
|
||||
return if @progress is newProg
|
||||
newProg = Math.min @maxProgress, newProg
|
||||
return if @progress >= newProg
|
||||
@progress = newProg
|
||||
@trigger('update-progress', @progress)
|
||||
@trigger('loaded-all') if @finished()
|
||||
|
||||
|
||||
setMaxProgress: (@maxProgress) ->
|
||||
clearMaxProgress: ->
|
||||
@maxProgress = 1
|
||||
_.defer @updateProgress
|
||||
|
||||
getProgress: -> return @progress
|
||||
|
||||
getResource: (rid) ->
|
||||
|
|
Loading…
Add table
Reference in a new issue