codecombat/app/lib/surface/PointChooser.coffee

35 lines
1 KiB
CoffeeScript
Raw Normal View History

CocoClass = require 'core/CocoClass'
2014-01-03 13:32:13 -05:00
module.exports = class PointChooser extends CocoClass
constructor: (@options) ->
super()
@buildShape()
@options.stage.addEventListener 'stagemousedown', @onMouseDown
@options.camera.dragDisabled = true
2014-01-03 13:32:13 -05:00
destroy: ->
@options.stage.removeEventListener 'stagemousedown', @onMouseDown
super()
2014-01-03 13:32:13 -05:00
# Called also from WorldSelectModal
setPoint: (@point) ->
@updateShape()
buildShape: ->
@shape = new createjs.Shape()
@shape.alpha = 0.9
@shape.mouseEnabled = false
2014-06-30 22:16:26 -04:00
@shape.graphics.setStrokeStyle(1, 'round').beginStroke('#000000').beginFill('#fedcba')
2014-01-03 13:32:13 -05:00
@shape.graphics.drawCircle(0, 0, 4).endFill()
onMouseDown: (e) =>
return unless key.shift
@setPoint @options.camera.screenToWorld {x: e.stageX, y: e.stageY}
Backbone.Mediator.publish 'surface:choose-point', point: @point
2014-01-03 13:32:13 -05:00
updateShape: ->
sup = @options.camera.worldToSurface @point
@options.surfaceLayer.addChild @shape unless @shape.parent
2014-01-03 13:32:13 -05:00
@shape.x = sup.x
@shape.y = sup.y