Website/db/app/core/dto/rawData/RawItemProps.ts
Mangiang 4b26395870
Some checks failed
continuous-integration/drone/push Build is failing
chore: work in progress
2022-05-06 21:05:02 -04:00

77 lines
2.2 KiB
TypeScript

import { Prisma } from '@prisma/client';
import { RawItemPrefab } from './RawItemPrefab';
import { RawItemUsePrefab } from './RawItemUsePrefab';
export class RawItemProps {
id: number
Name: string
ShortName: string
Description: string
Weight: number
BackgroundColor: string
Width: number
Height: number
StackMaxSize: number
ItemSound: string
Prefab: RawItemPrefab
UsePrefab: RawItemUsePrefab
StackObjectsCount: number
NotShownInSlot: boolean
ExaminedByDefault: boolean
ExamineTime: number
IsUndiscardable: boolean
IsUnsaleable: boolean
IsUnbuyable: boolean
IsUngivable: boolean
IsLockedafterEquip: boolean
QuestItem: boolean
LootExperience: number
ExamineExperience: number
HideEntrails: boolean
RepairCost: number
RepairSpeed: number
ExtraSizeLeft: number
ExtraSizeRight: number
ExtraSizeUp: number
ExtraSizeDown: number
ExtraSizeForceAdd: boolean
MergesWithChildren: boolean
CanSellOnRagfair: boolean
CanRequireOnRagfair: boolean
ConflictingItems: string[]
Unlootable: boolean
UnlootableFromSlot: string
UnlootableFromSide: string[]
AnimationVariantsNumber: number
DiscardingBlock: boolean
RagFairCommissionModifier: number
IsAlwaysAvailableForInsurance: boolean
MaxResource: number
Resource: number
Backgroundcolor: string
IsLockedAfterEquip: boolean
static fromRawData(data: any): RawItemProps {
const rawData = new RawItemProps();
Object.assign(rawData, data)
rawData.Prefab = RawItemPrefab.fromRawData(data['Prefab'])
rawData.UsePrefab = RawItemUsePrefab.fromRawData(data['UsePrefab'])
return rawData
}
toItemPropsData(): Prisma.ItemPropCreateNestedOneWithoutItemInput {
const {id, ...data} = this;
return {
connectOrCreate: {
where: {
id
},
create: {
...data,
Prefab: this.Prefab.toItemPrefabData(),
UsePrefab: this.UsePrefab.toItemUsePrefabData()
}
}
}
}
}