UNPKG

@rbxts/flamework-tycoon

Version:
50 lines (49 loc) 2.1 kB
/// <reference types="@rbxts/types" /> /// <reference types="@rbxts/compiler-types" /> import { BaseComponent, Components } from "@flamework/components"; import { IOwnerProfile, ITycoonData } 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 { Signal } from "@rbxts/signals-tooling"; export declare abstract class BaseTycoonComponent<A extends object = {}, I extends Model = Model, D extends ITycoonData = ITycoonData> extends BaseComponent<A, I> implements OnStart { private logger; private components; private tycoonService; readonly OnChangedData: Signal<(newData: Readonly<D>, prevData: Readonly<D>) => void>; readonly OnClaim: Signal<(newOwner: Player) => void>; readonly OnDisown: Signal<() => void>; readonly OnChangedOwner: Signal<(newOwner?: Player) => void>; readonly OnResetData: 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; 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(): IOwnerProfile | undefined; VerifyOwner(player?: Player): boolean; VerifyOwnerByCharacter(model?: Instance): boolean; HaveOwner(): boolean; GetData(): Readonly<D>; Claim(owner: Player, data?: D): IOwnerProfile<ITycoonData>; Disown(): void; Destroy(): void; /** @hidden */ destroy(): void; }