From 2b6fa18b029eee2f38b4ff9a609ebd567121ba93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ruben=20M=C3=BCller?= Date: Sat, 6 Dec 2014 17:58:03 +0100 Subject: [PATCH] Miners can be set --- src/entities/tile.coffee | 23 +++++++++++++++++++---- src/game.coffee | 22 ++++++++++++++++++++-- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/entities/tile.coffee b/src/entities/tile.coffee index 7a0857e..220ac86 100644 --- a/src/entities/tile.coffee +++ b/src/entities/tile.coffee @@ -16,20 +16,31 @@ class Tile extends BaseEntity @isActive = false click: (button)-> - #@isSelected = true if button == "left" if @layers[@currentLayer].collect() name = app.layerIndexToName(@currentLayer) app.game.resources[name] += 1 else @currentLayer += 1 - moveIn: -> @isActive = true moveOut: -> @isActive = false + + select: -> + @isSelected = true + + deselect: -> + @isSelected = false + + attachMiner: (miner) -> + if !@currentMiner + @currentMiner = miner + + detachMiner: -> + @currentMiner = null tick: (delta) -> # TODO: digging deeper? @@ -38,8 +49,12 @@ class Tile extends BaseEntity tileLayer = @layers[@currentLayer] app.layer.drawRegion app.images.layers, tileLayer.sprite, x*8, y*8 - #if @isSelected - # app.layer.drawImage app.images.selected, x*8, y*8 + if @currentMiner + app.layer.drawRegion app.images.entities, [8, 0, 8, 8], x*8, y*8 + + if @isSelected + app.layer.drawImage app.images.selected, x*8, y*8 + if @isActive app.layer.drawImage app.images.active, x*8, y*8 diff --git a/src/game.coffee b/src/game.coffee index f471b9f..375941f 100644 --- a/src/game.coffee +++ b/src/game.coffee @@ -4,9 +4,9 @@ app.game = @map[i] = new Tile @miners = [] - @miners.push = new Miner @currentHoveredTile = new Tile + @currentSelectedTile = new Tile render: -> app.layer.save().scale(5, 5) @@ -23,7 +23,12 @@ app.game = step: -> mousedown: (event)-> - @posToTile(event.x, event.y).click(event.button) + tile = @posToTile(event.x, event.y) + tile.click(event.button) + + @currentSelectedTile.deselect() if @currentSelectedTile + tile.select() + @currentSelectedTile = tile mousemove: (event)-> tile = @posToTile(event.x, event.y) @@ -34,6 +39,19 @@ app.game = @currentHoveredTile.moveOut() @currentHoveredTile = tile + keyup: (event) -> + switch event.key + when "m" then @createMiner() + when "space" + @currentSelectedTile.deselect() if @currentSelectedTile + @currentSelectedTile = null + + createMiner: -> + if @currentSelectedTile + newMiner = new Miner + @miners.push = newMiner + @currentSelectedTile.attachMiner newMiner + posToTile: (x, y)-> pos = (Math.floor(y/8/5)*20) + Math.floor(x/8/5) @map[pos]