@luna-editor/engine 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Player.js +6 -1
- package/dist/plugin/PluginManager.js +6 -1
- package/package.json +1 -1
package/dist/Player.js
CHANGED
|
@@ -39,7 +39,9 @@ import { ComponentType } from "./sdk";
|
|
|
39
39
|
import { convertBranchBlockToScenarioBlock } from "./utils/branchBlockConverter";
|
|
40
40
|
import { BranchNavigator } from "./utils/branchNavigator";
|
|
41
41
|
import { VariableManager } from "./utils/variableManager";
|
|
42
|
-
|
|
42
|
+
const EMPTY_PLUGINS = [];
|
|
43
|
+
const EMPTY_SOUNDS = [];
|
|
44
|
+
export const Player = ({ scenario: scenarioProp, settings, plugins = EMPTY_PLUGINS, sounds = EMPTY_SOUNDS, onEnd, onScenarioEnd, onScenarioStart, onScenarioCancelled, onSettingsChange, className, autoplay = false, preventDefaultScroll = true, screenSize: screenSizeProp, disableKeyboardNavigation = false, }) => {
|
|
43
45
|
var _a, _b, _c, _d;
|
|
44
46
|
// scenario.blocks が存在しない場合は空の配列を使用
|
|
45
47
|
const scenario = useMemo(() => {
|
|
@@ -359,6 +361,9 @@ export const Player = ({ scenario: scenarioProp, settings, plugins = [], sounds
|
|
|
359
361
|
loadPlugins();
|
|
360
362
|
return () => {
|
|
361
363
|
isCancelled = true;
|
|
364
|
+
// Strict Mode再マウント時にPluginManagerインスタンスが変わる場合に備えて
|
|
365
|
+
// ロード済みリストをクリアし、新しいインスタンスで再ロードされるようにする
|
|
366
|
+
loadedPluginNamesRef.current.clear();
|
|
362
367
|
};
|
|
363
368
|
}, [plugins, sounds]);
|
|
364
369
|
// 初回レンダリング完了フラグ
|
|
@@ -1017,9 +1017,14 @@ export class PluginManager {
|
|
|
1017
1017
|
getPluginAssetUrl(packageName, filename) {
|
|
1018
1018
|
const plugin = this.plugins.get(packageName);
|
|
1019
1019
|
if (!plugin) {
|
|
1020
|
+
console.warn(`[PluginManager] Plugin not found: "${packageName}", registered plugins:`, Array.from(this.plugins.keys()));
|
|
1020
1021
|
return "";
|
|
1021
1022
|
}
|
|
1022
|
-
|
|
1023
|
+
const url = plugin.instance.assetUrls.get(filename) || "";
|
|
1024
|
+
if (!url) {
|
|
1025
|
+
console.warn(`[PluginManager] Asset not found: "${filename}" in "${packageName}", registered assets:`, Array.from(plugin.instance.assetUrls.keys()));
|
|
1026
|
+
}
|
|
1027
|
+
return url;
|
|
1023
1028
|
}
|
|
1024
1029
|
/**
|
|
1025
1030
|
* UI コンポーネントの表示状態を設定
|