feat(fallback): use dynamic filename

This commit is contained in:
Haoyu Xu
2021-08-08 16:27:58 -04:00
parent 7099bc8c27
commit bbaacd766d
5 changed files with 39 additions and 24 deletions

View File

@@ -15,6 +15,7 @@ operators:
operator_logo: logo_rhodes_override
title: Ch'en the Holungday
version: __get_version
fallback_name: char_1013_chen2_2
operator_settings.js:
fallbackImage_height: 2048
fallbackImage_width: 2048
@@ -52,6 +53,7 @@ operators:
operator_logo: logo_sui
title: Nian
version: __get_version
fallback_name: char_2014_nian_2
operator_settings.js:
fallbackImage_height: 2048
fallbackImage_width: 2048
@@ -88,6 +90,7 @@ operators:
operator_logo: logo_egir
title: Skadi the Corrupting Heart
version: __get_version
fallback_name: char_1012_skadi2_2
operator_settings.js:
fallbackImage_height: 2048
fallbackImage_width: 2048

View File

@@ -99,7 +99,7 @@ class Builder:
)
fallback_thread = threading.Thread(
target=AlphaComposite,
args=(source_path + fallback_name, target_path + "../fallback"),
args=(source_path + fallback_name, target_path + "../{}".format(fallback_name)),
daemon=True,
)

View File

@@ -18,9 +18,7 @@ function supportsWebGL() {
if (!supportsWebGL()) {
alert('WebGL is unavailable. Fallback image will be used.');
var e = document.getElementById("container");
e.classList.add("fallback");
e.parentElement.classList.add("widget-wrapper");
var e = document.getElementById("fallback");
function calculateScale(width, height) {
let windowWidth = window.innerWidth;
@@ -39,6 +37,8 @@ if (!supportsWebGL()) {
e.style.width = window.operatorSettings.fallbackImage.width * scale.x + "px";
e.style.height = window.operatorSettings.fallbackImage.height * scale.x + "px";
}
e.classList.add("show");
document.getElementById("container").classList.add("hide");
}
window.addEventListener('resize', fallback, true);

View File

@@ -13,13 +13,39 @@ body {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
background-image: url("../operator/operator_bg.png");
height: 100%;
width: 100%;
touch-action: none;
-ms-touch-action: none;
}
#dev {
position: fixed;
left: 0;
top: 0;
background-color: white;
}
#widget-wrapper, #container, #fallback {
width: 100%;
height: 100%;
}
.hide {
display: none;
}
#fallback.show {
display: flex;
align-items: center;
margin: auto;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
width: 100%;
height: 100%;
}
.logo {
position: fixed;
left: 0;
@@ -32,21 +58,6 @@ body {
opacity: 0.3;
}
.widget-wrapper {
display: flex;
align-items: center;
}
.fallback {
margin: auto;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
background-image: url("../operator/fallback.png");
width: 100%;
height: 100%;
}
.website-settings {
position: fixed;
left: 0;

View File

@@ -11,11 +11,12 @@
<link rel="stylesheet" href="./assets/spine-player.css?v={# version #}">
</head>
<body>
<div id="dev" style="position: fixed;left: 0;top: 0;background-color: white;"></div>
<body style="background-image: url('./operator/operator_bg.png');">
<div id="dev"></div>
<image src="./operator/{# operator_logo #}.png" class="logo invert-filter" id="logo" alt="operator logo" />
<div id="widget-wrapper" style="width: 100%; height: 100%;">
<div id="container" style="width: 100%; height: 100%;"></div>
<div id="widget-wrapper">
<div id="container"></div>
<div id="fallback" class="hide" style="background-image: url('./operator/{# fallback_name #}.png');"></div>
</div>
</body>