public FWorldTileInfo(int[] position, int[] absolutePosition, BoxPropertyData bounds, FWorldTileLayer layer, bool bHideInTileView, FString parentTilePackageName, FWorldTileLODInfo[] lODList, int zOrder) { Position = position; AbsolutePosition = absolutePosition; Bounds = bounds; Layer = layer; this.bHideInTileView = bHideInTileView; ParentTilePackageName = parentTilePackageName; LODList = lODList; ZOrder = zOrder; }
public void Read(AssetBinaryReader reader, UAsset asset) { Position = new int[3]; AbsolutePosition = new int[3]; if (asset.GetCustomVersion <FFortniteMainBranchObjectVersion>() < FFortniteMainBranchObjectVersion.WorldCompositionTile3DOffset) { Position[0] = reader.ReadInt32(); Position[1] = reader.ReadInt32(); Position[2] = 0; } else { Position[0] = reader.ReadInt32(); Position[1] = reader.ReadInt32(); Position[2] = reader.ReadInt32(); } Bounds = new BoxPropertyData(new FName()); Bounds.Read(reader, false, 0, 0); Layer = new FWorldTileLayer(); Layer.Read(reader, asset); if (asset.EngineVersion >= UE4Version.VER_UE4_WORLD_LEVEL_INFO_UPDATED) { bHideInTileView = reader.ReadInt32() == 1; ParentTilePackageName = reader.ReadFString(); } if (asset.EngineVersion >= UE4Version.VER_UE4_WORLD_LEVEL_INFO_LOD_LIST) { int numEntries = reader.ReadInt32(); LODList = new FWorldTileLODInfo[numEntries]; for (int i = 0; i < numEntries; i++) { LODList[i] = new FWorldTileLODInfo(); LODList[i].Read(reader, asset); } } if (asset.EngineVersion >= UE4Version.VER_UE4_WORLD_LEVEL_INFO_ZORDER) { ZOrder = reader.ReadInt32(); } #pragma warning disable CS0162 // Unreachable code detected if (false) // Ar.GetPortFlags() & PPF_DuplicateForPIE { AbsolutePosition[0] = reader.ReadInt32(); AbsolutePosition[1] = reader.ReadInt32(); AbsolutePosition[2] = reader.ReadInt32(); } #pragma warning restore CS0162 // Unreachable code detected }
public static PropertyData TypeToClass(string type, string name, AssetReader asset, BinaryReader reader = null, long leng = 0, bool includeHeader = true) { //Debug.WriteLine(type); PropertyData data; switch (type) { case "BoolProperty": data = new BoolPropertyData(name, asset); break; case "Int8Property": data = new Int8PropertyData(name, asset); break; case "Int16Property": data = new Int16PropertyData(name, asset); break; case "IntProperty": data = new IntPropertyData(name, asset); break; case "Int64Property": data = new Int64PropertyData(name, asset); break; case "UInt16Property": data = new UInt16PropertyData(name, asset); break; case "UInt32Property": data = new UInt32PropertyData(name, asset); break; case "UInt64Property": data = new UInt64PropertyData(name, asset); break; case "FloatProperty": data = new FloatPropertyData(name, asset); break; case "TextProperty": data = new TextPropertyData(name, asset); break; case "StrProperty": data = new StrPropertyData(name, asset); break; case "ObjectProperty": data = new ObjectPropertyData(name, asset); break; case "EnumProperty": data = new EnumPropertyData(name, asset); break; case "ByteProperty": data = new BytePropertyData(name, asset); break; case "NameProperty": data = new NamePropertyData(name, asset); break; case "ArrayProperty": data = new ArrayPropertyData(name, asset); break; case "MapProperty": data = new MapPropertyData(name, asset); break; case "StructProperty": data = new StructPropertyData(name, asset); break; case "Guid": data = new GuidPropertyData(name, asset); break; case "LinearColor": data = new LinearColorPropertyData(name, asset); break; case "Color": data = new ColorPropertyData(name, asset); break; case "Vector": data = new VectorPropertyData(name, asset); break; case "Vector2D": data = new Vector2DPropertyData(name, asset); break; case "Box": data = new BoxPropertyData(name, asset); break; case "IntPoint": data = new IntPointPropertyData(name, asset); break; case "DateTime": data = new DateTimePropertyData(name, asset); break; case "Timespan": data = new TimespanPropertyData(name, asset); break; case "Rotator": data = new RotatorPropertyData(name, asset); break; case "Quat": data = new QuatPropertyData(name, asset); break; case "Vector4": data = new Vector4PropertyData(name, asset); break; case "SoftObjectProperty": data = new SoftObjectPropertyData(name, asset); break; case "MulticastDelegateProperty": data = new MulticastDelegatePropertyData(name, asset); break; default: #if DEBUG Debug.WriteLine("Last type: " + lastType); #endif if (reader == null) { throw new FormatException("Unknown property type: " + type + " (on " + name + ")"); } throw new FormatException("Unknown property type: " + type + " (on " + name + " at " + reader.BaseStream.Position + ")"); } #if DEBUG lastType = type; #endif if (reader != null) { data.Read(reader, includeHeader, leng); } return(data); }