2 using System.Collections;
3 using System.Collections.Generic;
9 using Vintagestory.API.Common;
10 using Vintagestory.API.Datastructures;
14 [ProtoContract(SkipConstructor = true)]
15 //[ProtoInclude(5,typeof(DelegateState))]
16 public class CommandData : IAttribute
19 public RunState State { get; set; }//Run , Stop, SingleSnapshot -> Stop
22 private List<DelegateState> DelegatesFlags;
25 public string Notation { get; set; }
27 //POI Delegate list {enabled/Disable}, color?
28 //Other params...? Tick rate?
29 //Choose : Renderer(s)
32 public CommandData(RunState assumeState, bool[] theseDelegates)
36 DelegatesFlags = new List<DelegateState>(theseDelegates.Length);
37 foreach (var df in theseDelegates)
39 DelegatesFlags.Add(new DelegateState()
42 AlternateColor = null,
49 public CommandData(RunState assumeState)
51 State = assumeState;//Never RUN.
53 DelegatesFlags = new List<DelegateState>();
57 public void FromBytes(BinaryReader stream)
59 var temp = ProtoBuf.Serializer.Deserialize<CommandData>(stream.BaseStream);
60 this.State = temp.State;
61 this.DelegatesFlags = temp.DelegatesFlags;
65 public void ToBytes(BinaryWriter stream)
67 ProtoBuf.Serializer.Serialize<CommandData>(stream.BaseStream, this);
74 public int GetAttributeId()
79 public object GetValue()
85 public string ToJsonToken()
87 return $"New-State:{State}, Delegates# {DelegatesFlags.Count} ";
90 public bool Equals(IWorldAccessor worldForResolve, IAttribute attr)
92 var other = attr.GetValue() as CommandData;
94 if (this.State == other.State)
104 internal struct DelegateState
110 public Color? AlternateColor;