Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 13 14 [15] 16 17 ... 42

Author Topic: [Quickfort] 2.04 released -- now with minecart track support! [DF 0.34.10]  (Read 309426 times)

Draco18s

  • Bay Watcher
    • View Profile
Re: [Quickfort] Version 1.11 released
« Reply #210 on: July 01, 2010, 02:16:15 pm »

Does this work with .31.08?

Yes, because it's not memory hacking.
Logged

jfsh

  • Bay Watcher
    • View Profile
Re: [Quickfort] Version 1.11 released
« Reply #211 on: July 19, 2010, 03:11:31 am »

I had some ideas to make Quickfort even more awesome.

Basically, the idea is to allow a single, mixed use blueprint to be applied on the fly.  There are all sorts of fancy GUI things, but I like to just use Excel with conditional formatting fills for each designation.  It makes it easy to visualize the whole project, but I then have to break it into many smaller pieces to use in Quickfort.  If I need to change something small, it can require tediously re-saving multiple files each time.  By focusing on flexibility at time of use, I think we could resolve the problem.

There are four ideas, although they are interrelated:

1)  Segmentation.  Break the .csv file into four equal parts (or n parts).  For example, NW, NE, SW, SE.  Allow the user to quickly toggle any one of the four areas off before the script runs.  This allows you to: (a) recover more gracefully after a script fails part-way through, (b) prioritize certain parts by designating only them, and (c) more fully account for DF's FIFO mentality with constructions (because nearby sections are constructed more closely in time to each other, dwarves will move around less and build more efficiently in some circumstances).  It also combines well with #2.

2)  Labels.  Instead of just "Cx|Cx|Cx" you could have "Cx Inner stairs|Cx Inner Stairs|Cx Inner stairs."  Quickfort could read anything after the space as a label, and then when you select a .csv file, just turn on or off whatever labels you don't need.  So, instead of having 3 different Construction blueprints with stairs, floors, and walls, I could just have one and turn off "Outer floors" or "Fortress walls" or whatever else someone can think of.  This really would be amazing for large projects.

3) Mutation.  Some designs are the same across multiple designation types.  For example, a floorplan that rises above ground and also goes below, or a tower with a central staircase that extends through the whole fort, sometimes dug out, and sometimes built.  Users could use the "?" character, with a label, to allow these to be designated at execution time.  In conjunction with #2, certain digging designations could be redesignated as their constructed counterpart (and vice-versa).  Stairs <-> Constructed stairs, Dug area <-> Floor... there may be more.  So, stairs could be labeled as "dug," "constructed," or "off."

This would be an interesting way to allow multi-z-level blueprints to work - changing certain labels' states in a pattern when repeating.  It would probably require each cell to have at least two labels, though.

4)  Browser.   This one is probably a bit more difficult than the others, but essentially let the user pop up a mini-display window with a starting location and the nearby designations.  Here's an example:
Code: [Select]
. . . . . . .
. S X X X . .
. . x x x . .
. . x x x . .
. . . . . . .
As you'd move around, the S would change position.  This would make it a lot easier to figure out where to start the cursor!  I don't know how hard something like this is to do with AutoHotKey, but it sure would be convenient.



Hope these suggestions are helpful.  I've been building a very large megaproject recently (with Quickfort, of course), so it's been on my mind.

d4nte

  • Bay Watcher
    • View Profile
Re: [Quickfort] Version 1.11 released
« Reply #212 on: July 19, 2010, 03:24:43 am »

I 2nd suggestion 4. One of the biggest drawbacks (for me) of using quickfort is that I have to guestimate the starting point.

Some kind of "preview" or overlay of the design would be perfection, but then I have no idea of the mechanics involved in making this work, or even if it is possible.......
Logged

Aklyon

  • Bay Watcher
  • Fate~
    • View Profile
Re: [Quickfort] Version 1.11 released
« Reply #213 on: July 19, 2010, 08:02:14 am »

