@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 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
- export const Player = ({ scenario: scenarioProp, settings, plugins = [], sounds = [], onEnd, onScenarioEnd, onScenarioStart, onScenarioCancelled, onSettingsChange, className, autoplay = false, preventDefaultScroll = true, screenSize: screenSizeProp, disableKeyboardNavigation = false, }) => {
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
- return plugin.instance.assetUrls.get(filename) || "";
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 コンポーネントの表示状態を設定
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luna-editor/engine",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Luna Editor scenario playback engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",