72 lines
1.2 KiB
TypeScript
72 lines
1.2 KiB
TypeScript
import { randomUUID } from 'node:crypto'
|
|
|
|
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
|
|
|
import { BaseEntity } from '#application/base/baseEntity'
|
|
import { CharacterGender } from '#application/enums'
|
|
import { UUID } from '#application/types'
|
|
import { Character } from '#entities/character'
|
|
import { Sprite } from '#entities/sprite'
|
|
|
|
export class BaseCharacterHair extends BaseEntity {
|
|
@PrimaryKey()
|
|
id = randomUUID()
|
|
|
|
@Property()
|
|
name!: string
|
|
|
|
@Property()
|
|
gender: CharacterGender = CharacterGender.MALE
|
|
|
|
@Property()
|
|
isSelectable = false
|
|
|
|
@ManyToOne()
|
|
sprite?: Sprite
|
|
|
|
setId(id: UUID) {
|
|
this.id = id
|
|
return this
|
|
}
|
|
|
|
getId() {
|
|
return this.id
|
|
}
|
|
|
|
setName(name: string) {
|
|
this.name = name
|
|
return this
|
|
}
|
|
|
|
getName() {
|
|
return this.name
|
|
}
|
|
|
|
setGender(gender: CharacterGender) {
|
|
this.gender = gender
|
|
return this
|
|
}
|
|
|
|
getGender() {
|
|
return this.gender
|
|
}
|
|
|
|
setIsSelectable(isSelectable: boolean) {
|
|
this.isSelectable = isSelectable
|
|
return this
|
|
}
|
|
|
|
getIsSelectable() {
|
|
return this.isSelectable
|
|
}
|
|
|
|
setSprite(sprite: Sprite) {
|
|
this.sprite = sprite
|
|
return this
|
|
}
|
|
|
|
getSprite() {
|
|
return this.sprite
|
|
}
|
|
}
|