mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-05-02 17:03:42 -04:00
Fixed #1717 with a brilliant LevelLoader refactoring.
This commit is contained in:
parent
b33fee406b
commit
3d8f16cd7f
1 changed files with 11 additions and 3 deletions
|
@ -117,7 +117,7 @@ module.exports = class LevelLoader extends CocoClass
|
||||||
@loadDefaultComponentsForThangType itemThangType
|
@loadDefaultComponentsForThangType itemThangType
|
||||||
@loadThangsRequiredByThangType itemThangType
|
@loadThangsRequiredByThangType itemThangType
|
||||||
@sessionDependenciesRegistered[session.id] = true
|
@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()
|
@onWorldNecessitiesLoaded()
|
||||||
|
|
||||||
consolidateFlagHistory: ->
|
consolidateFlagHistory: ->
|
||||||
|
@ -204,6 +204,8 @@ module.exports = class LevelLoader extends CocoClass
|
||||||
for thangType in thangNames.models
|
for thangType in thangNames.models
|
||||||
@loadDefaultComponentsForThangType(thangType)
|
@loadDefaultComponentsForThangType(thangType)
|
||||||
@loadThangsRequiredByThangType(thangType)
|
@loadThangsRequiredByThangType(thangType)
|
||||||
|
@thangNamesLoaded = true
|
||||||
|
@onWorldNecessitiesLoaded() if @checkAllWorldNecessitiesRegisteredAndLoaded()
|
||||||
|
|
||||||
loadDefaultComponentsForThangType: (thangType) ->
|
loadDefaultComponentsForThangType: (thangType) ->
|
||||||
return unless components = thangType.get('components')
|
return unless components = thangType.get('components')
|
||||||
|
@ -220,8 +222,14 @@ module.exports = class LevelLoader extends CocoClass
|
||||||
return unless index >= 0
|
return unless index >= 0
|
||||||
@worldNecessities.splice(index, 1)
|
@worldNecessities.splice(index, 1)
|
||||||
@worldNecessities = (r for r in @worldNecessities when r?)
|
@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() if @checkAllWorldNecessitiesRegisteredAndLoaded()
|
||||||
@onWorldNecessitiesLoaded()
|
|
||||||
|
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: ->
|
onWorldNecessitiesLoaded: ->
|
||||||
@initWorld()
|
@initWorld()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue