summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-08-24 13:49:22 +0400
committerAlexander Gavrilov2012-08-24 13:49:22 +0400
commitd52c54cc762e4f525b4d1f3c339e9cf5a1230ee7 (patch)
treec5451c6fc216fd73db2db5e3c1ce69e2e94780e0 /scripts
parent296f82b02fcd0801d6614bb45da05c88ed7c88d2 (diff)
downloaddfhack-d52c54cc762e4f525b4d1f3c339e9cf5a1230ee7.tar.gz
dfhack-d52c54cc762e4f525b4d1f3c339e9cf5a1230ee7.tar.bz2
dfhack-d52c54cc762e4f525b4d1f3c339e9cf5a1230ee7.tar.xz
Pull some minor stuff from mechanisms into main libs.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/gui/mechanisms.lua32
1 files changed, 6 insertions, 26 deletions
diff --git a/scripts/gui/mechanisms.lua b/scripts/gui/mechanisms.lua
index d33d55a9..6b4b4042 100644
--- a/scripts/gui/mechanisms.lua
+++ b/scripts/gui/mechanisms.lua
@@ -4,22 +4,13 @@ local utils = require 'utils'
local gui = require 'gui'
local guidm = require 'gui.dwarfmode'
-function getBuildingName(building)
- return utils.call_with_string(building, 'getName')
-end
-
-function getBuildingCenter(building)
- return xyz2pos(building.centerx, building.centery, building.z)
-end
-
function listMechanismLinks(building)
local lst = {}
local function push(item, mode)
if item then
lst[#lst+1] = {
obj = item, mode = mode,
- name = getBuildingName(item),
- center = getBuildingCenter(item)
+ name = utils.getBuildingName(item)
}
end
end
@@ -64,8 +55,9 @@ end
function MechanismList:fillList(building)
local links = listMechanismLinks(building)
- links[1].viewport = self:getViewport()
- links[1].cursor = guidm.getCursorPos()
+ self.old_viewport = self:getViewport()
+ self.old_cursor = guidm.getCursorPos()
+
if #links <= 1 then
links[1].mode = 'none'
end
@@ -103,22 +95,10 @@ function MechanismList:onRenderBody(dc)
dc:string("Enter", COLOR_LIGHTGREEN):string(": Switch")
end
-function MechanismList:zoomToLink(link,back)
- df.global.world.selected_building = link.obj
-
- if back then
- guidm.setCursorPos(link.cursor)
- self:getViewport(link.viewport):set()
- else
- guidm.setCursorPos(link.center)
- self:getViewport():reveal(link.center, 5, 0, 10):set()
- end
-end
-
function MechanismList:changeSelected(delta)
if #self.links <= 1 then return end
self.selected = 1 + (self.selected + delta - 1) % #self.links
- self:zoomToLink(self.links[self.selected])
+ self:selectBuilding(self.links[self.selected].obj)
end
function MechanismList:onInput(keys)
@@ -129,7 +109,7 @@ function MechanismList:onInput(keys)
elseif keys.LEAVESCREEN then
self:dismiss()
if self.selected ~= 1 then
- self:zoomToLink(self.links[1], true)
+ self:selectBuilding(self.links[1].obj, self.old_cursor, self.old_view)
end
elseif keys.SELECT_ALL then
if self.selected > 1 then