public override bool IsValueDefault <T>(string field, T value, WithFormat <T> format) { if (CurrentWritingEntity !.Prototype == null) { // No prototype, can't be default. return(false); } if (!CurrentWritingEntity.Prototype.Components.TryGetValue(CurrentWritingComponent !, out var compData)) { // This component was added mid-game. return(false); } var testSer = YamlObjectSerializer.NewReader(compData); if (testSer.TryReadDataFieldCached(field, format, out var prototypeVal)) { if (value == null) { return(prototypeVal == null); } return(YamlObjectSerializer.IsSerializedEqual(value, prototypeVal)); } return(false); }
public void ExposeData(ObjectSerializer serializer) { serializer.DataField(ref Spawn, "Spawn", null); serializer.DataField(ref Sound, "Sound", string.Empty); serializer.DataField(ref SoundCollection, "SoundCollection", string.Empty); serializer.DataField(ref Acts, "Acts", 0, WithFormat.Flags <ActsFlags>()); serializer.DataField(ref Triggered, "Triggered", false); serializer.DataField(ref TriggersOnce, "TriggersOnce", false); }
public void DeserializeFiveFlagTest() { // Arrange var data = 0; var rootNode = YamlObjectSerializer_Test.YamlTextToNode(SerializedFiveFlag); var serializer = YamlObjectSerializer.NewReader(rootNode); // Act serializer.DataField(ref data, "generic_flags", 0, WithFormat.Flags <GenericFlagTag>()); // Assert Assert.That(data, Is.EqualTo((int)GenericFlags.Five)); }
public void DeserializeZeroWithFlagTest() { // Arrange var data = 0; var rootNode = YamlObjectSerializer_Test.YamlTextToNode(SerializedZeroFlag); var serializer = YamlObjectSerializer.NewReader(rootNode); // Act serializer.DataField(ref data, "generic_flags_with_zero", 0, WithFormat.Flags <GenericFlagWithZeroTag>()); // Assert Assert.That(data, Is.EqualTo(0)); }
public void DeserializeLegacyFormatTest() { // Arrange var data = 0; var rootNode = YamlObjectSerializer_Test.YamlTextToNode(SerializedThree); var serializer = YamlObjectSerializer.NewReader(rootNode); // Act serializer.DataField(ref data, "generic_constants", 0, WithFormat.Constants <GenericConstantTag>()); // Assert Assert.That(data, Is.EqualTo((int)GenericConstants.Three)); }
public void SerializeZeroWithoutFlagTest() { // Arrange var data = 0; var mapping = new YamlMappingNode(); var serializer = YamlObjectSerializer.NewWriter(mapping); // Act serializer.DataField(ref data, "generic_flags", 0, WithFormat.Flags <GenericFlagTag>(), alwaysWrite: true); // Assert var result = YamlObjectSerializer_Test.NodeToYamlText(mapping); Assert.That(result, Is.EqualTo(SerializedZeroNum)); }
public void SerializeFiveFlagTest() { // Arrange var data = (int)GenericFlags.Five; var mapping = new YamlMappingNode(); var serializer = YamlObjectSerializer.NewWriter(mapping); // Act serializer.DataField(ref data, "generic_flags", 0, WithFormat.Flags <GenericFlagTag>()); // Assert var result = YamlObjectSerializer_Test.NodeToYamlText(mapping); Assert.That(result, Is.EqualTo(SerializedOneFourFlag)); }
public void SerializeNonZeroWithZeroFlagDoesntShowZeroTest() { // Arrange var data = (int)FlagsWithZero.Two; var mapping = new YamlMappingNode(); var serializer = YamlObjectSerializer.NewWriter(mapping); // Act serializer.DataField(ref data, "generic_flags_with_zero", 0, WithFormat.Flags <GenericFlagWithZeroTag>()); // Assert var result = YamlObjectSerializer_Test.NodeToYamlText(mapping); Assert.That(result, Is.EqualTo(SerializedTwoWithZeroFlag)); }
public void SerializeOneConstantTest() { // Arrange var data = (int)GenericConstants.One; var mapping = new YamlMappingNode(); var serializer = YamlObjectSerializer.NewWriter(mapping); // Act serializer.DataField(ref data, "generic_constants", 0, WithFormat.Constants <GenericConstantTag>()); // Assert var result = YamlObjectSerializer_Test.NodeToYamlText(mapping); Assert.That(result, Is.EqualTo(SerializedOneConstant)); }
public virtual bool IsValueDefault <T>(string field, T value, WithFormat <T> format) { return(false); }
public Func <string> WithRandomFormat() { var randomFormats = this._random.Items((NumberFormat[])Enum.GetValues(typeof(NumberFormat))); return(() => WithFormat(randomFormats())()); }