2014-01-03 13:32:13 -05:00
|
|
|
CocoClass = require 'lib/CocoClass'
|
|
|
|
|
|
|
|
module.exports = class PointChooser extends CocoClass
|
|
|
|
constructor: (@options) ->
|
|
|
|
super()
|
|
|
|
@buildShape()
|
|
|
|
@options.stage.addEventListener 'stagemousedown', @onMouseDown
|
2014-02-26 18:56:05 -05:00
|
|
|
@options.camera.dragDisabled = true
|
2014-01-03 13:32:13 -05:00
|
|
|
|
|
|
|
destroy: ->
|
|
|
|
@options.stage.removeEventListener 'stagemousedown', @onMouseDown
|
2014-02-14 13:57:47 -05:00
|
|
|
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
|
|
|
|
@shape.graphics.setStrokeStyle(1, "round").beginStroke("#000000").beginFill('#fedcba')
|
|
|
|
@shape.graphics.drawCircle(0, 0, 4).endFill()
|
|
|
|
@shape.layerIndex = 100
|
|
|
|
|
|
|
|
onMouseDown: (e) =>
|
|
|
|
console.log "got stagemousedown", e, key.shift
|
|
|
|
return unless key.shift
|
|
|
|
@setPoint @options.camera.canvasToWorld {x: e.stageX, y: e.stageY}
|
|
|
|
Backbone.Mediator.publish 'choose-point', point: @point
|
|
|
|
|
|
|
|
updateShape: ->
|
|
|
|
sup = @options.camera.worldToSurface @point
|
|
|
|
@options.surfaceLayer.addChild @shape
|
|
|
|
@shape.x = sup.x
|
|
|
|
@shape.y = sup.y
|