Gibbed.RED.FileFormats.Game.GenericObject.GetPropertyValueAsString C# (CSharp) Method

GetPropertyValueAsString() public method

public GetPropertyValueAsString ( string name, StringsFile stringsFile ) : string
name string
stringsFile StringsFile
return string
        public string GetPropertyValueAsString(string name, StringsFile stringsFile)
        {
            if (_propertyValues[name].Type == "LocalizedString" && stringsFile != null)
            {
                uint key = (uint) _propertyValues[name].Value;
                string value;
                if (!stringsFile.Texts.TryGetValue(key, out value))
                {
                    return "<string " + key + " not found>";
                }
                return "\"" + stringsFile.Texts[key] + "\"";
            }
            return _propertyValues[name].ToString();
        }

Usage Example

示例#1
0
        public void LoadResource(GenericObject data)
        {
            Text = data.Type;
            listView1.BeginUpdate();
            try
            {
                foreach (string name in data.PropertyValues)
                {
                    var item = new ListViewItem(name);
                    var dataType = data.GetDataType(name);
                    item.SubItems.Add(dataType);
                    var isArray = dataType.StartsWith("@") && !dataType.StartsWith("@*");
                    item.SubItems.Add(isArray ? "" : data.GetPropertyValueAsString(name, _explorer.StringsFile));
                    listView1.Items.Add(item);

                    if (isArray)
                    {
                        var items = (List<object>) data.GetPropertyValue(name);
                        for(int i=0; i<items.Count; i++)
                        {
                            var childItem = new ListViewItem("[" + i + "]");
                            childItem.SubItems.Add(dataType.Substring(1));
                            childItem.SubItems.Add(items[i].ToString());
                            childItem.IndentCount = 1;
                            listView1.Items.Add(childItem);
                        }
                    }
                }
                if (data.UndecodedData != null)
                {
                    var item = new ListViewItem("<undecoded data>");
                    item.SubItems.Add("byte[]");
                    item.SubItems.Add(data.UndecodedData.Length + " bytes");
                    listView1.Items.Add(item);
                }
            }
            finally
            {
                listView1.EndUpdate();
            }
        }