ScavXpCounts/types/controllers/LocationController.d.ts

81 lines
4.1 KiB
TypeScript
Raw Normal View History

2024-11-12 11:51:30 -07:00
import { ApplicationContext } from "@spt/context/ApplicationContext";
import { LocationGenerator } from "@spt/generators/LocationGenerator";
import { LootGenerator } from "@spt/generators/LootGenerator";
import { WeightedRandomHelper } from "@spt/helpers/WeightedRandomHelper";
import { ILocationBase } from "@spt/models/eft/common/ILocationBase";
import { ILocationsGenerateAllResponse } from "@spt/models/eft/common/ILocationsSourceDestinationBase";
import { IAirdropLootResult } from "@spt/models/eft/location/IAirdropLootResult";
import { IGetLocationRequestData } from "@spt/models/eft/location/IGetLocationRequestData";
import { AirdropTypeEnum } from "@spt/models/enums/AirdropType";
import { IAirdropConfig } from "@spt/models/spt/config/IAirdropConfig";
import { ILocationConfig } from "@spt/models/spt/config/ILocationConfig";
import { LootRequest } from "@spt/models/spt/services/LootRequest";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { DatabaseService } from "@spt/services/DatabaseService";
import { ItemFilterService } from "@spt/services/ItemFilterService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { RaidTimeAdjustmentService } from "@spt/services/RaidTimeAdjustmentService";
import { HashUtil } from "@spt/utils/HashUtil";
import { RandomUtil } from "@spt/utils/RandomUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
import { ICloner } from "@spt/utils/cloners/ICloner";
2023-08-17 19:49:16 -06:00
export declare class LocationController {
protected hashUtil: HashUtil;
2024-02-23 15:06:00 -07:00
protected randomUtil: RandomUtil;
2023-08-17 19:49:16 -06:00
protected weightedRandomHelper: WeightedRandomHelper;
protected logger: ILogger;
protected locationGenerator: LocationGenerator;
protected localisationService: LocalisationService;
2024-02-23 15:06:00 -07:00
protected raidTimeAdjustmentService: RaidTimeAdjustmentService;
2024-04-19 21:23:52 -06:00
protected itemFilterService: ItemFilterService;
2023-08-17 19:49:16 -06:00
protected lootGenerator: LootGenerator;
2024-11-12 11:51:30 -07:00
protected databaseService: DatabaseService;
2023-08-17 19:49:16 -06:00
protected timeUtil: TimeUtil;
protected configServer: ConfigServer;
2024-02-23 15:06:00 -07:00
protected applicationContext: ApplicationContext;
2024-11-12 11:51:30 -07:00
protected cloner: ICloner;
2023-08-17 19:49:16 -06:00
protected airdropConfig: IAirdropConfig;
2024-02-23 15:06:00 -07:00
protected locationConfig: ILocationConfig;
2024-11-12 11:51:30 -07:00
constructor(hashUtil: HashUtil, randomUtil: RandomUtil, weightedRandomHelper: WeightedRandomHelper, logger: ILogger, locationGenerator: LocationGenerator, localisationService: LocalisationService, raidTimeAdjustmentService: RaidTimeAdjustmentService, itemFilterService: ItemFilterService, lootGenerator: LootGenerator, databaseService: DatabaseService, timeUtil: TimeUtil, configServer: ConfigServer, applicationContext: ApplicationContext, cloner: ICloner);
2023-08-17 19:49:16 -06:00
/**
* Handle client/location/getLocalloot
* Get a location (map) with generated loot data
2024-02-23 15:06:00 -07:00
* @param sessionId Player id
* @param request Map request to generate
2023-08-17 19:49:16 -06:00
* @returns ILocationBase
*/
2024-02-23 15:06:00 -07:00
get(sessionId: string, request: IGetLocationRequestData): ILocationBase;
2023-08-17 19:49:16 -06:00
/**
2024-11-12 11:51:30 -07:00
* Generate a maps base location and loot
2023-08-17 19:49:16 -06:00
* @param name Map name
* @returns ILocationBase
*/
protected generate(name: string): ILocationBase;
/**
* Handle client/locations
* Get all maps base location properties without loot data
* @param sessionId Players Id
* @returns ILocationsGenerateAllResponse
*/
generateAll(sessionId: string): ILocationsGenerateAllResponse;
/**
* Handle client/location/getAirdropLoot
2024-04-19 21:23:52 -06:00
* Get loot for an airdrop container
2023-08-17 19:49:16 -06:00
* Generates it randomly based on config/airdrop.json values
* @returns Array of LootItem objects
*/
getAirdropLoot(): IAirdropLootResult;
/**
* Randomly pick a type of airdrop loot using weighted values from config
* @returns airdrop type value
*/
protected chooseAirdropType(): AirdropTypeEnum;
/**
* Get the configuration for a specific type of airdrop
* @param airdropType Type of airdrop to get settings for
* @returns LootRequest
*/
protected getAirdropLootConfigByType(airdropType: AirdropTypeEnum): LootRequest;
}