@akashic/akashic-engine
Advanced tools
Comparing version 3.17.0-beta.0 to 3.17.0
@@ -56,2 +56,6 @@ import type { Asset, AssetLoadError } from "@akashic/pdi-types"; | ||
userData: UserData | null; | ||
/** | ||
* エラーが発生したか否かに関わらず常に `handlerSet.handleFinish` を実行するか。 | ||
*/ | ||
alwaysNotifyFinish?: boolean; | ||
} | ||
@@ -93,2 +97,10 @@ /** | ||
_requested: boolean; | ||
/** | ||
* @private | ||
*/ | ||
_alwaysNotifyFinish: boolean; | ||
/** | ||
* @private | ||
*/ | ||
_failureAssetIds: (string | DynamicAssetConfiguration | AssetGenerationConfiguration)[]; | ||
constructor(param: AssetHolderParameterObject<UserData>); | ||
@@ -106,2 +118,14 @@ request(): boolean; | ||
_onAssetLoad(asset: Asset): void; | ||
/** | ||
* @private | ||
*/ | ||
_decrementWaitingAssetCount(): void; | ||
/** | ||
* @private | ||
*/ | ||
_getFailureAssetIds(): (string | DynamicAssetConfiguration | AssetGenerationConfiguration)[]; | ||
/** | ||
* @private | ||
*/ | ||
_peekAssetConfFromAssetId(id: string): string | DynamicAssetConfiguration | AssetGenerationConfiguration; | ||
} |
@@ -21,2 +21,4 @@ "use strict"; | ||
this._requested = false; | ||
this._alwaysNotifyFinish = !!param.alwaysNotifyFinish; | ||
this._failureAssetIds = []; | ||
} | ||
@@ -40,2 +42,3 @@ AssetHolder.prototype.request = function () { | ||
this._assetIds = undefined; | ||
this._failureAssetIds = undefined; | ||
this._requested = false; | ||
@@ -67,2 +70,7 @@ }; | ||
} | ||
else if (this._alwaysNotifyFinish) { | ||
var assetConf = this._peekAssetConfFromAssetId(asset.id); | ||
this._failureAssetIds.push(assetConf); | ||
this._decrementWaitingAssetCount(); | ||
} | ||
} | ||
@@ -79,2 +87,8 @@ }; | ||
this._assets.push(asset); | ||
this._decrementWaitingAssetCount(); | ||
}; | ||
/** | ||
* @private | ||
*/ | ||
AssetHolder.prototype._decrementWaitingAssetCount = function () { | ||
--this.waitingAssetsCount; | ||
@@ -85,4 +99,24 @@ if (this.waitingAssetsCount > 0) | ||
throw ExceptionFactory_1.ExceptionFactory.createAssertionError("AssetHolder#_onAssetLoad: broken waitingAssetsCount"); | ||
var hs = this._handlerSet; | ||
hs.handleFinish.call(hs.owner, this, true); | ||
}; | ||
/** | ||
* @private | ||
*/ | ||
AssetHolder.prototype._getFailureAssetIds = function () { | ||
return this._failureAssetIds; | ||
}; | ||
/** | ||
* @private | ||
*/ | ||
AssetHolder.prototype._peekAssetConfFromAssetId = function (id) { | ||
for (var _i = 0, _a = this._assetIds; _i < _a.length; _i++) { | ||
var assetConf = _a[_i]; | ||
var assetId = typeof assetConf === "string" ? assetConf : assetConf.id; | ||
if (id === assetId) { | ||
return assetConf; | ||
} | ||
} | ||
throw ExceptionFactory_1.ExceptionFactory.createAssertionError("AssetHolder#_peekAssetConfFromAssetId: could not peek the asset: ".concat(id)); | ||
}; | ||
return AssetHolder; | ||
@@ -89,0 +123,0 @@ }()); |
@@ -25,3 +25,3 @@ import type { AssetConfigurationMap, AudioSystemConfigurationMap, ModuleMainScriptsMap, AssetConfigurationCommonBase, ImageAssetConfigurationBase, ScriptAssetConfigurationBase, TextAssetConfigurationBase, AudioAssetConfigurationBase, VideoAssetConfigurationBase, VectorImageAssetConfigurationBase, BinaryAssetConfigurationBase } from "@akashic/game-configuration"; | ||
} | ||
type AssetIdOrConf = string | DynamicAssetConfiguration | AssetGenerationConfiguration; | ||
export type AssetIdOrConf = string | DynamicAssetConfiguration | AssetGenerationConfiguration; | ||
export interface AssetManagerParameterGameLike { | ||
@@ -105,2 +105,3 @@ resourceFactory: ResourceFactory; | ||
* 読み込み中のアセットの情報。 | ||
* @ignore | ||
*/ | ||
@@ -226,2 +227,3 @@ private _loadings; | ||
* @private | ||
* @ignore | ||
*/ | ||
@@ -228,0 +230,0 @@ _normalizeAssetBaseDeclaration<T extends AssetConfigurationCore>(assetId: string, conf: T): T; |
@@ -394,2 +394,3 @@ "use strict"; | ||
* @private | ||
* @ignore | ||
*/ | ||
@@ -479,3 +480,3 @@ AssetManager.prototype._normalizeAssetBaseDeclaration = function (assetId, conf) { | ||
: this._audioSystemManager[this._defaultAudioSystemId]; | ||
return resourceFactory.createAudioAsset(id, uri, conf.duration, system, !!conf.loop, (_a = conf.hint) !== null && _a !== void 0 ? _a : {}, conf.offset, conf.loopOffset); | ||
return resourceFactory.createAudioAsset(id, uri, conf.duration, system, !!conf.loop, (_a = conf.hint) !== null && _a !== void 0 ? _a : {}, conf.offset); | ||
case "text": | ||
@@ -482,0 +483,0 @@ return resourceFactory.createTextAsset(id, uri); |
@@ -27,3 +27,3 @@ import type { AudioPlayContext } from "./AudioPlayContext"; | ||
*/ | ||
export declare module AudioUtil { | ||
export declare namespace AudioUtil { | ||
/** | ||
@@ -30,0 +30,0 @@ * 音声をフェードインさせる。 |
@@ -141,3 +141,3 @@ "use strict"; | ||
AudioUtil.transitionVolume = transitionVolume; | ||
})(AudioUtil = exports.AudioUtil || (exports.AudioUtil = {})); | ||
})(AudioUtil || (exports.AudioUtil = AudioUtil = {})); | ||
//# sourceMappingURL=AudioUtil.js.map |
@@ -6,3 +6,3 @@ import type { CommonArea, CommonOffset } from "@akashic/pdi-types"; | ||
*/ | ||
export declare module Collision { | ||
export declare namespace Collision { | ||
/** | ||
@@ -9,0 +9,0 @@ * 二つのエンティティの衝突判定を行い、その結果を返す。 |
@@ -176,3 +176,3 @@ "use strict"; | ||
Collision.withinAreas = withinAreas; | ||
})(Collision = exports.Collision || (exports.Collision = {})); | ||
})(Collision || (exports.Collision = Collision = {})); | ||
//# sourceMappingURL=Collision.js.map |
@@ -7,6 +7,3 @@ import * as pl from "@akashic/playlog"; | ||
import type { WeakRefKVS } from "./WeakRefKVS"; | ||
/** | ||
* @ignore | ||
*/ | ||
interface EventConverterParameterObjectGameLike { | ||
export interface EventConverterParameterObjectGameLike { | ||
db: WeakRefKVS<E>; | ||
@@ -41,2 +38,1 @@ _localDb: WeakRefKVS<E>; | ||
} | ||
export {}; |
@@ -12,3 +12,3 @@ /** | ||
*/ | ||
export declare module EventIndex { | ||
export declare namespace EventIndex { | ||
const enum Tick { | ||
@@ -15,0 +15,0 @@ Age = 0, |
import type { AssertionError, AssetLoadError, TypeMismatchError } from "@akashic/pdi-types"; | ||
import type { RequestAssetDetail, RequestAssetLoadError } from "./errors"; | ||
/** | ||
@@ -6,3 +7,3 @@ * 例外生成ファクトリ。 | ||
*/ | ||
export declare module ExceptionFactory { | ||
export declare namespace ExceptionFactory { | ||
function createAssertionError(message: string, cause?: any): AssertionError; | ||
@@ -12,2 +13,3 @@ function createTypeMismatchError(methodName: string, expected: any, actual?: any, cause?: any): TypeMismatchError; | ||
cause?: any): AssetLoadError; | ||
function createRequestAssetLoadError(message: string, detail: RequestAssetDetail, cause?: any): RequestAssetLoadError; | ||
} |
@@ -55,3 +55,11 @@ "use strict"; | ||
ExceptionFactory.createAssetLoadError = createAssetLoadError; | ||
})(ExceptionFactory = exports.ExceptionFactory || (exports.ExceptionFactory = {})); | ||
function createRequestAssetLoadError(message, detail, cause) { | ||
var e = new Error(message); | ||
e.name = "RequestAssetLoadError"; | ||
e.detail = detail; | ||
e.cause = cause; | ||
return e; | ||
} | ||
ExceptionFactory.createRequestAssetLoadError = createRequestAssetLoadError; | ||
})(ExceptionFactory || (exports.ExceptionFactory = ExceptionFactory = {})); | ||
//# sourceMappingURL=ExceptionFactory.js.map |
@@ -496,2 +496,3 @@ import type { GameConfiguration } from "@akashic/game-configuration"; | ||
* @private | ||
* @ignore | ||
*/ | ||
@@ -502,2 +503,3 @@ _eventConverter: EventConverter; | ||
* @private | ||
* @ignore | ||
*/ | ||
@@ -589,2 +591,3 @@ _pointEventResolver: PointEventResolver; | ||
* 実行待ちの post-tick タスク。 | ||
* @ignore | ||
*/ | ||
@@ -591,0 +594,0 @@ private _postTickTasks; |
@@ -690,2 +690,3 @@ "use strict"; | ||
Game.prototype._reset = function (param) { | ||
var _a; | ||
this.operationPluginManager.reset(); | ||
@@ -709,4 +710,2 @@ this.operationPluginManager.onOperate.add(this._onOperationPluginOperated.fire, this._onOperationPluginOperated); | ||
this.age = param.age; | ||
if (param.nextEntityId !== undefined) | ||
this._idx = param.nextEntityId; | ||
if (param.randGenSer !== undefined) { | ||
@@ -734,3 +733,3 @@ this.random = XorshiftRandomGenerator_1.XorshiftRandomGenerator.deserialize(param.randGenSer); | ||
this.onLeave.add(this._handleLeaveEvent, this); | ||
this._idx = 0; | ||
this._idx = (_a = param === null || param === void 0 ? void 0 : param.nextEntityId) !== null && _a !== void 0 ? _a : 0; | ||
this._localIdx = 0; | ||
@@ -1128,3 +1127,3 @@ this._cameraIdx = 0; | ||
continue; | ||
var pluginClass = this._moduleManager._require(pluginInfo.script); | ||
var pluginClass = this._moduleManager._internalRequire(pluginInfo.script); | ||
var plugin = this.operationPluginManager.register(pluginClass, pluginInfo.code, pluginInfo.option); | ||
@@ -1139,3 +1138,3 @@ if (!pluginInfo.manualStart && plugin) { | ||
var preloadAssetId = preloadAssetIds_1[_a]; | ||
var fun = this._moduleManager._require(preloadAssetId); | ||
var fun = this._moduleManager._internalRequire(preloadAssetId); | ||
if (!fun || typeof fun !== "function") | ||
@@ -1149,3 +1148,3 @@ throw ExceptionFactory_1.ExceptionFactory.createAssertionError("Game#_handleLoad: ".concat(preloadAssetId, " has no-exported function.")); | ||
else if (this._main) { | ||
var mainFun = this._moduleManager._require(this._main); | ||
var mainFun = this._moduleManager._internalRequire(this._main); | ||
if (!mainFun || typeof mainFun !== "function") | ||
@@ -1152,0 +1151,0 @@ throw ExceptionFactory_1.ExceptionFactory.createAssertionError("Game#_handleLoad: Entry point ".concat(this._main, " not found.")); |
@@ -30,2 +30,14 @@ import type { Asset, ScriptAssetRuntimeValueBase } from "@akashic/pdi-types"; | ||
/** | ||
* エンジン内部で利用する _require() を wrap した関数 | ||
* | ||
* 引数の仕様については `_require()` の仕様を参照のこと。 | ||
* _require() の戻り値で __esModule が真の場合に戻り値の .default を返す。 | ||
* 現状 Akashic Engine では ESM を扱えていない。そのため、対象の __esModule を参照し .default を返すことで、 | ||
* TypeScript/Babel 向けの簡易対応とし exports.default を扱えるようにしている。 | ||
* 通常、ゲーム開発者がこのメソッドを利用する必要はない。 | ||
* | ||
* @ignore | ||
*/ | ||
_internalRequire(path: string, currentModule?: Module): any; | ||
/** | ||
* node.js の require() ライクな読み込み処理を行い、その結果を返す。 | ||
@@ -70,16 +82,2 @@ * | ||
/** | ||
* 与えられたパス文字列がディレクトリパスであると仮定して、対応するアセットを探す。 | ||
* 見つかった場合そのアセットを、そうでない場合 `undefined` を返す。 | ||
* 通常、ゲーム開発者がファイルパスを扱うことはなく、このメソッドを呼び出す必要はない。 | ||
* ディレクトリ内に package.json が存在する場合、package.json 自体もアセットとして | ||
* `liveAssetPathTable` から参照可能でなければならないことに注意。 | ||
* | ||
* @ignore | ||
* @param resolvedPath パス文字列 | ||
* @param liveAssetPathTable パス文字列のプロパティに対応するアセットを格納したオブジェクト | ||
*/ | ||
_findAssetByPathAsDirectory(resolvedPath: string, liveAssetPathTable: { | ||
[key: string]: OneOfAsset; | ||
}): OneOfAsset | undefined; | ||
/** | ||
* 与えられたパス文字列がファイルパスであると仮定して、対応するアセットの絶対パスを解決する。 | ||
@@ -86,0 +84,0 @@ * アセットが存在した場合はそのパスを、そうでない場合 `null` を返す。 |
@@ -21,2 +21,17 @@ "use strict"; | ||
/** | ||
* エンジン内部で利用する _require() を wrap した関数 | ||
* | ||
* 引数の仕様については `_require()` の仕様を参照のこと。 | ||
* _require() の戻り値で __esModule が真の場合に戻り値の .default を返す。 | ||
* 現状 Akashic Engine では ESM を扱えていない。そのため、対象の __esModule を参照し .default を返すことで、 | ||
* TypeScript/Babel 向けの簡易対応とし exports.default を扱えるようにしている。 | ||
* 通常、ゲーム開発者がこのメソッドを利用する必要はない。 | ||
* | ||
* @ignore | ||
*/ | ||
ModuleManager.prototype._internalRequire = function (path, currentModule) { | ||
var module = this._require(path, currentModule); | ||
return module.__esModule ? module.default : module; | ||
}; | ||
/** | ||
* node.js の require() ライクな読み込み処理を行い、その結果を返す。 | ||
@@ -50,51 +65,17 @@ * | ||
} | ||
// 1. If X is a core module, | ||
// (何もしない。コアモジュールには対応していない。ゲーム開発者は自分でコアモジュールへの依存を解決する必要がある) | ||
if (/^\.\/|^\.\.\/|^\//.test(path)) { | ||
// 2. If X begins with './' or '/' or '../' | ||
if (currentModule) { | ||
if (!currentModule._virtualDirname) | ||
throw ExceptionFactory_1.ExceptionFactory.createAssertionError("g._require: require from modules without virtualPath is not supported"); | ||
resolvedPath = PathUtil_1.PathUtil.resolvePath(currentModule._virtualDirname, path); | ||
} | ||
else { | ||
if (!/^\.\//.test(path)) | ||
throw ExceptionFactory_1.ExceptionFactory.createAssertionError("g._require: entry point path must start with './'"); | ||
resolvedPath = path.substring(2); | ||
} | ||
if (this._scriptCaches.hasOwnProperty(resolvedPath)) { | ||
return this._scriptCaches[resolvedPath]._cachedValue(); | ||
} | ||
else if (this._scriptCaches.hasOwnProperty(resolvedPath + ".js")) { | ||
return this._scriptCaches[resolvedPath + ".js"]._cachedValue(); | ||
} | ||
// 2.a. LOAD_AS_FILE(Y + X) | ||
if (!targetScriptAsset) | ||
targetScriptAsset = this._findAssetByPathAsFile(resolvedPath, liveAssetVirtualPathTable); | ||
// 2.b. LOAD_AS_DIRECTORY(Y + X) | ||
if (!targetScriptAsset) | ||
targetScriptAsset = this._findAssetByPathAsDirectory(resolvedPath, liveAssetVirtualPathTable); | ||
if (!resolvedPath) { | ||
resolvedPath = this._resolvePath(path, currentModule); | ||
// 戻り値は先頭に "/" が付くので削除している。( moduleMainScripts を参照して返される値には先頭に "/" は付かない) | ||
if (/^\//.test(resolvedPath)) | ||
resolvedPath = resolvedPath.slice(1); | ||
} | ||
if (this._scriptCaches.hasOwnProperty(resolvedPath)) { | ||
return this._scriptCaches[resolvedPath]._cachedValue(); | ||
} | ||
// akashic-engine独自仕様: 対象の `path` が `moduleMainScripts` に指定されていたらそちらを参照する | ||
if (moduleMainScripts[path]) { | ||
targetScriptAsset = liveAssetVirtualPathTable[resolvedPath]; | ||
} | ||
else { | ||
// 3. LOAD_NODE_MODULES(X, dirname(Y)) | ||
// `path` は node module の名前であると仮定して探す | ||
// akashic-engine独自仕様: 対象の `path` が `moduleMainScripts` に指定されていたらそちらを参照する | ||
if (moduleMainScripts[path]) { | ||
resolvedPath = moduleMainScripts[path]; | ||
targetScriptAsset = liveAssetVirtualPathTable[resolvedPath]; | ||
} | ||
if (!targetScriptAsset) { | ||
var dirs = currentModule ? currentModule.paths : []; | ||
dirs.push("node_modules"); | ||
for (var i = 0; i < dirs.length; ++i) { | ||
var dir = dirs[i]; | ||
resolvedPath = PathUtil_1.PathUtil.resolvePath(dir, path); | ||
targetScriptAsset = this._findAssetByPathAsFile(resolvedPath, liveAssetVirtualPathTable); | ||
if (targetScriptAsset) | ||
break; | ||
targetScriptAsset = this._findAssetByPathAsDirectory(resolvedPath, liveAssetVirtualPathTable); | ||
if (targetScriptAsset) | ||
break; | ||
} | ||
} | ||
targetScriptAsset = this._findAssetByPathAsFile(resolvedPath, liveAssetVirtualPathTable); | ||
} | ||
@@ -157,3 +138,6 @@ if (targetScriptAsset) { | ||
else { | ||
throw ExceptionFactory_1.ExceptionFactory.createAssertionError("g._require.resolve: couldn't resolve the moudle without currentModule"); | ||
if (!/^\.\//.test(path)) { | ||
throw ExceptionFactory_1.ExceptionFactory.createAssertionError("g._require.resolve: entry point path must start with './'"); | ||
} | ||
resolvedPath = path.substring(2); | ||
} | ||
@@ -212,31 +196,2 @@ // 2.a. LOAD_AS_FILE(Y + X) | ||
/** | ||
* 与えられたパス文字列がディレクトリパスであると仮定して、対応するアセットを探す。 | ||
* 見つかった場合そのアセットを、そうでない場合 `undefined` を返す。 | ||
* 通常、ゲーム開発者がファイルパスを扱うことはなく、このメソッドを呼び出す必要はない。 | ||
* ディレクトリ内に package.json が存在する場合、package.json 自体もアセットとして | ||
* `liveAssetPathTable` から参照可能でなければならないことに注意。 | ||
* | ||
* @ignore | ||
* @param resolvedPath パス文字列 | ||
* @param liveAssetPathTable パス文字列のプロパティに対応するアセットを格納したオブジェクト | ||
*/ | ||
ModuleManager.prototype._findAssetByPathAsDirectory = function (resolvedPath, liveAssetPathTable) { | ||
var path; | ||
path = resolvedPath + "/package.json"; | ||
var pkgJsonAsset = liveAssetPathTable[path]; | ||
// liveAssetPathTable[path] != null だけではpathと同名のprototypeプロパティがある場合trueになってしまうので hasOwnProperty() を利用 | ||
if (liveAssetPathTable.hasOwnProperty(path) && pkgJsonAsset.type === "text") { | ||
var pkg = JSON.parse(pkgJsonAsset.data); | ||
if (pkg && typeof pkg.main === "string") { | ||
var asset = this._findAssetByPathAsFile(PathUtil_1.PathUtil.resolvePath(resolvedPath, pkg.main), liveAssetPathTable); | ||
if (asset) | ||
return asset; | ||
} | ||
} | ||
path = resolvedPath + "/index.js"; | ||
if (liveAssetPathTable.hasOwnProperty(path)) | ||
return liveAssetPathTable[path]; | ||
return undefined; | ||
}; | ||
/** | ||
* 与えられたパス文字列がファイルパスであると仮定して、対応するアセットの絶対パスを解決する。 | ||
@@ -277,3 +232,3 @@ * アセットが存在した場合はそのパスを、そうでない場合 `null` を返す。 | ||
if (targetPath) { | ||
return "/" + targetPath; | ||
return targetPath; | ||
} | ||
@@ -280,0 +235,0 @@ } |
@@ -10,2 +10,3 @@ import type { Asset, CommonOffset } from "@akashic/pdi-types"; | ||
import type { E, PointDownEvent, PointMoveEvent, PointSource, PointUpEvent } from "./entities/E"; | ||
import type { RequestAssetLoadError } from "./errors"; | ||
import type { MessageEvent, OperationEvent } from "./Event"; | ||
@@ -18,4 +19,15 @@ import type { Game } from "./Game"; | ||
import { TimerManager } from "./TimerManager"; | ||
export type SceneRequestAssetHandler = () => void; | ||
export type SceneRequestAssetHandler = (error?: RequestAssetLoadError) => void; | ||
/** | ||
* `Scene#requestAsset` の引数に渡すことができるパラメータ。 | ||
*/ | ||
export interface SceneRequestAssetsParameterObject { | ||
assetIds: (string | DynamicAssetConfiguration | AssetGenerationConfiguration)[]; | ||
/** | ||
* アセットの読込みに失敗した際にコールバックを実行するかどうか。 | ||
* @default false | ||
*/ | ||
notifyErrorOnCallback?: boolean; | ||
} | ||
/** | ||
* `Scene` のコンストラクタに渡すことができるパラメータ。 | ||
@@ -541,3 +553,3 @@ * 説明のない各メンバの詳細は `Scene` の同名メンバの説明を参照すること。 | ||
prefetch(): void; | ||
requestAssets(assetIds: (string | DynamicAssetConfiguration | AssetGenerationConfiguration)[], handler: SceneRequestAssetHandler): void; | ||
requestAssets(assetIdsOrConf: (string | DynamicAssetConfiguration | AssetGenerationConfiguration)[] | SceneRequestAssetsParameterObject, handler: SceneRequestAssetHandler): void; | ||
/** | ||
@@ -544,0 +556,0 @@ * @private |
@@ -348,3 +348,3 @@ "use strict"; | ||
}; | ||
Scene.prototype.requestAssets = function (assetIds, handler) { | ||
Scene.prototype.requestAssets = function (assetIdsOrConf, handler) { | ||
var _this = this; | ||
@@ -356,5 +356,16 @@ if (this._loadingState !== "ready-fired" && this._loadingState !== "loaded-fired") { | ||
} | ||
var assetIds; | ||
var alwaysNotifyFinish; | ||
if (Array.isArray(assetIdsOrConf)) { | ||
assetIds = assetIdsOrConf; | ||
alwaysNotifyFinish = false; | ||
} | ||
else { | ||
assetIds = assetIdsOrConf.assetIds; | ||
alwaysNotifyFinish = !!assetIdsOrConf.notifyErrorOnCallback; | ||
} | ||
var holder = new AssetHolder_1.AssetHolder({ | ||
assetManager: this.game._assetManager, | ||
assetIds: assetIds, | ||
alwaysNotifyFinish: alwaysNotifyFinish, | ||
handlerSet: { | ||
@@ -368,4 +379,13 @@ owner: this, | ||
// 不要なクロージャは避けたいが生存チェックのため不可避 | ||
if (!_this.destroyed()) | ||
handler(); | ||
if (!_this.destroyed()) { | ||
var failureAssetIds = holder._getFailureAssetIds(); | ||
if (failureAssetIds.length) { | ||
// このパスに入るのは AssetHolder の alwaysNotifyFinish フラグを真にした時のみであることに注意 | ||
var error = ExceptionFactory_1.ExceptionFactory.createRequestAssetLoadError("Scene#requestAssets(): failed to load the asset. refer to the 'detail' property for more information.", { failureAssetIds: failureAssetIds }); | ||
handler(error); | ||
} | ||
else { | ||
handler(); | ||
} | ||
} | ||
} | ||
@@ -372,0 +392,0 @@ }); |
@@ -5,3 +5,3 @@ import type { CommonRect, ImageAsset, Renderer, Surface } from "@akashic/pdi-types"; | ||
*/ | ||
export declare module SurfaceUtil { | ||
export declare namespace SurfaceUtil { | ||
/** | ||
@@ -8,0 +8,0 @@ * 引数 `src` が `undefined` または `Surface` でそのまま返す。 |
@@ -204,3 +204,3 @@ "use strict"; | ||
SurfaceUtil.renderNinePatch = renderNinePatch; | ||
})(SurfaceUtil = exports.SurfaceUtil || (exports.SurfaceUtil = {})); | ||
})(SurfaceUtil || (exports.SurfaceUtil = SurfaceUtil = {})); | ||
//# sourceMappingURL=SurfaceUtil.js.map |
@@ -22,3 +22,3 @@ "use strict"; | ||
TextAlign[TextAlign["Right"] = 2] = "Right"; | ||
})(TextAlign = exports.TextAlign || (exports.TextAlign = {})); | ||
})(TextAlign || (exports.TextAlign = TextAlign = {})); | ||
//# sourceMappingURL=TextAlign.js.map |
@@ -6,3 +6,3 @@ import type { CommonArea, CommonOffset, CompositeOperationString } from "@akashic/pdi-types"; | ||
*/ | ||
export declare module Util { | ||
export declare namespace Util { | ||
/** | ||
@@ -9,0 +9,0 @@ * 2点間(P1..P2)の距離(pixel)を返す。 |
@@ -102,4 +102,6 @@ "use strict"; | ||
_a[pdi_types_1.CompositeOperation.Xor] = "xor", | ||
_a[pdi_types_1.CompositeOperation.Difference] = "difference", | ||
_a[pdi_types_1.CompositeOperation.Saturation] = "saturation", | ||
_a); | ||
})(Util = exports.Util || (exports.Util = {})); | ||
})(Util || (exports.Util = Util = {})); | ||
//# sourceMappingURL=Util.js.map |
@@ -9,3 +9,9 @@ interface WeakRefLike<T extends object> { | ||
export declare class WeakRefKVS<T extends object> { | ||
/** | ||
* @ignore | ||
*/ | ||
_weakRefClass: any; | ||
/** | ||
* @ignore | ||
*/ | ||
_refMap: { | ||
@@ -12,0 +18,0 @@ [key: string]: WeakRefLike<T>; |
@@ -22,3 +22,9 @@ "use strict"; | ||
function WeakRefKVS() { | ||
/** | ||
* @ignore | ||
*/ | ||
this._weakRefClass = typeof WeakRef !== "undefined" ? WeakRef : PseudoWeakRef; | ||
/** | ||
* @ignore | ||
*/ | ||
this._refMap = Object.create(null); | ||
@@ -25,0 +31,0 @@ } |
{ | ||
"name": "@akashic/akashic-engine", | ||
"version": "3.17.0-beta.0", | ||
"version": "3.17.0", | ||
"description": "The core library of Akashic Engine", | ||
"main": "index.js", | ||
"dependencies": { | ||
"@akashic/game-configuration": "~2.1.0-beta.1", | ||
"@akashic/pdi-types": "~1.13.0-beta.0", | ||
"@akashic/game-configuration": "~2.1.0", | ||
"@akashic/pdi-types": "^1.13.0", | ||
"@akashic/playlog": "~3.3.0", | ||
"@akashic/trigger": "~2.0.0" | ||
"@akashic/trigger": "~2.1.0" | ||
}, | ||
"devDependencies": { | ||
"@akashic/eslint-config": "2.0.0", | ||
"@akashic/pdi-common-impl": "^1.5.0-beta.0", | ||
"@akashic/pdi-common-impl": "^1.4.0", | ||
"@types/jest": "^29.0.0", | ||
@@ -29,9 +29,9 @@ "@typescript-eslint/eslint-plugin": "^6.7.5", | ||
"rollup-plugin-node-resolve": "^5.2.0", | ||
"textlint": "^13.0.0", | ||
"textlint-rule-max-ten": "^4.0.3", | ||
"textlint-rule-no-mix-dearu-desumasu": "^5.0.0", | ||
"textlint-rule-prh": "^5.3.0", | ||
"textlint": "^14.0.0", | ||
"textlint-rule-max-ten": "^5.0.0", | ||
"textlint-rule-no-mix-dearu-desumasu": "^6.0.0", | ||
"textlint-rule-prh": "^6.0.0", | ||
"ts-jest": "^29.0.0", | ||
"typedoc": "^0.23.0", | ||
"typescript": "^4.7.4", | ||
"typedoc": "^0.25.0", | ||
"typescript": "^5.0.0", | ||
"xorshift": "1.2.0" | ||
@@ -65,4 +65,3 @@ }, | ||
"publishConfig": { | ||
"@akashic:registry": "https://registry.npmjs.org/", | ||
"tag": "next" | ||
"@akashic:registry": "https://registry.npmjs.org/" | ||
}, | ||
@@ -69,0 +68,0 @@ "typings": "lib/index.d.ts", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
1583172
262
27347
1
+ Added@akashic/pdi-types@1.14.0(transitive)
- Removed@akashic/pdi-types@1.13.0(transitive)
- Removed@akashic/trigger@2.0.1(transitive)
Updated@akashic/pdi-types@^1.13.0
Updated@akashic/trigger@~2.1.0