Skip to content

Commit 1b8a22a

Browse files
Changed write_directory setting to config_file
1 parent 965dcf3 commit 1b8a22a

File tree

2 files changed

+24
-15
lines changed

2 files changed

+24
-15
lines changed

worlds/factorio_bobs/Client.py

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from CommonClient import ClientCommandProcessor, CommonContext, logger, server_loop, gui_enabled, get_base_parser
2121
from MultiServer import mark_raw
2222
from NetUtils import ClientStatus, NetworkItem, JSONtoTextParser, JSONMessagePart
23-
from Utils import async_start, get_file_safe_name, is_windows, Version, format_SI_prefix, get_text_between
23+
from Utils import async_start, get_file_safe_name, is_windows, Version, format_SI_prefix, get_text_between, user_path
2424
from .FactorioSettings import FactorioSettings
2525
from settings import get_settings
2626

@@ -599,18 +599,27 @@ def launch(*new_args: str):
599599
else:
600600
raise FileNotFoundError(f"Path {executable} is not an executable file.")
601601

602-
config_directory = args.config if args.config \
603-
else os.path.join(getattr(settings, "write_directory", None), "config")
604-
605-
if not os.path.exists(config_directory):
606-
logger.info(f"Could not find {config_directory} for config. Attempting to create it.")
607-
os.makedirs(config_directory, exist_ok=True)
608-
609-
config_file = os.path.join(config_directory, "apconfig.ini")
610-
if not os.path.exists(config_file):
611-
logger.info(f"Could not find {config_file} for config file. Attempting to create it.")
612-
with open(config_file, 'w') as f:
613-
f.write(f"[path]\nread-data=__PATH__system-read-data__\nwrite-data={getattr(settings, "write_directory", None)}")
602+
if args.config:
603+
config_file = args.config
604+
if not os.path.exists(config_file):
605+
raise FileNotFoundError(f"Could not find factorio config file: {config_file}.")
606+
else:
607+
config_file = os.path.join(getattr(settings, "config_file", None))
608+
609+
if not os.path.exists(config_file):
610+
if config_file != user_path("factorio_mods", "config", "apconfig.ini"):
611+
raise FileNotFoundError(f"Could not find factorio config file: {config_file}.")
612+
write_directory = user_path("factorio_mods")
613+
config_directory = os.path.join(write_directory, "config")
614+
if not os.path.exists(config_directory):
615+
logger.info(f"Could not find {config_directory} for config. Attempting to create it.")
616+
os.makedirs(config_directory, exist_ok=True)
617+
618+
config_file = os.path.join(config_directory, "apconfig.ini")
619+
if not os.path.exists(config_file):
620+
logger.info(f"Could not find {config_file} for config file. Attempting to create it.")
621+
with open(config_file, 'w') as f:
622+
f.write(f"[path]\nread-data=__PATH__system-read-data__\nwrite-data={write_directory}")
614623

615624
mod_directory = args.mod_directory if args.mod_directory \
616625
else getattr(settings, "mod_directory", None)

worlds/factorio_bobs/FactorioSettings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class ServerSettings(settings.OptionalUserFilePath):
1515
server_settings: "factorio\\\\data\\\\server-settings.json"
1616
"""
1717

18-
class WriteDirectory(settings.OptionalUserFilePath):
18+
class ConfigFile(settings.OptionalUserFilePath):
1919
"""
2020
by default, in ap folder
2121
This is also the location
@@ -34,7 +34,7 @@ class BridgeChatOut(settings.Bool):
3434

3535
executable: Executable = Executable("factorio/bin/x64/factorio")
3636
server_settings: typing.Optional[ServerSettings] = None
37-
write_directory: WriteDirectory = WriteDirectory(user_path("factorio_mods"))
37+
config_file: ConfigFile = ConfigFile(user_path("factorio_mods", "config", "apconfig.ini"))
3838
mod_directory: typing.Optional[ModDirectory] = None
3939
filter_item_sends: typing.Union[FilterItemSends, bool] = False
4040
bridge_chat_out: typing.Union[BridgeChatOut, bool] = True

0 commit comments

Comments
 (0)