public NodeFlagChangedEventArgs(Node node, NodeFlag flag, FlagState oldState, FlagState newState) { _node = node; _flag = flag; _oldState = oldState; _newState = newState; }
private void PlaceCharacter() { List <GameObject> nexusCharacters = new List <GameObject>(); List <GameObject> nodeCharacters = new List <GameObject>(); // Place each character back on the nexus for a frame before moving them back. // Guarantees only characters placed on the board are the only ones in play. foreach (GameObject character in characters) { Vector3 newPosition = Nexus.transform.position; newPosition.z = character.transform.position.z; character.transform.position = newPosition; nexusCharacters.Add(character); } if (currentFlags.Count != 0) { for (int counter = 0; counter < currentFlags.Count; counter++) { NodeFlag nodeFlag = nodeFlags[currentFlags[counter]]; foreach (GameObject character in characters) { if (nodeFlag.Character == character.name) { Vector3 newPosition = nodeFlag.Location; newPosition.z = character.transform.position.z; character.transform.position = newPosition; character.GetComponent <PlayerScript>().SetIsOnNexus(false); foreach (GameObject nexusCharacter in nexusCharacters) { if (nexusCharacter == character) { nexusCharacters.Remove(nexusCharacter); nodeCharacters.Add(character); break; } } } } } } if (nexusCharacters.Count != 0) { foreach (GameObject nexusCharacter in nexusCharacters) { nexusCharacter.GetComponent <PlayerScript>().SetIsOnNexus(true); } } if (nodeCharacters.Count != 0) { foreach (GameObject nodeCharacter in nodeCharacters) { nodeCharacter.GetComponent <PlayerScript>().SetIsOnNexus(false); } } }
/// <summary> /// Create a new file-based PRNode /// </summary> /// <param name="fi">File from which the PRNode is generated</param> /// <param name="parent">File's parent GUID</param> public PRNode(FileInfo fi, Guid parent) { //Log($"New File {fi.Name}", LogType.IO); this.Parent = parent; this.GUID = Guid.NewGuid(); this.Flags = NodeFlag.File; }
private void Awake() { serialPort = new SerialPort(); String[] ports = SerialPort.GetPortNames(); for (int currentPort = 0; currentPort < ports.Length; currentPort++) { if (ports[currentPort] == portName) { serialPort.PortName = portName; serialPort.BaudRate = baudRate; // Open the serial port. serialPort.Open(); usingBoard = true; serialPort.ReadTimeout = 25; break; } } // Initialize the dictionary. nodeFlags = new Dictionary <int, NodeFlag>(); // Create empty list of current flags. currentFlags = new List <int>(); int portalCounter = 0; // Add all the portals and characters to the list and keep track of the flags. for (int counter = 0; counter < flags.Length; counter++) { // Calculate the unique flag id. int flag = (int)Mathf.Pow(2, counter); // Add the flag id for future reference. flags[counter] = flag; int characterIndex = counter % characters.Count; // Get the portals location. The same portal is used. Ex with 3 characters: portal1/char1, portal1/char2, portal1/char3, portal2/char1 Vector3 location = portals[portalCounter].transform.position; // Get the character for the current portal. None if at '6th' character. string character = characters[characterIndex].name;//(characterIndex == 5 ? "None" : characters[counter % characters.Count].name); // Create the node info for the current flag id. NodeFlag newNode = new NodeFlag(flag, location, character); nodeFlags.Add(flag, newNode); if (characterIndex == 3) { portalCounter++; } } }
/// <summary> /// Create a new directory-based PRNode /// </summary> /// <param name="di">Directory</param> /// <param name="parent">Parent GUID</param> public PRNode(DirectoryInfo di, Guid parent) { //Log($"New Dir {di.Name}", LogType.IO); this.Parent = parent; this.GUID = Guid.NewGuid(); this.Flags = NodeFlag.Directory; //this.DataULength = -1; }
private IAutoEvaluationTheoremProvider <NodeFlag> GetTheoremProvider(NodeFlag flag) { ITheoremProvider provider; if (!_library.TryLookupTheoremType(flag.Friendly.DerivePostfix("FlagTheorem"), out provider)) { return(null); } return(provider as IAutoEvaluationTheoremProvider <NodeFlag>); }
/// <summary> /// Creates a Master FileTable node, shouldn't be called by outsiders /// </summary> private PRTableNode(PRNode node, string name, Guid parent) { Encoding enc = System.Text.Encoding.UTF8; Parent = parent; this.GUID = node.GUID; this.Parent = node.Parent; this.NameLength = Convert.ToBase64String(enc.GetBytes(name)).Length; this.Name = Convert.ToBase64String(enc.GetBytes(name)); this.Node = node; this.Flags = node.Flags; }
public void AutoEvaluateFlag(Bus bus, NodeFlag flag) { IAutoEvaluationTheoremProvider<NodeFlag> provider = GetTheoremProvider(flag); if(provider == null) return; IAutoEvaluationTheorem<NodeFlag> theorem; GroupCollection groups; if(!provider.TryLookupBest(bus, out theorem, out groups)) return; theorem.AutoEvaluate(bus, groups); }
public void AutoEvaluateFlag(Port port, NodeFlag flag) { IAutoEvaluationTheoremProvider <NodeFlag> provider = GetTheoremProvider(flag); if (provider == null) { return; } IAutoEvaluationTheorem <NodeFlag> theorem; GroupCollection groups; if (!provider.TryLookupBest(port, out theorem, out groups)) { return; } theorem.AutoEvaluate(port, groups); }
public void FlagTriggerTest() { MathIdentifier flagId = new MathIdentifier("T3_FT", "FundamentTest"); NodeEvent clearEvent = NodeEvent.Register(flagId.DerivePostfix("ClearTrigger"), typeof(EventHandler), typeof(FundamentTest)); NodeEvent enableEvent = NodeEvent.Register(flagId.DerivePostfix("EnableTrigger"), typeof(EventHandler), typeof(FundamentTest)); NodeEvent disableEvent = NodeEvent.Register(flagId.DerivePostfix("DisableTrigger"), typeof(EventHandler), typeof(FundamentTest)); NodeEvent disable2Event = NodeEvent.Register(flagId.DerivePostfix("Disable2Trigger"), typeof(EventHandler), typeof(FundamentTest)); NodeEvent reevaluateEvent = NodeEvent.Register(flagId.DerivePostfix("ReevaluateTrigger"), typeof(EventHandler), typeof(FundamentTest)); NodeFlag flag = NodeFlag.Register(flagId, typeof(FundamentTest), FlagKind.Default, new NodeEventTrigger(EventTriggerAction.Clear, clearEvent), new NodeEventTrigger(EventTriggerAction.Enable, enableEvent), new NodeEventTrigger(EventTriggerAction.Disable, disableEvent, disable2Event), new NodeEventTrigger(EventTriggerAction.Reevaluate, reevaluateEvent)); NodeObject n = new NodeObject(); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flag), "A01"); n.EnableFlag(flag); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flag), "B01"); n.RaiseEvent(disableEvent, EventArgs.Empty); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flag), "C01"); n.RaiseEvent(enableEvent, EventArgs.Empty); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flag), "D01"); n.RaiseEvent(reevaluateEvent, EventArgs.Empty); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flag), "E01"); n.RaiseEvent(disable2Event, EventArgs.Empty); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flag), "F01"); n.RaiseEvent(clearEvent, EventArgs.Empty); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flag), "G01"); }
protected override void OnAutoEvaluateFlag(NodeFlag flag) { }
public NodeFlagDirtiedEventArgs(Node node, NodeFlag flag) { _node = node; _flag = flag; }
protected override void OnAutoEvaluateFlag(NodeFlag flag) { Service<IAutoEvaluator>.Instance.AutoEvaluateFlag(this, flag); }
public InputSignalsFlagCondition(NodeFlag flag, FlagState state, CombinationMode mode) { _flag = flag; _state = state; _mode = mode; }
public void RemoteEventTriggersTest() { MathIdentifier flagId = new MathIdentifier("TX_F", "FundamentTest"); NodeFlag flag = NodeFlag.Register(flagId, typeof(FundamentTest)); NodeFlag flagEnableRemote = NodeFlag.Register(flagId.DerivePostfix("EnableRemote"), typeof(FundamentTest), FlagKind.Default, new NodeEventTrigger(EventTriggerAction.Enable, flag, flag.FlagEnabledEvent)); NodeFlag flagEnableLocal = NodeFlag.Register(flagId.DerivePostfix("EnableLocal"), typeof(FundamentTest), FlagKind.Default, new NodeEventTrigger(EventTriggerAction.Enable, flag.FlagEnabledEvent)); NodeFlag flagDisableRemote = NodeFlag.Register(flagId.DerivePostfix("DisableRemote"), typeof(FundamentTest), FlagKind.Default, new NodeEventTrigger(EventTriggerAction.Disable, flag, flag.FlagChangedEvent)); NodeFlag flagDisableLocal = NodeFlag.Register(flagId.DerivePostfix("DisableLocal"), typeof(FundamentTest), FlagKind.Default, new NodeEventTrigger(EventTriggerAction.Disable, flag.FlagChangedEvent)); NodeObject n = new NodeObject(); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flag), "A01"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagEnableRemote), "A02"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagEnableLocal), "A03"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagDisableRemote), "A04"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagDisableLocal), "A05"); n.EnableFlag(flag); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flag), "B01"); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flagEnableRemote), "B02"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagEnableLocal), "B03"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flagDisableRemote), "B04"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagDisableLocal), "B05"); n.ClearFlag(flag); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flag), "C01"); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flagEnableRemote), "C02"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagEnableLocal), "C03"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flagDisableRemote), "C04"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagDisableLocal), "C05"); n.EnableFlag(flagDisableLocal); n.DisableFlag(flagEnableLocal); n.ClearFlag(flagDisableRemote); n.ClearFlag(flagEnableRemote); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flag), "D01"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagEnableRemote), "D02"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flagEnableLocal), "D03"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagDisableRemote), "D04"); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flagDisableLocal), "D05"); n.DisableFlag(flag); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flag), "E01"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flagEnableRemote), "E02"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flagEnableLocal), "E03"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flagDisableRemote), "E04"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flagDisableLocal), "E05"); n.EnableFlag(flag); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flag), "F01"); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flagEnableRemote), "F02"); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flagEnableLocal), "F03"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flagDisableRemote), "F04"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flagDisableLocal), "F05"); }
/// <summary> /// Create a new file-based PRNode /// </summary> /// <param name="_name">File Name</param> /// <param name="_parent">Parent GUID</param> /// <param name="_creation">Creation date as epoch</param> /// <param name="_access">Access date as epoch</param> /// <param name="_size">Size of the file</param> /// <param name="_attribs">RASH / OS file attributes</param> public PRNode(string _name, Guid _parent) { this.Parent = _parent; this.GUID = NewGUID(); this.Flags = NodeFlag.File; }
private PRNode(string name, Guid guid, Attrib attrib) { this.GUID = guid; this.Flags = NodeFlag.Directory; }
public void FlagAspectTest() { MathIdentifier flagId = new MathIdentifier("T1_FA", "FundamentTest"); NodeFlag flag = NodeFlag.Register(flagId, typeof(FundamentTest)); NodeObject n = new NodeObject(); _counter = 0; n.AddHandler(flag.FlagChangedEvent, new EventHandler <NodeFlagChangedEventArgs>(OnFlagChanged)); Assert.AreEqual(0, _counter, "X1"); Assert.IsFalse(n.IsFlagSet(flag, false), "A01"); Assert.IsFalse(n.IsFlagSet(flag, true), "A02"); Assert.IsFalse(n.IsFlagDirty(flag), "A03"); Assert.IsFalse(n.IsFlagEnabled(flag, false), "A04"); Assert.IsFalse(n.IsFlagEnabled(flag, true), "A05"); Assert.IsFalse(n.IsFlagDisabled(flag, false), "A06"); Assert.IsFalse(n.IsFlagDisabled(flag, true), "A07"); Assert.IsTrue(n.IsFlagUnknown(flag), "A08"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flag), "A09"); n.EnableFlag(flag); Assert.AreEqual(-1, _counter, "X2"); Assert.AreEqual(FlagState.Unknown, _lastFlagChangedEventArgs.OldState, "X2a"); Assert.AreEqual(FlagState.Enabled, _lastFlagChangedEventArgs.NewState, "X2b"); Assert.IsTrue(n.IsFlagSet(flag, false), "B01"); Assert.IsTrue(n.IsFlagSet(flag, true), "B02"); Assert.IsFalse(n.IsFlagDirty(flag), "B03"); Assert.IsTrue(n.IsFlagEnabled(flag, false), "B04"); Assert.IsTrue(n.IsFlagEnabled(flag, true), "B05"); Assert.IsFalse(n.IsFlagDisabled(flag, false), "B06"); Assert.IsFalse(n.IsFlagDisabled(flag, true), "B07"); Assert.IsFalse(n.IsFlagUnknown(flag), "B08"); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flag), "B09"); n.DisableFlag(flag); Assert.AreEqual(-2, _counter, "X3"); Assert.AreEqual(FlagState.Enabled, _lastFlagChangedEventArgs.OldState, "X3a"); Assert.AreEqual(FlagState.Disabled, _lastFlagChangedEventArgs.NewState, "X3b"); Assert.IsTrue(n.IsFlagSet(flag, false), "C01"); Assert.IsTrue(n.IsFlagSet(flag, true), "C02"); Assert.IsFalse(n.IsFlagDirty(flag), "C03"); Assert.IsFalse(n.IsFlagEnabled(flag, false), "C04"); Assert.IsFalse(n.IsFlagEnabled(flag, true), "C05"); Assert.IsTrue(n.IsFlagDisabled(flag, false), "C06"); Assert.IsTrue(n.IsFlagDisabled(flag, true), "C07"); Assert.IsFalse(n.IsFlagUnknown(flag), "C08"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flag), "C09"); n.DirtyFlagIfSet(flag); Assert.AreEqual(-2, _counter, "X4"); Assert.IsFalse(n.IsFlagSet(flag, false), "D01"); Assert.IsTrue(n.IsFlagSet(flag, true), "D02"); Assert.IsTrue(n.IsFlagDirty(flag), "D03"); Assert.IsFalse(n.IsFlagEnabled(flag, false), "D04"); Assert.IsFalse(n.IsFlagEnabled(flag, true), "D05"); Assert.IsFalse(n.IsFlagDisabled(flag, false), "D06"); Assert.IsTrue(n.IsFlagDisabled(flag, true), "D07"); Assert.IsFalse(n.IsFlagUnknown(flag), "D08"); Assert.AreEqual(FlagState.Disabled, n.GetFlagState(flag), "D09"); n.EnableFlag(flag); Assert.AreEqual(-3, _counter, "X5"); Assert.AreEqual(FlagState.Disabled, _lastFlagChangedEventArgs.OldState, "X5a"); Assert.AreEqual(FlagState.Enabled, _lastFlagChangedEventArgs.NewState, "X5b"); Assert.IsTrue(n.IsFlagSet(flag, false), "E01"); Assert.IsTrue(n.IsFlagSet(flag, true), "E02"); Assert.IsFalse(n.IsFlagDirty(flag), "E03"); Assert.IsTrue(n.IsFlagEnabled(flag, false), "E04"); Assert.IsTrue(n.IsFlagEnabled(flag, true), "E05"); Assert.IsFalse(n.IsFlagDisabled(flag, false), "E06"); Assert.IsFalse(n.IsFlagDisabled(flag, true), "E07"); Assert.IsFalse(n.IsFlagUnknown(flag), "E08"); Assert.AreEqual(FlagState.Enabled, n.GetFlagState(flag), "E09"); n.ClearFlag(flag); Assert.AreEqual(-4, _counter, "X6"); Assert.AreEqual(FlagState.Enabled, _lastFlagChangedEventArgs.OldState, "X6a"); Assert.AreEqual(FlagState.Unknown, _lastFlagChangedEventArgs.NewState, "X6b"); Assert.IsFalse(n.IsFlagSet(flag, false), "F01"); Assert.IsFalse(n.IsFlagSet(flag, true), "F02"); Assert.IsFalse(n.IsFlagDirty(flag), "F03"); Assert.IsFalse(n.IsFlagEnabled(flag, false), "F04"); Assert.IsFalse(n.IsFlagEnabled(flag, true), "F05"); Assert.IsFalse(n.IsFlagDisabled(flag, false), "F06"); Assert.IsFalse(n.IsFlagDisabled(flag, true), "F07"); Assert.IsTrue(n.IsFlagUnknown(flag), "F08"); Assert.AreEqual(FlagState.Unknown, n.GetFlagState(flag), "F09"); }
protected override void OnAutoEvaluateFlag(NodeFlag flag) { Service <IAutoEvaluator> .Instance.AutoEvaluateFlag(this, flag); }
public void SetState(int x, int y, NodeFlag flag) { mapdata_[y, x].state = (int)flag; }
bool Is(int state, NodeFlag flag) { return((state & (int)flag) > 0); }
private IAutoEvaluationTheoremProvider<NodeFlag> GetTheoremProvider(NodeFlag flag) { ITheoremProvider provider; if(!_library.TryLookupTheoremType(flag.Friendly.DerivePostfix("FlagTheorem"), out provider)) return null; return provider as IAutoEvaluationTheoremProvider<NodeFlag>; }