public void TestNameConstruction() { FName test = FName.FromString("HelloWorld_0"); Assert.IsTrue(test.Value.Value == "HelloWorld" && test.Number == 1); Assert.IsTrue(test.ToString() == "HelloWorld_0"); test = FName.FromString("5_72"); Assert.IsTrue(test.Value.Value == "5" && test.Number == 73); Assert.IsTrue(test.ToString() == "5_72"); test = FName.FromString("_3"); Assert.IsTrue(test.Value.Value == "_3" && test.Number == 0); Assert.IsTrue(test.ToString() == "_3"); test = FName.FromString("hi_"); Assert.IsTrue(test.Value.Value == "hi_" && test.Number == 0); Assert.IsTrue(test.ToString() == "hi_"); test = FName.FromString("hi_01"); Assert.IsTrue(test.Value.Value == "hi_01" && test.Number == 0); Assert.IsTrue(test.ToString() == "hi_01"); test = FName.FromString("hi_10"); Assert.IsTrue(test.Value.Value == "hi" && test.Number == 11); Assert.IsTrue(test.ToString() == "hi_10"); test = FName.FromString("blah"); Assert.IsTrue(test.Value.Value == "blah" && test.Number == 0); Assert.IsTrue(test.ToString() == "blah"); test = new FName("HelloWorld", 2); Assert.IsTrue(test.ToString() == "HelloWorld_1"); test = new FName("HelloWorld", 0); Assert.IsTrue(test.ToString() == "HelloWorld"); }
public override string ToString() { return(keyName.ToString()); }
public FRealCurve?FindCurve(FName rowName, bool bWarnIfNotFound = true) { if (rowName.IsNone) { if (bWarnIfNotFound) { Log.Warning("UCurveTable::FindCurve : NAME_None is invalid row name for CurveTable '{0}'.", GetPathName()); } return(null); } if (!RowMap.TryGetValue(rowName, out var foundCurve)) { if (bWarnIfNotFound) { Log.Warning("UCurveTable::FindCurve : Row '{0}' not found in CurveTable '{1}'.", rowName.ToString(), GetPathName()); } return(null); } return(CurveTableMode switch { ECurveTableMode.SimpleCurves => new FSimpleCurve(foundCurve), ECurveTableMode.RichCurves => new FRichCurve(foundCurve), _ => null });
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { ArrayType = reader.ReadFName(); PropertyGuid = reader.ReadPropertyGuid(); } int numEntries = reader.ReadInt32(); if (ArrayType.Value.Value == "StructProperty" && ShouldSerializeStructsDifferently) { var results = new PropertyData[numEntries]; FName name = this.Name; long structLength = 1; FName fullType = new FName("Generic"); Guid structGUID = new Guid(); if (reader.Asset.EngineVersion >= UE4Version.VER_UE4_INNER_ARRAY_TAG_INFO) { name = reader.ReadFName(); if (name.Value.Value.Equals("None")) { Value = results; return; } FName thisArrayType = reader.ReadFName(); if (thisArrayType.Value.Value.Equals("None")) { Value = results; return; } if (thisArrayType.Value.Value != ArrayType.Value.Value) { throw new FormatException("Invalid array type: " + thisArrayType.ToString() + " vs " + ArrayType.ToString()); } structLength = reader.ReadInt64(); // length value fullType = reader.ReadFName(); structGUID = new Guid(reader.ReadBytes(16)); reader.ReadPropertyGuid(); } if (numEntries == 0) { DummyStruct = new StructPropertyData(name, fullType) { StructGUID = structGUID }; } else { for (int i = 0; i < numEntries; i++) { var data = new StructPropertyData(name, fullType); data.Offset = reader.BaseStream.Position; data.Read(reader, false, structLength); data.StructGUID = structGUID; results[i] = data; } DummyStruct = (StructPropertyData)results[0]; } Value = results; } else { var results = new PropertyData[numEntries]; if (numEntries > 0) { int averageSizeEstimate1 = (int)(leng1 / numEntries); int averageSizeEstimate2 = (int)((leng1 - 4) / numEntries); for (int i = 0; i < numEntries; i++) { results[i] = MainSerializer.TypeToClass(ArrayType, new FName(i.ToString(), int.MinValue), reader.Asset); results[i].Offset = reader.BaseStream.Position; if (results[i] is StructPropertyData) { ((StructPropertyData)results[i]).StructType = new FName("Generic"); } results[i].Read(reader, false, averageSizeEstimate1, averageSizeEstimate2); } } Value = results; } }
public override string ToString() { return("(" + AssetPathName.ToString() + ", " + SubPathString.ToString() + ")"); }