diff --git a/plugins/lua/building-hacks.lua b/plugins/lua/building-hacks.lua index 444b92127..2a242dcc8 100644 --- a/plugins/lua/building-hacks.lua +++ b/plugins/lua/building-hacks.lua @@ -95,8 +95,8 @@ local function findGears( shop_def ) --finds positions of all gears and inverted end return ret end -local function lookup_color( shop_def,x,y,stage )--TODO: background and bright? - return shop_def.tile_color[stage][x][y] +local function lookup_color( shop_def,x,y,stage ) + return shop_def.tile_color[0][stage][x][y],shop_def.tile_color[1][stage][x][y],shop_def.tile_color[2][stage][x][y] end local function processFramesAuto( shop_def ,gears) --adds frames for all gear icons and inverted gear icons local w,h=shop_def.dim_x,shop_def.dim_y @@ -114,8 +114,8 @@ local function processFramesAuto( shop_def ,gears) --adds frames for all gear ic tile_inv=42 end - table.insert(frames[1],{x=v.x,y=v.y,tile,lookup_color(shop_def,v.x,v.y),0,0}) - table.insert(frames[2],{x=v.x,y=v.y,tile_inv,lookup_color(shop_def,v.x,v.y),0,0}) + table.insert(frames[1],{x=v.x,y=v.y,tile,lookup_color(shop_def,v.x,v.y,stage)}) + table.insert(frames[2],{x=v.x,y=v.y,tile_inv,lookup_color(shop_def,v.x,v.y,stage)}) end for frame_id,frame in ipairs(frames) do @@ -176,4 +176,4 @@ function registerBuilding(args) addBuilding(shop_id,fix_impassible,consume,produce,needs_power,gears,updateSkip,frames,frameLength,roomSubset) end -return _ENV \ No newline at end of file +return _ENV diff --git a/plugins/lua/eventful.lua b/plugins/lua/eventful.lua index a1093b372..3fc192505 100644 --- a/plugins/lua/eventful.lua +++ b/plugins/lua/eventful.lua @@ -105,13 +105,15 @@ function registerSidebar(shop_name,callback) dfhack.onStateChange.eventful=unregall else local function drawSidebar( wshop ) - local valid_focus="dwarfmode/QueryBuilding/Some" + local valid_focus="dwarfmode/QueryBuilding" + local another_overlay="dfhack/lua/WorkshopOverlay" if wshop:getMaxBuildStage()==wshop:getBuildStage() then local sidebar=callback{workshop=wshop} - if string.sub(dfhack.gui.getCurFocus(),1,#valid_focus)==valid_focus then - sidebar:show() - else - sidebar:show(dfhack.gui.getCurViewscreen(true).parent) + if string.sub(dfhack.gui.getCurFocus(true),1,#another_overlay)==another_overlay then + dfhack.screen.dismiss(dfhack.gui.getCurViewscreen(true)) + end + if string.sub(dfhack.gui.getCurFocus(true),1,#valid_focus)==valid_focus then + sidebar:show(dfhack.gui.getCurViewscreen(true)) end end end