Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Workshop profile more options  (Read 2392 times)

Donagh

  • Bay Watcher
    • View Profile
Workshop profile more options
« on: January 15, 2015, 11:33:30 pm »

I think that it would be handy if you could select a workshop to be manager jobs exempt. This means the workshop does not get orders from the manager. The reason for this is that I use the manager to manufacture large amounts of steel and when the "make pig iron" and steel orders are distributed to all of my smelters my smaller operations like gold smelting and coke making stop.

To recap, unit unspecific tasks like making coke, smelting hemitite and smelting gold are hard to assign using the manager so it would be handy to have a dedicated smelter for this task. Then the manager can assign steel industry orders to any of the open task smelters. This suggestion can be taken for any other type of workshop.
Logged

vjmdhzgr

  • Bay Watcher
  • Hehehe
    • View Profile
Re: Workshop profile more options
« Reply #1 on: January 16, 2015, 12:46:47 am »

I think this would be a good addition. It was in a modded game, but I ended up with a similar problem where I had a standard smelter rather than wood furnace set up next to my soap maker's workshop and all that to make ash since in that mod it's more efficient, and after ordering some smelting jobs from the manager they got sent to the ash smelter meaning I couldn't use it right and all the metal was far away from my forges. Even though that's a mod there's still a lot of similar situations like the ones you said that make this relevant.
Logged
Its a feature. Impregnating booze is a planned tech tree for dwarves and this is a sneak peek at it.
Unless you're past reproductive age. Then you're pretty much an extension of your kids' genitalia

Batgirl1

  • Bay Watcher
    • View Profile
Re: Workshop profile more options
« Reply #2 on: January 16, 2015, 08:30:33 pm »

I'm all for this.  I had a fort with some farmer's workshops underground near my farms, and others above-ground near my livestock.  It got very annoying very fast to see my dwarfs schlepping plants up several flights of stairs because the manager ordered my shearing/milking station to process plants.  An ability to restrict tasks would be very useful.
Logged

Gargomaxthalus

  • Bay Watcher
    • View Profile
Re: Workshop profile more options
« Reply #3 on: January 20, 2015, 11:29:07 am »

Not a bad idea but it really needs to be part of an extensive manager revamp so that the system will be more useful over all.
Logged
Well lets see... at least half of what I say is complete bullshit. Hell the other half tends to be pretty sketchy...

OOOOHHHH,JUST SHUT UP AND LISTEN TO WHAT I HAVE TO SAY AND MAYBE I'LL GO AWAY!!!!!!!!!!

javascript:void(0)
javascript:void(0)

Wooster

  • Bay Watcher
    • View Profile
Re: Workshop profile more options
« Reply #4 on: January 20, 2015, 12:11:18 pm »

