/// <summary>
 /// Initialises a state table from the booleans and integers of the given state table
 /// </summary>
 public StateTable(StateTable other)
 {
     Booleans    = new Dictionary <string, StateEntry <bool> >(other.Booleans);
     Integers    = new Dictionary <string, StateEntry <int> >(other.Integers);
     BooleanKeys = Booleans.Keys.ToList();
     IntegerKeys = Integers.Keys.ToList();
 }
        /// <summary>
        /// Copies the whole output table to our input table
        /// </summary>
        public void AssignValuesFrom(StateTable outputs)
        {
            List <string> booleanKeys = BooleanKeys;
            List <string> integerKeys = IntegerKeys;

            foreach (var entry in booleanKeys)
            {
                Booleans[entry].Value = outputs.PollBoolean(entry);
            }
            foreach (var entry in integerKeys)
            {
                Integers[entry].Value = outputs.PollInteger(entry);
            }
        }