# Class: CharacterStoredClass (/jsdoc/pixi-vn/index/classes/CharacterStoredClass)



Defined in: [src/characters/classes/CharacterStoredClass.ts:5](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterStoredClass.ts#L5)

StoredClassModel is a abstract class that contains the methods to store a class in the game.
I suggest you extend this class to create your own stored class.

Example [#example]

```typescript
export class CharacterBaseModel extends StoredClassModel implements CharacterBaseModelProps {
    constructor(id: string, props: CharacterBaseModelProps) {
        super("___character___", id)
        this.defaultName = props.name
        this.defaultSurname = props.surname
    }
    readonly defaultName: string = ""
    get name(): string {
        return this.getStorageProperty<string>("name") || this.defaultName
    }
    set name(value: string) {
        this.setStorageProperty("name", value)
    }
    readonly defaultSurname?: string
    get surname(): string | undefined {
        return this.getStorageProperty<string>("surname") || this.defaultSurname
    }
    set surname(value: string | undefined) {
        this.setStorageProperty("surname", value)
    }
}
```

Extends [#extends]

* [`StoredClassModel`](/jsdoc/pixi-vn/index/classes/StoredClassModel)

Extended by [#extended-by]

* [`CharacterBaseModel`](/jsdoc/pixi-vn/index/classes/CharacterBaseModel)

Constructors [#constructors]

Constructor [#constructor]

\> **new CharacterStoredClass**(`id`, `emotion?`): `CharacterStoredClass`

Defined in: [src/characters/classes/CharacterStoredClass.ts:7](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterStoredClass.ts#L7)

Parameters [#parameters]

id [#id]

`string`

emotion? [#emotion]

`string` = `""`

Returns [#returns]

`CharacterStoredClass`

Overrides [#overrides]

[`StoredClassModel`](/jsdoc/pixi-vn/index/classes/StoredClassModel).[`constructor`](/jsdoc/pixi-vn/index/classes/StoredClassModel#constructor)

Properties [#properties]

id [#id-1]

\> `readonly` **id**: `string`

Defined in: [src/storage/classes/StoredClassModel.ts:63](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/storage/classes/StoredClassModel.ts#L63)

Is id of the stored class. is unique for this class.

Inherited from [#inherited-from]

[`StoredClassModel`](/jsdoc/pixi-vn/index/classes/StoredClassModel).[`id`](/jsdoc/pixi-vn/index/classes/StoredClassModel#id)

Methods [#methods]

getStorageProperty() [#getstorageproperty]

\> **getStorageProperty**\<`T`>(`propertyName`): `T` | `undefined`

Defined in: [src/characters/classes/CharacterStoredClass.ts:16](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterStoredClass.ts#L16)

Get a property from the storage.

Type Parameters [#type-parameters]

T [#t]

`T`

Parameters [#parameters-1]

propertyName [#propertyname]

`string`

The name of the property to get.

Returns [#returns-1]

`T` | `undefined`

The value of the property. If the property is not found, returns undefined.

Default [#default]

```ts
this.id
```

Overrides [#overrides-1]

[`StoredClassModel`](/jsdoc/pixi-vn/index/classes/StoredClassModel).[`getStorageProperty`](/jsdoc/pixi-vn/index/classes/StoredClassModel#getstorageproperty)

***

migrateOldStorage() [#migrateoldstorage]

\> `protected` **migrateOldStorage**(`oldCategoryId?`): `void`

Defined in: [src/storage/classes/StoredClassModel.ts:43](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/storage/classes/StoredClassModel.ts#L43)

Parameters [#parameters-2]

oldCategoryId? [#oldcategoryid]

`string` = `...`

Returns [#returns-2]

`void`

Inherited from [#inherited-from-1]

[`StoredClassModel`](/jsdoc/pixi-vn/index/classes/StoredClassModel).[`migrateOldStorage`](/jsdoc/pixi-vn/index/classes/StoredClassModel#migrateoldstorage)

***

setStorageProperty() [#setstorageproperty]

\> `protected` **setStorageProperty**\<`T`>(`propertyName`, `value`): `void`

Defined in: [src/storage/classes/StoredClassModel.ts:71](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/storage/classes/StoredClassModel.ts#L71)

Update a property in the storage.

Type Parameters [#type-parameters-1]

T [#t-1]

`T`

The type of the value to set. (Deprecated, it is not necessary to specify the type of the value, it will be inferred from the value)

Parameters [#parameters-3]

propertyName [#propertyname-1]

`string`

The name of the property to set.

value [#value]

[`StorageElementType`](/jsdoc/pixi-vn/index/type-aliases/StorageElementType)

The value to set. If is undefined, the property will be removed from the storage.

Returns [#returns-3]

`void`

Inherited from [#inherited-from-2]

[`StoredClassModel`](/jsdoc/pixi-vn/index/classes/StoredClassModel).[`setStorageProperty`](/jsdoc/pixi-vn/index/classes/StoredClassModel#setstorageproperty)
