mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-08 18:06:41 +00:00
Split Input.Control and Input.ControlAttr
This commit is contained in:
@@ -301,6 +301,7 @@ namespace SabreTools.Data.Extensions
|
||||
{
|
||||
cloneInput.Buttons = selfInput.Buttons;
|
||||
cloneInput.Coins = selfInput.Coins;
|
||||
cloneInput.ControlAttr = selfInput.ControlAttr;
|
||||
cloneInput.Players = selfInput.Players;
|
||||
cloneInput.Service = selfInput.Service;
|
||||
cloneInput.Tilt = selfInput.Tilt;
|
||||
|
||||
@@ -12,6 +12,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
public long? Coins { get; set; }
|
||||
|
||||
/// <remarks>Attribute also named Control</remarks>
|
||||
public string? ControlAttr { get; set; }
|
||||
|
||||
public long? Players { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
@@ -24,7 +27,7 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#region Keys
|
||||
|
||||
/// <remarks>string / Control[]</remarks>
|
||||
/// <remarks>Control[]</remarks>
|
||||
public const string ControlKey = "control";
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -665,6 +665,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Buttons = 12345,
|
||||
Coins = 12345,
|
||||
[Data.Models.Metadata.Input.ControlKey] = new Data.Models.Metadata.Control[] { CreateMetadataControl() },
|
||||
ControlAttr = "controlattr",
|
||||
Players = 12345,
|
||||
Service = true,
|
||||
Tilt = true,
|
||||
@@ -1395,6 +1396,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.NotNull(input);
|
||||
Assert.Equal(12345, input.Buttons);
|
||||
Assert.Equal(12345, input.Coins);
|
||||
Assert.Equal("controlattr", input.ControlAttr);
|
||||
Assert.Equal(12345, input.Players);
|
||||
Assert.True(input.Service);
|
||||
Assert.True(input.Tilt);
|
||||
|
||||
@@ -930,6 +930,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.NotNull(input);
|
||||
Assert.Equal(12345, input.Buttons);
|
||||
Assert.Equal(12345, input.Coins);
|
||||
Assert.Equal("controlattr", input.ControlAttr);
|
||||
Assert.Equal(12345, input.Players);
|
||||
Assert.True(input.Service);
|
||||
Assert.True(input.Tilt);
|
||||
|
||||
@@ -25,6 +25,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.Input)?.Coins = value;
|
||||
}
|
||||
|
||||
public string? ControlAttr
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Input)?.ControlAttr;
|
||||
set => (_internal as Data.Models.Metadata.Input)?.ControlAttr = value;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public bool ControlsSpecified
|
||||
{
|
||||
|
||||
@@ -723,6 +723,9 @@ namespace SabreTools.Metadata.Filter
|
||||
case Input item when fieldName == "coins":
|
||||
checkValue = item.Coins?.ToString();
|
||||
return true;
|
||||
case Input item when fieldName == "controlattr":
|
||||
checkValue = item.ControlAttr;
|
||||
return true;
|
||||
case Input item when fieldName == "players":
|
||||
checkValue = item.Players?.ToString();
|
||||
return true;
|
||||
|
||||
@@ -260,6 +260,8 @@ namespace SabreTools.Metadata
|
||||
return false;
|
||||
if (selfInput.Coins != otherInput.Coins)
|
||||
return false;
|
||||
if (selfInput.ControlAttr != otherInput.ControlAttr)
|
||||
return false;
|
||||
if (selfInput.Players != otherInput.Players)
|
||||
return false;
|
||||
if (selfInput.Service != otherInput.Service)
|
||||
|
||||
@@ -173,7 +173,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Service = true,
|
||||
Tilt = true,
|
||||
Players = 12345,
|
||||
//ControlAttr = "XXXXXX", // Mututally exclusive with input.Control
|
||||
ControlAttr = "controlattr",
|
||||
Buttons = 12345,
|
||||
Coins = 12345,
|
||||
Control = [control],
|
||||
@@ -601,7 +601,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal(true, input.Service);
|
||||
Assert.Equal(true, input.Tilt);
|
||||
Assert.Equal(12345, input.Players);
|
||||
//Assert.Equal("XXXXXX", input.ControlAttr); // Mututally exclusive with input.Control
|
||||
Assert.Equal("controlattr", input.ControlAttr);
|
||||
Assert.Equal(12345, input.Buttons);
|
||||
Assert.Equal(12345, input.Coins);
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Service = true,
|
||||
Tilt = true,
|
||||
Players = 12345,
|
||||
//ControlAttr = "XXXXXX", // Mututally exclusive with input.Control
|
||||
ControlAttr = "controlattr",
|
||||
Buttons = 12345,
|
||||
Coins = 12345,
|
||||
Control = [control],
|
||||
@@ -595,7 +595,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal(true, input.Service);
|
||||
Assert.Equal(true, input.Tilt);
|
||||
Assert.Equal(12345, input.Players);
|
||||
//Assert.Equal("XXXXXX", input.ControlAttr); // Mututally exclusive with input.Control
|
||||
Assert.Equal("controlattr", input.ControlAttr);
|
||||
Assert.Equal(12345, input.Buttons);
|
||||
Assert.Equal(12345, input.Coins);
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Service = true,
|
||||
Tilt = true,
|
||||
Players = 12345,
|
||||
//ControlAttr = "XXXXXX", // Mututally exclusive with input.Control
|
||||
ControlAttr = "controlattr",
|
||||
Buttons = 12345,
|
||||
Coins = 12345,
|
||||
Control = [control],
|
||||
@@ -595,7 +595,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal(true, input.Service);
|
||||
Assert.Equal(true, input.Tilt);
|
||||
Assert.Equal(12345, input.Players);
|
||||
//Assert.Equal("XXXXXX", input.ControlAttr); // Mututally exclusive with input.Control
|
||||
Assert.Equal("controlattr", input.ControlAttr);
|
||||
Assert.Equal(12345, input.Buttons);
|
||||
Assert.Equal(12345, input.Coins);
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
var input = new Input
|
||||
{
|
||||
Players = item.Players,
|
||||
Control = item.ReadString(Data.Models.Metadata.Input.ControlKey),
|
||||
Control = item.ControlAttr,
|
||||
Buttons = item.Buttons,
|
||||
Coins = item.Coins,
|
||||
Tilt = item.Tilt,
|
||||
|
||||
@@ -243,7 +243,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
var input = new Data.Models.Metadata.Input
|
||||
{
|
||||
Players = item.Players,
|
||||
[Data.Models.Metadata.Input.ControlKey] = item.Control,
|
||||
ControlAttr = item.Control,
|
||||
Buttons = item.Buttons,
|
||||
Coins = item.Coins,
|
||||
Tilt = item.Tilt,
|
||||
|
||||
@@ -499,14 +499,11 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Service = item.Service,
|
||||
Tilt = item.Tilt,
|
||||
Players = item.Players,
|
||||
ControlAttr = item.ControlAttr,
|
||||
Buttons = item.Buttons,
|
||||
Coins = item.Coins,
|
||||
};
|
||||
|
||||
var controlAttr = item.ReadString(Data.Models.Metadata.Input.ControlKey);
|
||||
if (controlAttr is not null)
|
||||
input.ControlAttr = controlAttr;
|
||||
|
||||
var controls = item.Read<Data.Models.Metadata.Control[]>(Data.Models.Metadata.Input.ControlKey);
|
||||
if (controls is not null && controls.Length > 0)
|
||||
input.Control = Array.ConvertAll(controls, ConvertFromInternalModel);
|
||||
|
||||
@@ -537,7 +537,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Service = item.Service,
|
||||
Tilt = item.Tilt,
|
||||
Players = item.Players,
|
||||
[Data.Models.Metadata.Input.ControlKey] = item.ControlAttr,
|
||||
ControlAttr = item.ControlAttr,
|
||||
Buttons = item.Buttons,
|
||||
Coins = item.Coins,
|
||||
};
|
||||
|
||||
@@ -240,7 +240,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Service = true,
|
||||
Tilt = true,
|
||||
Players = 12345,
|
||||
ControlAttr = "XXXXXX",
|
||||
ControlAttr = "controlattr",
|
||||
Buttons = 12345,
|
||||
Coins = 12345,
|
||||
Control = [control],
|
||||
@@ -668,7 +668,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.Equal(true, input.Service);
|
||||
Assert.Equal(true, input.Tilt);
|
||||
Assert.Equal(12345, input.Players);
|
||||
Assert.Equal("XXXXXX", input.ControlAttr); // Mututally exclusive with input.Control
|
||||
Assert.Equal("controlattr", input.ControlAttr);
|
||||
Assert.Equal(12345, input.Buttons);
|
||||
Assert.Equal(12345, input.Coins);
|
||||
|
||||
|
||||
@@ -236,7 +236,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Service = true,
|
||||
Tilt = true,
|
||||
Players = 12345,
|
||||
//ControlAttr = "XXXXXX", // Mututally exclusive with input.Control
|
||||
ControlAttr = "controlattr",
|
||||
Buttons = 12345,
|
||||
Coins = 12345,
|
||||
Control = [control],
|
||||
@@ -662,7 +662,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.Equal(true, input.Service);
|
||||
Assert.Equal(true, input.Tilt);
|
||||
Assert.Equal(12345, input.Players);
|
||||
//Assert.Equal("XXXXXX", input.ControlAttr); // Mututally exclusive with input.Control
|
||||
Assert.Equal("controlattr", input.ControlAttr);
|
||||
Assert.Equal(12345, input.Buttons);
|
||||
Assert.Equal(12345, input.Coins);
|
||||
|
||||
|
||||
@@ -236,7 +236,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Service = true,
|
||||
Tilt = true,
|
||||
Players = 12345,
|
||||
//ControlAttr = "XXXXXX", // Mututally exclusive with input.Control
|
||||
ControlAttr = "controlattr",
|
||||
Buttons = 12345,
|
||||
Coins = 12345,
|
||||
Control = [control],
|
||||
@@ -662,7 +662,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.Equal(true, input.Service);
|
||||
Assert.Equal(true, input.Tilt);
|
||||
Assert.Equal(12345, input.Players);
|
||||
//Assert.Equal("XXXXXX", input.ControlAttr); // Mututally exclusive with input.Control
|
||||
Assert.Equal("controlattr", input.ControlAttr);
|
||||
Assert.Equal(12345, input.Buttons);
|
||||
Assert.Equal(12345, input.Coins);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user