static object GetValueForPropertyOnObject(AxisAlignedRectangleSave rectangle, string fieldOrProperty) { if (fieldOrProperty == "Color") { // See if there are any matches Dictionary <string, Color> allColors = GetAllDefaultColors(); int alphaAsInt = MathFunctions.RoundToInt(rectangle.Alpha * 255); int redAsInt = MathFunctions.RoundToInt(rectangle.Red * 255); int greenAsInt = MathFunctions.RoundToInt(rectangle.Green * 255); int blueAsInt = MathFunctions.RoundToInt(rectangle.Blue * 255); foreach (KeyValuePair <string, Color> kvp in allColors) { Color color = kvp.Value; if (color.A == alphaAsInt && color.R == redAsInt && color.G == greenAsInt && color.B == blueAsInt) { return(kvp.Key); } } return(null); } return(GetValueForPropertyOnObject <AxisAlignedRectangleSave>(rectangle, fieldOrProperty)); }
internal void Rectangle() { if (ArrowState.Self.CurrentArrowElementSave != null) { TextInputWindow tiw = new TextInputWindow(); tiw.Text = "Enter new Rectangle name:"; tiw.Result = "Rectangle"; var result = tiw.ShowDialog(); if (result.HasValue && result.Value) { bool isInvalid = CheckAndShowMessageIfInvalid(tiw.Result); if (!isInvalid) { AxisAlignedRectangleSave rectangleSave = new AxisAlignedRectangleSave(); rectangleSave.ScaleX = 16; rectangleSave.ScaleY = 16; rectangleSave.Name = tiw.Result; ArrowState.Self.CurrentArrowElementSave.Rectangles.Add(rectangleSave); AfterAddLogic(ArrowState.Self.CurrentArrowElementSave, rectangleSave); } } } }
private static object CreateAndAddInstanceFromClipboard(string instanceType, DataTypes.ArrowElementSave currentArrowElement, string xmlSerializedString) { object newObject = null; if (instanceType == typeof(AxisAlignedRectangleSave).Name) { AxisAlignedRectangleSave aars = FileManager.XmlDeserializeFromString <AxisAlignedRectangleSave>( xmlSerializedString); currentArrowElement.Rectangles.Add(aars); newObject = aars; } else if (instanceType == typeof(CircleSave).Name) { CircleSave circleSave = FileManager.XmlDeserializeFromString <CircleSave>( xmlSerializedString); currentArrowElement.Circles.Add(circleSave); newObject = circleSave; } else if (instanceType == typeof(SpriteSave).Name) { SpriteSave spriteSave = FileManager.XmlDeserializeFromString <SpriteSave>( xmlSerializedString); currentArrowElement.Sprites.Add(spriteSave); newObject = spriteSave; } return(newObject); }
public object UpdateInstanceValuesFromRuntime(ElementRuntime runtime) { object instance = RelationshipManager.Self.InstanceForElementRuntime(runtime); object whatToPullValuesFrom = runtime; if (runtime.DirectObjectReference != null) { whatToPullValuesFrom = runtime.DirectObjectReference; } PositionedObject whatToPullFromAsPo = whatToPullValuesFrom as PositionedObject; if (instance is CircleSave) { CircleSave save = (instance as CircleSave); save.SetFrom(whatToPullValuesFrom as Circle); SetSavePositionsFromRelativeValues(whatToPullFromAsPo, save); } else if (instance is SpriteSave) { SpriteSave save = (instance as SpriteSave); save.SetFrom(whatToPullValuesFrom as Sprite); SetSavePositionsFromRelativeValues(whatToPullFromAsPo, save); } else if (instance is AxisAlignedRectangleSave) { AxisAlignedRectangleSave save = (instance as AxisAlignedRectangleSave); save.SetFrom(whatToPullValuesFrom as AxisAlignedRectangle); SetSavePositionsFromRelativeValues(whatToPullFromAsPo, save); } else if (instance is ArrowElementInstance) { ArrowElementInstance save = (instance as ArrowElementInstance); if (whatToPullFromAsPo != null) { if (whatToPullFromAsPo.Parent == null) { save.SetVariable("X", whatToPullFromAsPo.X); save.SetVariable("Y", whatToPullFromAsPo.Y); } else { save.SetVariable("X", whatToPullFromAsPo.RelativeX); save.SetVariable("Y", whatToPullFromAsPo.RelativeY); } } // We can't do this because this object technically doesn't have X and Y properties //SetSavePositionsFromRelativeValues(whatToPullFromAsPo, save); } else { throw new Exception("Saving of type " + instance.GetType() + " is not supported"); } return(instance); }
public NamedObjectSave RectangleSaveToNamedObjectSave(AxisAlignedRectangleSave rectangle) { NamedObjectSave toReturn = new NamedObjectSave(); toReturn.SourceType = SourceType.FlatRedBallType; toReturn.SourceClassType = "AxisAlignedRectangle"; toReturn.InstanceName = rectangle.Name; AddVariablesForAllProperties(rectangle, toReturn); return(toReturn); }