Merge branch 'develop' into world-module-docs
@ -0,0 +1,64 @@
|
|||||||
|
#### Q: How do I download DFHack?
|
||||||
|
**A:** Either add to your Steam library from our [Steam page](https://store.steampowered.com/app/2346660/DFHack) or scroll to the latest release on our [GitHub releases page](https://github.com/DFHack/dfhack/releases), expand the "Assets" list, and download the file for your platform (e.g. `dfhack-XX.XX-rX-Windows-64bit.zip`. If you are on Windows and are manually installing from the zip file, please remember to right click on the file after downloading, open the file properties, and select the "Unblock" checkbox. This will prevent issues with Windows antivirus programs.
|
||||||
|
|
||||||
|
-------------
|
||||||
|
|
||||||
|
This release is compatible with all distributions of Dwarf Fortress: [Steam](https://store.steampowered.com/app/975370/Dwarf_Fortress/), [Itch](https://kitfoxgames.itch.io/dwarf-fortress), and [Classic](https://www.bay12games.com/dwarves/).
|
||||||
|
|
||||||
|
- [Install DFHack from Steam](https://store.steampowered.com/app/2346660/DFHack)
|
||||||
|
- [Manual install](https://docs.dfhack.org/en/stable/docs/Installing.html#installing)
|
||||||
|
- [Quickstart guide (for players)](https://docs.dfhack.org/en/stable/docs/Quickstart.html#quickstart)
|
||||||
|
- [Modding guide (for modders)](https://docs.dfhack.org/en/stable/docs/guides/modding-guide.html)
|
||||||
|
|
||||||
|
Please report any issues (or feature requests) on the DFHack [GitHub issue tracker](https://github.com/DFHack/dfhack/issues). When reporting issues, please upload a zip file of your savegame and a zip file of your `mods` directory to the cloud and add links to the GitHub issue. Make sure your files are downloadable by "everyone with the link". We need your savegame to reproduce the problem and test the fix, and we need your active mods so we can load your savegame. Issues with savegames and mods attached get fixed first!
|
||||||
|
|
||||||
|
Highlights
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Highlight 1, Highlight 2</summary>
|
||||||
|
|
||||||
|
### Highlight 1
|
||||||
|
|
||||||
|
Demo screenshot/vidcap
|
||||||
|
|
||||||
|
Text
|
||||||
|
|
||||||
|
### Highlight 2
|
||||||
|
|
||||||
|
Demo screenshot/vidcap
|
||||||
|
|
||||||
|
Text
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
Announcements
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Annc 1, PSAs</summary>
|
||||||
|
|
||||||
|
### Annc 1
|
||||||
|
|
||||||
|
Text
|
||||||
|
|
||||||
|
### PSAs
|
||||||
|
|
||||||
|
As always, remember that, just like the vanilla DF game, DFHack tools can also have bugs. It is a good idea to **save often and keep backups** of the forts that you care about.
|
||||||
|
|
||||||
|
Many DFHack tools that worked in previous (pre-Steam) versions of DF have not been updated yet and are marked with the "unavailable" tag in their docs. If you try to run them, they will show a warning and exit immediately. You can run the command again to override the warning (though of course the tools may not work). We make no guarantees of reliability for the tools that are marked as "unavailable".
|
||||||
|
|
||||||
|
The in-game interface for running DFHack commands (`gui/launcher`) will not show "unavailable" tools by default. You can still run them if you know their names, or you can turn on dev mode by hitting Ctrl-D while in `gui/launcher` and they will be added to the autocomplete list. Some tools do not compile yet and are not available at all, even when in dev mode.
|
||||||
|
|
||||||
|
If you see a tool complaining about the lack of a cursor, know that it's referring to the **keyboard** cursor (which used to be the only real option in Dwarf Fortress). You can enable the keyboard cursor by entering mining mode or selecting the dump/forbid tool and hitting Alt-K (the DFHack keybinding for `toggle-kbd-cursor`). We're working on making DFHack tools more mouse-aware and accessible so this step isn't necessary in the future.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
Generated release notes
|
||||||
|
====================
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>New tools, fixes, and improvements</summary>
|
||||||
|
|
||||||
|
%RELEASE_NOTES%
|
||||||
|
</details>
|
@ -0,0 +1,168 @@
|
|||||||
|
name: Build linux64
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
dfhack_ref:
|
||||||
|
type: string
|
||||||
|
scripts_ref:
|
||||||
|
type: string
|
||||||
|
structures_ref:
|
||||||
|
type: string
|
||||||
|
artifact-name:
|
||||||
|
type: string
|
||||||
|
append-date-and-hash:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
cache-id:
|
||||||
|
type: string
|
||||||
|
default: ''
|
||||||
|
cache-readonly:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
platform-files:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
common-files:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
docs:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
html:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
stonesense:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
extras:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
tests:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
xml-dump-type-sizes:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
gcc-ver:
|
||||||
|
type: string
|
||||||
|
default: "10"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-linux64:
|
||||||
|
name: Build linux64
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- name: Install basic build dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install ninja-build
|
||||||
|
- name: Install binary build dependencies
|
||||||
|
if: inputs.platform-files || inputs.xml-dump-type-sizes
|
||||||
|
run: |
|
||||||
|
sudo apt-get install \
|
||||||
|
ccache \
|
||||||
|
gcc-${{ inputs.gcc-ver }} \
|
||||||
|
g++-${{ inputs.gcc-ver }} \
|
||||||
|
libxml-libxslt-perl
|
||||||
|
- name: Install stonesense dependencies
|
||||||
|
if: inputs.stonesense
|
||||||
|
run: sudo apt-get install libgl-dev
|
||||||
|
- name: Install doc dependencies
|
||||||
|
if: inputs.docs
|
||||||
|
run: pip install 'sphinx<4.4.0'
|
||||||
|
- name: Clone DFHack
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ inputs.dfhack_ref && github.repository || 'DFHack/dfhack' }}
|
||||||
|
ref: ${{ inputs.dfhack_ref }}
|
||||||
|
submodules: true
|
||||||
|
fetch-depth: ${{ !inputs.platform-files && 1 || 0 }}
|
||||||
|
- name: Clone scripts
|
||||||
|
if: inputs.scripts_ref
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ inputs.scripts_ref && github.repository || 'DFHack/scripts' }}
|
||||||
|
ref: ${{ inputs.scripts_ref }}
|
||||||
|
path: scripts
|
||||||
|
- name: Clone structures
|
||||||
|
if: inputs.structures_ref
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ inputs.structures_ref && github.repository || 'DFHack/df-structures' }}
|
||||||
|
ref: ${{ inputs.structures_ref }}
|
||||||
|
path: library/xml
|
||||||
|
- name: Fetch ccache
|
||||||
|
if: inputs.platform-files
|
||||||
|
uses: actions/cache/restore@v3
|
||||||
|
with:
|
||||||
|
path: ~/.cache/ccache
|
||||||
|
key: linux-gcc-${{ inputs.gcc-ver }}-${{ inputs.cache-id }}-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
linux-gcc-${{ inputs.gcc-ver }}-${{ inputs.cache-id }}
|
||||||
|
linux-gcc-${{ inputs.gcc-ver }}
|
||||||
|
- name: Configure DFHack
|
||||||
|
env:
|
||||||
|
CC: gcc-${{ inputs.gcc-ver }}
|
||||||
|
CXX: g++-${{ inputs.gcc-ver }}
|
||||||
|
run: |
|
||||||
|
cmake \
|
||||||
|
-S . \
|
||||||
|
-B build \
|
||||||
|
-G Ninja \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=build/image \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
${{ inputs.platform-files && '-DCMAKE_C_COMPILER_LAUNCHER=ccache' || '' }} \
|
||||||
|
${{ inputs.platform-files && '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache' || '' }} \
|
||||||
|
-DBUILD_LIBRARY:BOOL=${{ inputs.platform-files }} \
|
||||||
|
-DBUILD_PLUGINS:BOOL=${{ inputs.platform-files }} \
|
||||||
|
-DBUILD_STONESENSE:BOOL=${{ inputs.stonesense }} \
|
||||||
|
-DBUILD_DEV_PLUGINS:BOOL=${{ inputs.extras }} \
|
||||||
|
-DBUILD_SIZECHECK:BOOL=${{ inputs.extras }} \
|
||||||
|
-DBUILD_SKELETON:BOOL=${{ inputs.extras }} \
|
||||||
|
-DBUILD_DOCS:BOOL=${{ inputs.docs }} \
|
||||||
|
-DBUILD_DOCS_NO_HTML:BOOL=${{ !inputs.html }} \
|
||||||
|
-DBUILD_TESTS:BOOL=${{ inputs.tests }} \
|
||||||
|
-DBUILD_XMLDUMP:BOOL=${{ inputs.xml-dump-type-sizes }} \
|
||||||
|
${{ inputs.xml-dump-type-sizes && '-DINSTALL_XMLDUMP:BOOL=1' || ''}} \
|
||||||
|
-DINSTALL_DATA_FILES:BOOL=${{ inputs.common-files }} \
|
||||||
|
-DINSTALL_SCRIPTS:BOOL=${{ inputs.common-files }}
|
||||||
|
- name: Build DFHack
|
||||||
|
run: ninja -C build install
|
||||||
|
- name: Run cpp tests
|
||||||
|
if: inputs.platform-files
|
||||||
|
run: ninja -C build test
|
||||||
|
- name: Finalize cache
|
||||||
|
if: inputs.platform-files
|
||||||
|
run: |
|
||||||
|
ccache --show-stats --verbose
|
||||||
|
ccache --max-size 40M
|
||||||
|
ccache --cleanup
|
||||||
|
ccache --max-size 500M
|
||||||
|
ccache --zero-stats
|
||||||
|
- name: Save ccache
|
||||||
|
if: inputs.platform-files && !inputs.cache-readonly
|
||||||
|
uses: actions/cache/save@v3
|
||||||
|
with:
|
||||||
|
path: ~/.cache/ccache
|
||||||
|
key: linux-gcc-${{ inputs.gcc-ver }}-${{ inputs.cache-id }}-${{ github.sha }}
|
||||||
|
- name: Format artifact name
|
||||||
|
if: inputs.artifact-name
|
||||||
|
id: artifactname
|
||||||
|
run: |
|
||||||
|
if test "false" = "${{ inputs.append-date-and-hash }}"; then
|
||||||
|
echo name=${{ inputs.artifact-name }} >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo name=${{ inputs.artifact-name }}-$(date +%Y%m%d)-$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
- name: Prep artifact
|
||||||
|
if: inputs.artifact-name
|
||||||
|
run: |
|
||||||
|
cd build/image
|
||||||
|
tar cjf ../../${{ steps.artifactname.outputs.name }}.tar.bz2 .
|
||||||
|
- name: Upload artifact
|
||||||
|
if: inputs.artifact-name
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ steps.artifactname.outputs.name }}
|
||||||
|
path: ${{ steps.artifactname.outputs.name }}.tar.bz2
|
@ -0,0 +1,135 @@
|
|||||||
|
name: Build win64
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
dfhack_ref:
|
||||||
|
type: string
|
||||||
|
scripts_ref:
|
||||||
|
type: string
|
||||||
|
structures_ref:
|
||||||
|
type: string
|
||||||
|
artifact-name:
|
||||||
|
type: string
|
||||||
|
append-date-and-hash:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
cache-id:
|
||||||
|
type: string
|
||||||
|
default: ''
|
||||||
|
cache-readonly:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
platform-files:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
common-files:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
docs:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
html:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
stonesense:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
tests:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
xml-dump-type-sizes:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
launchdf:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-win64:
|
||||||
|
name: Build win64
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install ccache
|
||||||
|
- name: Clone DFHack
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ inputs.dfhack_ref && github.repository || 'DFHack/dfhack' }}
|
||||||
|
ref: ${{ inputs.dfhack_ref }}
|
||||||
|
submodules: true
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Clone scripts
|
||||||
|
if: inputs.scripts_ref
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ inputs.scripts_ref && github.repository || 'DFHack/scripts' }}
|
||||||
|
ref: ${{ inputs.scripts_ref }}
|
||||||
|
path: scripts
|
||||||
|
- name: Clone structures
|
||||||
|
if: inputs.structures_ref
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ inputs.structures_ref && github.repository || 'DFHack/df-structures' }}
|
||||||
|
ref: ${{ inputs.structures_ref }}
|
||||||
|
path: library/xml
|
||||||
|
- name: Get 3rd party SDKs
|
||||||
|
if: inputs.launchdf
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: DFHack/3rdparty
|
||||||
|
ref: main
|
||||||
|
ssh-key: ${{ secrets.DFHACK_3RDPARTY_TOKEN }}
|
||||||
|
path: depends/steam
|
||||||
|
- name: Fetch ccache
|
||||||
|
if: inputs.platform-files
|
||||||
|
uses: actions/cache/restore@v3
|
||||||
|
with:
|
||||||
|
path: build/win64-cross/ccache
|
||||||
|
key: win-msvc-${{ inputs.cache-id }}-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
win-msvc-${{ inputs.cache-id }}
|
||||||
|
win-msvc
|
||||||
|
- name: Cross-compile
|
||||||
|
env:
|
||||||
|
CMAKE_EXTRA_ARGS: -DBUILD_LIBRARY=${{ inputs.platform-files }} -DBUILD_STONESENSE:BOOL=${{ inputs.stonesense }} -DBUILD_DOCS:BOOL=${{ inputs.docs }} -DBUILD_DOCS_NO_HTML:BOOL=${{ !inputs.html }} -DINSTALL_DATA_FILES:BOOL=${{ inputs.common-files }} -DINSTALL_SCRIPTS:BOOL=${{ inputs.common-files }} -DBUILD_DFLAUNCH:BOOL=${{ inputs.launchdf }} -DBUILD_TESTS:BOOL=${{ inputs.tests }} -DBUILD_XMLDUMP:BOOL=${{ inputs.xml-dump-type-sizes }} ${{ inputs.xml-dump-type-sizes && '-DINSTALL_XMLDUMP:BOOL=1' || '' }}
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
bash -x build-win64-from-linux.sh
|
||||||
|
- name: Finalize cache
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
ccache -d win64-cross/ccache --show-stats --verbose
|
||||||
|
ccache -d win64-cross/ccache --max-size 150M
|
||||||
|
ccache -d win64-cross/ccache --cleanup
|
||||||
|
ccache -d win64-cross/ccache --max-size 500M
|
||||||
|
ccache -d win64-cross/ccache --zero-stats
|
||||||
|
- name: Save ccache
|
||||||
|
if: inputs.platform-files && !inputs.cache-readonly
|
||||||
|
uses: actions/cache/save@v3
|
||||||
|
with:
|
||||||
|
path: build/win64-cross/ccache
|
||||||
|
key: win-msvc-${{ inputs.cache-id }}-${{ github.sha }}
|
||||||
|
- name: Format artifact name
|
||||||
|
if: inputs.artifact-name
|
||||||
|
id: artifactname
|
||||||
|
run: |
|
||||||
|
if test "false" = "${{ inputs.append-date-and-hash }}"; then
|
||||||
|
echo name=${{ inputs.artifact-name }} >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo name=${{ inputs.artifact-name }}-$(date +%Y%m%d)-$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
- name: Prep artifact
|
||||||
|
if: inputs.artifact-name
|
||||||
|
run: |
|
||||||
|
cd build/win64-cross/output
|
||||||
|
tar cjf ../../../${{ steps.artifactname.outputs.name }}.tar.bz2 .
|
||||||
|
- name: Upload artifact
|
||||||
|
if: inputs.artifact-name
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ steps.artifactname.outputs.name }}
|
||||||
|
path: ${{ steps.artifactname.outputs.name }}.tar.bz2
|
@ -1,35 +0,0 @@
|
|||||||
name: Buildmaster rebuild
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
pull_request:
|
|
||||||
description: Pull request ID
|
|
||||||
type: string
|
|
||||||
required: true # remove if we support commit rebuilds later
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
rebuild:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
name: Trigger Buildmaster
|
|
||||||
steps:
|
|
||||||
- name: Set up Python 3
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: 3
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
pip install requests
|
|
||||||
- name: Clone DFHack
|
|
||||||
uses: actions/checkout@v1
|
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
submodules: false
|
|
||||||
- name: Run
|
|
||||||
env:
|
|
||||||
DFHACK_BUILDMASTER_WEBHOOK_URL: ${{ secrets.DFHACK_BUILDMASTER_WEBHOOK_URL }}
|
|
||||||
DFHACK_BUILDMASTER_WEBHOOK_SECRET: ${{ secrets.DFHACK_BUILDMASTER_WEBHOOK_SECRET }}
|
|
||||||
GITHUB_REPO: ${{ github.repository }}
|
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
|
||||||
run: |
|
|
||||||
python ci/buildmaster-rebuild-pr.py --pull-request ${{ github.event.inputs.pull_request }}
|
|
@ -0,0 +1,32 @@
|
|||||||
|
name: Clean up PR caches
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
pull_request_target:
|
||||||
|
types:
|
||||||
|
- closed
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
cleanup:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Cleanup
|
||||||
|
run: |
|
||||||
|
gh extension install actions/gh-actions-cache
|
||||||
|
|
||||||
|
REPO=${{ github.repository }}
|
||||||
|
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
|
||||||
|
|
||||||
|
echo "Fetching list of cache keys"
|
||||||
|
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH -L 100 | cut -f 1)
|
||||||
|
|
||||||
|
set +e
|
||||||
|
echo "Deleting caches..."
|
||||||
|
for cacheKey in $cacheKeysForPR; do
|
||||||
|
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
|
||||||
|
done
|
||||||
|
echo "Done"
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
@ -0,0 +1,81 @@
|
|||||||
|
name: Deploy to GitHub
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '*-r*'
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
ref:
|
||||||
|
description: Tag
|
||||||
|
required: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
package:
|
||||||
|
uses: ./.github/workflows/package.yml
|
||||||
|
with:
|
||||||
|
dfhack_ref: ${{ github.event.inputs && github.event.inputs.ref || github.event.ref }}
|
||||||
|
append-date-and-hash: false
|
||||||
|
cache-readonly: true
|
||||||
|
launchdf: true
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
|
create-update-release:
|
||||||
|
name: Draft GitHub release
|
||||||
|
needs: package
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
steps:
|
||||||
|
- name: Install doc dependencies
|
||||||
|
run: pip install 'sphinx<4.4.0'
|
||||||
|
- name: Clone DFHack
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event.inputs && github.event.inputs.ref || github.event.ref }}
|
||||||
|
submodules: true
|
||||||
|
- name: Get tag
|
||||||
|
id: gettag
|
||||||
|
run: |
|
||||||
|
TAG=$(git describe --tags --abbrev=0 --exact-match)
|
||||||
|
echo name="$TAG" >> $GITHUB_OUTPUT
|
||||||
|
echo type=$(echo "$TAG" | egrep 'r[0-9]+$' && echo "release" || echo "prerelease") >> $GITHUB_OUTPUT
|
||||||
|
- name: Generate release text
|
||||||
|
run: |
|
||||||
|
python docs/gen_changelog.py -a
|
||||||
|
CHANGELOG_FILE=docs/changelogs/${{ steps.gettag.outputs.name }}-github.txt
|
||||||
|
if ! test -f $CHANGELOG_FILE; then CHANGELOG_FILE=docs/changelogs/future-github.txt; fi
|
||||||
|
TOKEN_LINE=$(grep -Fhne '%RELEASE_NOTES%' .github/release_template.md | sed 's/:.*//')
|
||||||
|
head -n $((TOKEN_LINE - 1)) .github/release_template.md > release_body.md
|
||||||
|
CHANGELOG_LINES=$(wc -l <$CHANGELOG_FILE)
|
||||||
|
tail -n $((CHANGELOG_LINES - 4)) $CHANGELOG_FILE >> release_body.md
|
||||||
|
tail -n 1 .github/release_template.md >> release_body.md
|
||||||
|
cat release_body.md
|
||||||
|
- name: Stage release
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
- name: Prep artifacts
|
||||||
|
run: |
|
||||||
|
mkdir artifacts
|
||||||
|
cd dfhack-windows64-build
|
||||||
|
tar xjf dfhack-windows64-build.tar.bz2
|
||||||
|
rm dfhack-windows64-build.tar.bz2
|
||||||
|
zip -qr ../artifacts/dfhack-${{ steps.gettag.outputs.name }}-Windows-64bit.zip .
|
||||||
|
cd ../dfhack-linux64-build
|
||||||
|
mv dfhack-linux64-build.tar.bz2 ../artifacts/dfhack-${{ steps.gettag.outputs.name }}-Linux-64bit.tar.bz2
|
||||||
|
- name: Create or update GitHub release
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
artifacts: "artifacts/dfhack-*"
|
||||||
|
bodyFile: "release_body.md"
|
||||||
|
allowUpdates: true
|
||||||
|
artifactErrorsFailBuild: true
|
||||||
|
draft: true
|
||||||
|
name: "DFHack ${{ steps.gettag.outputs.name }}"
|
||||||
|
omitBodyDuringUpdate: true
|
||||||
|
omitDraftDuringUpdate: true
|
||||||
|
omitNameDuringUpdate: true
|
||||||
|
omitPrereleaseDuringUpdate: true
|
||||||
|
prerelease: ${{ steps.gettag.outputs.type == 'prerelease' }}
|
||||||
|
replacesArtifacts: true
|
||||||
|
tag: ${{ steps.gettag.outputs.name }}
|
@ -0,0 +1,44 @@
|
|||||||
|
name: Lint
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
dfhack_ref:
|
||||||
|
type: string
|
||||||
|
scripts_ref:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Install Lua
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install lua5.3
|
||||||
|
- name: Clone DFHack
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ inputs.dfhack_ref && github.repository || 'DFHack/dfhack' }}
|
||||||
|
ref: ${{ inputs.dfhack_ref }}
|
||||||
|
- name: Get scripts submodule ref
|
||||||
|
if: '!inputs.scripts_ref'
|
||||||
|
id: scriptssubmoduleref
|
||||||
|
run: echo ref=$(git submodule | fgrep scripts | cut -c2-41) >> $GITHUB_OUTPUT
|
||||||
|
- name: Clone scripts
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ inputs.scripts_ref && github.repository || 'DFHack/scripts' }}
|
||||||
|
ref: ${{ inputs.scripts_ref || steps.scriptssubmoduleref.outputs.ref }}
|
||||||
|
path: scripts
|
||||||
|
- name: Check whitespace
|
||||||
|
run: python ci/lint.py --git-only --github-actions
|
||||||
|
- name: Check Authors.rst
|
||||||
|
if: always()
|
||||||
|
run: python ci/authors-rst.py
|
||||||
|
- name: Check for missing documentation
|
||||||
|
if: always()
|
||||||
|
run: python ci/script-docs.py
|
||||||
|
- name: Check Lua syntax
|
||||||
|
if: always()
|
||||||
|
run: python ci/script-syntax.py --ext=lua --cmd="luac5.3 -p" --github-actions
|
@ -0,0 +1,52 @@
|
|||||||
|
name: Package
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
dfhack_ref:
|
||||||
|
type: string
|
||||||
|
scripts_ref:
|
||||||
|
type: string
|
||||||
|
structures_ref:
|
||||||
|
type: string
|
||||||
|
append-date-and-hash:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
cache-readonly:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
launchdf:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
package-win64:
|
||||||
|
name: Windows
|
||||||
|
uses: ./.github/workflows/build-windows.yml
|
||||||
|
with:
|
||||||
|
dfhack_ref: ${{ inputs.dfhack_ref }}
|
||||||
|
scripts_ref: ${{ inputs.scripts_ref }}
|
||||||
|
structures_ref: ${{ inputs.structures_ref }}
|
||||||
|
artifact-name: dfhack-windows64-build
|
||||||
|
append-date-and-hash: ${{ inputs.append-date-and-hash }}
|
||||||
|
cache-id: release
|
||||||
|
cache-readonly: ${{ inputs.cache-readonly }}
|
||||||
|
stonesense: true
|
||||||
|
docs: true
|
||||||
|
launchdf: ${{ inputs.launchdf }}
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
|
package-linux:
|
||||||
|
name: Linux
|
||||||
|
uses: ./.github/workflows/build-linux.yml
|
||||||
|
with:
|
||||||
|
dfhack_ref: ${{ inputs.dfhack_ref }}
|
||||||
|
scripts_ref: ${{ inputs.scripts_ref }}
|
||||||
|
structures_ref: ${{ inputs.structures_ref }}
|
||||||
|
artifact-name: dfhack-linux64-build
|
||||||
|
append-date-and-hash: ${{ inputs.append-date-and-hash }}
|
||||||
|
cache-id: release
|
||||||
|
cache-readonly: ${{ inputs.cache-readonly }}
|
||||||
|
stonesense: true
|
||||||
|
docs: true
|
||||||
|
secrets: inherit
|
@ -0,0 +1,92 @@
|
|||||||
|
name: Deploy to Steam
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '*-r*'
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
ref:
|
||||||
|
description: Branch or commit hash
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
default: develop
|
||||||
|
version:
|
||||||
|
description: Version or build description
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
release_channel:
|
||||||
|
description: Steam release channel
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
default: staging
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
depot-common:
|
||||||
|
name: Common depot files
|
||||||
|
uses: ./.github/workflows/build-linux.yml
|
||||||
|
with:
|
||||||
|
artifact-name: common-depot
|
||||||
|
dfhack_ref: ${{ github.event.inputs && github.event.inputs.ref || github.event.ref }}
|
||||||
|
platform-files: false
|
||||||
|
docs: true
|
||||||
|
stonesense: true
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
|
depot-win64:
|
||||||
|
name: Windows depot files
|
||||||
|
uses: ./.github/workflows/build-windows.yml
|
||||||
|
with:
|
||||||
|
artifact-name: win64-depot
|
||||||
|
dfhack_ref: ${{ github.event.inputs && github.event.inputs.ref || github.event.ref }}
|
||||||
|
cache-id: release
|
||||||
|
cache-readonly: true
|
||||||
|
common-files: false
|
||||||
|
stonesense: true
|
||||||
|
launchdf: true
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
|
depot-linux64:
|
||||||
|
name: Linux depot files
|
||||||
|
uses: ./.github/workflows/build-linux.yml
|
||||||
|
with:
|
||||||
|
artifact-name: linux64-depot
|
||||||
|
dfhack_ref: ${{ github.event.inputs && github.event.inputs.ref || github.event.ref }}
|
||||||
|
cache-id: release
|
||||||
|
cache-readonly: true
|
||||||
|
common-files: false
|
||||||
|
stonesense: true
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
|
deploy-to-steam:
|
||||||
|
name: Deploy to Steam
|
||||||
|
needs:
|
||||||
|
- depot-common
|
||||||
|
- depot-win64
|
||||||
|
- depot-linux64
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
concurrency: steam
|
||||||
|
steps:
|
||||||
|
- name: Download depot files
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
- name: Stage depot files
|
||||||
|
run: |
|
||||||
|
for name in common win64 linux64; do
|
||||||
|
cd ${name}-depot
|
||||||
|
tar xjf ${name}-depot.tar.bz2
|
||||||
|
rm ${name}-depot.tar.bz2
|
||||||
|
cd ..
|
||||||
|
done
|
||||||
|
- name: Steam deploy
|
||||||
|
uses: game-ci/steam-deploy@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.STEAM_USERNAME }}
|
||||||
|
configVdf: ${{ secrets.STEAM_CONFIG_VDF}}
|
||||||
|
appId: 2346660
|
||||||
|
buildDescription: ${{ github.event.inputs && github.event.inputs.version || github.ref_name }}
|
||||||
|
rootPath: .
|
||||||
|
depot1Path: common-depot
|
||||||
|
depot2Path: win64-depot
|
||||||
|
depot3Path: linux64-depot
|
||||||
|
releaseBranch: ${{ github.event.inputs && github.event.inputs.release_channel || 'staging' }}
|
@ -1,57 +0,0 @@
|
|||||||
name: Deploy to Steam
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
commit_hash:
|
|
||||||
description: Commit hash
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
version:
|
|
||||||
description: Version
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
release_channel:
|
|
||||||
description: Release channel
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
default: beta
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy-to-steam:
|
|
||||||
name: Deploy to Steam
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
steps:
|
|
||||||
- name: Clone DFHack
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
fetch-depth: 0
|
|
||||||
ref: ${{ github.event.inputs.commit_hash }}
|
|
||||||
- name: Fetch ccache
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: build/win64-cross/ccache
|
|
||||||
key: ccache-win64-cross-msvc-${{ github.event.inputs.commit_hash }}
|
|
||||||
restore-keys: |
|
|
||||||
ccache-win64-cross-msvc-develop-${{ github.event.inputs.commit_hash }}
|
|
||||||
ccache-win64-cross-msvc
|
|
||||||
- name: Cross-compile win64 artifacts
|
|
||||||
env:
|
|
||||||
CMAKE_EXTRA_ARGS: '-DBUILD_STONESENSE:BOOL=1'
|
|
||||||
run: |
|
|
||||||
cd build
|
|
||||||
bash -x build-win64-from-linux.sh
|
|
||||||
- name: Steam deploy
|
|
||||||
uses: game-ci/steam-deploy@v2
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.STEAM_USERNAME }}
|
|
||||||
password: ${{ secrets.STEAM_PASSWORD }}
|
|
||||||
configVdf: ${{ secrets.STEAM_CONFIG_VDF}}
|
|
||||||
ssfnFileName: ${{ secrets.STEAM_SSFN_FILE_NAME }}
|
|
||||||
ssfnFileContents: ${{ secrets.STEAM_SSFN_FILE_CONTENTS }}
|
|
||||||
appId: 2346660
|
|
||||||
buildDescription: ${{ github.event.inputs.version }}
|
|
||||||
rootPath: build
|
|
||||||
depot1Path: win64-cross/output
|
|
||||||
releaseBranch: ${{ github.event.inputs.release_channel }}
|
|
@ -0,0 +1,146 @@
|
|||||||
|
name: Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
dfhack_ref:
|
||||||
|
type: string
|
||||||
|
scripts_ref:
|
||||||
|
type: string
|
||||||
|
structures_ref:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-windows:
|
||||||
|
name: Windows MSVC
|
||||||
|
uses: ./.github/workflows/build-windows.yml
|
||||||
|
with:
|
||||||
|
dfhack_ref: ${{ inputs.dfhack_ref }}
|
||||||
|
scripts_ref: ${{ inputs.scripts_ref }}
|
||||||
|
structures_ref: ${{ inputs.structures_ref }}
|
||||||
|
artifact-name: test-msvc
|
||||||
|
cache-id: test
|
||||||
|
docs: true
|
||||||
|
html: false
|
||||||
|
tests: true
|
||||||
|
|
||||||
|
build-linux:
|
||||||
|
name: Linux gcc-${{ matrix.gcc }}
|
||||||
|
uses: ./.github/workflows/build-linux.yml
|
||||||
|
with:
|
||||||
|
dfhack_ref: ${{ inputs.dfhack_ref }}
|
||||||
|
scripts_ref: ${{ inputs.scripts_ref }}
|
||||||
|
structures_ref: ${{ inputs.structures_ref }}
|
||||||
|
artifact-name: test-gcc-${{ matrix.gcc }}
|
||||||
|
cache-id: test
|
||||||
|
stonesense: ${{ matrix.plugins == 'all' }}
|
||||||
|
extras: ${{ matrix.plugins == 'all' }}
|
||||||
|
docs: true
|
||||||
|
html: false
|
||||||
|
tests: true
|
||||||
|
gcc-ver: ${{ matrix.gcc }}
|
||||||
|
secrets: inherit
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- gcc: 10
|
||||||
|
plugins: "default"
|
||||||
|
- gcc: 12
|
||||||
|
plugins: "all"
|
||||||
|
|
||||||
|
run-tests:
|
||||||
|
name: Test (${{ matrix.os }}, ${{ matrix.compiler }}, ${{ matrix.plugins }} plugins, ${{ matrix.config }} config)
|
||||||
|
needs:
|
||||||
|
- build-windows
|
||||||
|
- build-linux
|
||||||
|
runs-on: ${{ matrix.os }}-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- os: windows
|
||||||
|
compiler: msvc
|
||||||
|
plugins: "default"
|
||||||
|
config: "default"
|
||||||
|
- os: windows
|
||||||
|
compiler: msvc
|
||||||
|
plugins: "default"
|
||||||
|
config: "empty"
|
||||||
|
- os: ubuntu
|
||||||
|
compiler: gcc-10
|
||||||
|
plugins: "default"
|
||||||
|
config: "default"
|
||||||
|
- os: ubuntu
|
||||||
|
compiler: gcc-12
|
||||||
|
plugins: "all"
|
||||||
|
config: "default"
|
||||||
|
steps:
|
||||||
|
- name: Set env
|
||||||
|
shell: bash
|
||||||
|
run: echo "DF_FOLDER=DF" >> $GITHUB_ENV
|
||||||
|
- name: Install dependencies
|
||||||
|
if: matrix.os == 'ubuntu'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install \
|
||||||
|
libsdl2-2.0-0 \
|
||||||
|
libsdl2-image-2.0-0
|
||||||
|
- name: Clone DFHack
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ inputs.dfhack_ref && github.repository || 'DFHack/dfhack' }}
|
||||||
|
ref: ${{ inputs.dfhack_ref }}
|
||||||
|
- name: Detect DF version
|
||||||
|
shell: bash
|
||||||
|
run: echo DF_VERSION="$(sh ci/get-df-version.sh)" >> $GITHUB_ENV
|
||||||
|
- name: Fetch DF cache
|
||||||
|
id: restore-df
|
||||||
|
uses: actions/cache/restore@v3
|
||||||
|
with:
|
||||||
|
path: ${{ env.DF_FOLDER }}
|
||||||
|
key: df-${{ matrix.os }}-${{ env.DF_VERSION }}-${{ hashFiles('ci/download-df.sh') }}
|
||||||
|
- name: Download DF
|
||||||
|
if: steps.restore-df.outputs.cache-hit != 'true'
|
||||||
|
run: sh ci/download-df.sh ${{ env.DF_FOLDER }} ${{ matrix.os }} ${{ env.DF_VERSION }}
|
||||||
|
- name: Save DF cache
|
||||||
|
if: steps.restore-df.outputs.cache-hit != 'true'
|
||||||
|
uses: actions/cache/save@v3
|
||||||
|
with:
|
||||||
|
path: ${{ env.DF_FOLDER }}
|
||||||
|
key: df-${{ matrix.os }}-${{ env.DF_VERSION }}-${{ hashFiles('ci/download-df.sh') }}
|
||||||
|
- name: Install blank DFHack init scripts
|
||||||
|
if: matrix.config == 'empty'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir -p ${{ env.DF_FOLDER }}/dfhack-config/init
|
||||||
|
cd data/dfhack-config/init
|
||||||
|
for fname in *.init; do touch ../../../${{ env.DF_FOLDER }}/dfhack-config/init/$fname; done
|
||||||
|
- name: Download DFHack
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: test-${{ matrix.compiler }}
|
||||||
|
- name: Install DFHack
|
||||||
|
shell: bash
|
||||||
|
run: tar xjf test-${{ matrix.compiler }}.tar.bz2 -C ${{ env.DF_FOLDER }}
|
||||||
|
- name: Start X server
|
||||||
|
if: matrix.os == 'ubuntu'
|
||||||
|
run: Xvfb :0 -screen 0 1600x1200x24 &
|
||||||
|
- name: Run lua tests
|
||||||
|
timeout-minutes: 10
|
||||||
|
env:
|
||||||
|
DISPLAY: :0
|
||||||
|
TERM: xterm-256color
|
||||||
|
run: python ci/run-tests.py --keep-status "${{ env.DF_FOLDER }}"
|
||||||
|
- name: Check RPC interface
|
||||||
|
run: python ci/check-rpc.py "${{ env.DF_FOLDER }}/dfhack-rpc.txt"
|
||||||
|
- name: Upload test artifacts
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
name: test-output-${{ matrix.compiler }}-${{ matrix.plugins }}_plugins-${{ matrix.config }}_config
|
||||||
|
path: |
|
||||||
|
${{ env.DF_FOLDER }}/dfhack-rpc.txt
|
||||||
|
${{ env.DF_FOLDER }}/test*.json
|
||||||
|
${{ env.DF_FOLDER }}/*.log
|
@ -1,4 +0,0 @@
|
|||||||
call "%VS140COMNTOOLS%vsvars32.bat"
|
|
||||||
cd VC2015_32
|
|
||||||
msbuild /m /p:Platform=Win32 /p:Configuration=RelWithDebInfo ALL_BUILD.vcxproj
|
|
||||||
cd ..
|
|
@ -1,5 +0,0 @@
|
|||||||
call "%VS140COMNTOOLS%vsvars32.bat"
|
|
||||||
cd VC2015_32
|
|
||||||
msbuild /m /p:Platform=Win32 /p:Configuration=Release ALL_BUILD.vcxproj
|
|
||||||
cd ..
|
|
||||||
pause
|
|
@ -1,6 +0,0 @@
|
|||||||
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
|
||||||
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
|
||||||
mkdir VC2015_32
|
|
||||||
cd VC2015_32
|
|
||||||
echo generating a build folder
|
|
||||||
cmake ..\..\.. -G"Visual Studio 14" -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEVEL=1 -DBUILD_DEV_PLUGINS=1 -DBUILD_STONESENSE=1
|
|
@ -1,7 +0,0 @@
|
|||||||
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
|
||||||
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
|
||||||
mkdir VC2015_32
|
|
||||||
cd VC2015_32
|
|
||||||
echo Pre-generating a build folder
|
|
||||||
cmake ..\..\.. -G"Visual Studio 14" -DCMAKE_INSTALL_PREFIX="%_DF_PATH%"
|
|
||||||
cmake-gui .
|
|
@ -1,6 +0,0 @@
|
|||||||
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
|
||||||
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
|
||||||
mkdir VC2015_32
|
|
||||||
cd VC2015_32
|
|
||||||
echo generating a build folder
|
|
||||||
cmake ..\..\.. -G"Visual Studio 14" -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEVEL=0 -DBUILD_DEV_PLUGINS=0 -DBUILD_STONESENSE=0
|
|
@ -1,6 +0,0 @@
|
|||||||
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
|
||||||
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
|
||||||
mkdir VC2015_32
|
|
||||||
cd VC2015_32
|
|
||||||
echo generating a build folder
|
|
||||||
cmake ..\..\.. -G"Visual Studio 14" -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEVEL=0 -DBUILD_DEV_PLUGINS=0 -DBUILD_DOCS=1 -DBUILD_STONESENSE=1
|
|
@ -1,4 +0,0 @@
|
|||||||
call "%VS140COMNTOOLS%vsvars32.bat"
|
|
||||||
cd VC2015_32
|
|
||||||
msbuild /m /p:Platform=Win32 /p:Configuration=RelWithDebInfo INSTALL.vcxproj
|
|
||||||
cd ..
|
|
@ -1,4 +0,0 @@
|
|||||||
call "%VS140COMNTOOLS%vsvars32.bat"
|
|
||||||
cd VC2015_32
|
|
||||||
msbuild /m /p:Platform=Win32 /p:Configuration=Release INSTALL.vcxproj
|
|
||||||
cd ..
|
|
@ -1,6 +0,0 @@
|
|||||||
@echo off
|
|
||||||
call "%VS140COMNTOOLS%vsvars32.bat"
|
|
||||||
cd VC2015_32
|
|
||||||
msbuild /m /p:Platform=Win32 /p:Configuration=RelWithDebInfo PACKAGE.vcxproj
|
|
||||||
cd ..
|
|
||||||
exit %ERRORLEVEL%
|
|
@ -1,5 +0,0 @@
|
|||||||
@echo off
|
|
||||||
call "%VS140COMNTOOLS%vsvars32.bat"
|
|
||||||
cd VC2015_32
|
|
||||||
msbuild /m /p:Platform=Win32 /p:Configuration=Release PACKAGE.vcxproj
|
|
||||||
cd ..
|
|
@ -1,42 +0,0 @@
|
|||||||
Option Explicit
|
|
||||||
|
|
||||||
Const BIF_returnonlyfsdirs = &H0001
|
|
||||||
|
|
||||||
Dim wsh, objDlg, objF, fso, spoFile, args
|
|
||||||
|
|
||||||
Set fso = CreateObject("Scripting.FileSystemObject")
|
|
||||||
|
|
||||||
set args = Wscript.Arguments
|
|
||||||
if args.count > 0 Then
|
|
||||||
Set ObjF = fso.GetFolder(args.Item(0))
|
|
||||||
else
|
|
||||||
Set objDlg = WScript.CreateObject("Shell.Application")
|
|
||||||
Set objF = objDlg.BrowseForFolder (&H0,"Select your DF folder", BIF_returnonlyfsdirs)
|
|
||||||
if IsValue(objF) Then
|
|
||||||
set ObjF = objF.self
|
|
||||||
end if
|
|
||||||
end if
|
|
||||||
|
|
||||||
If fso.FileExists("DF_PATH.txt") Then
|
|
||||||
fso.DeleteFile "DF_PATH.txt", True
|
|
||||||
End If
|
|
||||||
|
|
||||||
If IsValue(objF) Then
|
|
||||||
If InStr(1, TypeName(objF), "Folder") > 0 Then
|
|
||||||
Set spoFile = fso.CreateTextFile("DF_PATH.txt", True)
|
|
||||||
spoFile.WriteLine(objF.Path)
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
Function IsValue(obj)
|
|
||||||
' Check whether the value has been returned.
|
|
||||||
Dim tmp
|
|
||||||
On Error Resume Next
|
|
||||||
tmp = " " & obj
|
|
||||||
If Err <> 0 Then
|
|
||||||
IsValue = False
|
|
||||||
Else
|
|
||||||
IsValue = True
|
|
||||||
End If
|
|
||||||
On Error GoTo 0
|
|
||||||
End Function
|
|
@ -1,4 +1,4 @@
|
|||||||
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
||||||
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
||||||
echo generating a build folder
|
echo generating a build folder
|
||||||
cmake ..\.. -G"Visual Studio 17 2022" -A x64 -B VC2022 -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEVEL=1 -DBUILD_DEV_PLUGINS=1 -DBUILD_STONESENSE=1
|
cmake ..\.. -G"Visual Studio 17 2022" -A x64 -B VC2022 -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEV_PLUGINS=1 -DBUILD_STONESENSE=1
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
||||||
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
||||||
echo generating a build folder
|
echo generating a build folder
|
||||||
cmake ..\.. -G"Visual Studio 17 2022" -A x64 -B VC2022 -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEVEL=0 -DBUILD_DEV_PLUGINS=0 -DBUILD_STONESENSE=0
|
cmake ..\.. -G"Visual Studio 17 2022" -A x64 -B VC2022 -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEV_PLUGINS=0 -DBUILD_STONESENSE=0
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
||||||
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
||||||
echo generating a build folder
|
echo generating a build folder
|
||||||
cmake ..\.. -G"Visual Studio 17 2022" -A x64 -B VC2022 -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEVEL=0 -DBUILD_DEV_PLUGINS=0 -DBUILD_DOCS=1 -DBUILD_STONESENSE=1
|
cmake ..\.. -G"Visual Studio 17 2022" -A x64 -B VC2022 -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEV_PLUGINS=0 -DBUILD_DOCS=1 -DBUILD_STONESENSE=1
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
||||||
|
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
||||||
|
echo generating a build folder
|
||||||
|
cmake ..\.. -G"Visual Studio 17 2022" -A x64 -B VC2022 -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_DEV_PLUGINS=1 -DBUILD_STONESENSE=1 -DBUILD_DFLAUNCH=1
|
@ -1,4 +1,4 @@
|
|||||||
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
IF EXIST DF_PATH.txt SET /P _DF_PATH=<DF_PATH.txt
|
||||||
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
IF NOT EXIST DF_PATH.txt SET _DF_PATH=%CD%\DF
|
||||||
echo generating a build folder
|
echo generating a build folder
|
||||||
cmake ..\.. -G"Visual Studio 17 2022" -A x64 -B VC2022 -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_SUPPORTED=0 -DBUILD_DEVEL=0 -DBUILD_DEV_PLUGINS=0 -DBUILD_STONESENSE=0 -DBUILD_SIZECHECK=1
|
cmake ..\.. -G"Visual Studio 17 2022" -A x64 -B VC2022 -DCMAKE_INSTALL_PREFIX="%_DF_PATH%" -DBUILD_SUPPORTED=0 -DBUILD_DEV_PLUGINS=0 -DBUILD_STONESENSE=0 -DBUILD_SIZECHECK=1
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import hashlib
|
|
||||||
import hmac
|
|
||||||
import json
|
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
import uuid
|
|
||||||
|
|
||||||
import requests
|
|
||||||
|
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
|
||||||
|
|
||||||
|
|
||||||
def get_required_env(name):
|
|
||||||
value = os.environ.get(name)
|
|
||||||
if not value:
|
|
||||||
raise ValueError(f'Expected environment variable {name!r} to be non-empty')
|
|
||||||
return value
|
|
||||||
|
|
||||||
|
|
||||||
def make_sig(body, secret, algorithm):
|
|
||||||
return hmac.new(secret.encode(), body.encode(), algorithm).hexdigest()
|
|
||||||
|
|
||||||
|
|
||||||
webhook_url = get_required_env('DFHACK_BUILDMASTER_WEBHOOK_URL')
|
|
||||||
secret = get_required_env('DFHACK_BUILDMASTER_WEBHOOK_SECRET')
|
|
||||||
api_token = get_required_env('GITHUB_TOKEN')
|
|
||||||
repo = get_required_env('GITHUB_REPO')
|
|
||||||
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
target_group = parser.add_mutually_exclusive_group(required=True)
|
|
||||||
target_group.add_argument('--pull-request', type=int, help='Pull request to rebuild')
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
|
|
||||||
response = requests.get(
|
|
||||||
f'https://api.github.com/repos/{repo}/pulls/{args.pull_request}',
|
|
||||||
headers={
|
|
||||||
'Authorization': f'Bearer {api_token}',
|
|
||||||
},
|
|
||||||
)
|
|
||||||
response.raise_for_status()
|
|
||||||
pull_request_data = response.json()
|
|
||||||
|
|
||||||
|
|
||||||
body = json.dumps({
|
|
||||||
'action': 'synchronize',
|
|
||||||
'number': args.pull_request,
|
|
||||||
'pull_request': pull_request_data,
|
|
||||||
})
|
|
||||||
|
|
||||||
response = requests.post(
|
|
||||||
'https://lubar-webhook-proxy.appspot.com/github/buildmaster',
|
|
||||||
headers={
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
'User-Agent': 'GitHub-Hookshot/' + requests.utils.default_user_agent(),
|
|
||||||
'X-GitHub-Delivery': 'dfhack-rebuild-' + str(uuid.uuid4()),
|
|
||||||
'X-GitHub-Event': 'pull_request',
|
|
||||||
'X-Hub-Signature': 'sha1=' + make_sig(body, secret, hashlib.sha1),
|
|
||||||
'X-Hub-Signature-256': 'sha256=' + make_sig(body, secret, hashlib.sha256),
|
|
||||||
},
|
|
||||||
data=body,
|
|
||||||
timeout=15,
|
|
||||||
)
|
|
||||||
|
|
||||||
print(response)
|
|
||||||
print(str(response.text))
|
|
||||||
response.raise_for_status()
|
|
@ -1,52 +1,53 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
DF_FOLDER=$1
|
||||||
|
OS_TARGET=$2
|
||||||
|
DF_VERSION=$3
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
df_tardest="df.tar.bz2"
|
minor=$(echo "$DF_VERSION" | cut -d. -f1)
|
||||||
save_tardest="test_save.tgz"
|
patch=$(echo "$DF_VERSION" | cut -d. -f2)
|
||||||
|
df_url="https://www.bay12games.com/dwarves/df_${minor}_${patch}"
|
||||||
cd "$(dirname "$0")"
|
if test "$OS_TARGET" = "windows"; then
|
||||||
echo "DF_VERSION: $DF_VERSION"
|
WGET="C:/msys64/usr/bin/wget.exe"
|
||||||
echo "DF_FOLDER: $DF_FOLDER"
|
df_url="${df_url}_win_s.zip"
|
||||||
mkdir -p "$DF_FOLDER"
|
df_archive_name="df.zip"
|
||||||
# back out of df_linux
|
df_extract_cmd="unzip -d ${DF_FOLDER}"
|
||||||
cd "$DF_FOLDER/.."
|
elif test "$OS_TARGET" = "ubuntu"; then
|
||||||
|
WGET=wget
|
||||||
if ! test -f "$df_tardest"; then
|
df_url="${df_url}_linux.tar.bz2"
|
||||||
minor=$(echo "$DF_VERSION" | cut -d. -f2)
|
df_archive_name="df.tar.bz2"
|
||||||
patch=$(echo "$DF_VERSION" | cut -d. -f3)
|
df_extract_cmd="tar -x -j -C ${DF_FOLDER} -f"
|
||||||
echo "Downloading DF $DF_VERSION"
|
else
|
||||||
while read url; do
|
echo "Unhandled OS target: ${OS_TARGET}"
|
||||||
echo "Attempting download: ${url}"
|
exit 1
|
||||||
if wget -v "$url" -O "$df_tardest"; then
|
fi
|
||||||
break
|
|
||||||
fi
|
if ! $WGET -v "$df_url" -O "$df_archive_name"; then
|
||||||
done <<URLS
|
echo "Failed to download DF from $df_url"
|
||||||
https://www.bay12games.com/dwarves/df_${minor}_${patch}_linux.tar.bz2
|
exit 1
|
||||||
https://files.dfhack.org/DF/${minor}.${patch}/df_${minor}_${patch}_linux.tar.bz2
|
fi
|
||||||
URLS
|
|
||||||
echo $df_tardest
|
md5sum "$df_archive_name"
|
||||||
if ! test -f "$df_tardest"; then
|
|
||||||
echo "DF failed to download: $df_tardest not found"
|
save_url="https://dffd.bay12games.com/download.php?id=15434&f=dreamfort.7z"
|
||||||
exit 1
|
save_archive_name="test_save.7z"
|
||||||
fi
|
save_extract_cmd="7z x -o${DF_FOLDER}/save"
|
||||||
|
|
||||||
echo "Downloading test save"
|
if ! $WGET -v "$save_url" -O "$save_archive_name"; then
|
||||||
#test_save_url="https://files.dfhack.org/DF/0.${minor}.${patch}/test_save.tgz"
|
echo "Failed to download test save from $save_url"
|
||||||
test_save_url="https://drive.google.com/uc?export=download&id=1XvYngl-DFONiZ9SD9OC4B2Ooecu8rPFz"
|
exit 1
|
||||||
if ! wget -v "$test_save_url" -O "$save_tardest"; then
|
|
||||||
echo "failed to download test save"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo $save_tardest
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf df_linux
|
md5sum "$save_archive_name"
|
||||||
mkdir -p df_linux/save
|
|
||||||
|
|
||||||
echo Extracting
|
echo Extracting
|
||||||
tar xf "$df_tardest" --strip-components=1 -C df_linux
|
mkdir -p ${DF_FOLDER}
|
||||||
tar xf "$save_tardest" -C df_linux/save
|
$df_extract_cmd "$df_archive_name"
|
||||||
|
$save_extract_cmd "$save_archive_name"
|
||||||
|
mv ${DF_FOLDER}/save/* ${DF_FOLDER}/save/region1
|
||||||
|
|
||||||
echo Done
|
echo Done
|
||||||
|
|
||||||
ls -l
|
ls -l
|
||||||
|
Before Width: | Height: | Size: 997 B After Width: | Height: | Size: 997 B |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 615 B |
After Width: | Height: | Size: 5.1 KiB |
Can't render this file because it has a wrong number of fields in line 38.
|
@ -1,70 +1,74 @@
|
|||||||
"#dig start(11; 12) 28 bedrooms, 3 tiles each (efficient layout)"
|
"#dig label(dig) start(12; 12) 28 bedrooms, 3 tiles each"
|
||||||
# see an image of this blueprint at https://i.imgur.com/XD7D4ux.png
|
|
||||||
, , , , , ,d, , , , , ,d, , , , , , , , ,#
|
,,,,,,,d,,,,,,d
|
||||||
, , , , , ,d, , , , , ,d, , , , , , , , ,#
|
,,,,,,,d,,,,,,d
|
||||||
, , , ,d, ,d, ,d, ,d, ,d, ,d, , , , , , ,#
|
,,,,,d,,d,,d,,d,,d,,d
|
||||||
, , , ,d, ,d, ,d, ,d, ,d, ,d, , , , , , ,#
|
,,,,,d,,d,,d,,d,,d,,d
|
||||||
, , , ,d,d,d,d,d, ,d,d,d, ,d, ,d,d,d, , ,#
|
,,,,,d,d,d,d,d,,d,d,d,,d,,d,d,d
|
||||||
, , , , , ,d, , , , , ,d,d, , ,d, , , , ,#
|
,,,,,,,d,,,,,,d,d,,,d
|
||||||
, ,d,d,d, ,d, ,d,d,d, ,d,d,d,d,d,d,d,d,d,#
|
,,,d,d,d,,d,,d,d,d,,d,d,d,d,d,d,d,d,d
|
||||||
, , , , ,d,d, , , ,d, ,d, , , ,d, , , , ,#
|
,,,,,,d,d,,,,d,,d,,,,d
|
||||||
d,d,d,d,d,d,d,d,d,d,d,d,d, ,d, ,d,d,d, , ,#
|
,d,d,d,d,d,d,d,d,d,d,d,d,d,,d,,d,d,d
|
||||||
, , , ,d, , , ,d,i,i,i,d, ,d, , , , , , ,#
|
,,,,,d,,,,d,~,~,~,d,,d
|
||||||
, ,d,d,d, ,d,d,d,i,i,i,d,d,d, ,d,d,d, , ,#
|
,,,d,d,d,,d,d,d,~,~,~,d,d,d,,d,d,d
|
||||||
, , , , , ,d, ,d,i,i,i,d, , , ,d, , , , ,#
|
,,,,,,,d,,d,~,~,~,d,,,,d
|
||||||
, ,d,d,d, ,d, ,d,d,d,d,d,d,d,d,d,d,d,d,d,#
|
,,,d,d,d,,d,,d,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
, , , ,d, , , ,d, ,d, , , ,d,d, , , , , ,#
|
,,,,,d,,,,d,,d,,,,d,d
|
||||||
d,d,d,d,d,d,d,d,d, ,d,d,d, ,d, ,d,d,d, , ,#
|
,d,d,d,d,d,d,d,d,d,,d,d,d,,d,,d,d,d
|
||||||
, , , ,d, , ,d,d, , , , , ,d, , , , , , ,#
|
,,,,,d,,,d,d,,,,,,d
|
||||||
, ,d,d,d, ,d, ,d,d,d, ,d,d,d,d,d, , , , ,#
|
,,,d,d,d,,d,,d,d,d,,d,d,d,d,d
|
||||||
, , , , , ,d, ,d, ,d, ,d, ,d, ,d, , , , ,#
|
,,,,,,,d,,d,,d,,d,,d,,d
|
||||||
, , , , , ,d, ,d, ,d, ,d, ,d, ,d, , , , ,#
|
,,,,,,,d,,d,,d,,d,,d,,d
|
||||||
, , , , , , , ,d, , , , , ,d, , , , , , ,#
|
,,,,,,,,,d,,,,,,d
|
||||||
, , , , , , , ,d, , , , , ,d, , , , , , ,#
|
,,,,,,,,,d,,,,,,d
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
|
||||||
"#build label(furniture) start(11; 11) 28x doors, beds, coffers, and cabinets"
|
#meta label(rooms)
|
||||||
, , , , , ,f, , , , , ,f, , , , , , , , ,#
|
zone/zone
|
||||||
, , , , , ,h, , , , , ,h, , , , , , , , ,#
|
build/build
|
||||||
, , , ,f, ,b, ,f, ,f, ,b, ,f, , , , , , ,#
|
#zone label(zone) start(12; 12) hidden()
|
||||||
, , , ,h, ,d, ,h, ,h, ,d, ,h, , , , , , ,#
|
,,,,,,b(3x5),,,,,,b(3x5)
|
||||||
, , , ,b,d,`,d,b, ,b,d,`, ,b, ,b,h,f, , ,#
|
,,,,,,,`,,,,,,`
|
||||||
, , , , , ,`, , , , , ,`,d, , ,d, , , , ,#
|
,,,,b(3x5),,,`,b(3x5),,b(3x5),,,`,b(3x5)
|
||||||
, ,f,h,b, ,`, ,f,h,b, ,`,`,`,`,`,d,b,h,f,#
|
,,,,,`,,`,,`,,`,,`,,`
|
||||||
, , , , ,d,`, , , ,d, ,`, , , ,d, , , , ,#
|
,,,,,`,,`,,`,,`,,`,,`,b(5x3)
|
||||||
f,h,b,d,`,`,`,`,`,`,`,`,`, ,f, ,b,h,f, , ,#
|
,,,,,`,`,`,`,`,,`,`,`,,`,,`,`,`
|
||||||
, , , ,d, , , ,`,`,`,`,`, ,h, , , , , , ,#
|
,,b(5x3),,,,,`,b(5x3),,,,,`,`,,,`,b(5x3)
|
||||||
, ,f,h,b, ,b,d,`,`,`,`,`,d,b, ,b,h,f, , ,#
|
,,,`,`,`,,`,,`,`,`,,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , ,h, ,`,`,`,`,`, , , ,d, , , , ,#
|
b(5x3),,,,,,`,`,,,,`,,`,b(3x5),,b(5x3),`
|
||||||
, ,f,h,b, ,f, ,`,`,`,`,`,`,`,`,`,d,b,h,f,#
|
,`,`,`,`,`,`,`,`,`,`,`,`,`,,`,,`,`,`
|
||||||
, , , ,d, , , ,`, ,d, , , ,`,d, , , , , ,#
|
,,b(5x3),,,`,b(3x5),,,`,`,`,`,`,,`,b(5x3)
|
||||||
f,h,b,d,`,`,`,`,`, ,b,h,f, ,`, ,b,h,f, , ,#
|
,,,`,`,`,,`,`,`,`,`,`,`,`,`,,`,`,`
|
||||||
, , , ,d, , ,d,`, , , , , ,`, , , , , , ,#
|
,,b(5x3),,,,,`,,`,`,`,`,`,,,,`,b(5x3)
|
||||||
, ,f,h,b, ,b, ,`,d,b, ,b,d,`,d,b, , , , ,#
|
,,,`,`,`,,`,,`,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , ,h, ,d, ,h, ,h, ,d, ,h, , , , ,#
|
b(5x3),,,,,`,,,,`,b(5x3),`,,,,`,b(5x3)
|
||||||
, , , , , ,f, ,b, ,f, ,f, ,b, ,f, , , , ,#
|
,`,`,`,`,`,`,`,`,`,,`,`,`,,`,,`,`,`
|
||||||
, , , , , , , ,h, , , , , ,h, , , , , , ,#
|
,,b(5x3),,,`,b(3x5),,`,`,b(3x5),,b(3x5),,,`,b(3x5)
|
||||||
, , , , , , , ,f, , , , , ,f, , , , , , ,#
|
,,,`,`,`,,`,,`,`,`,,`,`,`,`,`
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
,,,,,,,`,b(3x5),`,,`,,`,b(3x5),`,,`
|
||||||
#query label(rooms) start(11; 11) room designations
|
,,,,,,,`,,`,,`,,`,,`,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,`,,,,,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,`,,,,,,`
|
||||||
, , , , , ,r+,, , , , ,r+,, , , , , , , ,#
|
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
#build label(build) start(12; 12) hidden()
|
||||||
, , , ,r+,, , ,r+,,r+,, , ,r+,,r+,, , , ,#
|
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,f,,,,,,f
|
||||||
, , , ,r+,, , , , ,r+,, , , , , , ,r+,, ,#
|
,,,,,,,h,,,,,,h
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,f,,b,,f,,f,,b,,f
|
||||||
, ,r+,, , , , , , , , , , , , ,r+,, , , ,#
|
,,,,,h,,d,,h,,h,,d,,h
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,b,d,`,d,b,,b,d,`,,b,,b,h,f
|
||||||
, , , ,r+,,r+,, , , , , , ,r+,,r+,, , , ,#
|
,,,,,,,`,,,,,,`,d,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,,,f,h,b,,`,,f,h,b,,`,`,`,`,`,d,b,h,f
|
||||||
, , , ,r+,, , , , , , , , , , , , ,r+,, ,#
|
,,,,,,d,`,,,,d,,`,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,f,h,b,d,`,`,`,`,`,`,`,`,`,,f,,b,h,f
|
||||||
, ,r+,, , , , , , ,r+,, , , , ,r+,, , , ,#
|
,,,,,d,,,,`,`,`,`,`,,h
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,,,f,h,b,,b,d,`,`,`,`,`,d,b,,b,h,f
|
||||||
, , , ,r+,,r+,, , ,r+,,r+,, , ,r+,, , , ,#
|
,,,,,,,h,,`,`,`,`,`,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,,,f,h,b,,f,,`,`,`,`,`,`,`,`,`,d,b,h,f
|
||||||
, , , , , , , ,r+,, , , , ,r+,, , , , , ,#
|
,,,,,d,,,,`,,d,,,,`,d
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,f,h,b,d,`,`,`,`,`,,b,h,f,,`,,b,h,f
|
||||||
, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,d,,,d,`,,,,,,`
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
,,,f,h,b,,b,,`,d,b,,b,d,`,d,b
|
||||||
|
,,,,,,,h,,d,,h,,h,,d,,h
|
||||||
|
,,,,,,,f,,b,,f,,f,,b,,f
|
||||||
|
,,,,,,,,,h,,,,,,h
|
||||||
|
,,,,,,,,,f,,,,,,f
|
||||||
|
|
@ -1,100 +1,209 @@
|
|||||||
"#dig start(16; 17; central 3x3 stairwell) 48 rooms, 4 tiles each (more aesthetic)"
|
"#dig label(dig) start(17; 17) 48 rooms, 4 tiles each"
|
||||||
# see an image of this blueprint at: https://i.imgur.com/3pNc0HM.png
|
|
||||||
, , , , , , , , , , , , ,d, , , ,d, , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,d,,,,d
|
||||||
, , , ,d, , , ,d, , , ,d,d,d,d,d,d,d, , , ,d, , , ,d, , , , ,#
|
,,,,,d,,,,d,,,,d,d,d,d,d,d,d,,,,d,,,,d
|
||||||
, , ,d,d,d,d,d,d,d, , , ,d, ,d, ,d, , , ,d,d,d,d,d,d,d, , , ,#
|
,,,,d,d,d,d,d,d,d,,,,d,,d,,d,,,,d,d,d,d,d,d,d
|
||||||
,d, , ,d, ,d, ,d, , ,d, , , ,d, , , ,d, , ,d, ,d, ,d, , ,d, ,#
|
,,d,,,d,,d,,d,,,d,,,,d,,,,d,,,d,,d,,d,,,d
|
||||||
d,d,d, , , ,d, , , ,d,d,d, ,d,d,d, ,d,d,d, , , ,d, , , ,d,d,d,#
|
,d,d,d,,,,d,,,,d,d,d,,d,d,d,,d,d,d,,,,d,,,,d,d,d
|
||||||
,d, , ,d,d,d,d,d, , ,d, , ,d,d,d, , ,d, , ,d,d,d,d,d, , ,d, ,#
|
,,d,,,d,d,d,d,d,,,d,,,d,d,d,,,d,,,d,d,d,d,d,,,d
|
||||||
,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, ,#
|
,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
,d, , ,d,d,d,d,d, , ,d, , ,d,d,d, , ,d, , ,d,d,d,d,d, , ,d, ,#
|
,,d,,,d,d,d,d,d,,,d,,,d,d,d,,,d,,,d,d,d,d,d,,,d
|
||||||
d,d,d, , , ,d, , , ,d,d,d, ,d,d,d, ,d,d,d, , , ,d, , , ,d,d,d,#
|
,d,d,d,,,,d,,,,d,d,d,,d,d,d,,d,d,d,,,,d,,,,d,d,d
|
||||||
,d, , ,d, ,d, ,d, , ,d, , , ,d, , , ,d, , ,d, ,d, ,d, , ,d, ,#
|
,,d,,,d,,d,,d,,,d,,,,d,,,,d,,,d,,d,,d,,,d
|
||||||
, , ,d,d,d,d,d,d,d, , , ,d, ,d, ,d, , , ,d,d,d,d,d,d,d, , , ,#
|
,,,,d,d,d,d,d,d,d,,,,d,,d,,d,,,,d,d,d,d,d,d,d
|
||||||
, , , ,d, ,d, ,d, , , ,d,d,d,d,d,d,d, , , ,d, ,d, ,d, , , , ,#
|
,,,,,d,,d,,d,,,,d,d,d,d,d,d,d,,,,d,,d,,d
|
||||||
, ,d, , , ,d, , , ,d, , ,d, ,d, ,d, , ,d, , , ,d, , , ,d, , ,#
|
,,,d,,,,d,,,,d,,,d,,d,,d,,,d,,,,d,,,,d
|
||||||
,d,d,d, ,d,d,d, ,d,d,d, , , ,d, , , ,d,d,d, ,d,d,d, ,d,d,d, ,#
|
,,d,d,d,,d,d,d,,d,d,d,,,,d,,,,d,d,d,,d,d,d,,d,d,d
|
||||||
, ,d, , ,d,d,d, , ,d, , ,d,i,i,i,d, , ,d, , ,d,d,d, , ,d, , ,#
|
,,,d,,,d,d,d,,,d,,,d,~,~,~,d,,,d,,,d,d,d,,,d
|
||||||
, ,d,d,d,d,d,d,d,d,d,d,d,d,i,i,i,d,d,d,d,d,d,d,d,d,d,d,d, , ,#
|
,,,d,d,d,d,d,d,d,d,d,d,d,d,~,~,~,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
, ,d, , ,d,d,d, , ,d, , ,d,i,i,i,d, , ,d, , ,d,d,d, , ,d, , ,#
|
,,,d,,,d,d,d,,,d,,,d,~,~,~,d,,,d,,,d,d,d,,,d
|
||||||
,d,d,d, ,d,d,d, ,d,d,d, , , ,d, , , ,d,d,d, ,d,d,d, ,d,d,d, ,#
|
,,d,d,d,,d,d,d,,d,d,d,,,,d,,,,d,d,d,,d,d,d,,d,d,d
|
||||||
, ,d, , , ,d, , , ,d, , ,d, ,d, ,d, , ,d, , , ,d, , , ,d, , ,#
|
,,,d,,,,d,,,,d,,,d,,d,,d,,,d,,,,d,,,,d
|
||||||
, , , ,d, ,d, ,d, , , ,d,d,d,d,d,d,d, , , ,d, ,d, ,d, , , , ,#
|
,,,,,d,,d,,d,,,,d,d,d,d,d,d,d,,,,d,,d,,d
|
||||||
, , ,d,d,d,d,d,d,d, , , ,d, ,d, ,d, , , ,d,d,d,d,d,d,d, , , ,#
|
,,,,d,d,d,d,d,d,d,,,,d,,d,,d,,,,d,d,d,d,d,d,d
|
||||||
,d, , ,d, ,d, ,d, , ,d, , , ,d, , , ,d, , ,d, ,d, ,d, , ,d, ,#
|
,,d,,,d,,d,,d,,,d,,,,d,,,,d,,,d,,d,,d,,,d
|
||||||
d,d,d, , , ,d, , , ,d,d,d, ,d,d,d, ,d,d,d, , , ,d, , , ,d,d,d,#
|
,d,d,d,,,,d,,,,d,d,d,,d,d,d,,d,d,d,,,,d,,,,d,d,d
|
||||||
,d, , ,d,d,d,d,d, , ,d, , ,d,d,d, , ,d, , ,d,d,d,d,d, , ,d, ,#
|
,,d,,,d,d,d,d,d,,,d,,,d,d,d,,,d,,,d,d,d,d,d,,,d
|
||||||
,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, ,#
|
,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
,d, , ,d,d,d,d,d, , ,d, , ,d,d,d, , ,d, , ,d,d,d,d,d, , ,d, ,#
|
,,d,,,d,d,d,d,d,,,d,,,d,d,d,,,d,,,d,d,d,d,d,,,d
|
||||||
d,d,d, , , ,d, , , ,d,d,d, ,d,d,d, ,d,d,d, , , ,d, , , ,d,d,d,#
|
,d,d,d,,,,d,,,,d,d,d,,d,d,d,,d,d,d,,,,d,,,,d,d,d
|
||||||
,d, , ,d, ,d, ,d, , ,d, , , ,d, , , ,d, , ,d, ,d, ,d, , ,d, ,#
|
,,d,,,d,,d,,d,,,d,,,,d,,,,d,,,d,,d,,d,,,d
|
||||||
, , ,d,d,d,d,d,d,d, , , ,d, ,d, ,d, , , ,d,d,d,d,d,d,d, , , ,#
|
,,,,d,d,d,d,d,d,d,,,,d,,d,,d,,,,d,d,d,d,d,d,d
|
||||||
, , , ,d, , , ,d, , , ,d,d,d,d,d,d,d, , , ,d, , , ,d, , , , ,#
|
,,,,,d,,,,d,,,,d,d,d,d,d,d,d,,,,d,,,,d
|
||||||
, , , , , , , , , , , , ,d, , , ,d, , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,d,,,,d
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
|
||||||
"#build label(furniture) start(16; 16; central 3x3 stairwell) 48x doors, beds, cabinets, and coffers; 8x statues"
|
#meta label(rooms)
|
||||||
, , , , , , , , , , , , ,f, , , ,f, , , , , , , , , , , , , ,#
|
zone1/zone1
|
||||||
, , , ,h, , , ,h, , , ,b, ,d, ,d, ,b, , , ,h, , , ,h, , , , ,#
|
zone2/zone2
|
||||||
, , ,b, ,d, ,d, ,b, , , ,h, , , ,h, , , ,b, ,d, ,d, ,b, , , ,#
|
zone3/zone3
|
||||||
,b, , ,f, , , ,f, , ,b, , , , , , , ,b, , ,f, , , ,f, , ,b, ,#
|
zone4/zone4
|
||||||
f, ,h, , , , , , , ,h, ,f, , , , , ,f, ,h, , , , , , , ,h, ,f,#
|
build/build
|
||||||
,d, , , , , , , , , ,d, , , , , , , ,d, , , , , , , , , ,d, ,#
|
#zone label(zone1) start(17; 17) hidden()
|
||||||
, , , , , ,s, , , , , , , , ,s, , , , , , , , ,s, , , , , , ,#
|
|
||||||
,d, , , , , , , , , ,d, , , , , , , ,d, , , , , , , , , ,d, ,#
|
,,,,,,,,,,,,,,`,,,,`
|
||||||
f, ,h, , , , , , , ,h, ,f, , , , , ,f, ,h, , , , , , , ,h, ,f,#
|
,,,,,`,,,,`,,,,`,,`,,`,,`,,,,`,,,,`
|
||||||
,b, , ,f, , , ,f, , ,b, , , , , , , ,b, , ,f, , , ,f, , ,b, ,#
|
,b,b,b,`,,`,,`,,`,b,b,b,`,,,,`,b,b,b,`,,`,,`,,`,b,b,b
|
||||||
, , ,b, ,d, ,d, ,b, , , ,h, , , ,h, , , ,b, ,d, ,d, ,b, , , ,#
|
b,b,b,b,b,`,,,,`,b,b,b,b,b,,,,b,b,b,b,b,`,,,,`,b,b,b,b,b
|
||||||
, , , ,h, , , ,h, , , ,b, ,d, ,d, ,b, , , ,h, , , ,h, , , , ,#
|
b,b,b,b,b,,,,,,b,b,b,b,b,,,,b,b,b,b,b,,,,,,b,b,b,b,b
|
||||||
, ,b, , , , , , , ,b, , ,f, , , ,f, , ,b, , , , , , , ,b, , ,#
|
b,b,b,b,b,,,,,,b,b,b,b,b,,,,b,b,b,b,b,,,,,,b,b,b,b,b
|
||||||
,h, ,f, , , , , ,f, ,h, , , , , , , ,h, ,f, , , , , ,f, ,h, ,#
|
,,,,,,,`,,,,,,,,,`,,,,,,,,,`
|
||||||
, ,d, , , , , , , ,d, , , , , , , , , ,d, , , , , , , ,d, , ,#
|
,,`,,,,,,,,,,`,,,,,,,,`,,,,,,,,,,`
|
||||||
, , , , , ,s, , , , , , , , , , , , , , , , , ,s, , , , , , ,#
|
,`,,`,,,,,,,,`,,`,,,,,,`,,`,,,,,,,,`,,`
|
||||||
, ,d, , , , , , , ,d, , , , , , , , , ,d, , , , , , , ,d, , ,#
|
,,`,,,`,,,,`,,,`,,,,,,,,`,,,`,,,,`,,,`
|
||||||
,h, ,f, , , , , ,f, ,h, , , , , , , ,h, ,f, , , , , ,f, ,h, ,#
|
,,,,`,,`,,`,,`,,,,`,,,,`,,,,`,,`,,`,,`
|
||||||
, ,b, , , , , , , ,b, , ,f, , , ,f, , ,b, , , , , , , ,b, , ,#
|
,,b,b,b,`,,,,`,b,b,b,`,,`,,`,,`,b,b,b,`,,,,`,b,b,b
|
||||||
, , , ,h, , , ,h, , , ,b, ,d, ,d, ,b, , , ,h, , , ,h, , , , ,#
|
,b,b,b,b,b,,,,b,b,b,b,b,`,,,,`,b,b,b,b,b,,,,b,b,b,b,b
|
||||||
, , ,b, ,d, ,d, ,b, , , ,h, , , ,h, , , ,b, ,d, ,d, ,b, , , ,#
|
,b,b,b,b,b,,,,b,b,b,b,b,,,,,,b,b,b,b,b,,,,b,b,b,b,b
|
||||||
,b, , ,f, , , ,f, , ,b, , , , , , , ,b, , ,f, , , ,f, , ,b, ,#
|
,b,b,b,b,b,,,,b,b,b,b,b,,,,,,b,b,b,b,b,,,,b,b,b,b,b
|
||||||
f, ,h, , , , , , , ,h, ,f, , , , , ,f, ,h, , , , , , , ,h, ,f,#
|
,,,,,,,`,,,,,,,,,,,,,,,,,,`
|
||||||
,d, , , , , , , , , ,d, , , , , , , ,d, , , , , , , , , ,d, ,#
|
,,,`,,,,,,,,`,,,,,,,,,,`,,,,,,,,`
|
||||||
, , , , , ,s, , , , , , , , ,s, , , , , , , , ,s, , , , , , ,#
|
,,`,,`,,,,,,`,,`,,,,,,,,`,,`,,,,,,`,,`
|
||||||
,d, , , , , , , , , ,d, , , , , , , ,d, , , , , , , , , ,d, ,#
|
,,,`,,,,,,,,`,,,`,,,,`,,,`,,,,,,,,`
|
||||||
f, ,h, , , , , , , ,h, ,f, , , , , ,f, ,h, , , , , , , ,h, ,f,#
|
,,,,,`,,,,`,,,,`,,`,,`,,`,,,,`,,,,`
|
||||||
,b, , ,f, , , ,f, , ,b, , , , , , , ,b, , ,f, , , ,f, , ,b, ,#
|
,b,b,b,`,,`,,`,,`,b,b,b,`,,,,`,b,b,b,`,,`,,`,,`,b,b,b
|
||||||
, , ,b, ,d, ,d, ,b, , , ,h, , , ,h, , , ,b, ,d, ,d, ,b, , , ,#
|
b,b,b,b,b,`,,,,`,b,b,b,b,b,,,,b,b,b,b,b,`,,,,`,b,b,b,b,b
|
||||||
, , , ,h, , , ,h, , , ,b, ,d, ,d, ,b, , , ,h, , , ,h, , , , ,#
|
b,b,b,b,b,,,,,,b,b,b,b,b,,,,b,b,b,b,b,,,,,,b,b,b,b,b
|
||||||
, , , , , , , , , , , , ,f, , , ,f, , , , , , , , , , , , , ,#
|
b,b,b,b,b,,,,,,b,b,b,b,b,,,,b,b,b,b,b,,,,,,b,b,b,b,b
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
,,,,,,,`,,,,,,,,,`,,,,,,,,,`
|
||||||
#query label(rooms) start(16; 16; central 3x3 stairwell) room designations
|
,,`,,,,,,,,,,`,,,,,,,,`,,,,,,,,,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,`,,`,,,,,,,,`,,`,,,,,,`,,`,,,,,,,,`,,`
|
||||||
, , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , ,#
|
,,`,,,`,,,,`,,,`,,,,,,,,`,,,`,,,,`,,,`
|
||||||
, , ,r+,, , , , ,r+,, , , , , , , , , , ,r+,, , , , ,r+,, , ,#
|
,,,,`,,`,,`,,`,,,,`,,,,`,,,,`,,`,,`,,`
|
||||||
,r+,, , , , , , , , ,r+,, , , , , , ,r+,, , , , , , , , ,r+,,#
|
,,,,,`,,,,`,,,,`,,`,,`,,`,,,,`,,,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,`,,,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
#zone label(zone2) start(17; 17) hidden()
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,b,b,b
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,b,b,b,,,,,,b,b,b,b,,,`,,,,b,b,b
|
||||||
,r+,, , , , , , , , ,r+,, , , , , , ,r+,, , , , , , , , ,r+,,#
|
,,,b,b,b,b,,,`,,,b,b,b,b,,`,,`,,b,b,b,b,,,`
|
||||||
, , ,r+,, , , , ,r+,, , , , , , , , , , ,r+,, , , , ,r+,, , ,#
|
,~,~,b,b,b,b,,`,,`,~,b,b,b,b,,,`,~,~,b,b,b,b,,`,,`,~,~,~
|
||||||
, , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , ,#
|
~,~,~,b,b,b,b,,,`,~,~,~,b,b,b,,,~,~,~,b,b,b,b,,,`,~,~,~,~,~
|
||||||
, ,r+,, , , , , , ,r+,, , , , , , , , ,r+,, , , , , , ,r+,, ,#
|
~,~,~,~,b,b,b,,,,~,~,~,~,~,,,,~,~,~,~,b,b,b,,,,~,~,~,~,~
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,~,~,~,,,,`,,,,~,~,~,,,`,,,~,~,~,,,,`,,,,~,~,~
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,`,,,,,,,,,,`,,,,,,,,`,,,,,,,,,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,`,,`,b,b,b,,,,,`,,`,,,,,,`,,`,b,b,b,,,,,`,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,`,b,b,b,b,,,`,,,`,b,b,b,,,,,`,b,b,b,b,,,`,,,`
|
||||||
, ,r+,, , , , , , ,r+,, , , , , , , , ,r+,, , , , , , ,r+,, ,#
|
,,,b,b,b,b,,`,,`,,b,b,b,b,,,`,,,b,b,b,b,,`,,`
|
||||||
, , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , ,#
|
,,~,b,b,b,b,,,`,~,~,b,b,b,b,,`,,`,~,b,b,b,b,,,`,~,~,~
|
||||||
, , ,r+,, , , , ,r+,, , , , , , , , , , ,r+,, , , , ,r+,, , ,#
|
,~,~,~,b,b,b,,,~,~,~,b,b,b,b,,,`,~,~,~,b,b,b,,,~,~,~,~,~
|
||||||
,r+,, , , , , , , , ,r+,, , , , , , ,r+,, , , , , , , , ,r+,,#
|
,~,~,~,~,~,,,,~,~,~,~,b,b,b,,,,~,~,~,~,~,,,,~,~,~,~,~
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,~,~,~,,,`,,,~,~,~,,,,,,,,~,~,~,,,`,,,~,~,~
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,`,,,,,,,,`,,,,,,,,,,`,,,,,,,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,`,,`,,,,,,`,,`,b,b,b,,,,,`,,`,,,,,,`,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,`,b,b,b,,,,,`,b,b,b,b,,,`,,,`,b,b,b,,,,,`
|
||||||
,r+,, , , , , , , , ,r+,, , , , , , ,r+,, , , , , , , , ,r+,,#
|
,,,b,b,b,b,,,`,,,b,b,b,b,,`,,`,,b,b,b,b,,,`
|
||||||
, , ,r+,, , , , ,r+,, , , , , , , , , , ,r+,, , , , ,r+,, , ,#
|
,~,~,b,b,b,b,,`,,`,~,b,b,b,b,,,`,~,~,b,b,b,b,,`,,`,~,~,~
|
||||||
, , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , ,#
|
~,~,~,b,b,b,b,,,`,~,~,~,b,b,b,,,~,~,~,b,b,b,b,,,`,~,~,~,~,~
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
~,~,~,~,b,b,b,,,,~,~,~,~,~,,,,~,~,~,~,b,b,b,,,,~,~,~,~,~
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~
|
||||||
|
,~,~,~,,,,`,,,,~,~,~,,,`,,,~,~,~,,,,`,,,,~,~,~
|
||||||
|
,,`,,,,,,,,,,`,,,,,,,,`,,,,,,,,,,`
|
||||||
|
,`,,`,b,b,b,,,,,`,,`,,,,,,`,,`,b,b,b,,,,,`,,`
|
||||||
|
,,`,b,b,b,b,,,`,,,`,b,b,b,,,,,`,b,b,b,b,,,`,,,`
|
||||||
|
,,,b,b,b,b,,`,,`,,b,b,b,b,,,`,,,b,b,b,b,,`,,`
|
||||||
|
,,,b,b,b,b,,,`,,,b,b,b,b,,`,,`,,b,b,b,b,,,`
|
||||||
|
,,,,b,b,b,,,,,,b,b,b,b,,,`,,,,b,b,b
|
||||||
|
,,,,,,,,,,,,,b,b,b
|
||||||
|
#zone label(zone3) start(17; 17) hidden()
|
||||||
|
,,,,,,,,,,,,,~,~,~
|
||||||
|
,,,,~,~,~,,,,,,~,~,~,~,~,,`,,,,~,~,~
|
||||||
|
,,,~,~,~,~,~,,`,,,~,~,~,~,~,`,,`,,~,~,~,~,~,,`
|
||||||
|
,~,~,~,~,~,~,~,`,,`,~,~,~,~,~,~,,`,~,~,~,~,~,~,~,`,,`,~,~,~
|
||||||
|
~,~,~,~,~,~,~,~,,`,~,~,~,~,~,~,,,~,~,~,~,~,~,~,~,,`,~,~,~,~,~
|
||||||
|
~,~,~,~,~,~,~,,,,~,~,~,~,~,,,,~,~,~,~,~,~,~,,,,~,~,~,~,~
|
||||||
|
~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~
|
||||||
|
,,,,,,,`,,,,,,,,,`,,,,,,,,,`
|
||||||
|
b,b,b,b,b,,,,,,b,b,b,b,b,,,,b,b,b,b,b,,,,,,b,b,b,b,b
|
||||||
|
b,b,b,b,b,~,~,,,,b,b,b,b,b,,,,b,b,b,b,b,~,~,,,,b,b,b,b,b
|
||||||
|
b,b,b,b,b,~,~,~,,`,b,b,b,b,b,~,,,b,b,b,b,b,~,~,~,,`,b,b,b,b,b
|
||||||
|
,b,b,b,~,~,~,~,`,,`,b,b,b,~,~,~,,`,b,b,b,~,~,~,~,`,,`,b,b,b
|
||||||
|
,,~,~,~,~,~,~,,`,~,~,~,~,~,~,~,`,,`,~,~,~,~,~,~,,`,~,~,~
|
||||||
|
,~,~,~,~,~,~,,,~,~,~,~,~,~,~,~,,`,~,~,~,~,~,~,,,~,~,~,~,~
|
||||||
|
,~,~,~,~,~,,,,~,~,~,~,~,~,~,,,,~,~,~,~,~,,,,~,~,~,~,~
|
||||||
|
,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~
|
||||||
|
,,,,,,,`,,,,,,,,,,,,,,,,,,`
|
||||||
|
,b,b,b,b,b,,,,b,b,b,b,b,,,,,,b,b,b,b,b,,,,b,b,b,b,b
|
||||||
|
,b,b,b,b,b,,,,b,b,b,b,b,~,~,,,,b,b,b,b,b,,,,b,b,b,b,b
|
||||||
|
,b,b,b,b,b,~,,,b,b,b,b,b,~,~,~,,`,b,b,b,b,b,~,,,b,b,b,b,b
|
||||||
|
,,b,b,b,~,~,~,,`,b,b,b,~,~,~,~,`,,`,b,b,b,~,~,~,,`,b,b,b
|
||||||
|
,~,~,~,~,~,~,~,`,,`,~,~,~,~,~,~,,`,~,~,~,~,~,~,~,`,,`,~,~,~
|
||||||
|
~,~,~,~,~,~,~,~,,`,~,~,~,~,~,~,,,~,~,~,~,~,~,~,~,,`,~,~,~,~,~
|
||||||
|
~,~,~,~,~,~,~,,,,~,~,~,~,~,,,,~,~,~,~,~,~,~,,,,~,~,~,~,~
|
||||||
|
~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~
|
||||||
|
,,,,,,,`,,,,,,,,,`,,,,,,,,,`
|
||||||
|
b,b,b,b,b,,,,,,b,b,b,b,b,,,,b,b,b,b,b,,,,,,b,b,b,b,b
|
||||||
|
b,b,b,b,b,~,~,,,,b,b,b,b,b,,,,b,b,b,b,b,~,~,,,,b,b,b,b,b
|
||||||
|
b,b,b,b,b,~,~,~,,`,b,b,b,b,b,~,,,b,b,b,b,b,~,~,~,,`,b,b,b,b,b
|
||||||
|
,b,b,b,~,~,~,~,`,,`,b,b,b,~,~,~,,`,b,b,b,~,~,~,~,`,,`,b,b,b
|
||||||
|
,,,~,~,~,~,~,,`,,,~,~,~,~,~,`,,`,,~,~,~,~,~,,`
|
||||||
|
,,,,~,~,~,,,,,,~,~,~,~,~,,`,,,,~,~,~
|
||||||
|
,,,,,,,,,,,,,~,~,~
|
||||||
|
#zone label(zone4) start(17; 17) hidden()
|
||||||
|
,,,,,,,,,,,,,~,~,~,,b,b,b
|
||||||
|
,,,,~,~,~,,b,b,b,,~,~,~,~,,b,b,b,b,,~,~,~,,b,b,b
|
||||||
|
,,,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b
|
||||||
|
,~,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~
|
||||||
|
~,~,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,~,~,~,~,~,,b,b,b,b,~,~,~
|
||||||
|
~,~,~,~,~,~,~,,b,b,b,~,~,~,~,,,,~,~,~,~,~,~,~,,b,b,b,~,~,~,~
|
||||||
|
~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~
|
||||||
|
,~,~,~,,,,`,,,,~,~,~,,,`,,,~,~,~,,,,`,,,,~,~,~
|
||||||
|
~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~
|
||||||
|
~,~,~,~,~,~,~,,b,b,b,~,~,~,~,,,,~,~,~,~,~,~,~,,b,b,b,~,~,~,~
|
||||||
|
~,~,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,~,~,~,~,~,,b,b,b,b,~,~,~
|
||||||
|
,~,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~
|
||||||
|
,,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~
|
||||||
|
,~,~,~,~,~,~,,b,b,b,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,~,~,~
|
||||||
|
,~,~,~,~,~,,,,~,~,~,~,~,~,~,,b,b,b,~,~,~,~,,,,~,~,~,~,~
|
||||||
|
,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~
|
||||||
|
,,~,~,~,,,`,,,~,~,~,,,,,,,,~,~,~,,,`,,,~,~,~
|
||||||
|
,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~
|
||||||
|
,~,~,~,~,~,,,,~,~,~,~,~,~,~,,b,b,b,~,~,~,~,,,,~,~,~,~,~
|
||||||
|
,~,~,~,~,~,~,,b,b,b,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,~,~,~
|
||||||
|
,,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~
|
||||||
|
,~,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~
|
||||||
|
~,~,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,~,~,~,~,~,,b,b,b,b,~,~,~
|
||||||
|
~,~,~,~,~,~,~,,b,b,b,~,~,~,~,,,,~,~,~,~,~,~,~,,b,b,b,~,~,~,~
|
||||||
|
~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~
|
||||||
|
,~,~,~,,,,`,,,,~,~,~,,,`,,,~,~,~,,,,`,,,,~,~,~
|
||||||
|
~,~,~,~,~,,,,,,~,~,~,~,~,,,,~,~,~,~,~,,,,,,~,~,~,~,~
|
||||||
|
~,~,~,~,~,~,~,,b,b,b,~,~,~,~,,,,~,~,~,~,~,~,~,,b,b,b,~,~,~,~
|
||||||
|
~,~,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,~,~,~,~,~,,b,b,b,b,~,~,~
|
||||||
|
,~,~,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~
|
||||||
|
,,,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b,~,~,~,~,,b,b,b,b
|
||||||
|
,,,,~,~,~,,b,b,b,,~,~,~,~,,b,b,b,b,,~,~,~,,b,b,b
|
||||||
|
,,,,,,,,,,,,,~,~,~,,b,b,b
|
||||||
|
#build label(build) start(17; 17) hidden()
|
||||||
|
|
||||||
|
,,,,,,,,,,,,,,f,,,,f
|
||||||
|
,,,,,h,,,,h,,,,b,,d,,d,,b,,,,h,,,,h
|
||||||
|
,,,,b,,d,,d,,b,,,,h,,,,h,,,,b,,d,,d,,b
|
||||||
|
,,b,,,f,,,,f,,,b,,,,,,,,b,,,f,,,,f,,,b
|
||||||
|
,f,,h,,,,,,,,h,,f,,,,,,f,,h,,,,,,,,h,,f
|
||||||
|
,,d,,,,,,,,,,d,,,,,,,,d,,,,,,,,,,d
|
||||||
|
,,,,,,,s,,,,,,,,,s,,,,,,,,,s
|
||||||
|
,,d,,,,,,,,,,d,,,,,,,,d,,,,,,,,,,d
|
||||||
|
,f,,h,,,,,,,,h,,f,,,,,,f,,h,,,,,,,,h,,f
|
||||||
|
,,b,,,f,,,,f,,,b,,,,,,,,b,,,f,,,,f,,,b
|
||||||
|
,,,,b,,d,,d,,b,,,,h,,,,h,,,,b,,d,,d,,b
|
||||||
|
,,,,,h,,,,h,,,,b,,d,,d,,b,,,,h,,,,h
|
||||||
|
,,,b,,,,,,,,b,,,f,,,,f,,,b,,,,,,,,b
|
||||||
|
,,h,,f,,,,,,f,,h,,,,,,,,h,,f,,,,,,f,,h
|
||||||
|
,,,d,,,,,,,,d,,,,,,,,,,d,,,,,,,,d
|
||||||
|
,,,,,,,s,,,,,,,,,,,,,,,,,,s
|
||||||
|
,,,d,,,,,,,,d,,,,,,,,,,d,,,,,,,,d
|
||||||
|
,,h,,f,,,,,,f,,h,,,,,,,,h,,f,,,,,,f,,h
|
||||||
|
,,,b,,,,,,,,b,,,f,,,,f,,,b,,,,,,,,b
|
||||||
|
,,,,,h,,,,h,,,,b,,d,,d,,b,,,,h,,,,h
|
||||||
|
,,,,b,,d,,d,,b,,,,h,,,,h,,,,b,,d,,d,,b
|
||||||
|
,,b,,,f,,,,f,,,b,,,,,,,,b,,,f,,,,f,,,b
|
||||||
|
,f,,h,,,,,,,,h,,f,,,,,,f,,h,,,,,,,,h,,f
|
||||||
|
,,d,,,,,,,,,,d,,,,,,,,d,,,,,,,,,,d
|
||||||
|
,,,,,,,s,,,,,,,,,s,,,,,,,,,s
|
||||||
|
,,d,,,,,,,,,,d,,,,,,,,d,,,,,,,,,,d
|
||||||
|
,f,,h,,,,,,,,h,,f,,,,,,f,,h,,,,,,,,h,,f
|
||||||
|
,,b,,,f,,,,f,,,b,,,,,,,,b,,,f,,,,f,,,b
|
||||||
|
,,,,b,,d,,d,,b,,,,h,,,,h,,,,b,,d,,d,,b
|
||||||
|
,,,,,h,,,,h,,,,b,,d,,d,,b,,,,h,,,,h
|
||||||
|
,,,,,,,,,,,,,,f,,,,f
|
||||||
|
|
@ -1,232 +1,228 @@
|
|||||||
"#dig start(36;74) 97 rooms, 9 tiles each (fractal design)"
|
"#dig label(dig) start(36;73) 95 bedrooms (including 14 suites), 190 tombs"
|
||||||
# see an image of this blueprint at: https://i.imgur.com/ENi5QLX.png
|
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,d,d,d,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d,d,d,d,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,,d,,,d,,,d,,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,,d,,,d,,,d,,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,,d,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , , ,d, , , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,,d,d,d,d,,d,,d,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d,d, ,d, ,d,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,d,d,d,d,d,d,d,,d,,d,d,d,d,d,d,d,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d,d,d,d,d,d,d,d, ,d, ,d,d,d,d,d,d,d,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,,d,d,d,d,,d,,d,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d,d, ,d, ,d,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,d,d,d,,,d,,,,,,,d,,,,,,,d,,,,,,,d,,,,,,,d,,,d,d,d
|
||||||
, , , , , , , , , , , , , , , ,d,d,d, , ,d, , , , , , ,d, , , , , , ,d, , , , , , ,d, , , , , , ,d, , ,d,d,d, , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
, , , , , , , , , , , , , , , ,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,d,d,d,,,d,,,,,,,d,,,,,,d,d,d,,,,,,d,,,,,,,d,,,d,d,d
|
||||||
, , , , , , , , , , , , , , , ,d,d,d, , ,d, , , , , , ,d, , , , , ,d,d,d, , , , , ,d, , , , , , ,d, , ,d,d,d, , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,d,d,d,d,d,d,,d,d,d,,d,d,d,d,d,d,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d,d,d,d,d,d,d, ,d,d,d, ,d,d,d,d,d,d,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,d,d,d,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , ,d,d,d, , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,d,,d,d,d,,d,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d,d, ,d,d,d, ,d,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,d,d,d,d,d,d,d,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d,d,d,d,d,d,d,d,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,d,,d,d,d,,d,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d,d, ,d,d,d, ,d,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,,d,,,d,d,d,,,d,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , , ,d, , ,d,d,d, , ,d, , , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,d,d,d,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,d,d,d,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d,d,d,d,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d,d,d,d,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,,d,,,d,d,d,,,d,,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, , ,d, , ,d,d,d, , ,d, , ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,d,d,d,,d,d,d,,d,d,d,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , ,d,d,d, ,d,d,d, ,d,d,d, , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,,,,,d,d,d,,,,,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, , , , , ,d,d,d, , , , , ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,d,d,d,,d,d,d,,,d,,,d,,,d,,,d,d,d,,d,d,d,,d,d,d,,,d,,,d,,,d,,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , ,d,d,d, ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, ,d,d,d, ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, ,d,d,d, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,d,d,d,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,,d,d,d,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , ,d,d,d, ,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, ,d,d,d, ,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, ,d,d,d, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,d,d,d,,d,d,d,,,d,,,d,,,d,,,d,d,d,,d,d,d,,d,d,d,,,d,,,d,,,d,,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , ,d,d,d, ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, ,d,d,d, ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, ,d,d,d, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,d,,,,,,,d,d,d,,d,,d,d,d,,,,,,d,d,d,,,,,,d,d,d,,d,,d,d,d,,,,,,,d
|
||||||
, , , , , , , , , , , , ,d, , , , , , ,d,d,d, ,d, ,d,d,d, , , , , ,d,d,d, , , , , ,d,d,d, ,d, ,d,d,d, , , , , , ,d, , , , , , , , , , , , , ,#
|
,,,,,d,d,d,,d,d,d,,d,,d,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , ,#
|
,,,,,d,d,d,,d,d,d,d,d,d,d,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,d,d,d,d,d,d,d,,d,d,d
|
||||||
, , , , ,d,d,d, ,d,d,d,d,d,d,d,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d,d,d,d,d,d,d,d, ,d,d,d, , , , , ,#
|
,,,,,d,d,d,,d,d,d,,d,,d,d,d,d,,d,d,d,,d,,,,,,,d,,,d,d,d,,,d,,,,,,,d,,d,d,d,,d,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d,d, ,d,d,d, ,d, , , , , , ,d, , ,d,d,d, , ,d, , , , , , ,d, ,d,d,d, ,d,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , ,#
|
,d,d,d,,,d,,,,,,,d,,,,,,,,,,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,,,,,,,,,,,d,,,,,,,d,,,d,d,d
|
||||||
,d,d,d, , ,d, , , , , , ,d, , , , , , , , , , ,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, , , , , , , , , , ,d, , , , , , ,d, , ,d,d,d, ,#
|
,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, ,#
|
,d,d,d,,,d,,,,,,,d,,,,,,,,,,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,,,,,,,,,,,d,,,,,,,d,,,d,d,d
|
||||||
,d,d,d, , ,d, , , , , , ,d, , , , , , , , , , ,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, , , , , , , , , , ,d, , , , , , ,d, , ,d,d,d, ,#
|
,,,,,d,d,d,,d,d,d,,d,,d,d,d,d,,d,d,d,,d,,,,,,,d,,,d,d,d,,,d,,,,,,,d,,d,d,d,,d,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d,d, ,d,d,d, ,d, , , , , , ,d, , ,d,d,d, , ,d, , , , , , ,d, ,d,d,d, ,d,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , ,#
|
,,,,,d,d,d,,d,d,d,d,d,d,d,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,d,d,d,d,d,d,d,,d,d,d
|
||||||
, , , , ,d,d,d, ,d,d,d,d,d,d,d,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d,d,d,d,d,d,d,d, ,d,d,d, , , , , ,#
|
,,,,,d,d,d,,d,d,d,,d,,d,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d,,d,d,d,d,,d,,d,d,d,,d,d,d
|
||||||
, , , , ,d,d,d, ,d,d,d, ,d, ,d,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, ,d,d,d,d, ,d, ,d,d,d, ,d,d,d, , , , , ,#
|
,,,,,,,,,,,,,d,,,,,,,d,d,d,,d,,d,d,d,,,,,,d,d,d,,,,,,d,d,d,,d,,d,d,d,,,,,,,d
|
||||||
, , , , , , , , , , , , ,d, , , , , , ,d,d,d, ,d, ,d,d,d, , , , , ,d,d,d, , , , , ,d,d,d, ,d, ,d,d,d, , , , , , ,d, , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,d,d,d,,d,d,d,,,d,,,d,,,d,,,d,d,d,,d,d,d,,d,d,d,,,d,,,d,,,d,,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , ,d,d,d, ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, ,d,d,d, ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, ,d,d,d, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,d,d,d,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,,d,d,d,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , ,d,d,d, ,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, ,d,d,d, ,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, ,d,d,d, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,d,d,d,,d,d,d,,,d,,,d,,,d,,,d,d,d,,d,d,d,,d,d,d,,,d,,,d,,,d,,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , ,d,d,d, ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, ,d,d,d, ,d,d,d, , ,d, , ,d, , ,d, , ,d,d,d, ,d,d,d, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,,,,,d,d,d,,,,,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, , , , , ,d,d,d, , , , , ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,d,d,d,d,d,d,d,d,d,d,d,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , ,d,d,d,d,d,d,d,d,d,d,d, , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,d,d,d,d,d,d,,,d,,,d,d,d,,,d,,,d,d,d,d,d,d,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d,d,d,d,d,d,d, , ,d, , ,d,d,d, , ,d, , ,d,d,d,d,d,d,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,d,d,d,,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,d,d,,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , ,d,d,d, ,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d,d,d, ,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,,d,d,,d,d,d,,d,d,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , , ,d,d, ,d,d,d, ,d,d, , , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,d,,d,d,d,,d,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d,d, ,d,d,d, ,d,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,d,d,d,,d,d,d,,d,d,d,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d,d,d,d, ,d,d,d, ,d,d,d,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,d,d,d,,d,d,d,,d,d,,d,d,d,,d,d,,d,d,d,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,d,d,d, ,d,d,d, ,d,d, ,d,d,d, ,d,d, ,d,d,d, ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d,d,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , ,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d, , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,d,d,d,d,d,d,d,d,d,d,d,d,~,~,~,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , ,d,d,d,d,d,d,d,d,d,d,d,d,i,i,i,d,d,d,d,d,d,d,d,d,d,d,d, , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,d,d,d,d,d,d,d,d,d,d,d,d,~,~,~,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , ,d,d,d,d,d,d,d,d,d,d,d,d,i,i,i,d,d,d,d,d,d,d,d,d,d,d,d, , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,d,d,d,d,d,d,d,d,d,d,d,d,~,~,~,d,d,d,d,d,d,d,d,d,d,d,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , ,d,d,d,d,d,d,d,d,d,d,d,d,i,i,i,d,d,d,d,d,d,d,d,d,d,d,d, , , , , , , , , , , , , , , , , , , , , , ,#
|
#meta label(rooms)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
zone/zone
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
build/build
|
||||||
"#build label(furniture) start(36;73) 97 doors; 95 beds, coffers, and cabinets; 190 urns; 14 tables, chairs, weapon racks, armor stands, and statues"
|
#zone label(zone) start(36;73) hidden()
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,h,`,f, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,`,b,`, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,n,`,n, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,b(5x5),,,,,`,b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,f,`,n, ,`, ,n,`,f, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,`,b,`,d,`,d,`,b,`, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,h,`,n, ,`, ,n,`,h, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,`, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,b(5x5),,,,,`,b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,h,`,f, ,`, ,h,`,f, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`,,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,`,b,`, ,`, ,`,b,`, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`,,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,n,`,n, ,`, ,n,`,n, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,b(5x5),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,f,`,n, , ,d, , ,`, , ,d, , ,n,`,f, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),,,`,,,`,,,`,,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,h,`,n, , ,d, , ,`, , ,d, , ,n,`,h, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),b(5x6),,`,,,`,b(5x6),,`,,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,n,`,n, ,`, ,n,`,n, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,b(5x5),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,h,`,f, ,r,b,t, ,`, ,r,b,t, ,h,`,f, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`,,`,`,`,,`,,`,`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,`,b,`, ,a,`,c, ,`, ,a,`,c, ,`,b,`, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`,,`,`,`,,`,,`,`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , ,n,`,n, ,h,s,f, ,`, ,h,s,f, ,n,`,n, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`,,`,,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , , ,`, , , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,b(5x5),,,,b(5x5),,,,,`,b(6x5),,,,,,`,b(6x5),,,,,,`,b(5x5),,,,b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , ,h,`,f, ,f,`,n, ,`, ,n,r,a,h, ,`, ,h,a,r,n, ,`, ,n,`,f, ,h,`,f, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,`,,`,,`,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,`,b,`, ,`,b,`,d,`,d,`,b,`,s, ,`, ,s,`,b,`,d,`,d,`,b,`, ,`,b,`, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,,`,`,`,`,`,`,`,`,`,`,,`,,`,`,`,`,`,`,`,`,`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,n,`,n, ,h,`,n, ,`, ,n,t,c,f, ,`, ,f,c,t,n, ,`, ,n,`,h, ,n,`,n, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,b(5x5),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,`,,`,,`,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x5)
|
||||||
, , , , , , , , , , , , , , , ,f,`,n, , ,d, , , , , , ,`, , , , , , ,`, , , , , , ,`, , , , , , ,d, , ,n,`,f, , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),,,`,,,,,,,`,,,,,,,`,,,,,,,`,,,,,,,`,,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , ,`,b,`,d,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,d,`,b,`, , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , ,h,`,n, , ,d, , , , , , ,`, , , , , ,`,`,`, , , , , ,`, , , , , , ,d, , ,n,`,h, , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),b(5x5),,`,,b(5x5),,,,,`,b(5x5),,,,,`,`,`,b(5x5),,,,,`,b(5x5),,,,b(5x5),,`,,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,n,`,n, ,f,`,n, ,`, ,n,`,f, ,`,`,`, ,f,`,n, ,`, ,n,`,f, ,n,`,n, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,`,`,`,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1)
|
||||||
, , , , , , , , , , , , , , , , , , , ,`,b,`, ,`,b,`,d,`,d,`,b,`, ,`,`,`, ,`,b,`,d,`,d,`,b,`, ,`,b,`, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,,`,`,`,`,`,`,`,`,`,,`,`,`,,`,`,`,`,`,`,`,`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,h,`,f, ,h,`,n, ,`, ,n,`,h, ,`,`,`, ,h,`,n, ,`, ,n,`,h, ,h,`,f, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,`,`,`,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , ,`,`,`, , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,b(5x5),,,,b(5x5),,`,,b(4x5),,,,`,`,`,b(4x5),,,b(5x5),,`,,b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,h,`,f, ,n,`,n, ,f,n, ,`,`,`, ,n,f, ,n,`,n, ,h,`,f, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,T{pets=true}(1x1),,`,`,`,,T{pets=true}(1x1),`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,`,b,`, ,`,b,`, ,b,`,d,`,`,`,d,`,b, ,`,b,`, ,`,b,`, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,`,`,`,,`,`,`,,`,`,`,`,`,`,`,`,`,,`,`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,n,`,n, ,h,`,f, ,h,n, ,`,`,`, ,n,h, ,h,`,f, ,n,`,n, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`,,`,T{pets=true}(1x1),,`,`,`,,T{pets=true}(1x1),`,,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , , ,d, , ,`,`,`, , ,d, , , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,b(5x5),,,,,`,b(5x5),,,,b(5x4),,`,,,`,`,`,b(5x4),,`,,b(5x5),,,,,`,b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , ,f,`,n, ,`, ,n,`,f, ,n,`,n, ,`,`,`, ,n,`,n, ,f,`,n, ,`, ,n,`,f, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,`,b,`,d,`,d,`,b,`, ,h,b,f, ,`,`,`, ,h,b,f, ,`,b,`,d,`,d,`,b,`, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,h,`,n, ,`, ,n,`,h, , ,d, , ,`,`,`, , ,d, , ,h,`,n, ,`, ,n,`,h, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,b(5x5),,`,,,`,`,`,b(5x5),,`,,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,`, , , , , ,n,`,n, ,`,`,`, ,n,`,n, , , , , ,`, , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,b(5x5),,,,,`,b(5x5),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x5),,,,,`,b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , ,h,`,f, ,`, ,h,`,f, ,`,b,`, ,`,`,`, ,`,b,`, ,h,`,f, ,`, ,h,`,f, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,`,b,`, ,`, ,`,b,`, ,h,`,f, ,`,`,`, ,h,`,f, ,`,b,`, ,`, ,`,b,`, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,n,`,n, ,`, ,n,`,n, , , , , ,`,`,`, , , , , ,n,`,n, ,`, ,n,`,n, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,b(5x5),,,,b(5x5),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x5),,,,,`,`,`,b(5x5),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x5),,,,b(5x5)
|
||||||
, , , , , , , , , , , ,h,`,f, ,f,`,n, , ,d, , ,`, , ,d, , ,n,`,f, ,`,`,`, ,f,`,n, , ,d, , ,`, , ,d, , ,n,`,f, ,h,`,f, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,`,`,`,,`,`,T{pets=true}(1x1),,,`,,,`,,,`,,,T{pets=true}(1x1),`,`,,`,`,`,,`,`,T{pets=true}(1x1),,,`,,,`,,,`,,,T{pets=true}(1x1),`,`,,`,`,`
|
||||||
, , , , , , , , , , , ,`,b,`, ,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`, ,`,`,`, ,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`, ,`,b,`, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,`,`,`,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,,`,`,`,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,,`,`,`
|
||||||
, , , , , , , , , , , ,n,`,n, ,h,`,n, , ,d, , ,`, , ,d, , ,n,`,h, ,`,`,`, ,h,`,n, , ,d, , ,`, , ,d, , ,n,`,h, ,n,`,n, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,T{pets=true}(1x1),b(5x6),,`,,,`,b(5x5),,`,,,T{pets=true}(1x1),`,`,,`,`,`,,`,`,T{pets=true}(1x1),b(5x5),,`,,,`,b(5x6),,`,,,T{pets=true}(1x1),`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1)
|
||||||
, , , , , , , , , , , , ,d, , , , , , ,n,`,n, ,`, ,n,`,n, , , , , ,`,`,`, , , , , ,n,`,n, ,`, ,n,`,n, , , , , , ,d, , , , , , , , , , , , , ,#
|
,,,,b(5x5),,,,b(5x5),,,,,`,b(6x5),,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x4),,,,,`,`,`,b(5x4),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(6x5),,,,,,`,b(5x5),,,,b(5x5)
|
||||||
, , , , ,h,`,f, ,f,`,n, ,`, ,n,r,a,h, ,r,b,t, ,`, ,`,b,`, ,h,b,f, ,`,`,`, ,h,b,f, ,`,b,`, ,`, ,r,b,t, ,h,a,r,n, ,`, ,n,`,f, ,h,`,f, , , , , ,#
|
,,,,,`,`,`,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,`,,`,`,`,,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,,`,`,`,,`,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,`,`,`
|
||||||
, , , , ,`,b,`, ,`,b,`,d,`,d,`,b,`,s, ,a,`,c, ,`, ,h,`,f, ,n,`,n, ,`,`,`, ,n,`,n, ,h,`,f, ,`, ,a,`,c, ,s,`,b,`,d,`,d,`,b,`, ,`,b,`, , , , , ,#
|
,,,,,`,`,`,,`,`,`,`,`,`,`,`,`,`,,`,`,`,,`,,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`,,`,,`,`,`,,`,`,`,`,`,`,`,`,`,`,,`,`,`
|
||||||
, , , , ,n,`,n, ,h,`,n, ,`, ,n,t,c,f, ,h,s,f, ,`, , , , , , ,d, , ,`,`,`, , ,d, , , , , , ,`, ,h,s,f, ,f,c,t,n, ,`, ,n,`,h, ,n,`,n, , , , , ,#
|
b(5x5),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,`,,`,`,`,,`,,,,,,,`,,,`,`,`,,,`,,,,,,,`,,`,`,`,,`,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x5)
|
||||||
,f,`,n, , ,d, , , , , , ,`, , , , , , , , , , ,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`, , , , , , , , , , ,`, , , , , , ,d, , ,n,`,f, ,#
|
,`,`,T{pets=true}(1x1),,,`,,,,,,,`,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,,,,,,,,,,,`,,,,,,,`,,,T{pets=true}(1x1),`,`
|
||||||
,`,b,`,d,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,d,`,b,`, ,#
|
,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
,h,`,n, , ,d, , , , , , ,`, , , , , , , , , , ,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`, , , , , , , , , , ,`, , , , , , ,d, , ,n,`,h, ,#
|
,`,`,T{pets=true}(1x1),b(5x5),,`,,b(5x5),,,,,`,b(6x5),,,,,b(5x6),,,,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,b(5x6),,,,b(6x5),,,,,,`,b(5x5),,,,b(5x5),,`,,,T{pets=true}(1x1),`,`
|
||||||
, , , , ,n,`,n, ,f,`,n, ,`, ,n,r,a,h, ,h,s,f, ,`, , , , , , ,d, , ,`,`,`, , ,d, , , , , , ,`, ,h,s,f, ,h,a,r,n, ,`, ,n,`,f, ,n,`,n, , , , , ,#
|
,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,`,,`,`,`,,`,b(5x5),,,,b(5x4),,`,,,`,`,`,b(5x4),,`,,b(5x5),,,,,`,,`,`,`,,`,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1)
|
||||||
, , , , ,`,b,`, ,`,b,`,d,`,d,`,b,`,s, ,a,`,c, ,`, ,h,`,f, ,n,`,n, ,`,`,`, ,n,`,n, ,h,`,f, ,`, ,a,`,c, ,s,`,b,`,d,`,d,`,b,`, ,`,b,`, , , , , ,#
|
,,,,,`,`,`,,`,`,`,`,`,`,`,`,`,`,,`,`,`,,`,,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`,,`,,`,`,`,,`,`,`,`,`,`,`,`,`,`,,`,`,`
|
||||||
, , , , ,h,`,f, ,h,`,n, ,`, ,n,t,c,f, ,r,b,t, ,`, ,`,b,`, ,h,b,f, ,`,`,`, ,h,b,f, ,`,b,`, ,`, ,r,b,t, ,f,c,t,n, ,`, ,n,`,h, ,h,`,f, , , , , ,#
|
,,,,,`,`,`,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,`,,`,`,`,,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,,`,`,`,,`,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,`,`,`
|
||||||
, , , , , , , , , , , , ,d, , , , , , ,n,`,n, ,`, ,n,`,n, , , , , ,`,`,`, , , , , ,n,`,n, ,`, ,n,`,n, , , , , , ,d, , , , , , , , , , , , , ,#
|
,,,,,,,,,,,b(5x5),,`,,b(5x5),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x5),,,,,`,`,`,b(5x5),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x5),,,,b(5x5),,`
|
||||||
, , , , , , , , , , , ,n,`,n, ,f,`,n, , ,d, , ,`, , ,d, , ,n,`,f, ,`,`,`, ,f,`,n, , ,d, , ,`, , ,d, , ,n,`,f, ,n,`,n, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,T{pets=true}(1x1),,,`,,,`,,,`,,,T{pets=true}(1x1),`,`,,`,`,`,,`,`,T{pets=true}(1x1),,,`,,,`,,,`,,,T{pets=true}(1x1),`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1)
|
||||||
, , , , , , , , , , , ,`,b,`, ,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`, ,`,`,`, ,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`, ,`,b,`, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,`,`,`,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,,`,`,`,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,,`,`,`
|
||||||
, , , , , , , , , , , ,h,`,f, ,h,`,n, , ,d, , ,`, , ,d, , ,n,`,h, ,`,`,`, ,h,`,n, , ,d, , ,`, , ,d, , ,n,`,h, ,h,`,f, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,`,`,`,,`,`,T{pets=true}(1x1),b(5x5),,`,,,`,b(5x5),,`,,,T{pets=true}(1x1),`,`,,`,`,`,,`,`,T{pets=true}(1x1),b(5x5),,`,,,`,b(5x5),,`,,,T{pets=true}(1x1),`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,n,`,n, ,`, ,n,`,n, , , , , ,`,`,`, , , , , ,n,`,n, ,`, ,n,`,n, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),b(5x6),,,,,`,`,`,b(5x6),,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,T{pets=true}(1x1)
|
||||||
, , , , , , , , , , , , , , , , , , , ,`,b,`, ,`, ,`,b,`, ,h,s,f, ,`,`,`, ,h,s,f, ,`,b,`, ,`, ,`,b,`, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,h,`,f, ,`, ,h,`,f, ,a,`,c, ,`,`,`, ,a,`,c, ,h,`,f, ,`, ,h,`,f, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,`,`,,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,`, , , , , ,r,b,t,d,`,`,`,d,r,b,t, , , , , ,`, , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,b(5x5),,,,,`,b(5x5),,,,,`,`,`,`,`,`,`,`,`,`,`,b(5x5),,,,,`,b(5x5)
|
||||||
, , , , , , , , , , , , , , , , , , , ,f,`,n, ,`, ,n,`,f, ,n,`,n, ,`,`,`, ,n,`,n, ,f,`,n, ,`, ,n,`,f, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,`,b,`,d,`,d,`,b,`, , ,d, , ,`,`,`, , ,d, , ,`,b,`,d,`,d,`,b,`, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,,,`,,,`,`,`,,,`,,,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , ,h,`,n, ,`, ,n,`,h, ,`,`,`, ,`,`,`, ,`,`,`, ,h,`,n, ,`, ,n,`,h, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`,,`,`,`,,`,`,`,,`,`,`,,`,`,T{pets=true}(1x1),,`,,T{pets=true}(1x1),`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,d, , , , , , ,`,`, ,`,`,`, ,`,`, , , , , , ,d, , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,b(5x5),,`,,b(5x5),,,,,`,`,,`,`,`,,`,`,b(5x5),,,,b(5x5),,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,n,`,n, ,f,`,n, ,`,`, ,`,`,`, ,`,`, ,n,`,f, ,n,`,n, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,T{pets=true}(1x1),`,T{pets=true}(1x1),,`,`,T{pets=true}(1x1),,`,`,,`,`,`,,`,`,,T{pets=true}(1x1),`,`,,T{pets=true}(1x1),`,T{pets=true}(1x1)
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,`,b,`, ,`,b,`,d,`,`, ,`,`,`, ,`,`,d,`,b,`, ,`,b,`, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,`,`,`,,`,`,`,`,`,`,,`,`,`,,`,`,`,`,`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , ,h,`,f, ,h,`,n, ,`,`, ,`,`,`, ,`,`, ,n,`,h, ,h,`,f, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,`,`,`,,`,`,T{pets=true}(1x1),,`,`,,`,`,`,,`,`,,T{pets=true}(1x1),`,`,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,`,`,`, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , ,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`, , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , ,`,`,`,`,`,`,`,`,`,`,`,`,~,~,~,`,`,`,`,`,`,`,`,`,`,`,`, , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,~,~,~,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , ,`,`,`,`,`,`,`,`,`,`,`,`,~,~,~,`,`,`,`,`,`,`,`,`,`,`,`, , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,~,~,~,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , ,`,`,`,`,`,`,`,`,`,`,`,`,~,~,~,`,`,`,`,`,`,`,`,`,`,`,`, , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,~,~,~,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
#build label(build) start(36;73) hidden()
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
|
||||||
#query label(rooms) start(36;73) message(use burial script to mark urns as usable) room designations
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,f,`,n,,`,,n,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,b,`,d,`,d,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,`,n,,`,,n,`,h
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,h,`,f,,`,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,b,`,,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,n,`,n,,`,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,f,`,n,,,d,,,`,,,d,,,n,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,h,`,n,,,d,,,`,,,d,,,n,`,h
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , , , , , , , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,n,`,n,,`,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,h,`,f,,r,b,t,,`,,r,b,t,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,`,b,`,,a,`,c,,`,,a,`,c,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,n,`,n,,h,s,f,,`,,h,s,f,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , , , , , , , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,,`,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,h,`,f,,f,`,n,,`,,n,r,a,h,,`,,h,a,r,n,,`,,n,`,f,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,b,`,,`,b,`,d,`,d,`,b,`,s,,`,,s,`,b,`,d,`,d,`,b,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,n,`,n,,h,`,n,,`,,n,t,c,f,,`,,f,c,t,n,,`,,n,`,h,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , ,r+,, , ,r+,, , , , ,r+,, , , , , , ,r+,, , , , ,r+,, , ,r+,, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,f,`,n,,,d,,,,,,,`,,,,,,,`,,,,,,,`,,,,,,,d,,,n,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,`,b,`,d,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,d,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,h,`,n,,,d,,,,,,,`,,,,,,`,`,`,,,,,,`,,,,,,,d,,,n,`,h
|
||||||
, , , , , , , , , , , , , , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,n,`,n,,f,`,n,,`,,n,`,f,,`,`,`,,f,`,n,,`,,n,`,f,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,b,`,,`,b,`,d,`,d,`,b,`,,`,`,`,,`,b,`,d,`,d,`,b,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,h,`,f,,h,`,n,,`,,n,`,h,,`,`,`,,h,`,n,,`,,n,`,h,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , ,r+,, , ,r+,, , , , ,r+,, , , , , , ,r+,, , , , ,r+,, , ,r+,, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,`,`,`,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,h,`,f,,n,`,n,,f,n,,`,`,`,,n,f,,n,`,n,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,`,b,`,,`,b,`,,b,`,d,`,`,`,d,`,b,,`,b,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,n,`,n,,h,`,f,,h,n,,`,`,`,,n,h,,h,`,f,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,r+,, , ,r+,, ,r+,, , , , , , ,r+,, ,r+,, , ,r+,, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,,d,,,`,`,`,,,d,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,f,`,n,,`,,n,`,f,,n,`,n,,`,`,`,,n,`,n,,f,`,n,,`,,n,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,b,`,d,`,d,`,b,`,,h,b,f,,`,`,`,,h,b,f,,`,b,`,d,`,d,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,h,`,n,,`,,n,`,h,,,d,,,`,`,`,,,d,,,h,`,n,,`,,n,`,h
|
||||||
, , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , ,r+,, , , , , , ,r+,, , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,`,,,,,,n,`,n,,`,`,`,,n,`,n,,,,,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,h,`,f,,`,,h,`,f,,`,b,`,,`,`,`,,`,b,`,,h,`,f,,`,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,b,`,,`,,`,b,`,,h,`,f,,`,`,`,,h,`,f,,`,b,`,,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,n,`,n,,`,,n,`,n,,,,,,`,`,`,,,,,,n,`,n,,`,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,h,`,f,,f,`,n,,,d,,,`,,,d,,,n,`,f,,`,`,`,,f,`,n,,,d,,,`,,,d,,,n,`,f,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,`,b,`,,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`,,`,`,`,,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,n,`,n,,h,`,n,,,d,,,`,,,d,,,n,`,h,,`,`,`,,h,`,n,,,d,,,`,,,d,,,n,`,h,,n,`,n
|
||||||
, , , , , , , , , , , , ,r+,, , ,r+,, , , , , , , , , , , , ,r+,, , , , , , ,r+,, , , , , , , , , , , , ,r+,, , ,r+,, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,d,,,,,,,n,`,n,,`,,n,`,n,,,,,,`,`,`,,,,,,n,`,n,,`,,n,`,n,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,h,`,f,,f,`,n,,`,,n,r,a,h,,r,b,t,,`,,`,b,`,,h,b,f,,`,`,`,,h,b,f,,`,b,`,,`,,r,b,t,,h,a,r,n,,`,,n,`,f,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,`,b,`,,`,b,`,d,`,d,`,b,`,s,,a,`,c,,`,,h,`,f,,n,`,n,,`,`,`,,n,`,n,,h,`,f,,`,,a,`,c,,s,`,b,`,d,`,d,`,b,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , ,r+,, , , , , , ,r+,, , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,n,`,n,,h,`,n,,`,,n,t,c,f,,h,s,f,,`,,,,,,,d,,,`,`,`,,,d,,,,,,,`,,h,s,f,,f,c,t,n,,`,,n,`,h,,n,`,n
|
||||||
, , , , , ,r+,, , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , ,r+,, , , , , ,#
|
,f,`,n,,,d,,,,,,,`,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,,,,,,,,,,,`,,,,,,,d,,,n,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,`,b,`,d,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,d,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,h,`,n,,,d,,,,,,,`,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,,,,,,,,,,,`,,,,,,,d,,,n,`,h
|
||||||
, ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, ,#
|
,,,,,n,`,n,,f,`,n,,`,,n,r,a,h,,h,s,f,,`,,,,,,,d,,,`,`,`,,,d,,,,,,,`,,h,s,f,,h,a,r,n,,`,,n,`,f,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,`,b,`,,`,b,`,d,`,d,`,b,`,s,,a,`,c,,`,,h,`,f,,n,`,n,,`,`,`,,n,`,n,,h,`,f,,`,,a,`,c,,s,`,b,`,d,`,d,`,b,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,h,`,f,,h,`,n,,`,,n,t,c,f,,r,b,t,,`,,`,b,`,,h,b,f,,`,`,`,,h,b,f,,`,b,`,,`,,r,b,t,,f,c,t,n,,`,,n,`,h,,h,`,f
|
||||||
, , , , , ,r+,, , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , ,r+,, , , , , ,#
|
,,,,,,,,,,,,,d,,,,,,,n,`,n,,`,,n,`,n,,,,,,`,`,`,,,,,,n,`,n,,`,,n,`,n,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , ,r+,, , , , , , ,r+,, , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,n,`,n,,f,`,n,,,d,,,`,,,d,,,n,`,f,,`,`,`,,f,`,n,,,d,,,`,,,d,,,n,`,f,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,`,b,`,,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`,,`,`,`,,`,b,`,d,`,`,`,`,`,`,`,`,`,d,`,b,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,h,`,f,,h,`,n,,,d,,,`,,,d,,,n,`,h,,`,`,`,,h,`,n,,,d,,,`,,,d,,,n,`,h,,h,`,f
|
||||||
, , , , , , , , , , , , ,r+,, , ,r+,, , , , , , , , , , , , ,r+,, , , , , , ,r+,, , , , , , , , , , , , ,r+,, , ,r+,, , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,n,`,n,,`,,n,`,n,,,,,,`,`,`,,,,,,n,`,n,,`,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,b,`,,`,,`,b,`,,h,s,f,,`,`,`,,h,s,f,,`,b,`,,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,h,`,f,,`,,h,`,f,,a,`,c,,`,`,`,,a,`,c,,h,`,f,,`,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,`,,,,,,r,b,t,d,`,`,`,d,r,b,t,,,,,,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,f,`,n,,`,,n,`,f,,n,`,n,,`,`,`,,n,`,n,,f,`,n,,`,,n,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,r+,, , , , , , ,r+,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,`,b,`,d,`,d,`,b,`,,,d,,,`,`,`,,,d,,,`,b,`,d,`,d,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,h,`,n,,`,,n,`,h,,`,`,`,,`,`,`,,`,`,`,,h,`,n,,`,,n,`,h
|
||||||
, , , , , , , , , , , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , , , , ,r+,, , , , ,r+,, , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,d,,,,,,,`,`,,`,`,`,,`,`,,,,,,,d
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,n,`,n,,f,`,n,,`,`,,`,`,`,,`,`,,n,`,f,,n,`,n
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,`,b,`,,`,b,`,d,`,`,,`,`,`,,`,`,d,`,b,`,,`,b,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,h,`,f,,h,`,n,,`,`,,`,`,`,,`,`,,n,`,h,,h,`,f
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , ,r+,, , ,r+,, , , , , , , , , , , , ,r+,, , ,r+,, , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,~,~,~,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,~,~,~,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,~,~,~, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
,,,,,,,,,,,,,,,,,,,,,,`,`,`,`,`,`,`,`,`,`,`,`,~,~,~,`,`,`,`,`,`,`,`,`,`,`,`
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,~,~,~, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,~,~,~, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
|
||||||
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,#
|
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
|
||||||
|
|
Can't render this file because it has a wrong number of fields in line 29.
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"planner": {
|
||||||
|
"minimized": true
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +0,0 @@
|
|||||||
# Example DFHack init scripts
|
|
||||||
|
|
||||||
This folder contains ready-to-use examples of DFHack init scripts.
|
|
||||||
You can use them by copying them to the dfhack-config/init folder.
|
|
||||||
You can use them unmodified, or you can customize them to better
|
|
||||||
suit your preferences.
|
|
||||||
|
|
||||||
For information on each of the files in this library, see the
|
|
||||||
[DFHack Example Configuration File Guide](https://docs.dfhack.org/en/stable/docs/guides/examples-guide.html).
|
|
@ -1,76 +0,0 @@
|
|||||||
# This dfhack config file automates common tasks for your forts.
|
|
||||||
# It was written for the Dreamfort set of quickfort blueprints, but the
|
|
||||||
# configuration here is useful for any fort! Copy this file to your
|
|
||||||
# dfhack-config/init directory to use. Feed free to edit or override
|
|
||||||
# to your liking.
|
|
||||||
|
|
||||||
# Uncomment this next line if you want buildingplan (and quickfort) to use only
|
|
||||||
# blocks (not bars or logs) for constructions and workshops. If you do
|
|
||||||
# uncomment, be sure to bring some blocks with you for starting workshops!
|
|
||||||
#on-new-fortress buildingplan set boulders false; buildingplan set logs false
|
|
||||||
|
|
||||||
# Disable cooking of useful item types when you start a new fortress.
|
|
||||||
on-new-fortress ban-cooking all
|
|
||||||
|
|
||||||
# Show a warning dialog when units are starving
|
|
||||||
repeat -name warn-starving -time 10 -timeUnits days -command [ warn-starving ]
|
|
||||||
|
|
||||||
# Force dwarves to drop tattered clothing instead of clinging to the scraps
|
|
||||||
repeat -name cleanowned -time 1 -timeUnits months -command [ cleanowned X ]
|
|
||||||
|
|
||||||
# Automatically enqueue orders to shear and milk animals
|
|
||||||
repeat -name autoShearCreature -time 14 -timeUnits days -command [ workorder ShearCreature ]
|
|
||||||
repeat -name autoMilkCreature -time 14 -timeUnits days -command [ workorder "{\"job\":\"MilkCreature\",\"item_conditions\":[{\"condition\":\"AtLeast\",\"value\":2,\"flags\":[\"empty\"],\"item_type\":\"BUCKET\"}]}" ]
|
|
||||||
|
|
||||||
# Fulfill high-volume orders before slower once-daily orders
|
|
||||||
repeat -name orders-sort -time 1 -timeUnits days -command [ orders sort ]
|
|
||||||
|
|
||||||
# Manages crop assignment for farm plots
|
|
||||||
enable autofarm
|
|
||||||
autofarm default 30
|
|
||||||
autofarm threshold 150 GRASS_TAIL_PIG
|
|
||||||
|
|
||||||
# allows you to configure a stockpile to automatically mark items for melting
|
|
||||||
enable automelt
|
|
||||||
|
|
||||||
# creates manager orders to produce replacements for worn clothing
|
|
||||||
enable tailor
|
|
||||||
|
|
||||||
# auto-assigns nesting birds to nestbox zones and protects fertile eggs from
|
|
||||||
# being gathered and eaten
|
|
||||||
enable autonestbox nestboxes
|
|
||||||
|
|
||||||
# manages seed stocks
|
|
||||||
enable seedwatch
|
|
||||||
seedwatch all 30
|
|
||||||
|
|
||||||
# ensures important tasks get assigned to workers.
|
|
||||||
# otherwise many job types can get ignored in busy forts.
|
|
||||||
on-new-fortress prioritize -aq defaults
|
|
||||||
|
|
||||||
# autobutcher settings are saved in the savegame, so we only need to set them once.
|
|
||||||
# this way, any custom settings you set during gameplay are not overwritten
|
|
||||||
#
|
|
||||||
# feel free to change this to "target 0 0 0 0" if you don't expect to want to raise
|
|
||||||
# any animals not listed here -- you can always change it anytime during the game
|
|
||||||
# later if you change your mind.
|
|
||||||
on-new-fortress enable autobutcher
|
|
||||||
on-new-fortress autobutcher target 2 2 2 2 new
|
|
||||||
# dogs and cats. You should raise the limits for dogs if you will be training them
|
|
||||||
# for hunting or war.
|
|
||||||
on-new-fortress autobutcher target 2 2 2 2 DOG
|
|
||||||
on-new-fortress autobutcher target 1 1 2 2 CAT
|
|
||||||
# geese are our primary source of bones and leather. let the younglings grow up
|
|
||||||
# before we butcher so we get adult-scale products from them. BIRD_PEAFOWL_BLUE,
|
|
||||||
# BIRD_CHICKEN, and BIRD_TURKEY are also viable. feel free to change this to
|
|
||||||
# your bird of choice.
|
|
||||||
on-new-fortress autobutcher target 50 50 14 2 BIRD_GOOSE
|
|
||||||
# alpaca, sheep, and llamas give wool. we need to keep these numbers low, though, or
|
|
||||||
# else risk running out of grass for grazing.
|
|
||||||
on-new-fortress autobutcher target 2 2 4 2 ALPACA SHEEP LLAMA
|
|
||||||
# pigs give milk and meat and are zero-maintenance.
|
|
||||||
on-new-fortress autobutcher target 5 5 6 2 PIG
|
|
||||||
# immediately butcher all unprofitable animals
|
|
||||||
on-new-fortress autobutcher target 0 0 0 0 HORSE YAK DONKEY WATER_BUFFALO GOAT CAVY BIRD_DUCK BIRD_GUINEAFOWL
|
|
||||||
# watch for new animals
|
|
||||||
on-new-fortress autobutcher autowatch
|
|
@ -1 +1 @@
|
|||||||
Subproject commit 6ed8aa46462ea01a1122fc49422840a2facc9757
|
Subproject commit 8cf949340e22001bee1ca25c9d6c1d6a89e8faf2
|
@ -1 +1 @@
|
|||||||
Subproject commit 081249cceb59adc857a72d67e60c32047680f787
|
Subproject commit fc4a77ea28eb5eba0ecd11443f291335ec3d2aa0
|
@ -1 +1 @@
|
|||||||
Subproject commit 439fdbc259c13f23a3122e68ba35ad5a13bcd97c
|
Subproject commit 0a994526622c2201756e386ef98b44b193e25f06
|
@ -1 +0,0 @@
|
|||||||
*.lib
|
|
@ -1,49 +0,0 @@
|
|||||||
.. _config-examples-guide:
|
|
||||||
.. _dfhack-examples-guide:
|
|
||||||
|
|
||||||
DFHack config file examples
|
|
||||||
===========================
|
|
||||||
|
|
||||||
The :source:`hack/examples <data/examples>` folder contains ready-to-use
|
|
||||||
examples of various DFHack configuration files. You can use them by copying them
|
|
||||||
to appropriate folders where DFHack and its plugins can find them (details
|
|
||||||
below). You can use them unmodified, or you can customize them to better suit
|
|
||||||
your preferences.
|
|
||||||
|
|
||||||
The ``init/`` subfolder
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
The :source:`init/ <data/dfhack-config/init/examples>` subfolder contains useful
|
|
||||||
DFHack `init-files` that you can copy into your :file:`dfhack-config/init`
|
|
||||||
folder -- the same directory as ``dfhack.init``.
|
|
||||||
|
|
||||||
.. _onMapLoad-dreamfort-init:
|
|
||||||
|
|
||||||
:source:`onMapLoad_dreamfort.init <data/dfhack-config/init/examples/onMapLoad_dreamfort.init>`
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
This is the config file that designed for the `dreamfort` set of blueprints, but
|
|
||||||
it is useful (and customizable) for any fort. It includes the following config:
|
|
||||||
|
|
||||||
- Calls `ban-cooking` for items that have important alternate uses and should
|
|
||||||
not be cooked. This configuration is only set when a fortress is first
|
|
||||||
started, so later manual changes will not be overridden.
|
|
||||||
- Automates calling of various fort maintenance scripts, like `cleanowned` and
|
|
||||||
`fix/stuckdoors`.
|
|
||||||
- Keeps your manager orders intelligently ordered with `orders` ``sort`` so no
|
|
||||||
orders block other orders from ever getting completed.
|
|
||||||
- Periodically enqueues orders to shear and milk shearable and milkable pets.
|
|
||||||
- Sets up `autofarm` to grow 30 units of every crop, except for pig tails, which
|
|
||||||
is set to 150 units to support the textile industry.
|
|
||||||
- Sets up `seedwatch` to protect 30 of every type of seed.
|
|
||||||
- Configures `prioritize` to automatically boost the priority of important and
|
|
||||||
time-sensitive tasks that could otherwise get ignored in busy forts, like
|
|
||||||
hauling food, tanning hides, storing items in vehicles, pulling levers, and
|
|
||||||
removing constructions.
|
|
||||||
- Optimizes `autobutcher` settings for raising geese, alpacas, sheep, llamas,
|
|
||||||
and pigs. Adds sensible defaults for all other animals, including dogs and
|
|
||||||
cats. There are instructions in the file for customizing the settings for
|
|
||||||
other combinations of animals. These settings are also only set when a
|
|
||||||
fortress is first started, so any later changes you make to autobutcher
|
|
||||||
settings won't be overridden.
|
|
||||||
- Enables `automelt`, `tailor`, `zone`, `nestboxes`, and `autonestbox`.
|
|
@ -1,875 +0,0 @@
|
|||||||
.. _quickfort-alias-guide:
|
|
||||||
|
|
||||||
Quickfort keystroke alias reference
|
|
||||||
===================================
|
|
||||||
|
|
||||||
Aliases allow you to use simple words to represent complicated key sequences
|
|
||||||
when configuring buildings and stockpiles in quickfort ``#query`` and
|
|
||||||
``#config`` blueprints.
|
|
||||||
|
|
||||||
For example, say you have the following ``#build`` and ``#place`` blueprints::
|
|
||||||
|
|
||||||
#build masonry workshop
|
|
||||||
~, ~,~,`,`,`
|
|
||||||
~,wm,~,`,`,`
|
|
||||||
~, ~,~,`,`,`
|
|
||||||
|
|
||||||
#place stockpile for mason
|
|
||||||
~,~,~,s,s,s
|
|
||||||
~,~,~,s,s,s
|
|
||||||
~,~,~,s,s,s
|
|
||||||
|
|
||||||
and you want to configure the stockpile to hold only non-economic ("other")
|
|
||||||
stone and to give to the adjacent mason workshop. You could write the
|
|
||||||
key sequences directly::
|
|
||||||
|
|
||||||
#query configure stockpile with expanded key sequences
|
|
||||||
~,~,~,s{Down 5}deb{Right}{Down 2}p^,`,`
|
|
||||||
~,~,~,g{Left 2}&, `,`
|
|
||||||
~,~,~,`, `,`
|
|
||||||
|
|
||||||
or you could use aliases::
|
|
||||||
|
|
||||||
#query configure stockpile with aliases
|
|
||||||
~,~,~,otherstone,`,`
|
|
||||||
~,~,~,give2left, `,`
|
|
||||||
~,~,~,`, `,`
|
|
||||||
|
|
||||||
If the stockpile had only a single tile, you could also replay both aliases in
|
|
||||||
a single cell::
|
|
||||||
|
|
||||||
#query configure mason with multiple aliases in one cell
|
|
||||||
~,~,~,{otherstone}{give2left},`,`
|
|
||||||
~,~,~,`, `,`
|
|
||||||
~,~,~,`, `,`
|
|
||||||
|
|
||||||
With aliases, blueprints are much easier to read and understand. They also
|
|
||||||
save you from having to copy the same long key sequences everywhere.
|
|
||||||
|
|
||||||
Alias definition files
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
DFHack comes with a library of aliases for you to use that are always
|
|
||||||
available when you run a ``#query`` blueprint. Many blueprints can be built
|
|
||||||
with just those aliases. This "standard alias library" is stored in
|
|
||||||
:source:`data/quickfort/aliases-common.txt` (installed under the ``hack`` folder
|
|
||||||
in your DFHack installation). The aliases in that file are described at the
|
|
||||||
`bottom of this document <quickfort-alias-library>`.
|
|
||||||
|
|
||||||
Please do not edit the aliases in the standard library directly. The file will
|
|
||||||
get overwritten when DFHack is updated and you'll lose your changes. Instead,
|
|
||||||
add your custom aliases to :source:`dfhack-config/quickfort/aliases.txt` or
|
|
||||||
directly to your blueprints in an `#aliases <quickfort-aliases-blueprints>`
|
|
||||||
section. Your custom alias definitions take precedence over any definitions in
|
|
||||||
the standard library.
|
|
||||||
|
|
||||||
Alias syntax and usage
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
The syntax for defining aliases is::
|
|
||||||
|
|
||||||
aliasname: expansion
|
|
||||||
|
|
||||||
Where ``aliasname`` is at least two letters or digits long (dashes and
|
|
||||||
underscores are also allowed) and ``expansion`` is whatever you would type
|
|
||||||
into the DF UI.
|
|
||||||
|
|
||||||
You use an alias by typing its name into a ``#query`` blueprint cell where you
|
|
||||||
want it to be applied. You can use an alias by itself or as part of a larger
|
|
||||||
sequence, potentially with other aliases. If the alias is the only text in the
|
|
||||||
cell, the alias name is matched and its expansion is used. If the alias has
|
|
||||||
other keys before or after it, the alias name must be surrounded in curly
|
|
||||||
brackets (:kbd:`{` and :kbd:`}`). An alias can be surrounded in curly brackets
|
|
||||||
even if it is the only text in the cell, it just isn't necessary. For example,
|
|
||||||
the following blueprint uses the ``aliasname`` alias by itself in the first
|
|
||||||
two rows and uses it as part of a longer sequence in the third row::
|
|
||||||
|
|
||||||
#query apply alias 'aliasname' in three different ways
|
|
||||||
aliasname
|
|
||||||
{aliasname}
|
|
||||||
literaltext{aliasname}literaltext
|
|
||||||
|
|
||||||
For a more concrete example of an alias definition, a simple alias that
|
|
||||||
configures a stockpile to have no bins (:kbd:`C`) and no barrels (:kbd:`E`)
|
|
||||||
assigned to it would look like this::
|
|
||||||
|
|
||||||
nocontainers: CE
|
|
||||||
|
|
||||||
The alias definition can also contain references to other aliases by including
|
|
||||||
the alias names in curly brackets. For example, ``nocontainers`` could be
|
|
||||||
equivalently defined like this::
|
|
||||||
|
|
||||||
nobins: C
|
|
||||||
nobarrels: E
|
|
||||||
nocontainers: {nobins}{nobarrels}
|
|
||||||
|
|
||||||
Aliases used in alias definitions *must* be surrounded by curly brackets, even
|
|
||||||
if they are the only text in the definition::
|
|
||||||
|
|
||||||
alias1: text1
|
|
||||||
alias2: alias1
|
|
||||||
alias3: {alias1}
|
|
||||||
|
|
||||||
Here, ``alias1`` and ``alias3`` expand to ``text1``, but ``alias2`` expands to
|
|
||||||
the literal text ``alias1``.
|
|
||||||
|
|
||||||
Keycodes
|
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
Non-printable characters, like the arrow keys, are represented by their
|
|
||||||
keycode name and are also surrounded by curly brackets, like ``{Right}`` or
|
|
||||||
``{Enter}``. Keycodes are used exactly like aliases -- they just have special
|
|
||||||
expansions that you wouldn't be able to write yourself. In order to avoid
|
|
||||||
naming conflicts between aliases and keycodes, the convention is to start
|
|
||||||
aliases with a lowercase letter.
|
|
||||||
|
|
||||||
Any keycode name from the DF interface definition file
|
|
||||||
(data/init/interface.txt) is valid, but only a few keycodes are actually
|
|
||||||
useful for blueprints::
|
|
||||||
|
|
||||||
Up
|
|
||||||
Down
|
|
||||||
Left
|
|
||||||
Right
|
|
||||||
Enter
|
|
||||||
ESC
|
|
||||||
Backspace
|
|
||||||
Space
|
|
||||||
Tab
|
|
||||||
|
|
||||||
There is also one pseudo-keycode that quickfort recognizes::
|
|
||||||
|
|
||||||
Empty
|
|
||||||
|
|
||||||
which has an empty expansion. It is primarily useful for defining blank default values for `Sub-aliases`_.
|
|
||||||
|
|
||||||
Repetitions
|
|
||||||
~~~~~~~~~~~
|
|
||||||
|
|
||||||
Anything enclosed within curly brackets can also have a number, indicating how
|
|
||||||
many times that alias or keycode should be repeated. For example:
|
|
||||||
``{togglesequence 9}`` or ``{Down 5}`` will repeat the ``togglesequence``
|
|
||||||
alias nine times and the ``Down`` keycode five times, respectively.
|
|
||||||
|
|
||||||
Modifier keys
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Ctrl, Alt, and Shift modifiers can be specified for the next key by adding
|
|
||||||
them into the key sequence. For example, Alt-h is written as ``{Alt}h``.
|
|
||||||
|
|
||||||
Shorthand characters
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Some frequently-used keycodes are assigned shorthand characters. Think of them
|
|
||||||
as single-character aliases that don't need to be surrounded in curly
|
|
||||||
brackets::
|
|
||||||
|
|
||||||
& expands to {Enter}
|
|
||||||
@ expands to {Shift}{Enter}
|
|
||||||
~ expands to {Alt}
|
|
||||||
! expands to {Ctrl}
|
|
||||||
^ expands to {ESC}
|
|
||||||
|
|
||||||
If you need literal versions of the shorthand characters, surround them in
|
|
||||||
curly brackets, for example: use ``{!}`` for a literal exclamation point.
|
|
||||||
|
|
||||||
Built-in aliases
|
|
||||||
~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Most aliases that come with DFHack are in ``aliases-common.txt``, but there is
|
|
||||||
one alias built into the code for the common shorthand for "make room"::
|
|
||||||
|
|
||||||
r+ expands to r+{Enter}
|
|
||||||
|
|
||||||
This needs special code support since ``+`` can't normally be used in alias
|
|
||||||
names. You can use it just like any other alias, either by itself in a cell
|
|
||||||
(``r+``) or surrounded in curly brackets (``{r+}``).
|
|
||||||
|
|
||||||
Sub-aliases
|
|
||||||
~~~~~~~~~~~
|
|
||||||
|
|
||||||
You can specify sub-aliases that will only be defined while the current alias
|
|
||||||
is being resolved. This is useful for "injecting" custom behavior into the
|
|
||||||
middle of a larger alias. As a simple example, the ``givename`` alias is defined
|
|
||||||
like this::
|
|
||||||
|
|
||||||
givename: !n{name}&
|
|
||||||
|
|
||||||
Note the use of the ``name`` alias inside of the ``givename`` expansion. In your
|
|
||||||
``#query`` blueprint, you could write something like this, say, while over your
|
|
||||||
main drawbridge::
|
|
||||||
|
|
||||||
{givename name="Front Gate"}
|
|
||||||
|
|
||||||
The value that you give the sub-alias ``name`` will be used when the
|
|
||||||
``givename`` alias is expanded. Without sub-aliases, we'd have to define
|
|
||||||
``givename`` like this::
|
|
||||||
|
|
||||||
givenameprefix: !n
|
|
||||||
givenamesuffix: &
|
|
||||||
|
|
||||||
and use it like this::
|
|
||||||
|
|
||||||
{givenameprefix}Front Gate{givenamesuffix}
|
|
||||||
|
|
||||||
which is more difficult to write and more difficult to understand.
|
|
||||||
|
|
||||||
A handy technique is to define an alias with some sort of default
|
|
||||||
behavior and then use sub-aliases to override that behavior as necessary. For
|
|
||||||
example, here is a simplified version of the standard ``quantum`` alias that
|
|
||||||
sets up quantum stockpiles::
|
|
||||||
|
|
||||||
quantum_enable: {enableanimals}{enablefood}{enablefurniture}...
|
|
||||||
quantum: {linksonly}{nocontainers}{quantum_enable}
|
|
||||||
|
|
||||||
You can use the default behavior of ``quantum_enable`` by just using the
|
|
||||||
``quantum`` alias by itself. But you can override ``quantum_enable`` to just
|
|
||||||
enable furniture for some specific stockpile like this::
|
|
||||||
|
|
||||||
{quantum quantum_enable={enablefurniture}}
|
|
||||||
|
|
||||||
If an alias uses a sub-alias in its expansion, but the sub-alias is not defined
|
|
||||||
when the alias is used, quickfort will halt the ``#query`` blueprint with an
|
|
||||||
error. If you want your aliases to work regardless of whether sub-aliases are
|
|
||||||
defined, then you must define them with default values like ``quantum_enable``
|
|
||||||
above. If a default value should be blank, like the ``name`` sub-alias used by
|
|
||||||
the ``givename`` alias above, define it with the ``{Empty}`` pesudo-keycode::
|
|
||||||
|
|
||||||
name: {Empty}
|
|
||||||
|
|
||||||
Sub-aliases must be in one of the following formats::
|
|
||||||
|
|
||||||
subaliasname=keyswithnospaces
|
|
||||||
subaliasname="keys with spaces or {aliases}"
|
|
||||||
subaliasname={singlealias}
|
|
||||||
|
|
||||||
If you specify both a sub-alias and a number of repetitions, the number for
|
|
||||||
repetitions goes last, right before the :kbd:`}`::
|
|
||||||
|
|
||||||
{alias subaliasname=value repetitions}
|
|
||||||
|
|
||||||
Beyond query mode
|
|
||||||
-----------------
|
|
||||||
``#query`` blueprints normally do things in DF :kbd:`q`\uery mode, but nobody
|
|
||||||
said that we have to *stay* in query mode. ``#query`` blueprints send
|
|
||||||
arbitrary key sequences to Dwarf Fortress. Anything you can do by typing keys
|
|
||||||
into DF, you can do in a ``#query`` blueprint. It is absolutely fine to
|
|
||||||
temporarily exit out of query mode, go into, say, hauling or zone or hotkey
|
|
||||||
mode, and do whatever needs to be done.
|
|
||||||
|
|
||||||
You just have to make certain to exit out of that alternate mode and get back
|
|
||||||
into :kbd:`q`\uery mode at the end of the key sequence. That way quickfort can
|
|
||||||
continue on configuring the next tile -- a tile configuration that assumes the
|
|
||||||
game is still in query mode.
|
|
||||||
|
|
||||||
For example, here is the standard library alias for giving a name to a zone::
|
|
||||||
|
|
||||||
namezone: ^i{givename}^q
|
|
||||||
|
|
||||||
The first :kbd:`\^` exits out of query mode. Then :kbd:`i` enters zones mode.
|
|
||||||
We then reuse the standard alias for giving something a name. Finally, we exit
|
|
||||||
out of zones mode with another :kbd:`\^` and return to :kbd:`q`\uery mode.
|
|
||||||
|
|
||||||
.. _quickfort-alias-library:
|
|
||||||
|
|
||||||
The DFHack standard alias library
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
DFHack comes with many useful aliases for you to use in your blueprints. Many
|
|
||||||
blueprints can be built with just these aliases alone, with no custom aliases
|
|
||||||
required.
|
|
||||||
|
|
||||||
This section goes through all aliases provided by the DFHack standard alias
|
|
||||||
library, discussing their intended usage and detailing sub-aliases that you
|
|
||||||
can define to customize their behavior.
|
|
||||||
|
|
||||||
If you do define your own custom aliases in
|
|
||||||
``dfhack-config/quickfort/aliases.txt``, try to build on library alias
|
|
||||||
components. For example, if you create an alias to modify particular furniture
|
|
||||||
stockpile settings, start your alias with ``{furnitureprefix}`` instead of
|
|
||||||
``s{Down 2}``. Using library prefixes will allow library sub-aliases to work
|
|
||||||
with your aliases just like they do with library aliases. In this case, using
|
|
||||||
``{furnitureprefix}`` will allow your stockpile customization alias to work
|
|
||||||
with both stockpiles and hauling routes.
|
|
||||||
|
|
||||||
Note that some aliases use the DFHack-provided search prompts. If you get errors
|
|
||||||
while running ``#query`` blueprints, ensure the DFHack `search-plugin` plugin is
|
|
||||||
enabled.
|
|
||||||
|
|
||||||
Naming aliases
|
|
||||||
~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
These aliases give descriptive names to workshops, levers, stockpiles, zones,
|
|
||||||
etc. Dwarf Fortress building, stockpile, and zone names have a maximum length
|
|
||||||
of 20 characters.
|
|
||||||
|
|
||||||
======== ===========
|
|
||||||
Alias Sub-aliases
|
|
||||||
======== ===========
|
|
||||||
givename name
|
|
||||||
namezone name
|
|
||||||
======== ===========
|
|
||||||
|
|
||||||
``givename`` works anywhere you can hit Ctrl-n to customize a name, like when
|
|
||||||
the cursor is over buildings and stockpiles. Example::
|
|
||||||
|
|
||||||
#place
|
|
||||||
f(10x2)
|
|
||||||
|
|
||||||
#query
|
|
||||||
{booze}{givename name=booze}
|
|
||||||
|
|
||||||
``namezone`` is intended to be used when over an activity zone. It includes
|
|
||||||
commands to get into zones mode, set the zone name, and get back to query
|
|
||||||
mode. Example::
|
|
||||||
|
|
||||||
#zone
|
|
||||||
n(2x2)
|
|
||||||
|
|
||||||
#query
|
|
||||||
{namezone name="guard dog pen"}
|
|
||||||
|
|
||||||
Quantum stockpile aliases
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
These aliases make it easy to create :wiki:`minecart stop-based quantum stockpiles <Quantum_stockpile#The_Minecart_Stop>`.
|
|
||||||
|
|
||||||
+----------------------+------------------+
|
|
||||||
| Alias | Sub-aliases |
|
|
||||||
+======================+==================+
|
|
||||||
| quantum | | name |
|
|
||||||
| | | quantum_enable |
|
|
||||||
+----------------------+------------------+
|
|
||||||
| quantumstopfromnorth | | name |
|
|
||||||
+----------------------+ | stop_name |
|
|
||||||
| quantumstopfromsouth | | route_enable |
|
|
||||||
+----------------------+ |
|
|
||||||
| quantumstopfromeast | |
|
|
||||||
+----------------------+ |
|
|
||||||
| quantumstopfromwest | |
|
|
||||||
+----------------------+------------------+
|
|
||||||
| sp_link | | move |
|
|
||||||
| | | move_back |
|
|
||||||
+----------------------+------------------+
|
|
||||||
| quantumstop | | name |
|
|
||||||
| | | stop_name |
|
|
||||||
| | | route_enable |
|
|
||||||
| | | move |
|
|
||||||
| | | move_back |
|
|
||||||
| | | sp_links |
|
|
||||||
+----------------------+------------------+
|
|
||||||
|
|
||||||
The idea is to use a minecart on a track stop to dump an infinite number of
|
|
||||||
items into a receiving "quantum" stockpile, which significantly simplifies
|
|
||||||
stockpile management. These aliases configure the quantum stockpile and
|
|
||||||
hauling route that make it all work. Here is a complete example for quantum
|
|
||||||
stockpiling weapons, armor, and ammunition. It has a 3x1 feeder stockpile on
|
|
||||||
the bottom (South), the trackstop in the center, and the quantum stockpile on
|
|
||||||
the top (North). Note that the feeder stockpile is the only stockpile that
|
|
||||||
needs to be configured to control which types of items end up in the quantum
|
|
||||||
stockpile. By default, the hauling route and quantum stockpile itself simply
|
|
||||||
accept whatever is put into them.
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
#place
|
|
||||||
,c
|
|
||||||
,
|
|
||||||
pdz(3x1)
|
|
||||||
|
|
||||||
#build
|
|
||||||
,
|
|
||||||
,trackstopN
|
|
||||||
|
|
||||||
#query message(remember to assign a minecart to the new route)
|
|
||||||
,quantum
|
|
||||||
,quantumstopfromsouth
|
|
||||||
nocontainers
|
|
||||||
|
|
||||||
The ``quantum`` alias configures a 1x1 stockpile to be a quantum stockpile. It
|
|
||||||
bans all containers and prevents the stockpile from being manually filled. By
|
|
||||||
default, it also enables storage of all item categories (except corpses and
|
|
||||||
refuse), so it doesn't really matter what letter you use to place the
|
|
||||||
stockpile. :wiki:`Refuse` is excluded by default since otherwise clothes and
|
|
||||||
armor in the quantum stockpile would rot away. If you want corpses or bones in
|
|
||||||
your quantum stockpile, use :kbd:`y` and/or :kbd:`r` to place the stockpile
|
|
||||||
and the ``quantum`` alias will just enable the remaining types. If you *do*
|
|
||||||
enable refuse in your quantum stockpile, be sure you avoid putting useful
|
|
||||||
clothes or armor in there!
|
|
||||||
|
|
||||||
The ``quantumstopfromsouth`` alias is run over the track stop and configures
|
|
||||||
the hauling route, again, allowing all item categories into the minecart by
|
|
||||||
default so any item that can go into the feeder stockpile can then be placed
|
|
||||||
in the minecart. It also links the hauling route with the feeder stockpile to
|
|
||||||
the South.The track stop does not need to be fully constructed before the
|
|
||||||
``#query`` blueprint is run, but the feeder stockpile needs to exist so we can
|
|
||||||
link to it. This means that the three blueprints above can be run one right
|
|
||||||
after another, without any dwarven labor in between them, and the quantum
|
|
||||||
stockpile will work properly.
|
|
||||||
|
|
||||||
Finally, the ``nocontainers`` alias simply configures the feeder stockpile to
|
|
||||||
not have any containers (which would just get in the way here). If we wanted
|
|
||||||
to be more specific about what item types we want in the quantum stockpile, we
|
|
||||||
could configure the feeder stockpile further, for example with standard
|
|
||||||
`stockpile adjustment aliases <quickfort-stockpile-aliases>`.
|
|
||||||
|
|
||||||
After the blueprints are run, the last step is to manually assign a minecart
|
|
||||||
to the newly-defined hauling route.
|
|
||||||
|
|
||||||
You can define sub-aliases to customize how these aliases work, for example to
|
|
||||||
have fine-grained control over what item types are enabled for the route and
|
|
||||||
quantum stockpile. We'll go over those options below, but first, here is an
|
|
||||||
example for how to just give names to everything::
|
|
||||||
|
|
||||||
#query message(remember to assign a minecart to the new route)
|
|
||||||
,{quantum name="armory quantum"}
|
|
||||||
,{quantumstopfromsouth name="Armory quantum" stop_name="Armory quantum stop"}{givename name="armory dumper"}
|
|
||||||
{givename name="armory feeder"}
|
|
||||||
|
|
||||||
All ``name`` sub-aliases are completely optional, of course. Keep in mind that
|
|
||||||
hauling route names have a maximum length of 22 characters, hauling route stop
|
|
||||||
names have a maximum length of 21 characters, and all other names have a
|
|
||||||
maximum length of 20 characters.
|
|
||||||
|
|
||||||
If you want to be absolutely certain that nothing ends up in your quantum
|
|
||||||
stockpile other than what you've configured in the feeder stockpile, you can
|
|
||||||
set the ``quantum_enable`` sub-alias for the ``quantum`` alias. This can
|
|
||||||
prevent, for example, somebody's knocked-out tooth from being considered part
|
|
||||||
of your furniture quantum stockpile when it happened to land on it during a
|
|
||||||
fistfight::
|
|
||||||
|
|
||||||
#query
|
|
||||||
{quantum name="furniture quantum" quantum_enable={enablefurniture}}
|
|
||||||
|
|
||||||
You can have similar control over the hauling route if you need to be more
|
|
||||||
selective about what item types are allowed into the minecart. If you have
|
|
||||||
multiple specialized quantum stockpiles that use a common feeder pile, for
|
|
||||||
example, you can set the ``route_enable`` sub-alias::
|
|
||||||
|
|
||||||
#query
|
|
||||||
{quantumstopfromsouth name="Steel bar quantum" route_enable="{enablebars}{steelbars}"}
|
|
||||||
|
|
||||||
Any of the `stockpile configuration aliases <quickfort-stockpile-aliases>` can
|
|
||||||
be used for either the ``quantum_enable`` or ``route_enable`` sub-aliases.
|
|
||||||
Experienced Dwarf Fortress players may be wondering how the same aliases can
|
|
||||||
work in both contexts since the keys for entering the configuration screen
|
|
||||||
differ. Fear not! There is some sub-alias magic at work here. If you define
|
|
||||||
your own stockpile configuration aliases, you can use the magic yourself by
|
|
||||||
building your aliases on the ``*prefix`` aliases described later in this
|
|
||||||
guide.
|
|
||||||
|
|
||||||
Finally, the ``quantumstop`` alias is a more general version of the simpler
|
|
||||||
``quantumstopfrom*`` aliases. The ``quantumstopfrom*`` aliases assume that a
|
|
||||||
single feeder stockpile is orthogonally adjacent to your track stop (which is
|
|
||||||
how most people set them up). If your feeder stockpile is somewhere further
|
|
||||||
away, or you have multiple feeder stockpiles to link, you can use the
|
|
||||||
``quantumstop`` alias directly. In addition to the sub-aliases used in the
|
|
||||||
``quantumstopfrom*`` alias, you can define the ``move`` and ``move_back``
|
|
||||||
sub-aliases, which let you specify the cursor keys required to move from the
|
|
||||||
track stop to the (single) feeder stockpile and back again, respectively::
|
|
||||||
|
|
||||||
#query
|
|
||||||
{quantumstop move="{Right 2}{Up}" move_back="{Down}{Left 2}"}
|
|
||||||
|
|
||||||
If you have multiple stockpiles to link, define the ``sp_links`` sub-alias,
|
|
||||||
which can chain several ``sp_link`` aliases together, each with their own
|
|
||||||
movement configuration::
|
|
||||||
|
|
||||||
#query
|
|
||||||
{quantumstop sp_links="{sp_link move=""{Right}{Up}"" move_back=""{Down}{Left}""}{sp_link move=""{Right}{Down}"" move_back=""{Up}{Left}""}"}
|
|
||||||
|
|
||||||
Note the doubled quotes for quoted elements that are within the outer quotes.
|
|
||||||
|
|
||||||
Farm plots
|
|
||||||
~~~~~~~~~~
|
|
||||||
|
|
||||||
Sets a farm plot to grow the first or last type of seed in the list of
|
|
||||||
available seeds for all four seasons. The last seed is usually Plump helmet
|
|
||||||
spawn, suitable for post-embark. But if you only have one seed type, that'll
|
|
||||||
be grown instead.
|
|
||||||
|
|
||||||
+------------------+
|
|
||||||
| Alias |
|
|
||||||
+==================+
|
|
||||||
| growlastcropall |
|
|
||||||
+------------------+
|
|
||||||
| growfirstcropall |
|
|
||||||
+------------------+
|
|
||||||
|
|
||||||
Instead of these aliases, though, it might be more useful to use the DFHack
|
|
||||||
`autofarm` plugin.
|
|
||||||
|
|
||||||
Stockpile configuration utility aliases
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
================ ===========
|
|
||||||
Alias Sub-aliases
|
|
||||||
================ ===========
|
|
||||||
linksonly
|
|
||||||
maxbins
|
|
||||||
maxbarrels
|
|
||||||
nobins
|
|
||||||
nobarrels
|
|
||||||
nocontainers
|
|
||||||
give2up
|
|
||||||
give2down
|
|
||||||
give2left
|
|
||||||
give2right
|
|
||||||
give10up
|
|
||||||
give10down
|
|
||||||
give10left
|
|
||||||
give10right
|
|
||||||
give move
|
|
||||||
togglesequence
|
|
||||||
togglesequence2
|
|
||||||
forbidsearch search
|
|
||||||
permitsearch search
|
|
||||||
togglesearch search
|
|
||||||
masterworkonly prefix
|
|
||||||
artifactonly prefix
|
|
||||||
togglemasterwork prefix
|
|
||||||
toggleartifact prefix
|
|
||||||
================ ===========
|
|
||||||
|
|
||||||
``linksonly``, ``maxbins``, ``maxbarrels``, ``nobins``, ``nobarrels``, and
|
|
||||||
``nocontainers`` set the named basic properties on stockpiles. ``nocontainers``
|
|
||||||
sets bins and barrels to 0, but does not affect wheelbarrows since the hotkeys
|
|
||||||
for changing the number of wheelbarrows depend on whether you have DFHack's
|
|
||||||
``tweak max-wheelbarrow`` enabled. It is better to set the number of
|
|
||||||
wheelbarrows via the `quickfort` ``stockpiles_max_wheelbarrows`` setting (set to
|
|
||||||
``0`` by default), or explicitly when you define the stockpile in the ``#place``
|
|
||||||
blueprint.
|
|
||||||
|
|
||||||
The ``give*`` aliases set a stockpile to give to a workshop or another
|
|
||||||
stockpile located at the indicated number of tiles in the indicated direction
|
|
||||||
from the current tile. For example, here we use the ``give2down`` alias to
|
|
||||||
connect an ``otherstone`` stockpile with a mason workshop::
|
|
||||||
|
|
||||||
#place
|
|
||||||
s,s,s,s,s
|
|
||||||
s, , , ,s
|
|
||||||
s, , , ,s
|
|
||||||
s, , , ,s
|
|
||||||
s,s,s,s,s
|
|
||||||
|
|
||||||
#build
|
|
||||||
`,`,`,`,`
|
|
||||||
`, , , ,`
|
|
||||||
`, ,wm,,`
|
|
||||||
`, , , ,`
|
|
||||||
`,`,`,`,`
|
|
||||||
|
|
||||||
#query
|
|
||||||
, ,give2down
|
|
||||||
otherstone
|
|
||||||
|
|
||||||
and here is a generic stone stockpile that gives to a stockpile that only
|
|
||||||
takes flux::
|
|
||||||
|
|
||||||
#place
|
|
||||||
s(10x1)
|
|
||||||
s(10x10)
|
|
||||||
|
|
||||||
#query
|
|
||||||
flux
|
|
||||||
,
|
|
||||||
give2up
|
|
||||||
|
|
||||||
If you want to give to some other tile that is not already covered by the
|
|
||||||
``give2*`` or ``give10*`` aliases, you can use the generic ``give`` alias and
|
|
||||||
specify the movement keys yourself in the ``move`` sub-alias. Here is how to
|
|
||||||
give to a stockpile or workshop one z-level above, 9 tiles to the left, and 14
|
|
||||||
tiles down::
|
|
||||||
|
|
||||||
#query
|
|
||||||
{give move="<{Left 9}{Down 14}"}
|
|
||||||
|
|
||||||
``togglesequence`` and ``togglesequence2`` send ``{Down}{Enter}`` or
|
|
||||||
``{Down 2}{Enter}`` to toggle adjacent (or alternating) items in a list. This
|
|
||||||
is useful when toggling a bunch of related item types in the stockpile config.
|
|
||||||
For example, the ``dye`` alias in the standard alias library needs to select
|
|
||||||
four adjacent items::
|
|
||||||
|
|
||||||
dye: {foodprefix}b{Right}{Down 11}{Right}{Down 28}{togglesequence 4}^
|
|
||||||
|
|
||||||
``forbidsearch``, ``permitsearch``, and ``togglesearch`` use the DFHack
|
|
||||||
`search-plugin` plugin to forbid or permit a filtered list, or toggle the first
|
|
||||||
(or only) item in the list. Specify the search string in the ``search``
|
|
||||||
sub-alias. Be sure to move the cursor over to the right column before invoking
|
|
||||||
these aliases. The search filter will be cleared before this alias completes.
|
|
||||||
|
|
||||||
Finally, the ``masterwork`` and ``artifact`` group of aliases configure the
|
|
||||||
corresponding allowable core quality for the stockpile categories that have
|
|
||||||
them. This alias is used to implement category-specific aliases below, like
|
|
||||||
``artifactweapons`` and ``forbidartifactweapons``.
|
|
||||||
|
|
||||||
.. _quickfort-stockpile-aliases:
|
|
||||||
|
|
||||||
Stockpile adjustment aliases
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
For each stockpile item category, there are three standard aliases:
|
|
||||||
|
|
||||||
* ``*prefix`` aliases enter the stockpile configuration screen and position
|
|
||||||
the cursor at a particular item category in the left-most column, ready for
|
|
||||||
further keys that configure the elements within that category. All other
|
|
||||||
stockpile adjustment aliases are built on these prefixes. You can use them
|
|
||||||
yourself to create stockpile adjustment aliases that aren't already covered
|
|
||||||
by the standard library aliases. Using the library prefix instead of
|
|
||||||
creating your own also allows your stockpile configuration aliases to be
|
|
||||||
used for both stockpiles and hauling routes. For example, here is the
|
|
||||||
library definition for ``booze``::
|
|
||||||
|
|
||||||
booze: {foodprefix}b{Right}{Down 5}p{Down}p^
|
|
||||||
|
|
||||||
* ``enable*`` aliases enter the stockpile configuration screen, enable all
|
|
||||||
subtypes of the named category, and exit the stockpile configuration screen
|
|
||||||
* ``disable*`` aliases enter the stockpile configuration screen, disable all
|
|
||||||
subtypes of the named category, and exit the stockpile configuration screen
|
|
||||||
|
|
||||||
==================== ==================== =====================
|
|
||||||
Prefix Enable Disable
|
|
||||||
==================== ==================== =====================
|
|
||||||
animalsprefix enableanimals disableanimals
|
|
||||||
foodprefix enablefood disablefood
|
|
||||||
furnitureprefix enablefurniture disablefurniture
|
|
||||||
corpsesprefix enablecorpses disablecorpses
|
|
||||||
refuseprefix enablerefuse disablerefuse
|
|
||||||
stoneprefix enablestone disablestone
|
|
||||||
ammoprefix enableammo disableammo
|
|
||||||
coinsprefix enablecoins disablecoins
|
|
||||||
barsprefix enablebars disablebars
|
|
||||||
gemsprefix enablegems disablegems
|
|
||||||
finishedgoodsprefix enablefinishedgoods disablefinishedgoods
|
|
||||||
leatherprefix enableleather disableleather
|
|
||||||
clothprefix enablecloth disablecloth
|
|
||||||
woodprefix enablewood disablewood
|
|
||||||
weaponsprefix enableweapons disableweapons
|
|
||||||
armorprefix enablearmor disablearmor
|
|
||||||
sheetprefix enablesheet disablesheet
|
|
||||||
==================== ==================== =====================
|
|
||||||
|
|
||||||
Then, for each item category, there are aliases that manipulate interesting
|
|
||||||
subsets of that category:
|
|
||||||
|
|
||||||
* Exclusive aliases forbid everything within a category and then enable only
|
|
||||||
the named item type (or named class of items)
|
|
||||||
* ``forbid*`` aliases forbid the named type and leave the rest of the
|
|
||||||
stockpile untouched.
|
|
||||||
* ``permit*`` aliases permit the named type and leave the rest of the
|
|
||||||
stockpile untouched.
|
|
||||||
|
|
||||||
Note that for specific item types (items in the third stockpile configuration
|
|
||||||
column), you can only toggle the item type on and off. Aliases can't know
|
|
||||||
whether sending the ``{Enter}`` key will enable or disable the type. The
|
|
||||||
``forbid*`` aliases that affect these item types assume the item type was
|
|
||||||
enabled and toggle it off. Likewise, the ``permit*`` aliases assume the item
|
|
||||||
type was disabled and toggle it on. If the item type is not in the expected
|
|
||||||
enabled/disabled state when the alias is run, the aliases will not behave
|
|
||||||
properly.
|
|
||||||
|
|
||||||
Animal stockpile adjustments
|
|
||||||
````````````````````````````
|
|
||||||
|
|
||||||
=========== =========== ============
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
=========== =========== ============
|
|
||||||
cages forbidcages permitcages
|
|
||||||
traps forbidtraps permittraps
|
|
||||||
=========== =========== ============
|
|
||||||
|
|
||||||
Food stockpile adjustments
|
|
||||||
``````````````````````````
|
|
||||||
|
|
||||||
=============== ==================== ====================
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
=============== ==================== ====================
|
|
||||||
preparedfood forbidpreparedfood permitpreparedfood
|
|
||||||
unpreparedfish forbidunpreparedfish permitunpreparedfish
|
|
||||||
plants forbidplants permitplants
|
|
||||||
booze forbidbooze permitbooze
|
|
||||||
seeds forbidseeds permitseeds
|
|
||||||
dye forbiddye permitdye
|
|
||||||
tallow forbidtallow permittallow
|
|
||||||
miscliquid forbidmiscliquid permitmiscliquid
|
|
||||||
wax forbidwax permitwax
|
|
||||||
=============== ==================== ====================
|
|
||||||
|
|
||||||
Furniture stockpile adjustments
|
|
||||||
```````````````````````````````
|
|
||||||
|
|
||||||
=================== ========================= =========================
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
=================== ========================= =========================
|
|
||||||
pots forbidpots permitpots
|
|
||||||
bags
|
|
||||||
buckets forbidbuckets permitbuckets
|
|
||||||
sand forbidsand permitsand
|
|
||||||
masterworkfurniture forbidmasterworkfurniture permitmasterworkfurniture
|
|
||||||
artifactfurniture forbidartifactfurniture permitartifactfurniture
|
|
||||||
=================== ========================= =========================
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
|
|
||||||
* The ``bags`` alias excludes coffers and other boxes by forbidding all
|
|
||||||
materials other than cloth, yarn, silk, and leather. Therefore, it is
|
|
||||||
difficult to create ``forbidbags`` and ``permitbags`` without affecting other
|
|
||||||
types of furniture stored in the same stockpile.
|
|
||||||
|
|
||||||
* Because of the limitations of Dwarf Fortress, ``bags`` cannot distinguish
|
|
||||||
between empty bags and bags filled with gypsum powder.
|
|
||||||
|
|
||||||
Refuse stockpile adjustments
|
|
||||||
````````````````````````````
|
|
||||||
|
|
||||||
=========== ================== ==================
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
=========== ================== ==================
|
|
||||||
corpses forbidcorpses permitcorpses
|
|
||||||
rawhides forbidrawhides permitrawhides
|
|
||||||
tannedhides forbidtannedhides permittannedhides
|
|
||||||
skulls forbidskulls permitskulls
|
|
||||||
bones forbidbones permitbones
|
|
||||||
shells forbidshells permitshells
|
|
||||||
teeth forbidteeth permitteeth
|
|
||||||
horns forbidhorns permithorns
|
|
||||||
hair forbidhair permithair
|
|
||||||
usablehair forbidusablehair permitusablehair
|
|
||||||
craftrefuse forbidcraftrefuse permitcraftrefuse
|
|
||||||
=========== ================== ==================
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
|
|
||||||
* ``usablehair`` Only hair and wool that can make usable clothing is included,
|
|
||||||
i.e. from sheep, llamas, alpacas, and trolls.
|
|
||||||
* ``craftrefuse`` includes everything a craftsdwarf or tailor can use: skulls,
|
|
||||||
bones, shells, teeth, horns, and "usable" hair/wool (defined above).
|
|
||||||
|
|
||||||
Stone stockpile adjustments
|
|
||||||
```````````````````````````
|
|
||||||
|
|
||||||
============= ==================== ====================
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
============= ==================== ====================
|
|
||||||
metal forbidmetal permitmetal
|
|
||||||
iron forbidiron permitiron
|
|
||||||
economic forbideconomic permiteconomic
|
|
||||||
flux forbidflux permitflux
|
|
||||||
plaster forbidplaster permitplaster
|
|
||||||
coalproducing forbidcoalproducing permitcoalproducing
|
|
||||||
otherstone forbidotherstone permitotherstone
|
|
||||||
bauxite forbidbauxite permitbauxite
|
|
||||||
clay forbidclay permitclay
|
|
||||||
============= ==================== ====================
|
|
||||||
|
|
||||||
Ammo stockpile adjustments
|
|
||||||
``````````````````````````
|
|
||||||
|
|
||||||
============== ==================== ====================
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
============== ==================== ====================
|
|
||||||
bolts
|
|
||||||
\ forbidmetalbolts
|
|
||||||
\ forbidwoodenbolts
|
|
||||||
\ forbidbonebolts
|
|
||||||
masterworkammo forbidmasterworkammo permitmasterworkammo
|
|
||||||
artifactammo forbidartifactammo permitartifactammo
|
|
||||||
============== ==================== ====================
|
|
||||||
|
|
||||||
Bar stockpile adjustments
|
|
||||||
`````````````````````````
|
|
||||||
|
|
||||||
=========== ==================
|
|
||||||
Exclusive Forbid
|
|
||||||
=========== ==================
|
|
||||||
bars forbidbars
|
|
||||||
metalbars forbidmetalbars
|
|
||||||
ironbars forbidironbars
|
|
||||||
steelbars forbidsteelbars
|
|
||||||
pigironbars forbidpigironbars
|
|
||||||
otherbars forbidotherbars
|
|
||||||
coal forbidcoal
|
|
||||||
potash forbidpotash
|
|
||||||
ash forbidash
|
|
||||||
pearlash forbidpearlash
|
|
||||||
soap forbidsoap
|
|
||||||
blocks forbidblocks
|
|
||||||
=========== ==================
|
|
||||||
|
|
||||||
Gem stockpile adjustments
|
|
||||||
`````````````````````````
|
|
||||||
|
|
||||||
=========== ================
|
|
||||||
Exclusive Forbid
|
|
||||||
=========== ================
|
|
||||||
roughgems forbidroughgems
|
|
||||||
roughglass forbidroughglass
|
|
||||||
cutgems forbidcutgems
|
|
||||||
cutglass forbidcutglass
|
|
||||||
cutstone forbidcutstone
|
|
||||||
=========== ================
|
|
||||||
|
|
||||||
Finished goods stockpile adjustments
|
|
||||||
````````````````````````````````````
|
|
||||||
|
|
||||||
======================= ============================= =============================
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
======================= ============================= =============================
|
|
||||||
stonetools
|
|
||||||
woodentools
|
|
||||||
crafts forbidcrafts permitcrafts
|
|
||||||
goblets forbidgoblets permitgoblets
|
|
||||||
masterworkfinishedgoods forbidmasterworkfinishedgoods permitmasterworkfinishedgoods
|
|
||||||
artifactfinishedgoods forbidartifactfinishedgoods permitartifactfinishedgoods
|
|
||||||
======================= ============================= =============================
|
|
||||||
|
|
||||||
Cloth stockpile adjustments
|
|
||||||
```````````````````````````
|
|
||||||
|
|
||||||
================ ====================== ======================
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
================ ====================== ======================
|
|
||||||
thread forbidthread permitthread
|
|
||||||
adamantinethread forbidadamantinethread permitadamantinethread
|
|
||||||
cloth forbidcloth permitcloth
|
|
||||||
adamantinecloth forbidadamantinecloth permitadamantinecloth
|
|
||||||
================ ====================== ======================
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
|
|
||||||
* ``thread`` and ``cloth`` refers to all materials that are not adamantine.
|
|
||||||
|
|
||||||
Weapon stockpile adjustments
|
|
||||||
````````````````````````````
|
|
||||||
|
|
||||||
================= ======================== =======================
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
================= ======================== =======================
|
|
||||||
\ forbidweapons permitweapons
|
|
||||||
\ forbidtrapcomponents permittrapcomponents
|
|
||||||
metalweapons forbidmetalweapons permitmetalweapons
|
|
||||||
\ forbidstoneweapons permitstoneweapons
|
|
||||||
\ forbidotherweapons permitotherweapons
|
|
||||||
ironweapons forbidironweapons permitironweapons
|
|
||||||
bronzeweapons forbidbronzeweapons permitbronzeweapons
|
|
||||||
copperweapons forbidcopperweapons permitcopperweapons
|
|
||||||
steelweapons forbidsteelweapons permitsteelweapons
|
|
||||||
masterworkweapons forbidmasterworkweapons permitmasterworkweapons
|
|
||||||
artifactweapons forbidartifactweapons permitartifactweapons
|
|
||||||
================= ======================== =======================
|
|
||||||
|
|
||||||
Armor stockpile adjustments
|
|
||||||
```````````````````````````
|
|
||||||
|
|
||||||
=============== ====================== =====================
|
|
||||||
Exclusive Forbid Permit
|
|
||||||
=============== ====================== =====================
|
|
||||||
metalarmor forbidmetalarmor permitmetalarmor
|
|
||||||
otherarmor forbidotherarmor permitotherarmor
|
|
||||||
ironarmor forbidironarmor permitironarmor
|
|
||||||
bronzearmor forbidbronzearmor permitbronzearmor
|
|
||||||
copperarmor forbidcopperarmor permitcopperarmor
|
|
||||||
steelarmor forbidsteelarmor permitsteelarmor
|
|
||||||
masterworkarmor forbidmasterworkarmor permitmasterworkarmor
|
|
||||||
artifactarmor forbidartifactarmor permitartifactarmor
|
|
||||||
=============== ====================== =====================
|
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 4.4 KiB |