Beispiel #1
0
 public WadStaticId GetFirstFreeStaticMesh()
 {
     for (int i = 0; i < Statics.Count; i++)
     {
         if (!Statics.ContainsKey(new WadStaticId((uint)i)))
         {
             return(new WadStaticId((uint)i));
         }
     }
     return(new WadStaticId());
 }
Beispiel #2
0
        private bool AddTypeImpl(Type type, int recursionLevel)
        {
            if (type == null)
            {
                return(false);
            }

            if (type.IsArray)
            {
                AddTypeImpl(type.GetElementType(), recursionLevel);
                return(false);
            }

            // Load type and stop if it is already loaded.
            if (!LoadTypeToScriptContext(type))
            {
                return(false);
            }

            // Add static.
            if (!Statics.ContainsKey(type.Name))
            {
                Statics.Add(type.Name, new Member {
                    Name = type.Name, Type = type
                });
                InstancesAndStaticsDirty = true;
            }

            if (recursionLevel-- > 0)
            {
                // Add static members.
                AddMembers(StaticMembers, type, BindingFlags.Static | BindingFlags.Public, recursionLevel);
                // Add instance members.
                AddMembers(InstanceMembers, type, BindingFlags.Instance | BindingFlags.Public, recursionLevel);
            }

            return(true);
        }