UNPKG

@rbxts/flamework-tycoon

Version:
52 lines (51 loc) 2.24 kB
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; }