77 lines
2.2 KiB
TypeScript
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()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |