public void Vec3() { Vec3 vec3 = UnusedMarker.Vec3; Assert.True(UnusedMarker.IsUnused(vec3)); vec3 = new Vec3(0, 250, 3); Assert.False(UnusedMarker.IsUnused(vec3)); }
public void UnsignedInteger() { uint myUint = UnusedMarker.UnsignedInteger; Assert.True(UnusedMarker.IsUnused(myUint)); myUint = 51; Assert.False(UnusedMarker.IsUnused(myUint)); }
public void Integer() { int myInt = UnusedMarker.Integer; Assert.True(UnusedMarker.IsUnused(myInt)); myInt = 5; Assert.False(UnusedMarker.IsUnused(myInt)); }
public void Float() { float myFloat = UnusedMarker.Float; Assert.True(UnusedMarker.IsUnused(myFloat)); myFloat = 998.4f; Assert.False(UnusedMarker.IsUnused(myFloat)); }
public void Unused_Vec3() { using (var stream = new MemoryStream()) { var serializer = new CrySerializer(); var unused = UnusedMarker.Vector3; serializer.Serialize(stream, unused); unused = (Vector3)serializer.Deserialize(stream); Assert.True(UnusedMarker.IsUnused(unused)); } }
public void Unused_Float() { using (var stream = new MemoryStream()) { var serializer = new CrySerializer(); var unused = UnusedMarker.Float; serializer.Serialize(stream, unused); unused = (float)serializer.Deserialize(stream); Assert.True(UnusedMarker.IsUnused(unused)); } }
public void Unused_UnsignedInteger() { using (var stream = new MemoryStream()) { var serializer = new CrySerializer(); var unused = UnusedMarker.UnsignedInteger; serializer.Serialize(stream, unused); unused = (uint)serializer.Deserialize(stream); Assert.True(UnusedMarker.IsUnused(unused)); } }
bool UpdateMaterialElement(XElement materialElement, CharacterAttachmentMaterial material) { Debug.LogAlways("Updating material element for attachment {0} in slot {1}", material.Attachment.Name, material.Attachment.Slot.Name); var modifiedMaterial = false; var genMaskAttribute = materialElement.Attribute("StringGenMask"); if (genMaskAttribute != null && genMaskAttribute.Value.Contains("%COLORMASKING")) { Debug.LogAlways("Writing color mask"); var publicParamsElement = materialElement.Element("PublicParams"); publicParamsElement.SetAttributeValue("ColorMaskR", material.ColorRed.ToString()); publicParamsElement.SetAttributeValue("ColorMaskG", material.ColorGreen.ToString()); publicParamsElement.SetAttributeValue("ColorMaskB", material.ColorBlue.ToString()); publicParamsElement.SetAttributeValue("ColorMaskA", material.ColorAlpha.ToString()); modifiedMaterial = true; } var texturesElement = materialElement.Element("Textures"); if (texturesElement != null) { if (WriteTexture(texturesElement, "Diffuse", material.DiffuseTexture) || WriteTexture(texturesElement, "Specular", material.SpecularTexture) || WriteTexture(texturesElement, "Bumpmap", material.BumpmapTexture) || WriteTexture(texturesElement, "Custom", material.CustomTexture)) { modifiedMaterial = true; } } if (!UnusedMarker.IsUnused(DiffuseColor)) { materialElement.SetAttributeValue("Diffuse", DiffuseColor.ToString()); } if (!UnusedMarker.IsUnused(SpecularColor)) { materialElement.SetAttributeValue("Specular", SpecularColor.ToString()); } return(modifiedMaterial); }
public ObjectReference(string name, object value) { m_name = name; Value = value; Type valueType = m_value != null?m_value.GetType() : null; if (valueType == null) { m_serializationType = SerializationType.Null; } else if (valueType == typeof(IntPtr)) { m_serializationType = SerializationType.IntPtr; } else if (valueType.IsPrimitive) { if (m_value is int && UnusedMarker.IsUnused((int)m_value)) { m_serializationType = SerializationType.UnusedMarker; } else if (m_value is uint && UnusedMarker.IsUnused((uint)m_value)) { m_serializationType = SerializationType.UnusedMarker; } else if (m_value is float && UnusedMarker.IsUnused((float)m_value)) { m_serializationType = SerializationType.UnusedMarker; } else { m_serializationType = SerializationType.Any; } } else if (valueType == typeof(string)) { m_serializationType = SerializationType.String; } else if (valueType.IsArray) { m_serializationType = SerializationType.Array; } else if (valueType.IsEnum) { m_serializationType = SerializationType.Enum; } else if (valueType.Implements <IList>() || valueType.Implements <IDictionary>()) { if (valueType.IsGenericType) { m_serializationType = SerializationType.GenericEnumerable; } else { m_serializationType = SerializationType.Enumerable; } } else { if (m_value is Type) { m_serializationType = SerializationType.Type; } else if (valueType.Implements <Delegate>()) { m_serializationType = SerializationType.Delegate; } else if (valueType.Implements <MemberInfo>()) { m_serializationType = SerializationType.MemberInfo; } else { if (m_value is Vec3 && UnusedMarker.IsUnused((Vec3)m_value)) { m_serializationType = SerializationType.UnusedMarker; } else if (m_forbiddenTypes.Contains(valueType)) { m_serializationType = SerializationType.Null; } else { m_serializationType = SerializationType.Object; } } } }
void StartWrite(ObjectReference objectReference) { Type valueType = objectReference.Value != null?objectReference.Value.GetType() : null; WriteLine(objectReference.Name); if (TryWriteReference(objectReference)) { return; } if (objectReference.SerializationType == SerializationType.Any) { if (objectReference.Value is int && UnusedMarker.IsUnused((int)objectReference.Value)) { objectReference.SerializationType = SerializationType.UnusedMarker; } else if (objectReference.Value is uint && UnusedMarker.IsUnused((uint)objectReference.Value)) { objectReference.SerializationType = SerializationType.UnusedMarker; } else if (objectReference.Value is float && UnusedMarker.IsUnused((float)objectReference.Value)) { objectReference.SerializationType = SerializationType.UnusedMarker; } } else if (objectReference.SerializationType == SerializationType.Object && objectReference.Value is Vec3 && UnusedMarker.IsUnused((Vec3)objectReference.Value)) { objectReference.SerializationType = SerializationType.UnusedMarker; } WriteLine((int)objectReference.SerializationType); switch (objectReference.SerializationType) { case SerializationType.Null: break; case SerializationType.IntPtr: WriteIntPtr(objectReference); break; case SerializationType.Any: WriteAny(objectReference); break; case SerializationType.String: WriteString(objectReference); break; case SerializationType.Enumerable: WriteEnumerable(objectReference); break; case SerializationType.GenericEnumerable: WriteGenericEnumerable(objectReference); break; case SerializationType.Enum: WriteEnum(objectReference); break; case SerializationType.Type: WriteType(objectReference); break; case SerializationType.Delegate: WriteDelegate(objectReference); break; case SerializationType.MemberInfo: WriteMemberInfo(objectReference); break; case SerializationType.Object: WriteObject(objectReference); break; case SerializationType.UnusedMarker: WriteUnusedMarker(objectReference); break; } }