using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HaloObjects;

namespace HaloPlugins.Xbox
{
    public class fog
    {
       public List<MetaNode> Fields = new List<MetaNode>();

       public fog()
       {
           Fields.AddRange(new MetaNode[] {
           new Bitmask("Flags", new string[] { "Render_Only_Submerged_Geometry", "Extend_Infinitely_While_Visible", "Don't_Flood_Fill", "Aggressive_Flood_Fill", "Do_Not_Render", "Do_Not_Render_Unless_Submerged" }, 16),
           new Value("Priority", typeof(short)),
           new StringID("Global Material Name"),
           new Unused(4),
           new Value("Maximum Density", typeof(float)),
           new Value("Opaque Distance", typeof(float)),
           new Value("Opaque Depth", typeof(float)),
           new Value("Atmospheric Planar Depth Lower", typeof(float)),
           new Value("Atmospheric Planar Depth Upper", typeof(float)),
           new Value("Eye Offset Scale", typeof(float)),
           new Value("Color R", typeof(float)),
           new Value("Color G", typeof(float)),
           new Value("Color B", typeof(float)),
           new Reflexive("Patchy Fog", 52, new MetaNode[] { 
               new Value("Color R", typeof(float)),
               new Value("Color G", typeof(float)),
               new Value("Color B", typeof(float)),
               new Unused(12),
               new Value("Density Lower", typeof(float)),
               new Value("Density Upper", typeof(float)),
               new Value("Distance Lower", typeof(float)),
               new Value("Distance Upper", typeof(float)),
               new Value("Min Depth Fraction", typeof(float)),
               new TagReference("Patchy_Fog"),
           }),
           new TagReference("Background_Sound"),
           new TagReference("Sound_Enviroment"),
           new Value("Environment Damping Factor", typeof(float)),
           new Value("Background Sound Gain", typeof(float)),
           new TagReference("Enter_Sound"),
           new TagReference("Exit_Sound"),
           });
       }
    }
}
