Split out a separate wad-only base class from WadMap. Load the wad-specific config when using it. Support overriding settings during fabricate.

This commit is contained in:
yrriban 2025-05-30 02:07:06 -04:00
parent 057ac98843
commit 970e63e19b
3 changed files with 37 additions and 11 deletions

View file

@ -3,24 +3,46 @@ from cliff.command import Command
import dcc.config
import io
import os
import tomlkit
class WadMap(dcc.config.Base):
class Wad(dcc.config.Base):
def get_parser(self, prog_name):
parser = super().get_parser(prog_name)
parser.add_argument('wad')
return parser
def wad_init(self, parsed_args):
self.init_base(parsed_args)
self._wad = parsed_args.wad
wcp = self.pwads.joinpath(self.wad).joinpath(self.config_name)
if wcp.exists():
self._wad_config = tomlkit.toml_file.TOMLFile(wcp).read()
for k,v in self._wad_config.value.items():
print(k,v)
self._config.add(k,v)
def run(self, parsed_args):
self.wad_init(self, parsed_args)
self.take_action(parsed_args)
@property
def wad(self):
return self._wad
class WadMap(Wad):
def get_parser(self, prog_name):
parser = super().get_parser(prog_name)
parser.add_argument('map')
parser.add_argument('-n','--name','--demo_name')
return parser
def run(self, parsed_args):
self._wad = parsed_args.wad
self._map = parsed_args.map
self._name = parsed_args.name
super().run(parsed_args)
self.wad_init(parsed_args)
@property
def wad(self):
return self._wad
self.take_action(parsed_args)
@property
def map(self):