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
|
else
|
||||||
@level = @supermodel.loadModel(@level, 'level').model
|
@level = @supermodel.loadModel(@level, 'level').model
|
||||||
@listenToOnce @level, 'sync', @onLevelLoaded
|
@listenToOnce @level, 'sync', @onLevelLoaded
|
||||||
|
|
||||||
onLevelLoaded: ->
|
onLevelLoaded: ->
|
||||||
@populateLevel()
|
@populateLevel()
|
||||||
|
|
||||||
populateLevel: ->
|
populateLevel: ->
|
||||||
thangIDs = []
|
thangIDs = []
|
||||||
componentVersions = []
|
componentVersions = []
|
||||||
systemVersions = []
|
systemVersions = []
|
||||||
articleVersions = []
|
articleVersions = []
|
||||||
|
|
||||||
for thang in @level.get('thangs') or []
|
for thang in @level.get('thangs') or []
|
||||||
thangIDs.push thang.thangType
|
thangIDs.push thang.thangType
|
||||||
for comp in thang.components or []
|
for comp in thang.components or []
|
||||||
componentVersions.push _.pick(comp, ['original', 'majorVersion'])
|
componentVersions.push _.pick(comp, ['original', 'majorVersion'])
|
||||||
|
|
||||||
for system in @level.get('systems') or []
|
for system in @level.get('systems') or []
|
||||||
systemVersions.push _.pick(system, ['original', 'majorVersion'])
|
systemVersions.push _.pick(system, ['original', 'majorVersion'])
|
||||||
if indieSprites = system?.config?.indieSprites
|
if indieSprites = system?.config?.indieSprites
|
||||||
for indieSprite in indieSprites
|
for indieSprite in indieSprites
|
||||||
thangIDs.push indieSprite.thangType
|
thangIDs.push indieSprite.thangType
|
||||||
|
|
||||||
for article in @level.get('documentation')?.generalArticles or []
|
unless @headless
|
||||||
articleVersions.push _.pick(article, ['original', 'majorVersion'])
|
for article in @level.get('documentation')?.generalArticles or []
|
||||||
|
articleVersions.push _.pick(article, ['original', 'majorVersion'])
|
||||||
|
|
||||||
objUniq = (array) -> _.uniq array, false, (arg) -> JSON.stringify(arg)
|
objUniq = (array) -> _.uniq array, false, (arg) -> JSON.stringify(arg)
|
||||||
|
|
||||||
for thangID in _.uniq thangIDs
|
for thangID in _.uniq thangIDs
|
||||||
url = "/db/thang.type/#{thangID}/version"
|
url = "/db/thang.type/#{thangID}/version"
|
||||||
url += "?project=true" if @headless and not @editorMode
|
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}"
|
url = "/db/level/#{obj.original}/version/#{obj.majorVersion}"
|
||||||
@maybeLoadURL url, Level, 'level'
|
@maybeLoadURL url, Level, 'level'
|
||||||
|
|
||||||
wizard = ThangType.loadUniversalWizard()
|
unless @headless
|
||||||
@supermodel.loadModel wizard, 'thang'
|
wizard = ThangType.loadUniversalWizard()
|
||||||
|
@supermodel.loadModel wizard, 'thang'
|
||||||
|
|
||||||
maybeLoadURL: (url, Model, resourceName) ->
|
maybeLoadURL: (url, Model, resourceName) ->
|
||||||
return if @supermodel.getModel(url)
|
return if @supermodel.getModel(url)
|
||||||
model = new Model().setURL url
|
model = new Model().setURL url
|
||||||
@supermodel.loadModel(model, resourceName)
|
@supermodel.loadModel(model, resourceName)
|
||||||
|
|
||||||
onSupermodelLoaded: ->
|
onSupermodelLoaded: ->
|
||||||
@loadLevelSounds()
|
@loadLevelSounds()
|
||||||
@denormalizeSession()
|
@denormalizeSession()
|
||||||
|
@ -216,4 +218,4 @@ module.exports = class LevelLoader extends CocoClass
|
||||||
|
|
||||||
# everything else sound wise is loaded as needed as worlds are generated
|
# 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.
|
@god = new God maxWorkerPoolSize: 1, maxAngels: 1 # Start loading worker.
|
||||||
|
|
||||||
@levelLoader = new LevelLoader supermodel: @supermodel, levelID: levelID, sessionID: @task.getFirstSessionID(), headless: true
|
@levelLoader = new LevelLoader supermodel: @supermodel, levelID: levelID, sessionID: @task.getFirstSessionID(), headless: true
|
||||||
@listenToOnce(@levelLoader, 'loaded-all', @simulateGame)
|
@listenToOnce(@supermodel, 'loaded-all', @simulateGame)
|
||||||
|
|
||||||
simulateGame: ->
|
simulateGame: ->
|
||||||
return if @destroyed
|
return if @destroyed
|
||||||
|
|
Reference in a new issue