internal MaterialPropertyGroup(ValveMaterialFile.Reader reader) { reader.AssertToken("{"); while (!reader.ReadToken("}")) { Match match; if (reader.ReadRegex(_sNestedRegex, out match)) { // TODO var nested = new MaterialPropertyGroup(reader); continue; } reader.AssertRegex(_sPropertyRegex, out match, "shader property"); var name = match.Groups["name"]; var value = match.Groups["value"]; if (_properties.ContainsKey(name.Value)) { _properties[name.Value] = value.Value; } else { _properties.Add(name.Value, value.Value); } } }
public ValveMaterialFile(Stream stream) { var reader = new Reader(stream); Match match; while (reader.ReadRegex(_sShaderNameRegex, out match)) { var shader = match.Groups["shader"].Value; var group = new MaterialPropertyGroup(reader); _propertyGroups.Add(shader, group); } }