Beispiel #1
0
 public LightData(LightDef d, string cls)
 {
     LightDef            = d;
     LightClass          = cls;
     LightDefNum         = GetLightDefNum(LightDef);
     LightDefClass       = GetLightDefClass(LightDef);
     LightDefModifier    = GetLightDefModifier(LightDef);
     LightDefRenderStyle = GetLightDefRenderStyle(LightDef);
     LightNum            = LightDefNum.DoomEdNums[Array.IndexOf(LightDefClass.Classes, cls)];
     if (LightDefModifier != null)
     {
         LightModifier = LightDefModifier.Modifiers[Array.IndexOf(LightDefClass.Classes, cls)];
     }
     else
     {
         LightModifier = LightModifier.NORMAL;
     }
     if (LightDefRenderStyle != null)
     {
         LightRenderStyle = LightDefRenderStyle.RenderStyle;
     }
     else
     {
         LightRenderStyle = LightRenderStyle.NONE;
     }
     LightAnimated = (LightModifier == LightModifier.PULSE || LightModifier == LightModifier.FLICKER || LightModifier == LightModifier.FLICKERRANDOM);
     LightInternal = true;
     LightVavoom   = (LightDef == LightDef.VAVOOM_GENERIC || LightDef == LightDef.VAVOOM_COLORED);
     UpdateLightType();
     LightVavoom = (LightType == LightType.VAVOOM);
 }
Beispiel #2
0
        public static LightData GetLightDataByClass(string cls)
        {
            cls = cls.ToLowerInvariant();
            if (_gldbn_ldefs == null)
            {
                _gldbn_ldefs = Enum.GetValues(typeof(LightDef)).Cast <LightDef>();
            }
            foreach (LightDef ldef in _gldbn_ldefs)
            {
                //
                FieldInfo       fi    = typeof(LightDef).GetField(ldef.ToString());
                LightDefClass[] attrs = (LightDefClass[])fi.GetCustomAttributes(typeof(LightDefClass), false);
                if (attrs.Length == 0)
                {
                    continue;
                }
                //
                LightDefClass attr = attrs[0];
                if (Array.IndexOf(attr.Classes, cls) != -1)
                {
                    return(new LightData(ldef, cls));
                }
            }

            return(null);
        }
Beispiel #3
0
 public LightData(LightDef d, int num)
 {
     LightDef            = d;
     LightNum            = num;
     LightDefNum         = GetLightDefNum(LightDef);
     LightDefClass       = GetLightDefClass(LightDef);
     LightDefModifier    = GetLightDefModifier(LightDef);
     LightDefRenderStyle = GetLightDefRenderStyle(LightDef);
     LightClass          = LightDefClass.Classes[Array.IndexOf(LightDefNum.DoomEdNums, LightNum)];
     if (LightDefModifier != null)
     {
         LightModifier = LightDefModifier.Modifiers[Array.IndexOf(LightDefNum.DoomEdNums, LightNum)];
     }
     else
     {
         LightModifier = LightModifier.NORMAL;
     }
     if (LightDefRenderStyle != null)
     {
         LightRenderStyle = LightDefRenderStyle.RenderStyle;
     }
     else
     {
         LightRenderStyle = LightRenderStyle.NONE;
     }
     LightAnimated = (LightModifier == LightModifier.PULSE || LightModifier == LightModifier.FLICKER || LightModifier == LightModifier.FLICKERRANDOM);
     LightInternal = true;
     UpdateLightType();
     LightVavoom = (LightType == LightType.VAVOOM);
 }