I keep thinking about the problem the OP describes, because I face it, for example, with getting milk turned into cheese. (Dfhack workflow and stockflow routines are very useful, but the manager's artificial unintelligence makes stockflow less helpful than it could be.) I have two solutions which I keep coming back to.

Solution 1: restrict a workshop in terms of what orders it can receive from the manager. For instance, you have a Farmer's Workshop which is intended to be solely for shearing and milking: specify that this FW can only take shearing and milking orders. You would of course need to set all your other FWs not to take milking and shearing orders at all.

My view is that this isn't really the best way to deal with that kind of primary industry: the better way to resolve this is something like the dfhack-workflow solution where you simply give a Farmer's Workshop a repeat order to shear or milk and a figure to keep in stock. Since the milk and wool are taken away and processed fairly quickly (you hope), those orders will rarely be suspended due to having filled the stock requirement.

Solution 2: some way to get the manager to respect whatever resources are already available at a workshop when allocating work orders, so that if he is choosing between a workshop where the order can currently be fulfilled and one where it cannot he doesn't choose to send it to the one where it cannot! This resolves problems with input-based orders where the manager sends the order to the wrong workshop.

Now, there is already a mechanism for checking what a given workshop has available to it: I know this exists for brewers and smelters, for example, because they have some reactions which simply cannot be called unless the ingredients are available. For lots of other workshops, reactions can be called without the ingredients being available, but even there you obviously get the "Urist McFutileWork cancels Make widgets: item unavailable" messages. All I think this needs is for the manager's routine to contain a check built into it which basically says
Code: [Select]
workshopsGreen = workshops where the current order is "good to go";
IF (length(workshopsGreen) > 0)
 THEN (allocate the current order to workshops only in workshopsGreen)
 ELSE (don't send the orders at all but leave them on the books)
There are doubtless things I have not considered from a technical point of view, but it looks to me like the complicated work of checking whether a given workshop can carry out a certain order has already been done and can be re-used. I can't see any problems arising from this behaviour (apart from adding some lag to long-chain production processes) but I'm sure someone else can!
Logged
Unofficial Lazy Newb Pack 43.03, Dwarf Mode only
Favourite utilities, mods and hacks: TWBT and Stockpile Settings Management; Masterwork Dwarf Fortress
Ubuntu 14.04 / Mint 17

Batgirl1

  • Bay Watcher
    • View Profile
Re: Workshop profile more options
« Reply #5 on: January 20, 2015, 09:36:45 pm »

Wooster - the problem with your 2nd solution is that, sometimes, a workshop has the resources but they're inconvenient.  For example, any farmer's workshop theoretically has access to animals for milking/shearing; it's just a matter of how far you want your dorfs to drag those animals.  I like your 1st solution better.  I think it would be good to manually turn off some jobs in the workshops the way we also set which employees can work in them, and so on.  Some forts might find this tedious, but it would also give the player greater control - we could, for example, restrict chair-making to a workshop that has only legendary dwarf-labor enabled.
Logged

Niddhoger

  • Bay Watcher
    • View Profile
Re: Workshop profile more options
« Reply #6 on: January 21, 2015, 12:44:20 am »

Personally, I'd settle for just allowing the manager to respect skill levels.  So you can order "30 stone blocks, no masons over "proficient."  The manager would see your "legendary only" mason's shop and pass over it, so your legendary mason can continue churning out high-quality furniture.  Then the manager sees your "proficient and below" mason shops and spams THOSE with scud labor jobs.  However, if your skilled mason isn't busy doing anything in particular, you can leave the manager order to spam all shops (default behavior).

However, being able to turn off certain labors from certain shops would be more useful (designated coke furnace supplying everything else, pasture FW/plant FW, bone craft shop, stone craft shop, etc)

Either one would probably get me to actually start using the manager again though.  About the only thing I actually use the bastard for is queueing up 50 sets of armor at a time.  Everything else just requires too much micromanaging/fixing manager mistakes to be worth the hassle. 
Logged

Wooster

  • Bay Watcher
    • View Profile
Re: Workshop profile more options
« Reply #7 on: January 21, 2015, 04:47:19 am »

Wooster - the problem with your 2nd solution is that, sometimes, a workshop has the resources but they're inconvenient.  For example, any farmer's workshop theoretically has access to animals for milking/shearing; it's just a matter of how far you want your dorfs to drag those animals.
Yeah, I can see that problem for those animal processing jobs. I guess I was really thinking of the second solution being applied only to jobs which use items that can be stored in stockpiles; maybe that distinction is difficult to generate in the game engine. Apart from shearing and milking, I can only think of {"Collect X"|X in {Webs, Sand, Clay}} which would cause this sort of problems.


My concern with the first proposal was that one could quite easily build a large number of Farmer's Workshops and Smelters in particular, and it could get tedious to edit each one individually. Making the manager behave more rationally in terms of stockpile-to-stockpile jobs (like spinning, coking, smelting etc.) seemed like the obvious answer to that part of the problem since it doesn't require any additional editing on the part of a Governor once the stockpiles are set up appropriately.
Logged
Unofficial Lazy Newb Pack 43.03, Dwarf Mode only
Favourite utilities, mods and hacks: TWBT and Stockpile Settings Management; Masterwork Dwarf Fortress
Ubuntu 14.04 / Mint 17

Batgirl1

  • Bay Watcher
    • View Profile
Re: Workshop profile more options
« Reply #8 on: January 21, 2015, 12:12:20 pm »


My concern with the first proposal was that one could quite easily build a large number of Farmer's Workshops and Smelters in particular, and it could get tedious to edit each one individually. Making the manager behave more rationally in terms of stockpile-to-stockpile jobs (like spinning, coking, smelting etc.) seemed like the obvious answer to that part of the problem since it doesn't require any additional editing on the part of a Governor once the stockpiles are set up appropriately.

Come to think, perhaps the two ideas aren't mutually exclusive: the manager could first automatically check for resource availability, and for shops that pass, check again for Job Enabled. 
Logged

Deboche

  • Bay Watcher
    • View Profile
Re: Workshop profile more options
« Reply #9 on: January 21, 2015, 02:10:06 pm »

You can have a smelter or other workshop not take manager orders by filling it with the order(s) you want it to do on repeat.

This would be great for kilns. Let's say you have a potter, a glazer and you want to make pearlash. You need 4 different kilns! One for collecting clay, one for each of the other three things and you can't say which kiln does what.

You can give one kiln 10 collect clay orders on repeat and suspend them all when you have enough clay, do the same for the pearlash, pottery and glazing but you can't use the manager anymore.
Logged

angrylolrus

  • Escaped Lunatic
    • View Profile
Re: Workshop profile more options
« Reply #10 on: February 23, 2015, 02:34:01 pm »

I wanted this change so that I could set up a workshop/stockpile combo to churn out specific blocks to make roads out of. I realized that while I was doing this, however, I couldn't make any manager orders for rock furniture unless I wanted 1/5 of my chairs to be bright, blue, and microline. I'm not an expert computer programmer, but it seems to me that it would be a fairly straightforward thing to add. I hope that wasn't presumptuous.
Logged

breadman

  • Bay Watcher
    • View Profile
Re: Workshop profile more options
« Reply #11 on: February 26, 2015, 03:07:51 pm »

You can have a smelter or other workshop not take manager orders by filling it with the order(s) you want it to do on repeat.

This only works as long as you don't run out of resources for those orders while you're not paying attention.  It would be quite a bit more effective if workshop jobs didn't get canceled by the dwarves.

I'm not an expert computer programmer, but it seems to me that it would be a fairly straightforward thing to add. I hope that wasn't presumptuous.

Checking for resource availability should be possible, given that it's already necessary when the job is started, but a simple per-workshop toggle would be even easier to implement.

However, the real power comes with allowing particular labor types (armor-smithing vs. weapon-smithing) and/or task types (furniture-building vs. block-cutting), but that would require additional storage, logic, and interface design.  The split between hard-coded and custom reactions won't help much, either.

Related threads:
Logged
Quote from: Kevin Wayne, in r.g.r.n
Is a "diety" the being pictured by one of those extremely skinny aboriginal statues?