feat(naming): use dynamic naming

This commit is contained in:
Haoyu Xu
2021-08-08 17:51:36 -04:00
parent b2fddb65b2
commit ba445ebca3
5 changed files with 19 additions and 10 deletions

View File

@@ -1,11 +1,12 @@
operators: operators:
chen: chen:
index.html: index.html:
id: char_1013_chen2
operator_logo: logo_rhodes_override operator_logo: logo_rhodes_override
title: Ch'en the Holungday title: Ch'en the Holungday
version: __get_version version: __get_version
fallback_name: char_1013_chen2_2 fallback_name: char_1013_chen2_2
operator_settings.js: _operator_settings.js:
fallbackImage_height: 2048 fallbackImage_height: 2048
fallbackImage_width: 2048 fallbackImage_width: 2048
filename: dyn_illust_char_1013_chen2 filename: dyn_illust_char_1013_chen2
@@ -28,11 +29,12 @@ operators:
workshopid: 2564643862 workshopid: 2564643862
nian: nian:
index.html: index.html:
id: char_2014_nian
operator_logo: logo_sui operator_logo: logo_sui
title: Nian title: Nian
version: __get_version version: __get_version
fallback_name: char_2014_nian_2 fallback_name: char_2014_nian_2
operator_settings.js: _operator_settings.js:
fallbackImage_height: 2048 fallbackImage_height: 2048
fallbackImage_width: 2048 fallbackImage_width: 2048
filename: dyn_illust_char_2014_nian filename: dyn_illust_char_2014_nian
@@ -54,11 +56,12 @@ operators:
workshopid: 2564642594 workshopid: 2564642594
skadi: skadi:
index.html: index.html:
id: char_1012_skadi2
operator_logo: logo_egir operator_logo: logo_egir
title: Skadi the Corrupting Heart title: Skadi the Corrupting Heart
version: __get_version version: __get_version
fallback_name: char_1012_skadi2_2 fallback_name: char_1012_skadi2_2
operator_settings.js: _operator_settings.js:
fallbackImage_height: 2048 fallbackImage_height: 2048
fallbackImage_width: 2048 fallbackImage_width: 2048
filename: dyn_illust_char_1012_skadi2 filename: dyn_illust_char_1012_skadi2

View File

@@ -60,15 +60,16 @@ class Builder:
use_skel = self.config["operator"]["use_skel"] use_skel = self.config["operator"]["use_skel"]
source_path = self.config["operator"]["source_folder"].format(name=operator_name) source_path = self.config["operator"]["source_folder"].format(name=operator_name)
target_path = self.config["operator"]["target_folder"].format(name=operator_name) target_path = self.config["operator"]["target_folder"].format(name=operator_name)
common_name = self.config["operators"][operator_name]["operator_settings.js"]["filename"] common_name = self.config["operators"][operator_name]["_operator_settings.js"]["filename"]
fallback_name = self.config["operators"][operator_name]["index.html"]["fallback_name"] fallback_name = self.config["operators"][operator_name]["index.html"]["fallback_name"]
id_name = self.config["operators"][operator_name]["index.html"]["id"]
file_paths = dict( file_paths = dict(
json=target_path + common_name + ".json", json=target_path + common_name + ".json",
atlas=target_path + common_name + ".atlas", atlas=target_path + common_name + ".atlas",
skel=target_path + common_name + ".skel", skel=target_path + common_name + ".skel",
) )
operator_file = pathlib.Path.cwd().joinpath(target_path, "..", "operator_assets.js") operator_file = pathlib.Path.cwd().joinpath(target_path, "..", "{}_assets.js".format(id_name))
if operator_file.exists() is False or self.rebuild is True: if operator_file.exists() is False or self.rebuild is True:
print("Building operator data for {}...".format(operator_name)) print("Building operator data for {}...".format(operator_name))

View File

@@ -17,7 +17,7 @@ class Config:
), ),
operators={ operators={
"index.html": dict, "index.html": dict,
"operator_settings.js": dict, "_operator_settings.js": dict,
"project.json": dict "project.json": dict
}, },
operator=dict( operator=dict(
@@ -29,12 +29,13 @@ class Config:
), ),
operator_config={ operator_config={
"index.html": dict( "index.html": dict(
id=str,
operator_logo=str, operator_logo=str,
title=str, title=str,
version=str, version=str,
fallback_name=str, fallback_name=str,
), ),
"operator_settings.js": dict( "_operator_settings.js": dict(
fallbackImage_height=int, fallbackImage_height=int,
fallbackImage_width=int, fallbackImage_width=int,
filename=str, filename=str,

View File

@@ -5,7 +5,7 @@ class ContentProcessor:
def __init__(self, config, operator_name): def __init__(self, config, operator_name):
self.config = config["operators"][operator_name] self.config = config["operators"][operator_name]
self.file_to_process = [key for key, value in self.config.items()] self.file_to_process = [key for key, value in self.config.items() if key.startswith("_") is False]
self.settings = self.config self.settings = self.config
self.evalable = [ self.evalable = [
"__get_version" "__get_version"
@@ -44,6 +44,10 @@ class ContentProcessor:
else: else:
raise Exception("Unsupported function name: {}".format(value)) raise Exception("Unsupported function name: {}".format(value))
self.settings[item_key][key] = replace_value self.settings[item_key][key] = replace_value
# copy dict value _operator_settings.js to {id}_settings.js
settings_filename = "{}_settings.js".format(self.settings["index.html"]["id"])
self.settings[settings_filename] = self.settings["_operator_settings.js"]
self.file_to_process.append(settings_filename)
def __get_version(self): def __get_version(self):
with open(pathlib.Path.cwd().joinpath("Version"), "r") as f: with open(pathlib.Path.cwd().joinpath("Version"), "r") as f:

View File

@@ -21,8 +21,8 @@
</body> </body>
<script type="text/javascript" src="./assets/spine-player.js?v={# version #}"></script> <script type="text/javascript" src="./assets/spine-player.js?v={# version #}"></script>
<script type="text/javascript" src="./operator/operator_assets.js?v={# version #}"></script> <script type="text/javascript" src="./operator/{# id #}_assets.js?v={# version #}"></script>
<script type="text/javascript" src="./operator/operator_settings.js?v={# version #}"></script> <script type="text/javascript" src="./operator/{# id #}_settings.js?v={# version #}"></script>
<script type="text/javascript" src="./assets/settings.js?v={# version #}"></script> <script type="text/javascript" src="./assets/settings.js?v={# version #}"></script>
<script type="text/javascript" src="./assets/runner.js?v={# version #}"></script> <script type="text/javascript" src="./assets/runner.js?v={# version #}"></script>