UNPKG

bungie-net-core

Version:

An easy way to interact with the Bungie.net API

137 lines (136 loc) 6.37 kB
/** * Bungie.Net API * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality. * * Contact: support@bungie.com * * NOTE: This class is auto generated by the bungie-net-core code generator program * Repository: {@link https://github.com/owens1127/bungie-net-core} * Do not edit these files manually. */ import { DestinyDisplayPropertiesDefinition } from './Common/DestinyDisplayPropertiesDefinition'; import { DestinyBreakerType } from '../DestinyBreakerType'; import { DestinyItemType } from '../DestinyItemType'; import { DestinyItemSubType } from '../DestinyItemSubType'; import { DestinyClass } from '../DestinyClass'; /** * In an attempt to categorize items by type, usage, and other interesting * properties, we created DestinyItemCategoryDefinition: information about types * that is assembled using a set of heuristics that examine the properties of an * item such as what inventory bucket it's in, its item type name, and whether it * has or is missing certain blocks of data. * * This heuristic is imperfect, however. If you find an item miscategorized, let us * know on the Bungie API forums! * * We then populate all of the categories that we think an item belongs to in its * DestinyInventoryItemDefinition.itemCategoryHashes property. You can use that to * provide your own custom item filtering, sorting, aggregating... go nuts on it! * And let us know if you see more categories that you wish would be added! * @see {@link https://bungie-net.github.io/#/components/schemas/Destiny.Definitions.DestinyItemCategoryDefinition} */ export interface DestinyItemCategoryDefinition { readonly displayProperties: DestinyDisplayPropertiesDefinition; /** * If True, this category should be visible in UI. Sometimes we make categories * that we don't think are interesting externally. It's up to you if you want to * skip on showing them. */ readonly visible: boolean; /** * If True, this category has been deprecated: it may have no items left, or there * may be only legacy items that remain in it which are no longer relevant to the * game. */ readonly deprecated: boolean; /** * A shortened version of the title. The reason why we have this is because the * Armory in German had titles that were too long to display in our UI, so these * were localized abbreviated versions of those categories. The property still * exists today, even though the Armory doesn't exist for D2... yet. */ readonly shortTitle: string; /** * The janky regular expression we used against the item type to try and discern * whether the item belongs to this category. */ readonly itemTypeRegex: string; /** If the item in question has this category, it also should have this breaker type. */ readonly grantDestinyBreakerType: DestinyBreakerType; /** * If the item is a plug, this is the identifier we expect to find associated with * it if it is in this category. */ readonly plugCategoryIdentifier: string; /** If the item type matches this janky regex, it does *not* belong to this category. */ readonly itemTypeRegexNot: string; /** If the item belongs to this bucket, it does belong to this category. */ readonly originBucketIdentifier: string; /** * If an item belongs to this category, it will also receive this item type. This * is now how DestinyItemType is populated for items: it used to be an even jankier * process, but that's a story that requires more alcohol. */ readonly grantDestinyItemType: DestinyItemType; /** * If an item belongs to this category, it will also receive this subtype enum * value. * * I know what you're thinking - what if it belongs to multiple categories that * provide sub-types? * * The last one processed wins, as is the case with all of these "grant" enums. Now * you can see one reason why we moved away from these enums... but they're so * convenient when they work, aren't they? */ readonly grantDestinySubType: DestinyItemSubType; /** * If an item belongs to this category, it will also get this class restriction * enum value. * * See the other "grant"-prefixed properties on this definition for my color * commentary. */ readonly grantDestinyClass: DestinyClass; /** The traitId that can be found on items that belong to this category. */ readonly traitId: string; /** * If this category is a "parent" category of other categories, those children will * have their hashes listed in rendering order here, and can be looked up using * these hashes against DestinyItemCategoryDefinition. * * In this way, you can build up a visual hierarchy of item categories. That's what * we did, and you can do it too. I believe in you. Yes, you, Carl. * * (I hope someone named Carl reads this someday) Mapped to * DestinyItemCategoryDefinition in the manifest. */ readonly groupedCategoryHashes: number[]; /** * All item category hashes of "parent" categories: categories that contain this as * a child through the hierarchy of groupedCategoryHashes. It's a bit redundant, * but having this child-centric list speeds up some calculations. */ readonly parentCategoryHashes: number[]; /** * If true, this category is only used for grouping, and should not be evaluated * with its own checks. Rather, the item only has this category if it has one of * its child categories. */ readonly groupCategoryOnly: boolean; /** * The unique identifier for this entity. Guaranteed to be unique for the type of * entity, but not globally. * * When entities refer to each other in Destiny content, it is this hash that they * are referring to. */ readonly hash: number; /** The index of the entity as it was found in the investment tables. */ readonly index: number; /** * If this is true, then there is an entity with this identifier/type combination, * but BNet is not yet allowed to show it. Sorry! */ readonly redacted: boolean; }