public static VariantMapList Get(object src, PropertyDescriptor desc, VariantMap map) { Scene scene = src as Scene; if (scene == null) { Node nd = src as Node; if (nd == null) { UrhoBackend.Component cp = src as UrhoBackend.Component; scene = cp.GetScene(); } else { scene = nd.GetScene(); } } VariantMapList keys = new VariantMapList(desc, src); List <string> varNames = new List <string>(Enum.GetNames(typeof(VariantType))); List <StringHash> hashes = map.Keys(); foreach (StringHash sh in hashes) { Variant v = map.Get(sh); string value = v.ToString(); VariantType vt = (VariantType)varNames.IndexOf(v.GetVarType()); VariantMapRecord rec = new VariantMapRecord(keys) { ExplicitKey = sh, Type = (VariantType)v.GetVarTypeID(), Value = v.ToString() }; if (scene != null) { rec.Key = VariableUtils.GetVariableName(scene, rec.ExplicitKey); } rec.Enabled = true; keys.Add(rec); } return(keys); }
public static void SetVariableNames(Serializable serial, VariantMapList list) { Scene scene = serial as Scene; if (scene != null) { SetVariableNames(scene, list); return; } Node nd = serial as Node; if (nd != null) { SetVariableNames(nd.GetScene(), list); return; } UrhoBackend.Component comp = serial as UrhoBackend.Component; if (comp != null) { SetVariableNames(comp.GetScene(), list); return; } }