Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 27 28 [29]

Author Topic: DFHack: quickfort | buildingplan | blueprint | blueprints/library  (Read 87746 times)

Dr. Hieronymous Alloy

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #420 on: December 10, 2022, 09:59:03 am »

Yeah, it might make sense to "fork" DFhack into two branches, one for steam workshop and one for Classic.

Some feature triage might also make sense -- e.g., a working quickfort function for basic functions like dig, build ramps, etc. might be achievable a lot more quickly than one that implements every furniture type in the game etc.
Logged

myk

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #421 on: December 10, 2022, 05:59:48 pm »

I don't believe there will be a functional difference between Classic and Premium, at least as far as quickfort is concerned.

Good idea to break down the tasks for triage. Let me list the tasks out that I already know need to be done, organized by quickfort blueprint mode. Keep in mind that I don't know whether memory layouts have changed, and game behavior may have changed in subtle ways that we need to adjust to.

Also, fair warning (teaser?) -- I'm planning on combining gui/quickfort, gui/blueprint, gui/mass-remove, gui/stamper, and the functionality from the dig plugin (e.g. circle designations) into a unified interface called gui/designer, which will support interactive copy-paste and a host of other map design/designation tools. I might choose to not release any of those named tools and instead bring them back piece by piece as we can get it working with the steam release.

Dig


This mode is likely to work with minimal modification and can get out quickly. If nothing else, quickfort could be initially released with just digging support. The game now calls marker mode "blueprints" which is a very unfortunate clash of terminology. Not sure how we can clarify the difference between manually designated marker mode "blueprints" and quickfort blueprints (which can also be applied in marker mode).

Build


- buildingplan needs compatibility testing, needs updates if the way items are associated with unbuilt buildings has changed.

After an initial release, there are also many things that need to be done to ensure that quickfort and buildingplan are following game rules when they assign building items:
- building item mapping database in library/Lua/dfhack/buildings.lua needs to be verified
- algorithms for matching items to building filters (isSuitableItem() and friends)
- review the building metadata in internal/quickfort/build.lua

buildingplan will also need a new UI for configuring materials. The old UI was based on the sidebar, which doesn't exist in the new DF interface. Maybe the gui for buildingplan could also be integrated into gui/designer?

Place


- review stockpile metadata in internal/quickfort/place.lua
- stockpile configuration currently happens by invoking a dynamically-generated query blueprint. this will depend on query mode working, or if that proves difficult, we will need to write direct memory initialization routines

Zone


zones have been rewritten from the ground up in the new DF version. DFHack will need a corresponding new access layer for zones. This might prevent zone mode from working right away

- zone metadata in internal/quickfort/zone.lua
- underlying zone creation API in DFHack Core

Query/Config


These modes are tough since they involve actual keystroke playback. Old query and config blueprints are unlikely to work since the keys in them will simply be wrong for the current UI. If a query blueprint uses only library aliases, then it might continue to work after we update the library aliases.

- total rewrite of the blueprint alias library. we should take this opportunity to rewrite it to use interface keycodes as well and not have *any* keyboard keys. this will make the quickfort blueprint library immune to customized keybindings. this has always been a problem with quickfort, and we should solve it here before it becomes a bigger issue
- documentation in the alias guide about how to find the right keycode for the operation you need, test that they're correct, and in general, add warnings about *not* using directly keyboard symbols (e.g. letters) unless you're actually filling in a string field

Orders


Currently, generating orders from a blueprint is part of quickfort code. I'm thinking this should be moved to buildingplan so it can be used more generally. Plan a building? Get a manager order to build the pieces automatically. Buildingplan can be smarter about it than quickfort is, scanning for existing stock or in-progress manager orders and only adding a new order if needed. It would also be one fewer thing to have to do manually when applying blueprints. Orders for non-building (e.g. wheelbarrows and containers for stockpiles) could be done by default when applying the blueprint (disableable with a flag). then we can get rid of the "orders" quickfort command entirely.
« Last Edit: December 10, 2022, 06:41:59 pm by myk »
Logged

ldog

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #422 on: May 13, 2023, 08:46:58 am »

Howdy, howdy. Hope all is well. I see you've been keeping busy.

