<commit_before>import { Trigger } from "@akashic/trigger";
import { AssetLike, AssetLoadHandler } from "../pdi-types/AssetLike";

/**
 * 各種リソースを表すクラス。
 * 本クラスのインスタンスをゲーム開発者が直接生成することはない。
 * game.jsonによって定義された内容をもとに暗黙的に生成されたインスタンスを、
 * Scene#assets、またはGame#assetsによって取得して利用する。
 */
export abstract class Asset implements AssetLike {
	// @ts-ignore
	type: string;
	id: string;
	path: string;
	originalPath: string;
	onDestroyed: Trigger<AssetLike>;

	constructor(id: string, path: string) {
		this.id = id;
		this.originalPath = path;
		this.path = this._assetPathFilter(path);
		this.onDestroyed = new Trigger<AssetLike>();
	}

	destroy(): void {
		this.onDestroyed.fire(this);
		this.id = undefined!;
		this.originalPath = undefined!;
		this.path = undefined!;<commit_msg>Add comment<commit_after>import { Trigger } from "@akashic/trigger";
import { AssetLike, AssetLoadHandler } from "../pdi-types/AssetLike";

/**
 * 各種リソースを表すクラス。
 * 本クラスのインスタンスをゲーム開発者が直接生成することはない。
 * game.jsonによって定義された内容をもとに暗黙的に生成されたインスタンスを、
 * Scene#assets、またはGame#assetsによって取得して利用する。
 */
export abstract class Asset implements AssetLike {
	// @ts-ignore 妥当な値を派生クラスが代入しているのでここでは値を入れない
	type: string;
	id: string;
	path: string;
	originalPath: string;
	onDestroyed: Trigger<AssetLike>;

	constructor(id: string, path: string) {
		this.id = id;
		this.originalPath = path;
		this.path = this._assetPathFilter(path);
		this.onDestroyed = new Trigger<AssetLike>();
	}

	destroy(): void {
		this.onDestroyed.fire(this);
		this.id = undefined!;
		this.originalPath = undefined!;
		this.path = undefined!;
{'fraction_non_alphanumeric': 0.13010204081632654, 'fraction_numerical': 0.0, 'mean_word_length': 5.057915057915058, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2860131', 'n_tokens_mistral': 706, 'n_tokens_neox': 652, 'n_words': 105}