import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";

/**
 * 共用_走線表#line.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class LineTable extends TableBase<WithoutRow> {
	private _line4x5: Line4x5Table;
	/**  共用_走線表#line.xlsx > #line4x5 */
	public get Line4x5(): Line4x5Table { return this._line4x5 = this._line4x5 || TableManager.InitTable("#line#line4x5", Line4x5Table, Line4x5TableRow); }

	private _line3x5: Line3x5Table;
	/**  共用_走線表#line.xlsx > #line3x5 */
	public get Line3x5(): Line3x5Table { return this._line3x5 = this._line3x5 || TableManager.InitTable("#line#line3x5", Line3x5Table, Line3x5TableRow); }

	private _line5x5: Line5x5Table;
	/**  共用_走線表#line.xlsx > #line5x5 */
	public get Line5x5(): Line5x5Table { return this._line5x5 = this._line5x5 || TableManager.InitTable("#line#line5x5", Line5x5Table, Line5x5TableRow); }

	private _line7x6: Line7x6Table;
	/**  共用_走線表#line.xlsx > #line7x6 */
	public get Line7x6(): Line7x6Table { return this._line7x6 = this._line7x6 || TableManager.InitTable("#line#line7x6", Line7x6Table, Line7x6TableRow); }

	private _line3x3: Line3x3Table;
	/**  共用_走線表#line.xlsx > #line3x3 */
	public get Line3x3(): Line3x3Table { return this._line3x3 = this._line3x3 || TableManager.InitTable("#line#line3x3", Line3x3Table, Line3x3TableRow); }
}

/**
 * #line4x5
 */
export class Line4x5Table extends TableBase<Line4x5TableRow> {}

export class Line4x5TableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 格子 */
	Grid: any;
}

/**
 * #line3x5
 */
export class Line3x5Table extends TableBase<Line3x5TableRow> {}

export class Line3x5TableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 格子 */
	Grid: any;
}

/**
 * #line5x5
 */
export class Line5x5Table extends TableBase<Line5x5TableRow> {}

export class Line5x5TableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 格子 */
	Grid: any;
}

/**
 * #line7x6
 */
export class Line7x6Table extends TableBase<Line7x6TableRow> {}

export class Line7x6TableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 格子 */
	Grid: any;
}

/**
 * #line3x3
 */
export class Line3x3Table extends TableBase<Line3x3TableRow> {}

export class Line3x3TableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 格子 */
	Grid: any;
}
