|
|
|
@ -941,6 +941,7 @@ function setFiltersUp(specific,args)
|
|
|
|
|
end
|
|
|
|
|
function onWorkShopJobChosen(args,idx,choice)
|
|
|
|
|
args.pos=args.from_pos
|
|
|
|
|
args.building=args.building or dfhack.buildings.findAtTile(args.pos)
|
|
|
|
|
args.job_type=choice.job_id
|
|
|
|
|
args.post_actions={AssignBuildingRef}
|
|
|
|
|
args.pre_actions={dfhack.curry(setFiltersUp,choice.filter),AssignJobItems}
|
|
|
|
@ -1029,7 +1030,7 @@ function usetool:onWorkShopButtonClicked(building,index,choice)
|
|
|
|
|
if #building.jobs>0 then
|
|
|
|
|
local job=building.jobs[#building.jobs-1]
|
|
|
|
|
AssignUnitToJob(job,adv,adv.pos)
|
|
|
|
|
AssignJobItems{job=job,from_pos=adv.pos,pos=adv.pos,unit=adv}
|
|
|
|
|
AssignJobItems{job=job,from_pos=adv.pos,pos=adv.pos,unit=adv,building=building}
|
|
|
|
|
end
|
|
|
|
|
elseif df.interface_button_building_category_selectorst:is_instance(choice.button) or
|
|
|
|
|
df.interface_button_building_material_selectorst:is_instance(choice.button) then
|
|
|
|
@ -1074,7 +1075,7 @@ function usetool:openShopWindow(building)
|
|
|
|
|
|
|
|
|
|
local filter_pile=workshopJobs.getJobs(building:getType(),building:getSubtype(),building:getCustomType())
|
|
|
|
|
if filter_pile then
|
|
|
|
|
local state={unit=adv,from_pos={x=adv.pos.x,y=adv.pos.y, z=adv.pos.z}
|
|
|
|
|
local state={unit=adv,from_pos={x=adv.pos.x,y=adv.pos.y, z=adv.pos.z,building=building}
|
|
|
|
|
,screen=self,bld=building,common=filter_pile.common}
|
|
|
|
|
choices={}
|
|
|
|
|
for k,v in pairs(filter_pile) do
|
|
|
|
@ -1108,7 +1109,8 @@ function usetool:armCleanTrap(building)
|
|
|
|
|
end
|
|
|
|
|
--building.trap_type==df.trap_type.PressurePlate then
|
|
|
|
|
--settings/link
|
|
|
|
|
local args={unit=adv,post_actions={AssignBuildingRef,AssignJobItems},pos=adv.pos,from_pos=adv.pos,job_type=df.job_type.CleanTrap}
|
|
|
|
|
local args={unit=adv,post_actions={AssignBuildingRef,AssignJobItems},pos=adv.pos,from_pos=adv.pos,
|
|
|
|
|
building=building,job_type=df.job_type.CleanTrap}
|
|
|
|
|
if building.trap_type==df.trap_type.CageTrap then
|
|
|
|
|
args.job_type=df.job_type.LoadCageTrap
|
|
|
|
|
local job_filter={items={{quantity=1,item_type=df.item_type.CAGE}} }
|
|
|
|
@ -1131,7 +1133,8 @@ function usetool:armCleanTrap(building)
|
|
|
|
|
end
|
|
|
|
|
function usetool:hiveActions(building)
|
|
|
|
|
local adv=df.global.world.units.active[0]
|
|
|
|
|
local args={unit=adv,post_actions={AssignBuildingRef,AssignJobItems},pos=adv.pos,from_pos=adv.pos,job_type=df.job_type.InstallColonyInHive}
|
|
|
|
|
local args={unit=adv,post_actions={AssignBuildingRef,AssignJobItems},pos=adv.pos,
|
|
|
|
|
from_pos=adv.pos,job_type=df.job_type.InstallColonyInHive,building=building}
|
|
|
|
|
local job_filter={items={{quantity=1,item_type=df.item_type.VERMIN}} }
|
|
|
|
|
args.pre_actions={dfhack.curry(setFiltersUp,job_filter)}
|
|
|
|
|
local job,msg=makeJob(args)
|
|
|
|
|