mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-24 21:13:35 -04:00
Fixed #939.
This commit is contained in:
parent
04d74fb76f
commit
2f174691c5
2 changed files with 15 additions and 13 deletions
app/lib
|
@ -73,32 +73,33 @@ module.exports = class LevelLoader extends CocoClass
|
|||
else
|
||||
@level = @supermodel.loadModel(@level, 'level').model
|
||||
@listenToOnce @level, 'sync', @onLevelLoaded
|
||||
|
||||
|
||||
onLevelLoaded: ->
|
||||
@populateLevel()
|
||||
|
||||
|
||||
populateLevel: ->
|
||||
thangIDs = []
|
||||
componentVersions = []
|
||||
systemVersions = []
|
||||
articleVersions = []
|
||||
|
||||
|
||||
for thang in @level.get('thangs') or []
|
||||
thangIDs.push thang.thangType
|
||||
for comp in thang.components or []
|
||||
componentVersions.push _.pick(comp, ['original', 'majorVersion'])
|
||||
|
||||
|
||||
for system in @level.get('systems') or []
|
||||
systemVersions.push _.pick(system, ['original', 'majorVersion'])
|
||||
if indieSprites = system?.config?.indieSprites
|
||||
for indieSprite in indieSprites
|
||||
thangIDs.push indieSprite.thangType
|
||||
|
||||
for article in @level.get('documentation')?.generalArticles or []
|
||||
articleVersions.push _.pick(article, ['original', 'majorVersion'])
|
||||
|
||||
unless @headless
|
||||
for article in @level.get('documentation')?.generalArticles or []
|
||||
articleVersions.push _.pick(article, ['original', 'majorVersion'])
|
||||
|
||||
objUniq = (array) -> _.uniq array, false, (arg) -> JSON.stringify(arg)
|
||||
|
||||
|
||||
for thangID in _.uniq thangIDs
|
||||
url = "/db/thang.type/#{thangID}/version"
|
||||
url += "?project=true" if @headless and not @editorMode
|
||||
|
@ -117,14 +118,15 @@ module.exports = class LevelLoader extends CocoClass
|
|||
url = "/db/level/#{obj.original}/version/#{obj.majorVersion}"
|
||||
@maybeLoadURL url, Level, 'level'
|
||||
|
||||
wizard = ThangType.loadUniversalWizard()
|
||||
@supermodel.loadModel wizard, 'thang'
|
||||
unless @headless
|
||||
wizard = ThangType.loadUniversalWizard()
|
||||
@supermodel.loadModel wizard, 'thang'
|
||||
|
||||
maybeLoadURL: (url, Model, resourceName) ->
|
||||
return if @supermodel.getModel(url)
|
||||
model = new Model().setURL url
|
||||
@supermodel.loadModel(model, resourceName)
|
||||
|
||||
|
||||
onSupermodelLoaded: ->
|
||||
@loadLevelSounds()
|
||||
@denormalizeSession()
|
||||
|
@ -216,4 +218,4 @@ module.exports = class LevelLoader extends CocoClass
|
|||
|
||||
# everything else sound wise is loaded as needed as worlds are generated
|
||||
|
||||
progress: -> @supermodel.progress
|
||||
progress: -> @supermodel.progress
|
||||
|
|
|
@ -56,7 +56,7 @@ module.exports = class Simulator extends CocoClass
|
|||
@god = new God maxWorkerPoolSize: 1, maxAngels: 1 # Start loading worker.
|
||||
|
||||
@levelLoader = new LevelLoader supermodel: @supermodel, levelID: levelID, sessionID: @task.getFirstSessionID(), headless: true
|
||||
@listenToOnce(@levelLoader, 'loaded-all', @simulateGame)
|
||||
@listenToOnce(@supermodel, 'loaded-all', @simulateGame)
|
||||
|
||||
simulateGame: ->
|
||||
return if @destroyed
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue