Files
node-metaverse/lib/classes/public/LightData.ts
Casper Warden 4740b07e11 - Add LLWearable parsing
- Remove ExtraParams, TextureAnim, ParticleSystem binary data from GameObjects, instead encode on the fly when needed
- Add XML object decoding (WIP)
- Move FlexibleData, LightDate, LightImageData, MeshData, SculptData inside ExtraParams class
-
2018-11-05 11:45:04 +00:00

43 lines
1.4 KiB
TypeScript

import {Color4} from '../Color4';
import {Utils} from '../Utils';
export class LightData
{
Color: Color4 = Color4.black;
Radius = 0.0;
Cutoff = 0.0;
Falloff = 0.0;
Intensity = 0.0;
constructor(buf?: Buffer, pos?: number, length?: number)
{
if (buf !== undefined && pos !== undefined && length !== undefined)
{
if (length >= 16)
{
this.Color = new Color4(buf, pos, false);
pos += 4;
this.Radius = buf.readFloatLE(pos);
pos += 4;
this.Cutoff = buf.readFloatLE(pos);
pos += 4;
this.Falloff = buf.readFloatLE(pos);
if (typeof this.Color.alpha === 'number')
{
this.Intensity = this.Color.alpha;
}
this.Color.alpha = 1.0;
}
}
}
writeToBuffer(buf: Buffer, pos: number)
{
const tmpColour = new Color4(this.Color.getRed(), this.Color.getGreen(), this.Color.getBlue(), this.Color.getAlpha());
tmpColour.alpha = this.Intensity;
tmpColour.writeToBuffer(buf, pos); pos = pos + 4;
buf.writeFloatLE(this.Radius, pos); pos = pos + 4;
buf.writeFloatLE(this.Cutoff, pos); pos = pos + 4;
buf.writeFloatLE(this.Falloff, pos);
}
}