Skip to content

Commit

Permalink
Add support for --preset options provided by vanilla and popular mods (
Browse files Browse the repository at this point in the history
…#482)

* Add support for --preset options provided by vanilla and popular mods

* Add support for --preset in scenario.sh

* Replace SU_EXEC with EXEC
  • Loading branch information
twstagg committed Jun 12, 2024
1 parent bc28f4a commit 4ab4c88
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 5 deletions.
9 changes: 9 additions & 0 deletions docker/Dockerfile
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ ARG PUID=845
ARG PGID=845
ARG BOX64_VERSION=v0.2.4

# optionally utilize a built-in map-gen-preset (see data/base/prototypes/map-gen-presets
# if this is used, the preset will be used over any .json files supplied
# vanilla factorio provides the following presets:
# rich-resources, marathon, death-world, death-world-marathon, rail-world, ribbon-world, island
# a modded factorio example for using this:
# space-exploration
ARG PRESET

# version checksum of the archive to download
ARG VERSION
ARG SHA256
Expand All @@ -20,6 +28,7 @@ ENV PORT=34197 \
VERSION=${VERSION} \
SHA256=${SHA256} \
SAVES=/factorio/saves \
PRESET="$PRESET" \
CONFIG=/factorio/config \
MODS=/factorio/mods \
SCENARIOS=/factorio/scenarios \
Expand Down
1 change: 1 addition & 0 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,5 @@ services:
# - USERNAME=FactorioUsername
# - TOKEN=FactorioToken
# - PORT=34198
# - PRESET=deathworld
# - ADDR=::1
18 changes: 13 additions & 5 deletions docker/files/docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/bin/bash
set -eoux pipefail

FACTORIO_VOL=/factorio
LOAD_LATEST_SAVE="${LOAD_LATEST_SAVE:-true}"
GENERATE_NEW_SAVE="${GENERATE_NEW_SAVE:-false}"
PRESET="${PRESET:-""}"
SAVE_NAME="${SAVE_NAME:-""}"
BIND="${BIND:-""}"
CONSOLE_LOG_LOCATION="${CONSOLE_LOG_LOCATION:-""}"
Expand Down Expand Up @@ -75,10 +75,18 @@ if [[ $GENERATE_NEW_SAVE == true ]]; then
if [[ -f "$SAVES/$SAVE_NAME.zip" ]]; then
echo "Map $SAVES/$SAVE_NAME.zip already exists, skipping map generation"
else
$EXEC /opt/factorio/bin/x64/factorio \
--create "$SAVES/$SAVE_NAME.zip" \
--map-gen-settings "$CONFIG/map-gen-settings.json" \
--map-settings "$CONFIG/map-settings.json"
if [[ ! -z "$PRESET" ]]; then
$EXEC /opt/factorio/bin/x64/factorio \
--create "$SAVES/$SAVE_NAME.zip" \
--preset "$PRESET" \
--map-gen-settings "$CONFIG/map-gen-settings.json" \
--map-settings "$CONFIG/map-settings.json"
else
$EXEC /opt/factorio/bin/x64/factorio \
--create "$SAVES/$SAVE_NAME.zip" \
--map-gen-settings "$CONFIG/map-gen-settings.json" \
--map-settings "$CONFIG/map-settings.json"
fi
fi
fi

Expand Down
3 changes: 3 additions & 0 deletions docker/files/scenario.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ if [[ -z ${1:-} ]]; then
fi

SERVER_SCENARIO="$1"
PRESET="${PRESET:-""}"

mkdir -p "$SAVES"
mkdir -p "$CONFIG"
mkdir -p "$MODS"
Expand All @@ -32,6 +34,7 @@ fi
exec /opt/factorio/bin/x64/factorio \
--port "$PORT" \
--start-server-load-scenario "$SERVER_SCENARIO" \
--preset "$PRESET" \
--map-gen-settings "$CONFIG/map-gen-settings.json" \
--map-settings "$CONFIG/map-settings.json" \
--server-settings "$CONFIG/server-settings.json" \
Expand Down

0 comments on commit 4ab4c88

Please sign in to comment.