private void ProcessObjectDataTag(FrontendObject frontendObject, ObjectDataTag objectDataTag) { frontendObject.Position = objectDataTag.Data.Position; frontendObject.Pivot = objectDataTag.Data.Pivot; frontendObject.Color = objectDataTag.Data.Color; frontendObject.Rotation = objectDataTag.Data.Rotation; frontendObject.Size = objectDataTag.Data.Size; if (objectDataTag.Data is FEImageData imageData) { FrontendImage image = (FrontendImage)frontendObject; image.UpperLeft = imageData.UpperLeft; image.LowerRight = imageData.LowerRight; } if (objectDataTag.Data is FEMultiImageData multiImageData) { FrontendMultiImage multiImage = (FrontendMultiImage)frontendObject; multiImage.PivotRotation = multiImageData.PivotRotation; multiImage.TopLeftUV = multiImageData.TopLeftUV; multiImage.BottomRightUV = multiImageData.BottomRightUV; } if (objectDataTag.Data is FEColoredImageData coloredImageData) { FrontendColoredImage coloredImage = (FrontendColoredImage)frontendObject; coloredImage.VertexColors = coloredImageData.VertexColors; } }
private FrontendObject ProcessObjectTypeTag(FrontendObject frontendObject, ObjectTypeTag objectTypeTag) { FrontendObject newInstance; switch (objectTypeTag.Type) { case FEObjType.FE_Image: newInstance = new FrontendImage(frontendObject); break; case FEObjType.FE_Group: newInstance = new FrontendGroup(frontendObject); break; case FEObjType.FE_String: newInstance = new FrontendString(frontendObject); break; case FEObjType.FE_MultiImage: newInstance = new FrontendMultiImage(frontendObject); break; case FEObjType.FE_ColoredImage: newInstance = new FrontendColoredImage(frontendObject); break; default: throw new IndexOutOfRangeException($"cannot handle object type: {objectTypeTag.Type}"); } newInstance.Type = objectTypeTag.Type; return(newInstance); }
private void ProcessImageInfoTag(FrontendImage frontendImage, ImageInfoTag imageInfoTag) { //Debug.WriteLine("FEObject {0:X8} has ImageInfo: value={1}", frontendImage.NameHash, imageInfoTag.ImageFlags); frontendImage.ImageFlags = imageInfoTag.ImageFlags; }