thirded.
Logged
Crystalline (SG)
Sigtext
Quote from: RedKing
It's known as the Oppai-Kaiju effect. The islands of Japan generate a sort anti-gravity field, which allows breasts to behave as if in microgravity. It's also what allows Godzilla and friends to become 50 stories tall, and lets ninjas run up the side of a skyscraper.

tastypaste

  • Bay Watcher
  • "It's delicious!"
    • View Profile
Re: [Quickfort] Version 1.11 released
« Reply #214 on: July 19, 2010, 08:23:32 am »

Any news on QuickFort 2.0? It's one of my most eagerly anticipated utility releases, just wondering if you're still working on it.
Logged
Denethor cancels stewardship:  Went Insane.
Denethor went berserk!

Erulisse

  • Bay Watcher
    • View Profile
Re: [Quickfort] Version 1.11 released
« Reply #215 on: July 27, 2010, 08:36:39 am »

I concur with all the other people wanting a Linux version.
Logged

joelpt

  • Bay Watcher
    • View Profile
    • Quickfort homepage
Quickfort 2.00pre2 release
« Reply #216 on: July 31, 2010, 04:32:23 pm »

Well, I've been sitting on QF2.0 for a while now in a nearly releasable state. So I'm just going to release it for your testing today as version "2.00pre2", with your kind understanding that the documentation hasn't been updated, and a few features from QF1.x are missing.

Download Quickfort 2.00pre3
Browse source code repository or issue tracker

