コード例 #1
0
ファイル: NflManager.cs プロジェクト: ThunderNikk/MapEditor
 /// <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>();
 }
コード例 #2
0
 /// <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();
 }
コード例 #3
0
        /// <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));
            }
        }
コード例 #4
0
ファイル: NflManager.cs プロジェクト: ThunderNikk/MapEditor
        /// <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);
            }
        }