From fe3c6951564ebe54b315dab1e2cb1a3a126a9f4d Mon Sep 17 00:00:00 2001 From: SpreedBLood Date: Tue, 9 Mar 2021 13:31:17 +0100 Subject: [PATCH] Sound samples --- src/mapping/json/asset/IAssetData.ts | 1 + src/mapping/mappers/asset/LogicMapper.ts | 2 ++ src/mapping/xml/asset/logic/LogicXML.ts | 12 ++++++++++++ src/mapping/xml/asset/logic/SoundSampleXML.ts | 19 +++++++++++++++++++ src/mapping/xml/asset/logic/index.ts | 1 + 5 files changed, 35 insertions(+) create mode 100644 src/mapping/xml/asset/logic/SoundSampleXML.ts diff --git a/src/mapping/json/asset/IAssetData.ts b/src/mapping/json/asset/IAssetData.ts index 8b73a34..bbfa575 100644 --- a/src/mapping/json/asset/IAssetData.ts +++ b/src/mapping/json/asset/IAssetData.ts @@ -13,6 +13,7 @@ export interface IAssetData { logicType?: string; maskType?: string; credits?: string; + soundSample: number; action?: { link?: string, startState?: number }; spritesheet?: ISpritesheetData; dimensions?: IAssetDimension; diff --git a/src/mapping/mappers/asset/LogicMapper.ts b/src/mapping/mappers/asset/LogicMapper.ts index 8d5e980..8888916 100644 --- a/src/mapping/mappers/asset/LogicMapper.ts +++ b/src/mapping/mappers/asset/LogicMapper.ts @@ -63,5 +63,7 @@ export class LogicMapper extends Mapper if(xml.mask !== undefined) output.maskType = xml.mask.type; if(xml.credits !== undefined) output.credits = xml.credits.value; + + if(xml.soundSample !== undefined) output.soundSample = xml.soundSample.id; } } diff --git a/src/mapping/xml/asset/logic/LogicXML.ts b/src/mapping/xml/asset/logic/LogicXML.ts index c3f6a3f..9f05ab3 100644 --- a/src/mapping/xml/asset/logic/LogicXML.ts +++ b/src/mapping/xml/asset/logic/LogicXML.ts @@ -2,6 +2,7 @@ import { ActionXML } from './ActionXML'; import { CreditsXML } from './CreditsXML'; import { MaskXML } from './MaskXML'; import { ModelXML } from './model/ModelXML'; +import {SoundSampleXML} from "./SoundSampleXML"; export class LogicXML { @@ -10,6 +11,7 @@ export class LogicXML private readonly _action: ActionXML; private readonly _mask: MaskXML; private readonly _credits: CreditsXML; + private readonly _soundSample: SoundSampleXML; constructor(xml: any) { @@ -39,6 +41,11 @@ export class LogicXML { if(xml.credits[0] !== undefined) this._credits = new CreditsXML(xml.credits[0]); } + + if(xml.sound !== undefined) + { + if(xml.sound[0] !== undefined) this._soundSample = new SoundSampleXML(xml.sound[0].sample); + } } public get type(): string @@ -65,4 +72,9 @@ export class LogicXML { return this._credits; } + + public get soundSample(): SoundSampleXML | undefined + { + return this._soundSample; + } } diff --git a/src/mapping/xml/asset/logic/SoundSampleXML.ts b/src/mapping/xml/asset/logic/SoundSampleXML.ts new file mode 100644 index 0000000..3cb5923 --- /dev/null +++ b/src/mapping/xml/asset/logic/SoundSampleXML.ts @@ -0,0 +1,19 @@ +export class SoundSampleXML +{ + private readonly _id: number; + + constructor(xml: any) + { + const attributes = xml[0].$; + + if(attributes !== undefined) + { + if(attributes.id !== undefined) this._id = parseInt(attributes.id); + } + } + + public get id(): number + { + return this._id; + } +} diff --git a/src/mapping/xml/asset/logic/index.ts b/src/mapping/xml/asset/logic/index.ts index 91228e4..5a6c823 100644 --- a/src/mapping/xml/asset/logic/index.ts +++ b/src/mapping/xml/asset/logic/index.ts @@ -3,3 +3,4 @@ export * from './CreditsXML'; export * from './LogicXML'; export * from './MaskXML'; export * from './model'; +export * from './SoundSampleXML';