mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-13 22:49:51 -04:00
Refactored out displayObject from CocoSprites.
This commit is contained in:
parent
4e268d8dc6
commit
2a17ec5cb9
11 changed files with 82 additions and 69 deletions
|
@ -16,7 +16,6 @@ healthColors =
|
|||
module.exports = CocoSprite = class CocoSprite extends CocoClass
|
||||
thangType: null # ThangType instance
|
||||
|
||||
displayObject: null
|
||||
imageObject: null
|
||||
|
||||
healthBar: null
|
||||
|
@ -62,6 +61,10 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
@options = _.extend($.extend(true, {}, @options), options)
|
||||
@setThang @options.thang
|
||||
console.error @toString(), "has no ThangType!" unless @thangType
|
||||
|
||||
# this is a stub, use @setImageObject to swap it out for something else later
|
||||
@imageObject = new createjs.Container
|
||||
|
||||
@actionQueue = []
|
||||
@marks = {}
|
||||
@labels = {}
|
||||
|
@ -69,7 +72,6 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
@handledAoEs = {}
|
||||
@age = 0
|
||||
@scaleFactor = @targetScaleFactor = 1
|
||||
@displayObject = new createjs.Container()
|
||||
if @thangType.isFullyLoaded()
|
||||
@setupSprite()
|
||||
else
|
||||
|
@ -90,15 +92,15 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
|
||||
setUpRasterImage: ->
|
||||
raster = @thangType.get('raster')
|
||||
sprite = @imageObject = new createjs.Bitmap('/file/'+raster)
|
||||
$(sprite.image).one 'load', => @updateScale?()
|
||||
@displayObject.addChild(sprite)
|
||||
image = new createjs.Bitmap('/file/'+raster)
|
||||
@setImageObject image
|
||||
$(image.image).one 'load', => @updateScale?()
|
||||
@configureMouse()
|
||||
@originalScaleX = sprite.scaleX
|
||||
@originalScaleY = sprite.scaleY
|
||||
@displayObject.sprite = @
|
||||
@displayObject.layerPriority = @thangType.get 'layerPriority'
|
||||
@displayObject.name = @thang?.spriteName or @thangType.get 'name'
|
||||
@originalScaleX = image.scaleX
|
||||
@originalScaleY = image.scaleY
|
||||
@imageObject.sprite = @
|
||||
@imageObject.layerPriority = @thangType.get 'layerPriority'
|
||||
@imageObject.name = @thang?.spriteName or @thangType.get 'name'
|
||||
reg = @getOffset 'registration'
|
||||
@imageObject.regX = -reg.x
|
||||
@imageObject.regY = -reg.y
|
||||
|
@ -108,7 +110,6 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
mark.destroy() for name, mark of @marks
|
||||
label.destroy() for name, label of @labels
|
||||
@imageObject?.off 'animationend', @playNextAction
|
||||
@displayObject?.off()
|
||||
clearInterval @effectInterval if @effectInterval
|
||||
super()
|
||||
|
||||
|
@ -119,6 +120,12 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
options.colorConfig = @options.colorConfig if @options.colorConfig
|
||||
options.async = false
|
||||
@thangType.getSpriteSheet options
|
||||
|
||||
setImageObject: (newImageObject) ->
|
||||
if parent = @imageObject?.parent
|
||||
parent.removeChild @imageObject
|
||||
parent.addChild newImageObject
|
||||
@imageObject = newImageObject
|
||||
|
||||
buildFromSpriteSheet: (spriteSheet) ->
|
||||
if spriteSheet
|
||||
|
@ -129,17 +136,16 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
# temp, until these are re-exported with perspective
|
||||
if @options.camera and @thangType.get('name') in ['Dungeon Floor', 'Indoor Floor', 'Grass', 'Goal Trigger', 'Obstacle']
|
||||
sprite.scaleY *= @options.camera.y2x
|
||||
@displayObject.removeChild(@imageObject) if @imageObject
|
||||
@imageObject = sprite
|
||||
@displayObject.addChild(sprite)
|
||||
|
||||
@setImageObject sprite
|
||||
@addHealthBar()
|
||||
@configureMouse()
|
||||
# TODO: generalize this later?
|
||||
@originalScaleX = sprite.scaleX
|
||||
@originalScaleY = sprite.scaleY
|
||||
@displayObject.sprite = @
|
||||
@displayObject.layerPriority = @thangType.get 'layerPriority'
|
||||
@displayObject.name = @thang?.spriteName or @thangType.get 'name'
|
||||
@imageObject.sprite = @
|
||||
@imageObject.layerPriority = @thangType.get 'layerPriority'
|
||||
@imageObject.name = @thang?.spriteName or @thangType.get 'name'
|
||||
@imageObject.on 'animationend', @playNextAction
|
||||
|
||||
##################################################
|
||||
|
@ -211,6 +217,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
@updateStats()
|
||||
@updateGold()
|
||||
@showAreaOfEffects()
|
||||
@updateHealthBar()
|
||||
@updateMarks()
|
||||
@updateLabels()
|
||||
|
||||
|
@ -242,7 +249,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
|
||||
cache: ->
|
||||
bounds = @imageObject.getBounds()
|
||||
@displayObject.cache 0, 0, bounds.width, bounds.height
|
||||
@imageObject.cache 0, 0, bounds.width, bounds.height
|
||||
#console.log "just cached", @thang.id, "which was at", @imageObject.x, @imageObject.y, bounds.width, bounds.height, "with scale", Math.max(@imageObject.scaleX, @imageObject.scaleY)
|
||||
|
||||
getBobOffset: ->
|
||||
|
@ -263,7 +270,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
[p0, p1] = [@lastPos, @thang.pos]
|
||||
return if p0 and p0.x is p1.x and p0.y is p1.y and p0.z is p1.z and not @options.camera.tweeningZoomTo and not @thang.bobHeight
|
||||
sup = @options.camera.worldToSurface wop
|
||||
[@displayObject.x, @displayObject.y] = [sup.x, sup.y]
|
||||
[@imageObject.x, @imageObject.y] = [sup.x, sup.y]
|
||||
@lastPos = p1.copy?() or _.clone(p1)
|
||||
@hasMoved = true
|
||||
|
||||
|
@ -441,14 +448,14 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
[bar.x, bar.y] = [healthOffset.x - bar.width / 2, healthOffset.y]
|
||||
|
||||
configureMouse: ->
|
||||
@displayObject.cursor = 'pointer' if @thang?.isSelectable
|
||||
@displayObject.mouseEnabled = @displayObject.mouseChildren = false unless @thang?.isSelectable or @thang?.isLand
|
||||
if @displayObject.mouseEnabled
|
||||
@displayObject.on 'mousedown', @onMouseEvent, @, false, 'sprite:mouse-down'
|
||||
@displayObject.on 'click', @onMouseEvent, @, false, 'sprite:clicked'
|
||||
@displayObject.on 'dblclick', @onMouseEvent, @, false, 'sprite:double-clicked'
|
||||
@displayObject.on 'pressmove', @onMouseEvent, @, false, 'sprite:dragged'
|
||||
@displayObject.on 'pressup', @onMouseEvent, @, false, 'sprite:mouse-up'
|
||||
@imageObject.cursor = 'pointer' if @thang?.isSelectable
|
||||
@imageObject.mouseEnabled = @imageObject.mouseChildren = false unless @thang?.isSelectable or @thang?.isLand
|
||||
if @imageObject.mouseEnabled
|
||||
@imageObject.on 'mousedown', @onMouseEvent, @, false, 'sprite:mouse-down'
|
||||
@imageObject.on 'click', @onMouseEvent, @, false, 'sprite:clicked'
|
||||
@imageObject.on 'dblclick', @onMouseEvent, @, false, 'sprite:double-clicked'
|
||||
@imageObject.on 'pressmove', @onMouseEvent, @, false, 'sprite:dragged'
|
||||
@imageObject.on 'pressup', @onMouseEvent, @, false, 'sprite:mouse-up'
|
||||
|
||||
onSetLetterbox: (e) ->
|
||||
@letterboxOn = e.on
|
||||
|
@ -458,15 +465,14 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
Backbone.Mediator.publish ourEventName, sprite: @, thang: @thang, originalEvent: e
|
||||
|
||||
addHealthBar: ->
|
||||
@displayObject.removeChild @healthBar if @healthBar?.parent
|
||||
return unless @thang?.health? and "health" in (@thang?.hudProperties ? [])
|
||||
healthColor = healthColors[@thang?.team] ? healthColors["neutral"]
|
||||
healthOffset = @getOffset 'aboveHead'
|
||||
bar = @healthBar = createProgressBar(healthColor, healthOffset.y)
|
||||
bar.x = healthOffset.x - bar.width / 2
|
||||
bar = @healthBar = createProgressBar(healthColor, healthOffset)
|
||||
bar.name = 'health bar'
|
||||
bar.cache 0, -bar.height * bar.baseScale / 2, bar.width * bar.baseScale, bar.height * bar.baseScale
|
||||
@displayObject.addChild bar
|
||||
@options.floatingLayer.addChild bar
|
||||
@updateHealthBar()
|
||||
|
||||
getActionProp: (prop, subProp, def=null) ->
|
||||
# Get a property or sub-property from an action, falling back to ThangType
|
||||
|
@ -733,3 +739,8 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
@shadow.rotation = @thang.rotation
|
||||
@shadow.action = @thang.action
|
||||
@shadow.actionActivated = @thang.actionActivated
|
||||
|
||||
updateHealthBar: ->
|
||||
return unless @healthBar
|
||||
@healthBar.x = @imageObject.x
|
||||
@healthBar.y = @imageObject.y
|
||||
|
|
|
@ -67,7 +67,7 @@ module.exports = class Dimmer extends CocoClass
|
|||
@dimMask.graphics.clear()
|
||||
for thangID, sprite of @sprites
|
||||
continue unless (thangID in @highlightedThangIDs) or sprite.isTalking?() or sprite.thang?.id is 'My Wizard'
|
||||
sup = x: sprite.displayObject.x, y: sprite.displayObject.y
|
||||
sup = x: sprite.imageObject.x, y: sprite.imageObject.y
|
||||
cap = @camera.surfaceToCanvas sup
|
||||
r = 50 * @camera.zoom # TODO: find better way to get the radius based on the sprite's size
|
||||
@dimMask.graphics.beginRadialGradientFill(["rgba(0,0,0,1)", "rgba(0,0,0,0)"], [0.5, 1], cap.x, cap.y, 0, cap.x, cap.y, r).drawCircle(cap.x, cap.y, r)
|
||||
|
|
|
@ -49,8 +49,8 @@ module.exports = class Label extends CocoClass
|
|||
offset ?= x: 0, y: 0 # temp (if not CocoSprite)
|
||||
rotation = @sprite.getRotation()
|
||||
offset.x *= -1 if rotation >= 135 or rotation <= -135
|
||||
@label.x = @background.x = @sprite.displayObject.x + offset.x
|
||||
@label.y = @background.y = @sprite.displayObject.y + offset.y
|
||||
@label.x = @background.x = @sprite.imageObject.x + offset.x
|
||||
@label.y = @background.y = @sprite.imageObject.y + offset.y
|
||||
null
|
||||
|
||||
buildLabelOptions: ->
|
||||
|
@ -108,7 +108,7 @@ module.exports = class Label extends CocoClass
|
|||
pointerWidth += radius # Convenience value including pointer width and border radius
|
||||
|
||||
# Figure out the position of the pointer for the bubble
|
||||
sup = x: @sprite.displayObject.x, y: @sprite.displayObject.y # a little more accurate to aim for mouth--how?
|
||||
sup = x: @sprite.imageObject.x, y: @sprite.imageObject.y # a little more accurate to aim for mouth--how?
|
||||
cap = @camera.surfaceToCanvas sup
|
||||
hPos = if cap.x / @camera.canvasWidth > 0.53 then 'right' else 'left'
|
||||
vPos = if cap.y / @camera.canvasHeight > 0.53 then 'bottom' else 'top'
|
||||
|
|
|
@ -182,7 +182,7 @@ module.exports = class Mark extends CocoClass
|
|||
CocoSprite = require './CocoSprite'
|
||||
markSprite = new CocoSprite @thangType, @thangType.spriteOptions
|
||||
markSprite.queueAction 'idle'
|
||||
@mark = markSprite.displayObject
|
||||
@mark = markSprite.imageObject
|
||||
@markSprite = markSprite
|
||||
|
||||
loadThangType: ->
|
||||
|
@ -205,7 +205,6 @@ module.exports = class Mark extends CocoClass
|
|||
@updatePosition pos
|
||||
@updateRotation()
|
||||
@updateScale()
|
||||
@mark.advance?()
|
||||
if @name is 'highlight' and @highlightDelay and not @highlightTween
|
||||
@mark.visible = false
|
||||
@highlightTween = createjs.Tween.get(@mark).to({}, @highlightDelay).call =>
|
||||
|
@ -220,7 +219,7 @@ module.exports = class Mark extends CocoClass
|
|||
worldZ = @sprite.thang.pos.z - @sprite.thang.depth / 2 + @sprite.getBobOffset()
|
||||
@mark.alpha = 0.451 / Math.sqrt(worldZ / 2 + 1)
|
||||
else
|
||||
pos ?= @sprite?.displayObject
|
||||
pos ?= @sprite?.imageObject
|
||||
@mark.x = pos.x
|
||||
@mark.y = pos.y
|
||||
if @statusEffect or @name is 'highlight'
|
||||
|
@ -251,6 +250,9 @@ module.exports = class Mark extends CocoClass
|
|||
if @sprite?.thang.spriteName.search(/(dungeon|indoor).wall/i) isnt -1
|
||||
scale *= 2
|
||||
@mark.scaleX = @mark.scaleY = Math.min 1, scale
|
||||
if @markSprite?
|
||||
@mark.scaleX *= @markSprite.originalScaleX
|
||||
@mark.scaleY *= @markSprite.originalScaleY
|
||||
if @name in ['selection', 'target', 'repair']
|
||||
@mark.scaleY *= @camera.y2x # code applies perspective
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ module.exports = class SpriteBoss extends CocoClass
|
|||
subscriptions:
|
||||
'bus:player-joined': 'onPlayerJoined'
|
||||
'bus:player-left': 'onPlayerLeft'
|
||||
'level-set-debug': 'onSetDebug'
|
||||
# 'level-set-debug': 'onSetDebug'
|
||||
'level-highlight-sprites': 'onHighlightSprites'
|
||||
'sprite:mouse-up': 'onSpriteMouseUp'
|
||||
'surface:stage-mouse-down': 'onStageMouseDown'
|
||||
|
@ -79,8 +79,8 @@ module.exports = class SpriteBoss extends CocoClass
|
|||
@sprites[id] = sprite
|
||||
@spriteArray.push sprite
|
||||
layer ?= @spriteLayers["Obstacle"] if sprite.thang?.spriteName.search(/(dungeon|indoor).wall/i) isnt -1
|
||||
layer ?= @layerForChild sprite.displayObject, sprite
|
||||
layer.addChild sprite.displayObject
|
||||
layer ?= @layerForChild sprite.imageObject, sprite
|
||||
layer.addChild sprite.imageObject
|
||||
layer.updateLayerOrder()
|
||||
sprite
|
||||
|
||||
|
@ -157,7 +157,7 @@ module.exports = class SpriteBoss extends CocoClass
|
|||
sprite
|
||||
|
||||
removeSprite: (sprite) ->
|
||||
sprite.displayObject.parent.removeChild sprite.displayObject
|
||||
sprite.imageObject.parent.removeChild sprite.imageObject
|
||||
thang = sprite.thang
|
||||
delete @sprites[sprite.thang.id]
|
||||
@spriteArray.splice @spriteArray.indexOf(sprite), 1
|
||||
|
@ -183,11 +183,11 @@ module.exports = class SpriteBoss extends CocoClass
|
|||
else
|
||||
sprite = @addThangToSprites(thang)
|
||||
Backbone.Mediator.publish 'surface:new-thang-added', thang:thang, sprite:sprite
|
||||
updateCache = updateCache or sprite.displayObject.parent is @spriteLayers["Obstacle"]
|
||||
updateCache = updateCache or sprite.imageObject.parent is @spriteLayers["Obstacle"]
|
||||
sprite.playSounds()
|
||||
for thangID, sprite of @sprites
|
||||
missing = not (sprite.notOfThisWorld or @world.thangMap[thangID]?.exists)
|
||||
isObstacle = sprite.displayObject.parent is @spriteLayers["Obstacle"]
|
||||
isObstacle = sprite.imageObject.parent is @spriteLayers["Obstacle"]
|
||||
updateCache = updateCache or (isObstacle and (missing or sprite.hasMoved))
|
||||
sprite.hasMoved = false
|
||||
@removeSprite sprite if missing
|
||||
|
@ -266,7 +266,7 @@ module.exports = class SpriteBoss extends CocoClass
|
|||
worldPos = sprite?.thang?.pos
|
||||
worldPos ?= @camera.screenToWorld {x: e.originalEvent.rawX, y: e.originalEvent.rawY} if e
|
||||
if worldPos and (@options.navigateToSelection or not sprite or treemaThangSelected)
|
||||
@camera.zoomTo(sprite?.displayObject or @camera.worldToSurface(worldPos), @camera.zoom, 1000, true)
|
||||
@camera.zoomTo(sprite?.imageObject or @camera.worldToSurface(worldPos), @camera.zoom, 1000, true)
|
||||
sprite = null if @options.choosing # Don't select sprites while choosing
|
||||
if sprite isnt @selectedSprite
|
||||
@selectedSprite?.selected = false
|
||||
|
|
|
@ -249,7 +249,7 @@ module.exports = Surface = class Surface extends CocoClass
|
|||
|
||||
onSetCamera: (e) ->
|
||||
if e.thangID
|
||||
return unless target = @spriteBoss.spriteFor(e.thangID)?.displayObject
|
||||
return unless target = @spriteBoss.spriteFor(e.thangID)?.imageObject
|
||||
else if e.pos
|
||||
target = @camera.worldToSurface e.pos
|
||||
else
|
||||
|
|
|
@ -64,7 +64,7 @@ module.exports = class WizardSprite extends IndieSprite
|
|||
|
||||
onMeSynced: (e) ->
|
||||
return unless @isSelf
|
||||
@setNameLabel me.displayName() if @displayObject.visible # not if we hid the wiz
|
||||
@setNameLabel me.displayName() if @imageObject.visible # not if we hid the wiz
|
||||
newColorConfig = me.get('wizard')?.colorConfig or {}
|
||||
shouldUpdate = not _.isEqual(newColorConfig, @options.colorConfig)
|
||||
@options.colorConfig = $.extend(true, {}, newColorConfig)
|
||||
|
@ -77,12 +77,12 @@ module.exports = class WizardSprite extends IndieSprite
|
|||
@setTarget e.sprite or e.worldPos
|
||||
|
||||
animateIn: ->
|
||||
@displayObject.scaleX = @displayObject.scaleY = @displayObject.alpha = 0
|
||||
createjs.Tween.get(@displayObject)
|
||||
@imageObject.scaleX = @imageObject.scaleY = @imageObject.alpha = 0
|
||||
createjs.Tween.get(@imageObject)
|
||||
.to({scaleX: 1, scaleY: 1, alpha: 1}, 1000, createjs.Ease.getPowInOut(2.2))
|
||||
|
||||
animateOut: (callback) ->
|
||||
tween = createjs.Tween.get(@displayObject)
|
||||
tween = createjs.Tween.get(@imageObject)
|
||||
.to({scaleX: 0, scaleY: 0, alpha: 0}, 1000, createjs.Ease.getPowInOut(2.2))
|
||||
tween.call(callback) if callback
|
||||
|
||||
|
@ -202,8 +202,8 @@ module.exports = class WizardSprite extends IndieSprite
|
|||
@thang.pos = @getCurrentPosition()
|
||||
@faceTarget()
|
||||
sup = @options.camera.worldToSurface x: @thang.pos.x, y: @thang.pos.y, z: @thang.pos.z - @thang.depth / 2
|
||||
@displayObject.x = sup.x
|
||||
@displayObject.y = sup.y
|
||||
@imageObject.x = sup.x
|
||||
@imageObject.y = sup.y
|
||||
|
||||
getCurrentPosition: ->
|
||||
"""
|
||||
|
@ -244,7 +244,7 @@ module.exports = class WizardSprite extends IndieSprite
|
|||
@pointToward(@targetSprite.thang.pos)
|
||||
|
||||
updateMarks: ->
|
||||
super() if @displayObject.visible # not if we hid the wiz
|
||||
super() if @imageObject.visible # not if we hid the wiz
|
||||
|
||||
onMoveKey: (e) ->
|
||||
return unless @isSelf
|
||||
|
|
|
@ -144,7 +144,7 @@ module.exports.Trailmaster = class Trailmaster
|
|||
sprites = []
|
||||
sprite = @sprites[thang.id]
|
||||
return sprites unless sprite?
|
||||
lastPos = @camera.surfaceToWorld x: sprite.displayObject.x, y: sprite.displayObject.y
|
||||
lastPos = @camera.surfaceToWorld x: sprite.imageObject.x, y: sprite.imageObject.y
|
||||
minDistance = Math.pow(CLONE_INTERVAL * Camera.MPP, 2)
|
||||
actions = @world.actionsForThang(thang.id)
|
||||
lastAction = null
|
||||
|
|
|
@ -3,7 +3,7 @@ PROG_BAR_HEIGHT = 2
|
|||
PROG_BAR_SCALE = 2.5
|
||||
EDGE_SIZE = 0.3
|
||||
|
||||
module.exports.createProgressBar = createProgressBar = (color, y, width=PROG_BAR_WIDTH, height=PROG_BAR_HEIGHT) ->
|
||||
module.exports.createProgressBar = createProgressBar = (color, offset, width=PROG_BAR_WIDTH, height=PROG_BAR_HEIGHT) ->
|
||||
g = new createjs.Graphics()
|
||||
g.setStrokeStyle(1)
|
||||
|
||||
|
@ -17,12 +17,12 @@ module.exports.createProgressBar = createProgressBar = (color, y, width=PROG_BAR
|
|||
g.drawRoundRect(sEdge, sEdge - sHeight/2, sWidth-sEdge*2, sHeight-sEdge*2, sHeight-sEdge*2)
|
||||
|
||||
s = new createjs.Shape(g)
|
||||
s.x = -width / 2
|
||||
s.y = y
|
||||
s.z = 100
|
||||
s.baseScale = PROG_BAR_SCALE
|
||||
s.scaleX = 1 / PROG_BAR_SCALE
|
||||
s.scaleY = 1 / PROG_BAR_SCALE
|
||||
s.width = width
|
||||
s.height = height
|
||||
s.regX = (-offset.x + width / 2) * PROG_BAR_SCALE
|
||||
s.regY = (-offset.y) * PROG_BAR_SCALE
|
||||
return s
|
||||
|
|
|
@ -277,7 +277,7 @@ module.exports = class ThangsTabView extends View
|
|||
thang = @createAddThang()
|
||||
@addThangSprite = @surface.spriteBoss.addThangToSprites thang, @surface.spriteBoss.spriteLayers["Floating"]
|
||||
@addThangSprite.notOfThisWorld = true
|
||||
@addThangSprite.displayObject.alpha = 0.75
|
||||
@addThangSprite.imageObject.alpha = 0.75
|
||||
@addThangSprite.playSound? 'selected'
|
||||
pos ?= x: Math.round(@world.width / 2), y: Math.round(@world.height / 2)
|
||||
@adjustThangPos @addThangSprite, thang, pos
|
||||
|
@ -324,11 +324,11 @@ module.exports = class ThangsTabView extends View
|
|||
|
||||
onSurfaceMouseOver: (e) ->
|
||||
return unless @addThangSprite
|
||||
@addThangSprite.displayObject.visible = true
|
||||
@addThangSprite.imageObject.visible = true
|
||||
|
||||
onSurfaceMouseOut: (e) ->
|
||||
return unless @addThangSprite
|
||||
@addThangSprite.displayObject.visible = false
|
||||
@addThangSprite.imageObject.visible = false
|
||||
|
||||
calculateMovement: (pctX, pctY, widthHeightRatio) ->
|
||||
MOVE_TOP_MARGIN = 1.0 - MOVE_MARGIN
|
||||
|
|
|
@ -212,7 +212,7 @@ module.exports = class ThangTypeEditView extends View
|
|||
sprite = new CocoSprite(@thangType, @getSpriteOptions())
|
||||
@currentSprite?.destroy()
|
||||
@currentSprite = sprite
|
||||
@showDisplayObject(sprite.displayObject)
|
||||
@showImageObject(sprite.imageObject)
|
||||
@updateScale()
|
||||
|
||||
showAnimation: (animationName) ->
|
||||
|
@ -234,7 +234,7 @@ module.exports = class ThangTypeEditView extends View
|
|||
if reg
|
||||
movieClip.regX = -reg.x
|
||||
movieClip.regY = -reg.y
|
||||
@showDisplayObject(movieClip)
|
||||
@showImageObject(movieClip)
|
||||
|
||||
getSpriteOptions: -> { resolutionFactor: @resolution, thang: @mockThang}
|
||||
|
||||
|
@ -244,7 +244,7 @@ module.exports = class ThangTypeEditView extends View
|
|||
sprite.queueAction(actionName)
|
||||
@currentSprite?.destroy()
|
||||
@currentSprite = sprite
|
||||
@showDisplayObject(sprite.displayObject)
|
||||
@showImageObject(sprite.imageObject)
|
||||
|
||||
updatePortrait: ->
|
||||
options = @getSpriteOptions()
|
||||
|
@ -254,12 +254,12 @@ module.exports = class ThangTypeEditView extends View
|
|||
portrait.addClass 'img-thumbnail'
|
||||
$('#portrait').replaceWith(portrait)
|
||||
|
||||
showDisplayObject: (displayObject) ->
|
||||
showImageObject: (imageObject) ->
|
||||
@clearDisplayObject()
|
||||
displayObject.x = CENTER.x
|
||||
displayObject.y = CENTER.y
|
||||
@stage.addChildAt(displayObject, 1)
|
||||
@currentObject = displayObject
|
||||
imageObject.x = CENTER.x
|
||||
imageObject.y = CENTER.y
|
||||
@stage.addChildAt(imageObject, 1)
|
||||
@currentObject = imageObject
|
||||
@updateDots()
|
||||
|
||||
clearDisplayObject: ->
|
||||
|
@ -381,7 +381,7 @@ module.exports = class ThangTypeEditView extends View
|
|||
bounds = obj.frameBounds[0]
|
||||
obj.regX = bounds.x + bounds.width / 2
|
||||
obj.regY = bounds.y + bounds.height / 2
|
||||
@showDisplayObject(obj) if obj
|
||||
@showImageObject(obj) if obj
|
||||
obj.y = 200 if obj # truly center the container
|
||||
@showingSelectedNode = true
|
||||
@currentSprite?.destroy()
|
||||
|
|
Loading…
Reference in a new issue