class Tile extends BaseEntity constructor: (options) -> super options resTypes = (k for own k of app.game.resources) @layers = [] for restype, i in resTypes @layers.push new Tilelayer( type: restype, depth: i, amount: Math.round(Math.random(app.game.maxTileAmount-10)+10) ) @currentLayer = 0 @isActive = false click: (button)-> if button == "left" if @layers[@currentLayer].collect() name = app.layerIndexToName(@currentLayer) app.game.resources[name] += 1 else @currentLayer += 1 tick: -> @currentMiner.tick @ moveIn: -> @isActive = true moveOut: -> @isActive = false select: -> @isSelected = true deselect: -> @isSelected = false attachMiner: (miner) -> if !@currentMiner @currentMiner = miner detachMiner: -> @currentMiner = null gameTick: -> if @currentMiner @layers[@currentLayer].collect() render: (x, y)-> tileLayer = @layers[@currentLayer] app.layer.drawRegion app.images.layers, tileLayer.sprite, x*8, y*8 if @currentMiner app.layer.drawRegion app.images.entities, [16, 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 # Draw the status indicator. numPercent = Math.floor((tileLayer.amount*6)/app.game.maxTileAmount) for i in [0..numPercent] color = ["#f00", "#a00", "#f60", "#aa0", "#0a0", "#0a0"][numPercent] color = ["#f00", "#f00", "#f80", "#ff0", "#0f0", "#0f0"][numPercent] if i == numPercent app.layer.setPixel(color, x*8+1+i, y*8+6)