Switch.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using InABox.Core;
  2. using InABox.Rpc;
  3. namespace Command;
  4. public class SwitchCommand : IRpcCommand<SwitchParameters, SwitchResult>
  5. {
  6. }
  7. public class SwitchParameters : IRpcCommandParameters
  8. {
  9. public bool Active { get; set; }
  10. public void SerializeBinary(CoreBinaryWriter writer)
  11. {
  12. writer.WriteBinaryValue(Active);
  13. }
  14. public void DeserializeBinary(CoreBinaryReader reader)
  15. {
  16. Active = reader.ReadBinaryValue<bool>();
  17. }
  18. public string? FullDescription() => "SwitchParameters";
  19. public string? ShortDescription() => "SwitchParameters";
  20. }
  21. public class SwitchResult : IRpcCommandResult
  22. {
  23. public bool LightOn { get; set; }
  24. public SwitchResult()
  25. {
  26. LightOn = false;
  27. }
  28. public void SerializeBinary(CoreBinaryWriter writer)
  29. {
  30. writer.WriteBinaryValue(LightOn);
  31. }
  32. public void DeserializeBinary(CoreBinaryReader reader)
  33. {
  34. LightOn = reader.ReadBinaryValue<bool>();
  35. }
  36. public string? FullDescription() => "SwitchResult";
  37. }