diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index 02089c753..f53712ad2 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -117,7 +117,7 @@ module.exports = class LevelLoader extends CocoClass @loadDefaultComponentsForThangType itemThangType @loadThangsRequiredByThangType itemThangType @sessionDependenciesRegistered[session.id] = true - if _.size(@sessionDependenciesRegistered) is 2 and not (r for r in @worldNecessities when r?).length + if _.size(@sessionDependenciesRegistered) is 2 and @checkAllWorldNecessitiesRegisteredAndLoaded() @onWorldNecessitiesLoaded() consolidateFlagHistory: -> @@ -204,6 +204,8 @@ module.exports = class LevelLoader extends CocoClass for thangType in thangNames.models @loadDefaultComponentsForThangType(thangType) @loadThangsRequiredByThangType(thangType) + @thangNamesLoaded = true + @onWorldNecessitiesLoaded() if @checkAllWorldNecessitiesRegisteredAndLoaded() loadDefaultComponentsForThangType: (thangType) -> return unless components = thangType.get('components') @@ -220,8 +222,14 @@ module.exports = class LevelLoader extends CocoClass return unless index >= 0 @worldNecessities.splice(index, 1) @worldNecessities = (r for r in @worldNecessities when r?) - if @worldNecessities.length is 0 and (not @sessionDependenciesRegistered or @sessionDependenciesRegistered[@session.id] and (not @opponentSession or @sessionDependenciesRegistered[@opponentSession.id])) - @onWorldNecessitiesLoaded() + @onWorldNecessitiesLoaded() if @checkAllWorldNecessitiesRegisteredAndLoaded() + + checkAllWorldNecessitiesRegisteredAndLoaded: -> + return false unless _.filter(@worldNecessities).length is 0 + return false unless @thangNamesLoaded + return false if @sessionDependenciesRegistered and not @sessionDependenciesRegistered[@session.id] + return false if @opponentSession and not @sessionDependenciesRegistered[@opponentSession.id] + true onWorldNecessitiesLoaded: -> @initWorld()