I love this! I wish this was already available in the standard adventure mode, it gives so many possibilities, just a bit sad that everything turns back to how it was after you sleep/travel.
I noticed a few problems though, it's mostly minor stuff like having to figure out how to exactly use something, but two things were more severe.
First thing, when trying to create strands of adamantine the
game crashes after finishing the job if you tried
processing raw adamantine
from your bag instead of dropping it on the ground in the workshop first.
And Jeweler's workshop's jobs don't work, they cause the following fallback to be written to the console:
Looks like a problem with locating the workshop? Can I fix it somehow?
I mean, it's a minor thing, I just wanted to encrust my stuff with shiny, sparkly things I sto-...completly legally acquired from places.
EDIT: The loom has the same problem.
Also, the "Fallback" pops up in the console as soon as you open the job menu.
I tried looking through the stuff, but ... I have no idea of .lua programming. (For me, as a Java/C/C++ guy it just looks like a bit of a mess...)
PS: How do I gather plants? I stand on them, hit 5, it says "working (-1)" ... nothing happens. How does it work? :/
Another Edit and POSSIBLE FIX for the "workshop jobs not working" issue:
I found the issue that prevented me from using certain workshops.
After reading into the code a bit, "tracing" the problem via print and via changing stuff carefully, I found that the "onWorkShopJobChosen">"dfhack.buildings.findAtTile(args.pos)" was NOT the actual bug, it was just getting wrong data, causing it to fail.
The ACTUAL problem came from the "usetool:openShopWindow(building)" function, which is called when the job-list can't be gotten uh...in that other way.
Specifically, there appears to be a bug in line 1126:
function usetool:openShopWindow(building)
local adv=df.global.world.units.active[0]
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
,building=building}
,screen=self,bld=building,common=filter_pile.common}
choices={}
for k,v in pairs(filter_pile) do
table.insert(choices,{job_id=0,text=v.name:lower(),filter=v})
end
dialog.showListPrompt("Workshop job choice", "Choose what to make*",COLOR_WHITE,choices,dfhack.curry(onWorkShopJobChosen,state)
,nil, nil,true)
else
qerror("No jobs for this workshop")
end
end
This caused a table with "x, y, z, building" to be given to the "findAtTile(args.pos)"-function, which only seems to accept "x,y,z" as a table though and couldn't handle the "building" in there.
No idea if there are any other side-effects to
removing the ",building=building" from inside the braces {}, but for me it made the loom work (again)!