public static SmartPtr <T> Read(AssetsFile assetsFile, AssetsObject owner, AssetsReader reader) { if (owner == null) { Log.LogErr("WARNING: SmartPtr created without an owner!"); } int fileID = reader.ReadInt32(); reader.AlignTo(4); Int64 pathID = reader.ReadInt64(); if (fileID == 0 && pathID == 0) { return(null); } var objInfo = assetsFile.GetObjectInfo <T>(fileID, pathID); if (objInfo == null) { Log.LogErr($"WARNING: Could not find objectinfo for creating SmartPtr of type {typeof(T).Name} on owner type {owner?.GetType()?.Name ?? "(null owner)"}! Returned a null pointer instead."); return(null); } SmartPtr <T> ptr = new SmartPtr <T>(owner, assetsFile.GetObjectInfo <T>(fileID, pathID)); //TODO: not sure this is only ever called by existing objects ptr.IsNew = false; return(ptr); }
private void Parse(AssetsReader reader) { ObjectID = reader.ReadInt64(); DataOffset = reader.ReadInt32(); DataSize = reader.ReadInt32(); TypeIndex = reader.ReadInt32(); }
internal static IObjectInfo <AssetsObject> Parse(AssetsFile file, AssetsReader reader) { var objectID = reader.ReadInt64(); var dataOffset = reader.ReadInt32(); var dataSize = reader.ReadInt32(); var typeIndex = reader.ReadInt32(); var obji = FromTypeIndex(file, typeIndex, null); obji.ObjectID = objectID; obji.DataOffset = dataOffset; obji.DataSize = dataSize; return(obji); }
public static SmartPtr <T> Read(AssetsFile assetsFile, AssetsObject owner, AssetsReader reader) { int fileID = reader.ReadInt32(); reader.AlignTo(4); Int64 pathID = reader.ReadInt64(); if (fileID == 0 && pathID == 0) { return(null); } SmartPtr <T> ptr = new SmartPtr <T>(owner, assetsFile.GetObjectInfo <T>(fileID, pathID)); //TODO: not sure this is only ever called by existing objects ptr.IsNew = false; return(ptr); }
public override void Parse(AssetsReader reader) { base.ParseBase(reader); Name = reader.ReadString(); Rect = new RectF(reader); Offset = new Vector2F(reader); Border = new Vector4F(reader); PixelsToUnits = reader.ReadSingle(); Pivot = new Vector2F(reader); Extrude = reader.ReadUInt32(); IsPolygon = reader.ReadBoolean(); reader.AlignTo(4); RenderDataKey = new Map <Guid, long>(reader.ReadGuid(), reader.ReadInt64()); AtlasTags = reader.ReadArrayOf(r => r.ReadString()); SpriteAtlas = SmartPtr <AssetsObject> .Read(ObjectInfo.ParentFile, this, reader); RenderData = new SpriteRenderData(ObjectInfo.ParentFile, this, reader); PhysicsShape = reader.ReadArrayOf(r => r.ReadArrayOf(r2 => new Vector2F(r2))); Bones = reader.ReadArrayOf(r => (ISmartPtr <Transform>)SmartPtr <Transform> .Read(ObjectInfo.ParentFile, this, reader)); }
private void Parse(AssetsReader reader) { FileID = reader.ReadInt32(); reader.AlignTo(4); PathID = reader.ReadInt64(); }