This commit is contained in:
Nick Winter 2014-04-29 16:43:46 -07:00
parent 04d74fb76f
commit 2f174691c5
2 changed files with 15 additions and 13 deletions

View file

@ -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

View file

@ -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