What's New in v2.00pre3:
  • Major rewrite: The code structure and flexibility has been massively improved (no more single monster AHK script).
  • Linux/Mac support: the code is now split into an AHK portion (Windows only GUI, for now) and a Python portion (cross platform blueprint conversion tool). Linux users can run qfconvert.py to convert blueprints to DF macro files.
  • Smarter playback: Quickfort now tries to be smarter about its building strategy to minimize keystrokes, utilizing some simple pathfinding logic coupled with a strategy of constructing the largest areas possible.
  • DF macro support: QF2.0 can convert blueprints to DF macro format (DF 0.31+). Set [MACRO_MS:0] in your data/init/init.txt for best performance. At least for this release, Alt+K in the QF GUI will toggle between macro and keystroke playback modes.
  • Excel support: QF can now read blueprints in Excel formats (.xls, .xlsx). The Windows QF GUI supports selection of specific worksheets within Excel files. qfconvert.py also takes a --sheetid argument for this purpose.
  • GUI, revisited: The Windows QF GUI has been redesigned. One important difference is that the function of the Alt+D key has changed. Alt+F is now used only for opening (changing) blueprint files; Alt+D is now used only for playing the current blueprint. This lets Alt+D work a bit more like a "stamp" tool; you can use Alt+F once and then Alt+D repeatedly. This is likely to catch up QF 1.x users at least once ;) but I think you'll come to like it quickly.
  • Repeat with transform: The blueprint repetition functionality has been improved. A few transformations are now supported -- rotcw, rotccw, fliph, flipv. Read the embedded help when pressing Alt+R in QF GUI, or just experiment.
  • The /Modular project: I've created a new subfolder in blueprints titled Modular. The blueprints in this folder are built from a common template (_template.xls) and are designed to be easily connected to adjacent Modular blueprints in a fortress. The intent is to build up a library of blueprints of various types that conform to this template. To that end, I am looking for contributions if anyone would like to help populate this folder for future QF releases. Check out blueprints/Modular for more details.
  • Safer material selection: For multi-cell constructions like a 10x10 floor, QF2.0 uses a more reliable material selection mechanism which should reduce the frequency of "out of this material" playback failures. Essentially it now hits +{Enter}{Down} during material selection sqrt(# tiles in area) times. This should make out-of-mat fails very infrequent, though you can end up building stuff out of multiple mat types if you don't take care with stockpile/mat proximity.
  • Multi-cell auto expansion: Workshops and trade depots can now be constructed by populating all the blueprint cells that the object should occupy. For example, the two blueprints below produce the same single 3x3 workshop when run in QF2.0.
Code: [Select]
#build QF1.x style    #build QF2.x style
-- -- --              wt wt wt
-- wt --              wt wt wt
-- -- --              wt wt wt

Similarly, objects such as bridges can now be constructed by populating all desired contiguous cells. The two blueprints below produce the same 3x3 bridge when run in QF2.0.
Code: [Select]
#build QF1.x style    #build QF2.x style
ga(3x3)-              ga ga ga
-- -- --              ga ga ga
-- -- --              ga ga ga
This can make it a lot easier to visualize the final outcome in your spreadsheet editor. QF1.x style mechanisms will continue to work.


What's Missing:
  • aliases.txt support
  • KeyUp, KeyDown, ... keybinding config via ini; in 2.0final all of the build and keybind config will be controlled via ini files
  • QF "command line" prompt (Alt+T)
  • QF will not handle functions within cells in Excel spreadsheets; each cell must have a string value (at least for .xlsx files; .xls might work).


This is excerpted from readme.txt which is sorely out of date, but will get you running things ASAP:
Code: [Select]
*** Quick use guide for 2.00pre2:
***
*** All users:     I highly recommend setting [MACRO_MS:0] in your data/init/init.txt
***                for best DF macro playback performance.
*** Windows users: Run Quickfort.exe for the GUI interface
***                Run qfconvert.exe for the command line conversion tool
*** Linux users:   Run the command line conversion tool via python:
***                > cd src/qfconvert
***                > python ./qfconvert.py
***                or chmod +x qfconvert.py and run it like a shell script.
*** Example qfconvert command line (Linux):
***   > python ./qfconvert.py myblueprint.xls <DF folder>/data/init/macros/myblueprint.mak
***   ... then play your macro in DF with Ctrl+L, <select macro>, Ctrl+P.
***

Let me know how it works for you.

- joelpt

Edit: updated the 2.00pre2 .zip with a quick minor bugfix (3x3 furnace designations not auto-expanding properly). Not bumping the version # for this fix.
Edit: updated post to 2.00pre3, which includes only a quick bugfix causing qfconvert to fail on Linux.
« Last Edit: August 04, 2010, 08:31:36 pm by joelpt »
Logged

joelpt

  • Bay Watcher
    • View Profile
    • Quickfort homepage
Re: [Quickfort] Version 1.11 released
« Reply #217 on: July 31, 2010, 05:10:54 pm »

1)  Segmentation.  Break the .csv file into four equal parts (or n parts).  For example, NW, NE, SW, SE.  Allow the user to quickly toggle any one of the four areas off before the script runs.
An interesting idea. QF 2.0 supports Excel sheets which should help with blueprint 'stack' organization. As for DF's FIFO mentality, I've written to Toady asking if he could add support for selecting link targets via cursor selection instead of (or in addition to) the FIFO-ordered menu; haven't heard back yet.

I'll consider the possibility of being able to select multiple sheets in a single Excel file and "merging" them into a single blueprint run. Not sure it's worth the added UI complexity though. The Alt+E key in QF2.0 makes it fairly easy to play a series of sheets in succession.

Quote
2)  Labels.  Instead of just "Cx|Cx|Cx" you could have "Cx Inner stairs|Cx Inner Stairs|Cx Inner stairs."  Quickfort could read anything after the space as a label, and then when you select a .csv file, just turn on or off whatever labels you don't need.
I'll give this some consideration. Now that Excel files are supported in QF2.0, it might be cool to use Excel's cell coloring ability to act as the labels. This would be much nicer to work with than text-labelling cells.

Quote
3) Mutation.
I've been pondering a substitution style syntax for the Alt+R transformation function in QF2.0 -- something like s/Ts/Tc to turn stonefall traps into cage traps on a blueprint for instance. I suppose that syntax could also be used for your idea -- s/?/> for example. I'd like to include a regex syntax option here also.

Quote
4)  Browser.   This one is probably a bit more difficult than the others, but essentially let the user pop up a mini-display window with a starting location and the nearby designations.
Three things:
1. The Alt+V hotkey can be helpful in estimating the placement and dimensions of your blueprint in the DF window.
2. The syntax #dig start(5;5;start pos comment) can be useful in specifying the starting tile in the blueprint.
3. I'll be adding a "blueprint preview" in the blueprint/sheet info window in QF2.0, and I'll see if I can have it indicate the cursor starting position.