I started playing again, still 47 though. Testing out the newer changes. I like the new sheriffs office and the more streamlined services level in general.
The traffic is interesting, I've been messing with it a bit on other levels. I don't know how much it really helps FPS anymore but it can't hurt.
The services level applies it somewhat spotty. Also I like to restrict the reservoir tunnels.
Industry level I added high traffic on every tile not a workshop (originally I restricted the workshops but I didn't like how that was working out)

So when you made the last round of changes I think you grabbed the loom instead of the dyer for the supply from feeder & QSP. It's the dyer that needs to be restricted so it doesn't dye hair and adamantine. The loom should still be free to grab adamantine from the metal QSP since that is a specific job (it won't happen by accident) also it has caused a lot of cancellation spam when I buy thread & cloth but it is still in the depot. So unless you found a reason I am unaware of the loom should be free.

After reading an interesting new science thread on weapons which my own observations support, platinum isn't worth using. Besides disappointing performance it is really heavy. I've removed it from my work orders. Also moved the silver down below steel (prior we had considered it an upgrade but now I am using it only if steel is unavailable). In short steel is the most sensible material for blunt weapons.

Replaced leather cloaks with silk. It is slightly better and trying to conserve leather, especially since civilians will grab your cloaks too. Wood shields for archers uniform. Leather isn't any worse (except for bashing, but then melees get metal shields) but again wood is generally more plentiful. And always shields, no bucklers. There is no advantage, only drawbacks, at least before Steam version (obviously I am ignorant of any differences in the new version). I've decided that either there were stealth changes with armor or my playstyle needed updating, but either way I have changed my mind about full metal archers and am going with leather, although I may give them metal helmets, I have to see how the leather works out. The full steel just slows them down too much and they don't seem to do enough sparring to build the needed skills. I bumped the work orders for leather armor up for a full squad. It's doable if you take all the leather the first few caravans bring.

Why did you add easy meals to work orders? I see no advantages (other than the cook getting more xp?) since you always get 1 meal per ingredient, so the lavish may use 4x the ingredients but that means 4x the meals. Is there something I am unaware of? There was also a ton of cancellation spam getting that first order of 150 done.

Contrary to the docs, the locations are not being set to citizen only. I was wondering why I still had visitors showing up (although monster hunters come no matter what it seems).

I think that's all I had.
« Last Edit: May 13, 2023, 11:59:41 am by ldog »
Logged
Quote from: Dirst
For example, if you wanted to check if a unit was eligible to be a politician or a car salesman, you'd first want to verify that there is no soul present...

Quote from: gchristopher
The more appropriate question becomes, are they awesome and dwarven enough.

myk

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #423 on: May 13, 2023, 06:36:18 pm »

These are all good finds and good ideas. Thank you!

Let my itemize the changes to make sure I understand each one:
  • restrict traffic in reservoir tunnels (and the cisterns themselves)
  • high traffic on industry level for non-workshop tiles
  • remove stockpile links from loom; move them to dyer
  • remove platinum weapons from orders and remove checks for platinum from other weapon orders
  • move preference for steel above silver for blunt weapons in orders
  • change leather cloaks to silk in orders
  • change leather shields to wood in orders
  • increase archer uniform orders to keep 10 in stock
  • fix locations not being set to citizens only

What changes would you make to the traffic designations on the services level? I remember I used to set more tiles, but I backed that change out for reasons I don't fully remember. Maybe I thought I was over-specifying?

What was worse when you restricted traffic over the workshops? Why do you think the inverse (high traffic for non-workshop tiles) is better? I believe you, I just want to understand what you saw.

Should silver crossbows also be removed from the orders list? If so, we can close out the controversy about distributing orders for items that you can't normally make in the vanilla UI. We've already separated those orders out into a military_include_artifact_materials.json file. If we can just remove that file, it makes things much easier.

For cloaks, is it worthwhile using silk if available and falling back to leather if not? Or is it better to always conserve leather and just not have cloaks until silk is available? It sounds like it might be hard to tune this for all styles of gameplay, but I think I'd be happy with just silk as you suggest. We don't want to overcomplicate these orders, especially when players might just use autoclothing to manage cloaks.

Do you already have an updated military.json I can use to update the distributed copy?

I added easy meals to workorders on the advice of a Tekkud Youtube video I watched last year. His reasoning was that when ingredients are low, you need meal quantity, not quality. And if you get cancellation spam for the easy meals, that's a warning sign that you desperately need more food. If lavish meals produce 4x the output, though, then this logic doesn't hold up. I wasn't aware of that mechanic.

I'll have to go back and check about the citizens only setting. I was pretty sure that was working. Dreamfort will have to be substantially rewritten to work in v50 (once quickfort itself is updated), but I can fix this issue on the current, v0.47.05 version.
Logged

ldog

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #424 on: May 13, 2023, 09:02:31 pm »

Yes, you've captured all the items.

I think your service level designations are fine. Actually it is possible I was reading off a different version than what is actually in my installation. The other levels apply their traffic designations fine.
Now one thing is it still doesn't seem to discourage them eating and drinking the prisoners supplys. I also notice children will still play in the worst places regardless of settings(like the cage trap corridors, especially on my cavern level). When I restricted the workshops they were going too far out of their way to avoid them, there are times when it makes sense for them to cut across, I just want to discourage it so this seems a little better.
I am seeing that a little goes a long way with this. Like I had made the entire surface trap corridors low traffic but once again it was too much as they were going outside and then back in the long way to place a lot of the cages. I dialed it down to just making all the bridge tiles low traffic and that seems better.
Suites level I set the doors since there are 2 in each room and this will discourage cross traffic. It probably all could use a bit more experimentation and observation.

Oh, I wasn't aware we had to put in special handling for the silver and platinum (I guess I forgot). I'd probably let it go at this point if it saves you any effort. Silver weapons aren't really any better. Keeping the archers on a short leash and not letting them melee (especially in leather armor) wood crossbows are perfectly fine really. I'm still debating whether to make the city guard my best melee. It is easy enough to protect your own people by paying a little attention to mandates and outsiders who run afoul of the law I generally want dead. I had actually started giving the squads manual kill orders last game I was getting so frustrated with all the artifact thefts. Then there was the fact that the sheriffs now seem to like to punch perps to death for "resisting arrest" anyway, regardless of what weapon they are carrying. I officially consider the weak xbow justice squad to be outdated methodology.

Y'know I hadn't even considered not having silk, but that is a perfectly valid point. I tend to trade for it, I have never had any success creating a GS farm like ever. Yeah, it is probably worth having a fallback plan since any cloak is better than no cloak. The thing I learned about leather is there is "armor grade" and there is "clothing" and for clothing leather is not superior to the others. Plant cloth is actually heavier than the rest (although it isn't that big a deal) and silk allegedly has slightly better cutting resistance so I'd fallback to yarn, then leather then pigtail. Robes or dresses might be worth adding too, other clothes I gave up using long ago because I had too many problems with them equipping everything (like socks/mittens/hoods are just asking for amputated feet/hands/heads when they don't put on a boot/gauntlet/helmet), besides the main thing here is we are adding a little face protection which is otherwise totally lacking. OTOH, we can't set a preference in the uniforms, so it's either silk cloak or just cloak. Yeah, I guess just go with the silk for uniforms. Don't forget to update the uniforms too.

https://drive.google.com/file/d/1gh3pwq9w7Tc_W1vixkFDzFHaZu9XV6C2/view?usp=share_link
Man I forgot how much work that file is! A flag for "wood" would be really handy by the way. As it stands we just check for shields and crossbows (and of course there's other work orders it would be useful for). It just occurred to me silk gloves would be better too, since gloves are not considered armor and there's no leather gauntlets, but I didn't make the change in the file. Leather boots are actually considered armor as well as the leggings, helmet and of course the leather armor. Ok so I bumped the leather pieces to 10 or 20 as needed, removed platinum since we are no longer considering it a weapons grade material (the regular furnace order has smelting still), removed all platinum items & conditions, removed silver crossbows and silver conditions in the other xbows. Added flux/steel/etc conditions to silver mace and war hammer.

Yeah, the 5 each of 4 kinds of meat I bring on embark makes 20 lavish meals. If we made it into simple meals we'd get 20 simple meals. The only difference AFAIK is you need to have 4 different ingredients. The cancel spam is because that order is so huge, 150 meals. Generally the ingredient variety isn't an issue. Remember they only eat like once per season. Oh, and actually an easy meal uses 2 ingredients, not 1. Yeah, no real reason to make them.

It is possible that I didn't have the latest and greatest files when I began this run, it was before I pulled down the R8 files, so possibly whatever was in LNP, although I might have done intermediate updates. It's been some months since I have played. So if it was something you changed more recently it might be a false alarm. I know I did have the new services level layout since I had started a new game specifically to check out that round of changes.

I've noticed a little wierdness on the orders export, conditions not always exporting. Like I specify unused dyed silk cloth in my cloaks order, but the export just captured cloth, I manually changed it to silk cloth. I think I caught and fixed everything though.
« Last Edit: May 13, 2023, 09:54:39 pm by ldog »
Logged
Quote from: Dirst
For example, if you wanted to check if a unit was eligible to be a politician or a car salesman, you'd first want to verify that there is no soul present...

Quote from: gchristopher
The more appropriate question becomes, are they awesome and dwarven enough.

ldog

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #425 on: May 14, 2023, 09:04:46 am »

I've got 3 stuck jobs for some reason, the conditions are never being re-evaluated and I realized I have over 30 each now, just going to delete them.
They are the silver war hammer, bronze crossbow and bronze pick. The first 2 were modified with the recent changes but the pick wasn't.
At first I just thought it was because my steel production wasn't ramped up (It's probably good to make a stock of steel before importing the military orders) but then I realized something was wrong, of course I've been distracted with the crashing thing, which also imparts a sense of deja vu to everything as you do it over and over and over again.

Just realized that the standard melt pile should probably exclude adamantine and the "special" metals (I have never come across any in fortressmode but who knows) otherwise you could get a nasty surprise when you start making adamantine gear.
« Last Edit: May 15, 2023, 08:10:53 pm by ldog »
Logged
Quote from: Dirst
For example, if you wanted to check if a unit was eligible to be a politician or a car salesman, you'd first want to verify that there is no soul present...

Quote from: gchristopher
The more appropriate question becomes, are they awesome and dwarven enough.

myk

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #426 on: May 16, 2023, 04:50:48 pm »

Now one thing is it still doesn't seem to discourage them eating and drinking the prisoners supplys.
Yeah, I think you're right. I thought I saw an improvement, but further testing doesn't seem to bear it out. On the plus side, those are pretty nice rooms to eat in..

Quote
Suites level I set the doors since there are 2 in each room and this will discourage cross traffic. It probably all could use a bit more experimentation and observation.
This is a good idea. I'll add it in.

Quote
Oh, I wasn't aware we had to put in special handling for the silver and platinum (I guess I forgot).
It was a more recent discussion. See here: https://github.com/DFHack/dfhack/issues/2718

Quote
[link]
Thanks! I'll get this integrated as part of https://github.com/DFHack/dfhack/issues/3367

Quote
Yeah, the 5 each of 4 kinds of meat I bring on embark makes 20 lavish meals.
Nice. Ok, easy meals are gone then.

Quote
I've noticed a little wierdness on the orders export, conditions not always exporting. Like I specify unused dyed silk cloth in my cloaks order, but the export just captured cloth, I manually changed it to silk cloth. I think I caught and fixed everything though.
I couldn't reproduce this particular problem. I created an order for a silk cloak, set the conditions to count "unused dyed silk cloth", exported, and got this, which is what I expected:
Code: [Select]
[
        {
                "amount_left" : 10,
                "amount_total" : 10,
                "frequency" : "Daily",
                "id" : 10,
                "is_active" : false,
                "is_validated" : true,
                "item_conditions" :
                [
                        {
                                "condition" : "GreaterThan",
                                "flags" :
                                [
                                        "dyed",
                                        "silk"
                                ],
                                "item_type" : "CLOTH",
                                "min_dimension" : 10000,
                                "value" : 10
                        }
                ],
                "item_subtype" : "ITEM_ARMOR_CLOAK",
                "job" : "MakeArmor",
                "material_category" :
                [
                        "silk"
                ]
        }
]

edit: I found out what the issue is here, though. Our library orders don't have the "min_dimension" attribute. That's what produces the "unused" adjective. I'll fix that where I see it.
« Last Edit: May 16, 2023, 05:26:58 pm by myk »
Logged

ldog

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #427 on: May 16, 2023, 06:11:48 pm »

Oh, I had played around a little with the size setting on some orders (under details) but I wasn't sure if it was adding extra complexity for no good reason.
Logged
Quote from: Dirst
For example, if you wanted to check if a unit was eligible to be a politician or a car salesman, you'd first want to verify that there is no soul present...

Quote from: gchristopher
The more appropriate question becomes, are they awesome and dwarven enough.

myk

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #428 on: May 16, 2023, 07:31:01 pm »

Your changes looked good to me. You can see the what the final diff looked like here: https://github.com/DFHack/dfhack/pull/3385
Dreamfort changes are here: https://github.com/DFHack/dfhack/pull/3386
The changes will be in the next DFHack release, but of course Dreamfort doesn't fully apply yet in v50 until quickfort us updated (see https://github.com/DFHack/dfhack/issues/2974)

Did you learn anything more about those stuck jobs?
Logged

ldog

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #429 on: May 17, 2023, 07:19:52 am »

Your changes looked good to me. You can see the what the final diff looked like here: https://github.com/DFHack/dfhack/pull/3385
Dreamfort changes are here: https://github.com/DFHack/dfhack/pull/3386
The changes will be in the next DFHack release, but of course Dreamfort doesn't fully apply yet in v50 until quickfort us updated (see https://github.com/DFHack/dfhack/issues/2974)

Did you learn anything more about those stuck jobs?

No, I just deleted them and recreated them from scratch. The game is just full of aggravating bugs.

I really feel like hauling is not keeping up; I have over 40 dedicated, plus militia still not assigned to squads, the laborers, a few others I am still allowing hauling on. Shit sits in the depot a long time, although at least it is the non-perishables like leather, cloth, etc. I am also buying in bulk. We have mussels as well, which generate a lot of crafts. Granted I am using an awful lot of child labor as well, and they probably spend more time playing than working.

Steel production is just not keeping up, granted 40 is really not enough stock since it takes over 20 to fully equip 1 infantry dwarf. I have plenty of flux but of course too little is being properly hauled with wheelbarrows and the furnace operators are carrying it up by hand; I really need to lock down the supplys. One good thing I will say, the shortages manifest in the breastplates and greaves, so that part of the orders is working well. All 4 infantry squads at least have the rest of their gear even though only 1.5 squads have bp & greaves.

Drink production is barely keeping up as well, which is odd, I've never had a problem with the 1 still keeping up. I have 4 farmers assigned and generally someone is in there brewing. I was getting a lot of job cancellation spam on drinking, and I think that is related to the combine-drinks script (which I've just stopped running) but even worse I noticed a lot of puddles of spilled booze which I am not sure how that happens.

This current fort has also been a bit of a victim of its own success I suppose as I got migrant waves of 30+ and have reached max pop here in year 3. You would think with the extra manpower things would run smooth.
« Last Edit: May 17, 2023, 08:09:54 am by ldog »
Logged
Quote from: Dirst
For example, if you wanted to check if a unit was eligible to be a politician or a car salesman, you'd first want to verify that there is no soul present...

Quote from: gchristopher
The more appropriate question becomes, are they awesome and dwarven enough.

myk

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #430 on: May 20, 2023, 11:40:57 pm »

I wrote basic stockpile support (creation and top-level category-level configuration). It will be in the next DFHack release. Still a long way to go before Dreamfort is viable, though.

I've started on zone support, which needs a full rewrite for v50. It needs a whole new syntax. I'd also like to include support for creating locations and linking zones to locations.

Here's a progression of examples that show what I'm thinking:

a 10x12 meeting hall: m(10x12)

a 10x12 hospital: m{hospital}(10x12)

a 10x12 hospital with some custom configuration: m{hospital soap=20 buckets=2}(10x12)

Two zones that make up a single hospital: m{hospital/myhospital}(5x12),,,,,m{hospital/myhospital}(5x12)

I need to find a convenient way to express visitor restrictions, since it will probably be the most common configuration that people want to specify for a location

restriction=citizens_and_long_term_residents seems a bit cumbersome. Any ideas there?
Logged

A_Curious_Cat

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #431 on: May 20, 2023, 11:51:24 pm »

Code: [Select]
// allowing single groups
restrict=members
restrict=citizens
restrict=residents
restrict=visitors

// allowing multiple groups
restrict=citizens+residents  // could use a different separator then ‘+’?

// allowing everyone
restrict=all

// maybe use ‘allow’ instead of ‘restrict’?
Logged
Really hoping somebody puts this in their signature.

myk

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #432 on: May 25, 2023, 02:37:44 pm »

Ok, I have rewritten the Dreamfort blueprints with what I envision the new syntax will be. Remember, #query and #config blueprints are gone since the keyboard is no longer a reliable way to apply changes to the game. Their functionality has moved to other blueprint types. This actually has given us a lot more flexibility to write blueprints that dynamically adjust to their environment (at the cost, of course, of more complicated code inside of quickfort, but players don't need to worry about that : p)

First, let me note that existing #dig, #build, and #place blueprints will continue to work without changes. All this new syntax is optional, though any #query blueprints out there will need to be ported.

Existing #zone blueprints will *mostly* continue working, but fundamental changes in how zones are handled in DF will probably require #zone blueprints to be at least partially rewritten. For example, zones can only have one type at a time now, and there's no longer any such thing as a hospital zone.

I should also say that most players will never be aware of any of this, since the syntax will be generated by `gui/bluerpint` as needed. Only people who design blueprints by hand will care.

Here are some representative examples:

1. building properties are specified within curly brackets and follow immediately after the building specifier. Names of the properties are based on the actual structure field names. Examples:

hive with "install" and "gather" properties set in a #build blueprint:
~h{do_install=true do_gather=true}

7x7 sherriff's office in a #zone blueprint. This will dynamically look up the current sheriff/captain of the guard and assign the zone to them:
o{name="interrogation room" assigned_unit=sheriff}(7x7)

quantum refuse/corpse stockpile that gives to another stockpile in a #place blueprint. This will dynamically look up stockpiles named "rawhides" and set up the stockpile links:
ry{name="refuse/corpse quantum" give_to_pile="rawhides"}

2. Stockpile configuration is marked by a leading colon (:) and acts as a frontend to the stockpiles plugin to add and remove configuration elements. Identifiers in the configuration refer to previously exported stockpile configs in the DFHack stockpile config library or in the player's personal exports. Examples:

refuse feeder pile for the refuse/corpse quantum stockpile. The leading r initializes the stockpile to "all refuse", then the subtracted config elements remove specific subsets:
r:-corpserefuse-craftrefuse(2x3)

seed stockpile. this starts from a blank config (c) and adds specific subsets:
c:+seeds+linksonly(1x9)

stockpile for all finished goods (g) minus crafts and goblets, then tallow and wax from the food category are added on (and containers disabled):
g:-crafts-goblets+tallow+wax-containers(3x3)

a quantum stockpile that accepts all types (except refuse):
c:=quantum

Which is essentially shorthand for:
afunyswebhlzSgpd:-containers+linksonly

3. Routes and route stops are configured from track stops on #build blueprints. Examples:

Quantum stockpile dumper that dumps to the south and takes from a stockpile named "trade goods":
trackstopS{name="trade goods dumper" take_from="trade goods" route="trade goods quantum"}

Route stops can also be configured using the same syntax as stockpiles:
trackstopS{name="prisoner/cage dumper" take_from="prison/training" route="prisoner/cage quantum"}:+enemies

4. Locations are now specified from #zone blueprints. Examples:

A temple defined from a 9x9 meeting hall:
m{temple allow=residents}(9x9)

A tavern defined from a dining hall and a rented room (defined from a bedroom) attached to that tavern. "bigpub" is the identifier given to the tavern that other zones on the blueprint can refer to. The string won't appear in the game as a name:
h{tavern/bigpub name="grand hall"}(13x31)
b{tavern/bigpub}(1x3)



Note that all of this is in prototype form. Things might change once I start implementing. If people have thoughts/concerns/questions at this stage, though, I'd like to hear them.
« Last Edit: May 25, 2023, 02:51:54 pm by myk »
Logged

clinodev

  • Bay Watcher
  • Embark Profile Enthusiast, Kitfox & reddit mod.
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #433 on: May 25, 2023, 04:49:37 pm »

Very, very cool!
Logged
Team Bug Fix!

myk

  • Bay Watcher
    • View Profile
Re: DFHack: quickfort | buildingplan | blueprint | blueprints/library
« Reply #434 on: June 01, 2023, 12:37:22 am »

After several days of intense coding, I've got a prototype.

Dreamfort has been fully updated to the new syntax, and overall has become simpler (which is always a good thing).

The new blueprints are here: https://drive.google.com/drive/folders/1dsmvnzbOKsyFS3DCj0F8ibSnMhVHEjdV

I'll link those up to the DFHack docs when I update them. The quickfort blueprint creation guide is going to need some new sections!

quickfort got more than 2000 new lines of code, which is a lot. The chance that it's all bug-free is essentially zero. I'll be writing unit and integration tests as I merge the code over the next few weeks.

Our immediate plans are to release DFHack 50.08-r2 within a few days (which will not include the new quickfort or Dreamfort), along with an experimental release for the similarly experimental SDL2 version of DF.

Once those are out, I'll get these changes merged in and we'll put out an official beta (50.08-r3rc1, probably).

In the meantime, if you'd like to give the new Dreamfort a try, I put it up on our "testing" branch on Steam. Feedback is welcome! I'd especially like feedback about the new zones. Everything that was a room in pre-v50 is now a zone, and that required a bunch of changes in Dreamfort.

I also made some changes to the layout of the services level. I added a bolt recycling trough in front of the archery targets and altered the layout of the jail cell block. Also the tavern got a well because everyone likes wells. The hospital also got a few changes to make it more werecreature-proof. I'll post some screenshots after I do my next test run.
Logged
Pages: 1 ... 27 28 [29]