/// <summary> /// Build the correct string for marker parameters /// </summary> /// <param name="size"></param> /// <param name="color"></param> /// <param name="label"></param> /// <returns></returns> private string GetMarkerParams(mSize size, mColor color, string label) { string marker; marker = size.ToString().ToLower() + "," + color.ToString().ToLower() + "," + label; return(marker); }
/// <summary> /// Build the correct string for marker parameters /// </summary> /// <returns></returns> /// <remarks> /// (Some marker sizes such as 'tiny' won't accept character values, /// this function makes sure they'll be rendered even if the inputed parameters are wrong /// </remarks> private static string GetMarkerParams(mSize size, mColor color, string character) { string marker; // check if can render character if ((size == mSize.Normal) || (size == mSize.Mid)) { if (size == mSize.Normal) { marker = color.ToString().ToLower() + character; } else { marker = size.ToString().ToLower() + color.ToString().ToLower() + character; } } else { // just render size and color - character not supported marker = size.ToString().ToLower() + color.ToString().ToLower(); } return(marker); }
/// <summary> /// Build the correct string for marker parameters /// </summary> /// <returns></returns> /// <remarks> /// (Some marker sizes such as 'tiny' won't accept character values, /// this function makes sure they'll be rendered even if the inputed parameters are wrong /// </remarks> private static string GetMarkerParams(mSize size, mColor color, string character) { string marker; // check if can render character if ((size == mSize.Normal) || (size == mSize.Mid)) { if (size == mSize.Normal) { marker = color.ToString().ToLower() + character; } else { marker = size.ToString().ToLower() + color.ToString().ToLower() + character; } } else { // just render size and color - character not supported marker = size.ToString().ToLower() + color.ToString().ToLower(); } return marker; }
public override void Read(MBinaryIO io) { if (io.Version == 0) { if (IsRoot) { EndScopeOffset = io.Stream.ReadInt32(); TypeName = io.Stream.Read7BitString(); } while (io.Stream.Position + 2 < EndScopeOffset) { string fieldName = io.Stream.Read7BitString(); int endOffset = io.Stream.ReadInt32(); mTypeBase field; byte[] typeName = io.Stream.Read7BitStringBytes(); if (typeName.Length == 1) { FieldTypeOld old = (FieldTypeOld)typeName[0]; field = old switch { FieldTypeOld.String => new mString(), FieldTypeOld.Array => new mArray(), FieldTypeOld.Bool => new mBool(), FieldTypeOld.Byte => new mUByte(), FieldTypeOld.Double => new mDouble(), FieldTypeOld.Float => new mFloat(), FieldTypeOld.Long => new mLong(), FieldTypeOld.SByte => new mSByte(), FieldTypeOld.Short => new mShort(), FieldTypeOld.UShort => new mUShort(), FieldTypeOld.ULong => new mULong(), FieldTypeOld.Int => new mInt(), FieldTypeOld.UInt => new mUInt(), _ => throw new NotSupportedException($"Received unsupported node type {old}"), }; } else { string customFieldType = Encoding.UTF8.GetString(typeName); field = customFieldType switch { "rectangle" => new mRectangle(), "RGBA" => new mColor(), "color_name" => new mColorName(), "vector" => new mVector(), "vector3" => new mVector3(), "region" => new mRegion(), _ => null, }; if (field is null) { field = new mNode(); ((mNode)field).EndScopeOffset = endOffset; ((mNode)field).TypeName = customFieldType; } } field.Name = fieldName; //Console.WriteLine($"Reading: {field.Name} ({field})"); field.Read(io); Child.Add(field); } Debug.Assert(io.Stream.ReadInt16() == 0x18d, "Scope terminator did not match"); } else if (io.Version == 1) { TypeName = io.Stream.Read7BitString(); mTypeBase field = null; do { field = io.ReadNext(); if (field is mString str) // Key Name { io.CurrentKeyName = str.String; field = io.ReadNext(); if (field is mString str2 && io.CurrentKeyName != "name") { // Specific types, kind of hardcoded if (str2.String == "rectangle") { field = new mRectangle(); field.Read(io); } else if (str2.String == "RGBA") { field = new mColor(); field.Read(io); } else if (str2.String == "color_name") { field = new mColorName(); field.Read(io); } else if (str2.String == "vector") { field = new mVector(); field.Read(io); } else if (str2.String == "vector3") { field = new mVector3(); field.Read(io); } else if (str2.String == "region") { field = new mRegion(); field.Read(io); } } field.Name = str.String; } if (field != null) { Child.Add(field); } } while (field != null); } }