@rbxts/flamework-tycoon
Version:
52 lines (51 loc) • 2.24 kB
TypeScript
import { BaseComponent, Components } from "@flamework/components";
import { OwnerProfileData, TycoonData } from "../utility";
import { Modding, OnStart } from "@flamework/core";
import { Janitor } from "@rbxts/janitor";
import { TycoonLogger } from "./TycoonLogger";
import { TycoonService } from "./TycoonService";
import { BaseTycoonItem } from "./item/BaseTycoonItem";
import { Constructor } from "@flamework/core/out/utility";
import { Signal } from "@rbxts/signals-tooling";
export declare abstract class BaseTycoonComponent<A extends object = {}, I extends Instance = Instance, D extends TycoonData = TycoonData> extends BaseComponent<A, I> implements OnStart {
private logger;
private components;
private tycoonService;
readonly DataChanged: Signal<(newData: Readonly<D>, prevData: Readonly<D>) => void>;
readonly Claimed: Signal<(newOwner: Player) => void>;
readonly Unclaimed: Signal<() => void>;
readonly OwnerChanged: Signal<(newOwner?: Player) => void>;
readonly DataResetted: Signal<() => void>;
private container;
private owner?;
private dataContrainter;
private items;
private itemsByInstance;
protected readonly janitor: Janitor<void>;
protected abstract generateData(): D;
constructor(logger: TycoonLogger, components: Components, tycoonService: TycoonService);
onStart(): void;
GetItemsOfType<T extends object>(ctor: Constructor<T>, excludeLocked?: boolean): T[];
GetItems(): BaseTycoonItem<{}, Instance, {}>[];
private initEvents;
private findAllItemTags;
private initItems;
private setupItem;
private resetData;
private destroyItems;
private createOwnerProfile;
/** @metadata macro */
GetItem<T extends BaseTycoonItem = BaseTycoonItem>(qualifier: Instance | string, itemType?: Modding.Generic<T, "id">): T | undefined;
GetContainer(): Folder;
GetOwner(): OwnerProfileData | undefined;
VerifyOwner(player?: Player): boolean;
VerifyOwnerByCharacter(model?: Instance): boolean;
HasOwner(): boolean;
GetData(): Readonly<D>;
Claim(owner: Player, data?: D): OwnerProfileData;
Unclaim(): void;
ResetData(): void;
Destroy(): void;
/** @hidden */
destroy(): void;
}