Fixed an issue with thang type marks not handling sprite sheet build completion correctly.

This commit is contained in:
Scott Erickson 2014-10-21 16:40:00 -07:00
parent e38f26a8d0
commit 49c85bce5f

View file

@ -34,6 +34,7 @@ module.exports = class Mark extends CocoClass
onLayerMadeSpriteSheet: ->
return unless @sprite
return @update() if @markLank
# rebuild sprite for new sprite sheet
@layer.removeChild @sprite
@sprite = null
@ -236,12 +237,14 @@ module.exports = class Mark extends CocoClass
@sprite.scaleY = h / (@layer.resolutionFactor * DEBUG_SIZE)
buildSprite: ->
console.log 'build sprite?'
if _.isString @thangType
thangType = markThangTypes[@thangType]
return @loadThangType() if not thangType
@thangType = thangType
return @listenToOnce(@thangType, 'sync', @onLoadedThangType) if not @thangType.loaded
console.log 'loaded, so go ahead!'
Lank = require './Lank'
# don't bother with making these render async for now, but maybe later for fun and more complexity of code
markLank = new Lank @thangType
@ -249,6 +252,7 @@ module.exports = class Mark extends CocoClass
@sprite = markLank.sprite
@markLank = markLank
@listenTo @markLank, 'new-sprite', (@sprite) ->
console.log 'oh yes, all done', markLank, @markLank
loadThangType: ->
name = @thangType
@ -259,7 +263,9 @@ module.exports = class Mark extends CocoClass
markThangTypes[name] = @thangType
onLoadedThangType: ->
console.log 'on loaded thang type...', @name
@build()
@update() if @markLank
@toggle(@toggleTo) if @toggleTo?
Backbone.Mediator.publish 'sprite:loaded', {sprite: @}