Scrollable editors
This commit is contained in:
parent
fab335ce6a
commit
b7637e5747
|
@ -13,7 +13,10 @@
|
||||||
(GraphicsEditView.super.new self)
|
(GraphicsEditView.super.new self)
|
||||||
(set self.tilecache (tiledraw.TileCache (tiles.loadgfx (self:filename)) (self:spritegen)))
|
(set self.tilecache (tiledraw.TileCache (tiles.loadgfx (self:filename)) (self:spritegen)))
|
||||||
(set self.itile 1)
|
(set self.itile 1)
|
||||||
|
(set self.scrollheight math.huge)
|
||||||
|
(set self.scrollable true)
|
||||||
(attach-imstate self))
|
(attach-imstate self))
|
||||||
|
(fn GraphicsEditView.get_scrollable_size [self] self.scrollheight)
|
||||||
(fn GraphicsEditView.spritegen [self] tiledraw.tile-to-sprite)
|
(fn GraphicsEditView.spritegen [self] tiledraw.tile-to-sprite)
|
||||||
(fn GraphicsEditView.tilesize [self] (values 16 16))
|
(fn GraphicsEditView.tilesize [self] (values 16 16))
|
||||||
(fn GraphicsEditView.tilebytelen [self] (let [(w h) (self:tilesize)] (/ (* w h) 8)))
|
(fn GraphicsEditView.tilebytelen [self] (let [(w h) (self:tilesize)] (/ (* w h) 8)))
|
||||||
|
|
|
@ -170,9 +170,10 @@
|
||||||
(tset :map (self.level.map:tohex)))))
|
(tset :map (self.level.map:tohex)))))
|
||||||
|
|
||||||
(fn MapEditView.draw [self]
|
(fn MapEditView.draw [self]
|
||||||
(var x (+ self.position.x 10))
|
(var x (+ self.position.x style.padding.x (- self.scroll.x)))
|
||||||
(var y (+ self.position.y 10))
|
(var y (+ self.position.y style.padding.y (- self.scroll.y)))
|
||||||
(self:draw_background style.background)
|
(self:draw_background style.background)
|
||||||
|
(self:draw_scrollbar)
|
||||||
(love.graphics.setColor 1 1 1 1)
|
(love.graphics.setColor 1 1 1 1)
|
||||||
(self:draw-map-editor x y)
|
(self:draw-map-editor x y)
|
||||||
(when self.iobject
|
(when self.iobject
|
||||||
|
@ -194,7 +195,8 @@
|
||||||
(set self.playerpos player))
|
(set self.playerpos player))
|
||||||
(set y (+ y 30)))
|
(set y (+ y 30)))
|
||||||
(set y (+ y 30))
|
(set y (+ y 30))
|
||||||
(self:draw-tile-selector x y (- self.size.x 20)))
|
(set y (+ y (self:draw-tile-selector x y (- self.size.x 20))))
|
||||||
|
(set self.scrollheight (- y (+ self.position.y style.padding.y (- self.scroll.y)))))
|
||||||
|
|
||||||
(fn MapEditView.get_name [self] (.. "Map: " self.mapfilename))
|
(fn MapEditView.get_name [self] (.. "Map: " self.mapfilename))
|
||||||
|
|
||||||
|
|
|
@ -89,13 +89,16 @@
|
||||||
|
|
||||||
(fn TileView.draw [self]
|
(fn TileView.draw [self]
|
||||||
(self:draw_background style.background)
|
(self:draw_background style.background)
|
||||||
(local (x y) (values (+ self.position.x 10) (+ self.position.y 10)))
|
(self:draw_scrollbar)
|
||||||
|
(local (x y) (values (+ self.position.x style.padding.x (- self.scroll.x))
|
||||||
|
(+ self.position.y style.padding.y (- self.scroll.y))))
|
||||||
(local (editor-w editor-h) (self:draw-tile-editor (self:tile) x y))
|
(local (editor-w editor-h) (self:draw-tile-editor (self:tile) x y))
|
||||||
(self:draw-tile-flags (+ x editor-w pixel-size) y)
|
(self:draw-tile-flags (+ x editor-w pixel-size) y)
|
||||||
(var selector-y (+ y editor-h pixel-size))
|
(var selector-y (+ y editor-h pixel-size))
|
||||||
(each [_ key (ipairs (self:tilekeys))]
|
(each [_ key (ipairs (self:tilekeys))]
|
||||||
(local selector-h (self:draw-tile-selector x selector-y (- self.size.x 20) key))
|
(local selector-h (self:draw-tile-selector x selector-y (- self.size.x 20) key))
|
||||||
(set selector-y (+ selector-y selector-h pixel-size))))
|
(set selector-y (+ selector-y selector-h pixel-size)))
|
||||||
|
(set self.scrollheight (- selector-y y)))
|
||||||
|
|
||||||
(fn TileView.get_name [self] "Tile Editor")
|
(fn TileView.get_name [self] "Tile Editor")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue