diff --git a/src/nitro/communication/messages/incoming/room/furniture/RoomDimmerPresetsMessageData.ts b/src/nitro/communication/messages/incoming/room/furniture/RoomDimmerPresetsMessageData.ts index 6f6dccc5..9264b720 100644 --- a/src/nitro/communication/messages/incoming/room/furniture/RoomDimmerPresetsMessageData.ts +++ b/src/nitro/communication/messages/incoming/room/furniture/RoomDimmerPresetsMessageData.ts @@ -2,8 +2,8 @@ { constructor( public id: number, - public bgOnly: boolean, - public color: string, + public type: number, + public color: number, public brightness: number) {} } diff --git a/src/nitro/communication/messages/parser/room/furniture/RoomDimmerPresetsMessageParser.ts b/src/nitro/communication/messages/parser/room/furniture/RoomDimmerPresetsMessageParser.ts index b002df43..fe4fe501 100644 --- a/src/nitro/communication/messages/parser/room/furniture/RoomDimmerPresetsMessageParser.ts +++ b/src/nitro/communication/messages/parser/room/furniture/RoomDimmerPresetsMessageParser.ts @@ -28,11 +28,11 @@ export class RoomDimmerPresetsMessageParser implements IMessageParser for(let i = 0; i < totalPresets; i++) { const presetId = wrapper.readInt(); - const bgOnly = (wrapper.readInt() === 2); - const color = wrapper.readString(); + const type = wrapper.readInt(); + const color = parseInt(wrapper.readString().substr(1), 16); const brightness = wrapper.readInt(); - this._presets.push(new RoomDimmerPresetsMessageData(presetId, bgOnly, color, brightness)); + this._presets.push(new RoomDimmerPresetsMessageData(presetId, type, color, brightness)); } return true; diff --git a/src/nitro/room/object/logic/furniture/FurnitureRoomDimmerLogic.ts b/src/nitro/room/object/logic/furniture/FurnitureRoomDimmerLogic.ts index 9e87d4f1..2dfa2cab 100644 --- a/src/nitro/room/object/logic/furniture/FurnitureRoomDimmerLogic.ts +++ b/src/nitro/room/object/logic/furniture/FurnitureRoomDimmerLogic.ts @@ -84,6 +84,8 @@ export class FurnitureRoomDimmerLogic extends FurnitureLogic { if(!data) return; + console.log(data); + const parts = data.split(','); if(parts.length >= 5) @@ -122,21 +124,21 @@ export class FurnitureRoomDimmerLogic extends FurnitureLogic { super.update(time); - if(this.object && this.object.model) - { - const realRoomObject = this.object.model.getValue(RoomObjectVariable.FURNITURE_REAL_ROOM_OBJECT); + // if(this.object && this.object.model) + // { + // const realRoomObject = this.object.model.getValue(RoomObjectVariable.FURNITURE_REAL_ROOM_OBJECT); - if(realRoomObject === 1) - { - const data = this.object.model.getValue(RoomObjectVariable.FURNITURE_DATA); + // if(realRoomObject === 1) + // { + // const data = this.object.model.getValue(RoomObjectVariable.FURNITURE_DATA); - if(data && data.length > 0) - { - this.object.model.setValue(RoomObjectVariable.FURNITURE_DATA, ''); + // if(data && data.length > 0) + // { + // this.object.model.setValue(RoomObjectVariable.FURNITURE_DATA, ''); - this.processDimmerData(data); - } - } - } + // this.processDimmerData(data); + // } + // } + // } } } diff --git a/src/nitro/session/events/RoomSessionDimmerPresetsEvent.ts b/src/nitro/session/events/RoomSessionDimmerPresetsEvent.ts index c4a9385f..a17c83f3 100644 --- a/src/nitro/session/events/RoomSessionDimmerPresetsEvent.ts +++ b/src/nitro/session/events/RoomSessionDimmerPresetsEvent.ts @@ -16,6 +16,18 @@ export class RoomSessionDimmerPresetsEvent extends RoomSessionEvent this._presets = []; } + public storePreset(id: number, type: number, color: number, brightness: number): void + { + this._presets[(id - 1)] = new RoomSessionDimmerPresetsEventPresetItem(id, type, color, brightness); + } + + public getPreset(id: number): RoomSessionDimmerPresetsEventPresetItem + { + if((id < 0) || (id >= this._presets.length)) return null; + + return this._presets[id]; + } + public get presetCount(): number { return this._presets.length; @@ -30,16 +42,4 @@ export class RoomSessionDimmerPresetsEvent extends RoomSessionEvent { this._selectedPresetId = id; } - - public storePreset(id: number, bgOnly: boolean, color: string, brightness: number): void - { - this._presets[(id - 1)] = new RoomSessionDimmerPresetsEventPresetItem(id, bgOnly, color, brightness); - } - - public getPreset(id: number): RoomSessionDimmerPresetsEventPresetItem - { - if((id < 0) || (id >= this._presets.length)) return null; - - return this._presets[id]; - } } diff --git a/src/nitro/session/events/RoomSessionDimmerPresetsEventPresetItem.ts b/src/nitro/session/events/RoomSessionDimmerPresetsEventPresetItem.ts index b311143f..9a05be0c 100644 --- a/src/nitro/session/events/RoomSessionDimmerPresetsEventPresetItem.ts +++ b/src/nitro/session/events/RoomSessionDimmerPresetsEventPresetItem.ts @@ -1,14 +1,14 @@ export class RoomSessionDimmerPresetsEventPresetItem { private _id: number; - private _bgOnly: boolean; - private _color: string; + private _type: number; + private _color: number; private _brightness: number; - constructor(id: number, bgOnly: boolean, color: string, brightness: number) + constructor(id: number, type: number, color: number, brightness: number) { this._id = id; - this._bgOnly = bgOnly; + this._type = type; this._color = color; this._brightness = brightness; } @@ -18,12 +18,12 @@ return this._id; } - public get bgOnly(): boolean + public get type(): number { - return this._bgOnly; + return this._type; } - public get color(): string + public get color(): number { return this._color; } diff --git a/src/nitro/session/handler/RoomDimmerPresetsHandler.ts b/src/nitro/session/handler/RoomDimmerPresetsHandler.ts index 196d1a21..a89e6896 100644 --- a/src/nitro/session/handler/RoomDimmerPresetsHandler.ts +++ b/src/nitro/session/handler/RoomDimmerPresetsHandler.ts @@ -29,11 +29,15 @@ export class RoomDimmerPresetsHandler extends BaseHandler presetEvent.selectedPresetId = parser.selectedPresetId; - for(let i = 0; i < parser.presetCount; i++) + let i = 0; + + while(i < parser.presetCount) { const preset = parser.getPreset(i); - if(preset) presetEvent.storePreset(preset.id, preset.bgOnly, preset.color, preset.brightness); + if(preset) presetEvent.storePreset(preset.id, preset.type, preset.color, preset.brightness); + + i++; } this.listener && this.listener.events.dispatchEvent(presetEvent);