/// <summary> /// Reinitilize child objet /// </summary> public void Blank() { Specular = new KColor(); Diffuse = new KColor(); Ambient = new KColor(0, 255, 0, 255); Lights = new List <StructLights>(); }
/// <summary> /// Reinitilize child objet /// </summary> public void Dispose() { Specular = new KColor(); Diffuse = new KColor(); Ambient = new KColor(0, 255, 0, 255); Lights = new List <Light>(); Render(); }
/// <summary> /// Load existing light /// </summary> /// <param name="buffer"></param> public void Load(byte[] buffer) { try { using (MemoryReader mem = new MemoryReader(buffer)) { Direction.X = mem.ReadSingle(); Direction.Y = mem.ReadSingle(); Direction.Z = mem.ReadSingle(); Specular = new KColor(mem.ReadByte(), mem.ReadByte(), mem.ReadByte(), mem.ReadByte()); Diffuse = new KColor(mem.ReadByte(), mem.ReadByte(), mem.ReadByte(), mem.ReadByte()); Ambient = new KColor(mem.ReadByte(), mem.ReadByte(), mem.ReadByte(), mem.ReadByte()); var lightCount = mem.ReadInt32(); for (int i = 0; i < lightCount; i++) { var light = new Light(); var vector = new Vector { X = mem.ReadSingle() / 7.875f, Y = mem.ReadSingle() / 7.875f, Z = mem.ReadSingle() }; light.Position = vector.Rotate180FlipY(); light.Height = mem.ReadSingle(); light.Direction.X = mem.ReadSingle(); light.Direction.Y = mem.ReadSingle(); light.Direction.Z = mem.ReadSingle(); light.Specular = new KColor(mem.ReadByte(), mem.ReadByte(), mem.ReadByte(), mem.ReadByte()); light.Diffuse = new KColor(mem.ReadByte(), mem.ReadByte(), mem.ReadByte(), mem.ReadByte()); light.Ambient = new KColor(mem.ReadByte(), mem.ReadByte(), mem.ReadByte(), mem.ReadByte()); light.LightType = (LightsType)mem.ReadInt32(); Lights.Add(light); } } Render(); Parent.Log(Levels.Success, "Ok\n"); } catch (Exception exception) { Dispose(); Parent.Log(Levels.Error, "Failed\n"); Parent.Log(Levels.Fatal, string.Format("Nfl::Load<Exception> -> {0}\n", exception)); } }
/// <summary> /// Load existing light /// </summary> /// <param name="buffer"></param> public void Load(byte[] buffer) { try { using (BinaryReader b = new BinaryReader(new MemoryStream(buffer))) { Direction.X = b.ReadSingle(); Direction.Y = b.ReadSingle(); Direction.Z = b.ReadSingle(); Specular = new KColor(b.ReadByte(), b.ReadByte(), b.ReadByte(), b.ReadByte()); Diffuse = new KColor(b.ReadByte(), b.ReadByte(), b.ReadByte(), b.ReadByte()); Ambient = new KColor(b.ReadByte(), b.ReadByte(), b.ReadByte(), b.ReadByte()); var lightCount = b.ReadInt32(); for (int i = 0; i < lightCount; i++) { var light = new StructLights(); light.Position.X = b.ReadSingle(); light.Position.Y = b.ReadSingle(); light.Position.Z = b.ReadSingle(); light.Height = b.ReadSingle(); light.Direction.X = b.ReadSingle(); light.Direction.Y = b.ReadSingle(); light.Direction.Z = b.ReadSingle(); light.Specular = new KColor(b.ReadByte(), b.ReadByte(), b.ReadByte(), b.ReadByte()); light.Diffuse = new KColor(b.ReadByte(), b.ReadByte(), b.ReadByte(), b.ReadByte()); light.Ambient = new KColor(b.ReadByte(), b.ReadByte(), b.ReadByte(), b.ReadByte()); light.LightType = (LightsType)b.ReadInt32(); Lights.Add(light); } } XLog.WriteLine(Levels.Good, "Ok"); } catch (Exception exception) { Blank(); XLog.WriteLine(Levels.Error, "Failed"); XLog.WriteLine(Levels.Fatal, "NflManager::Load<Exception> -> {0}", exception); } }