2014-12-06 13:14:15 +01:00
|
|
|
class Tile extends BaseEntity
|
2014-12-06 09:16:55 +01:00
|
|
|
constructor: (options) ->
|
|
|
|
super options
|
|
|
|
|
2014-12-06 13:54:54 +01:00
|
|
|
resTypes = (k for own k of app.game.resources)
|
|
|
|
|
2014-12-06 14:28:58 +01:00
|
|
|
@layers = []
|
2014-12-06 14:52:03 +01:00
|
|
|
for restype, i in resTypes
|
2014-12-06 17:17:30 +01:00
|
|
|
@layers.push new Tilelayer(
|
|
|
|
type: restype,
|
|
|
|
depth: i,
|
2014-12-06 17:32:37 +01:00
|
|
|
amount: Math.round(Math.random(app.game.maxTileAmount-10)+10)
|
2014-12-06 17:17:30 +01:00
|
|
|
)
|
2014-12-06 14:55:33 +01:00
|
|
|
|
2014-12-06 16:35:05 +01:00
|
|
|
@currentLayer = 0
|
|
|
|
@isActive = false
|
2014-12-06 15:57:02 +01:00
|
|
|
|
|
|
|
click: (button)->
|
2014-12-06 17:32:37 +01:00
|
|
|
if button == "left"
|
|
|
|
if @layers[@currentLayer].collect()
|
|
|
|
name = app.layerIndexToName(@currentLayer)
|
|
|
|
app.game.resources[name] += 1
|
|
|
|
else
|
|
|
|
@currentLayer += 1
|
2014-12-06 15:57:02 +01:00
|
|
|
|
|
|
|
moveIn: ->
|
2014-12-06 16:35:05 +01:00
|
|
|
@isActive = true
|
2014-12-06 15:57:02 +01:00
|
|
|
|
|
|
|
moveOut: ->
|
2014-12-06 16:35:05 +01:00
|
|
|
@isActive = false
|
2014-12-06 17:58:03 +01:00
|
|
|
|
|
|
|
select: ->
|
|
|
|
@isSelected = true
|
|
|
|
|
|
|
|
deselect: ->
|
|
|
|
@isSelected = false
|
|
|
|
|
|
|
|
attachMiner: (miner) ->
|
|
|
|
if !@currentMiner
|
|
|
|
@currentMiner = miner
|
|
|
|
|
|
|
|
detachMiner: ->
|
|
|
|
@currentMiner = null
|
2014-12-06 13:54:54 +01:00
|
|
|
|
2014-12-06 09:16:55 +01:00
|
|
|
tick: (delta) ->
|
2014-12-06 13:54:54 +01:00
|
|
|
# TODO: digging deeper?
|
2014-12-06 09:16:55 +01:00
|
|
|
|
2014-12-06 12:37:57 +01:00
|
|
|
render: (x, y)->
|
2014-12-06 16:35:05 +01:00
|
|
|
tileLayer = @layers[@currentLayer]
|
|
|
|
app.layer.drawRegion app.images.layers, tileLayer.sprite, x*8, y*8
|
2014-12-06 16:52:53 +01:00
|
|
|
|
2014-12-06 17:58:03 +01:00
|
|
|
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
|
|
|
|
|
2014-12-06 17:32:37 +01:00
|
|
|
if @isActive
|
2014-12-06 16:35:05 +01:00
|
|
|
app.layer.drawImage app.images.active, x*8, y*8
|
2014-12-06 17:32:37 +01:00
|
|
|
|
|
|
|
# Draw the status indicator.
|
|
|
|
|
|
|
|
|