To have a preview that actually follows your DF cursor around as you move it is a cool idea but would take some doing to make it really work right.

I should mention that this would not involve any reading of DF's current map to show adjacent existing designations. That can only really be accomplished by pixel-reading or DF memory hacks, which I don't really want to get into (too breakable by DF updates).

Thanks for the ideas.
« Last Edit: July 31, 2010, 05:18:07 pm by joelpt »
Logged

joelpt

  • Bay Watcher
    • View Profile
    • Quickfort homepage
Re: [Quickfort] Version 2.00pre2 released
« Reply #218 on: August 01, 2010, 10:37:06 am »

Updated main post with notice of 2.00pre2 release.

jfsh

  • Bay Watcher
    • View Profile
Re: [Quickfort] Version 2.00pre2 released
« Reply #219 on: August 02, 2010, 06:05:57 pm »

This looks awesome, going to try it out now.  I think you're right that the ability to use .xls files will alleviate most of the pain...

Battlecat

  • Bay Watcher
    • View Profile
Re: [Quickfort] Version 2.00pre2 released
« Reply #220 on: August 03, 2010, 11:37:10 am »

I've been looking forward to this.  I'll test it out as soon as possible. 

Daetrin

  • Bay Watcher
    • View Profile
Re: Quickfort 2.00pre2 release
« Reply #221 on: August 03, 2010, 03:37:14 pm »


Repeat with transform: The blueprint repetition functionality has been improved. A few transformations are now supported -- rotcw, rotccw, fliph, flipv. Read the embedded help when pressing Alt+R in QF GUI, or just experiment.

You are my hero.
Logged
All you need to know about Ardentdikes
It is really, really easy to flood this place with magma fwiw.

Doors stop fire, right?

Erulisse

  • Bay Watcher
    • View Profile
Re: [Quickfort] Version 2.00pre2 released
« Reply #222 on: August 04, 2010, 01:59:55 pm »

When I run qfconvert on linux i get this.
Code: [Select]
Traceback (most recent call last):
  File "/home/rain/.apps/quickfort/src/qfconvert/qfconvert.py", line 83, in run
    output = blueprint.process_blueprint_file(infile, options)
  File "/home/rain/.apps/quickfort/src/qfconvert/blueprint.py", line 90, in process_blueprint_file
    output = convert_keys(keys, options.mode, options.title)
  File "/home/rain/.apps/quickfort/src/qfconvert/keystroker.py", line 360, in convert_keys
    return '\n'.join(convert_to_macro(keys, title)) + '\n'
  File "/home/rain/.apps/quickfort/src/qfconvert/keystroker.py", line 393, in convert_to_macro
    "Key '%s' not bound in interface.txt" % key
Exception: Key '0:3' not bound in interface.txt

Note this is from running a simple #dig file with two squares marked nothing else.
Logged

Battlecat

  • Bay Watcher
    • View Profile
Re: [Quickfort] Version 2.00pre2 released
« Reply #223 on: August 04, 2010, 02:08:41 pm »

Well the new version certainly is much much faster.  I have several blueprints that use well over 1000 commands and they are plotted out in less than 1/4 of the time when compared with the previous release.  I'm hoping to test out the transformation functions in the next few days. 

joelpt

  • Bay Watcher
    • View Profile
    • Quickfort homepage
Re: [Quickfort] Version 2.00pre2 released
« Reply #224 on: August 04, 2010, 08:30:05 pm »

When I run qfconvert on linux i get this.
Code: [Select]
Exception: Key '0:3' not bound in interface.txt
Found the problem. It was an issue with Windows line-endings in the included interface.txt; Python treated them differently on Linux than on Windows.

Now fixed and released in Quickfort 2.00pre3.

This is the only change from pre2 to pre3. This change won't affect Windows users at all.
Pages: 1 ... 13 14 [15] 16 17 ... 42