Example #1
0
 public NodeFlagChangedEventArgs(Node node, NodeFlag flag, FlagState oldState, FlagState newState)
 {
     _node     = node;
     _flag     = flag;
     _oldState = oldState;
     _newState = newState;
 }
 public NodeFlagChangedEventArgs(Node node, NodeFlag flag, FlagState oldState, FlagState newState)
 {
     _node = node;
     _flag = flag;
     _oldState = oldState;
     _newState = newState;
 }
Example #3
0
    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);
            }
        }
    }
Example #4
0
 /// <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;
 }
Example #5
0
    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++;
            }
        }
    }
Example #6
0
 /// <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;
 }
Example #7
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>);
        }
Example #8
0
        /// <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);
        }
Example #10
0
        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);
        }
Example #11
0
        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;
 }
Example #14
0
 protected override void OnAutoEvaluateFlag(NodeFlag flag)
 {
     Service<IAutoEvaluator>.Instance.AutoEvaluateFlag(this, flag);
 }
Example #15
0
 public InputSignalsFlagCondition(NodeFlag flag, FlagState state, CombinationMode mode)
 {
     _flag  = flag;
     _state = state;
     _mode  = mode;
 }
 public InputSignalsFlagCondition(NodeFlag flag, FlagState state, CombinationMode mode)
 {
     _flag = flag;
     _state = state;
     _mode = mode;
 }
Example #17
0
        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");
        }
Example #18
0
 /// <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;
 }
Example #19
0
 private PRNode(string name, Guid guid, Attrib attrib)
 {
     this.GUID  = guid;
     this.Flags = NodeFlag.Directory;
 }
Example #20
0
        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");
        }
Example #21
0
 protected override void OnAutoEvaluateFlag(NodeFlag flag)
 {
     Service <IAutoEvaluator> .Instance.AutoEvaluateFlag(this, flag);
 }
Example #22
0
 protected override void OnAutoEvaluateFlag(NodeFlag flag)
 {
 }
Example #23
0
 public void SetState(int x, int y, NodeFlag flag)
 {
     mapdata_[y, x].state = (int)flag;
 }
Example #24
0
 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>;
 }
Example #26
0
 public NodeFlagDirtiedEventArgs(Node node, NodeFlag flag)
 {
     _node = node;
     _flag = flag;
 }