Exemple #1
0
 public File(byte[] source, bool compression = true, Intentions intentions = Intentions.None)
 {
     FileId     = Guid.NewGuid().ToString();
     Compressed = compression;
     Intent     = intentions;
     Data       = compression ? CompressionUtils.Compress(source) : source;
 }
        /// <summary>
        /// Determines which desires will become intentions or which intentions should remain or be deleted.
        /// </summary>
        /// <param name="percepts"></param>
        private void Filter()
        {
            Intentions.Clear();

            foreach (var desire in Desires)
            {
                if (desire.SubDesires.Count > 0)
                {
                    var primaryDesires = desire.GetSubDesires();
                    primaryDesires.Reverse();
                    foreach (var d in primaryDesires)
                    {
                        Intentions.Push(Intention.FromDesire(d));
                    }
                }
                else
                {
                    Intentions.Push(Intention.FromDesire(desire));
                }
            }

            if (Intentions.Any() && !ExistsPlan())
            {
                ChoosePlan();
            }
        }
        private void ChoosePlan()
        {
            var primaryIntention = Intentions.Pop();
            var location         = primaryIntention.Predicate as Tuple <int, int>;

            switch (primaryIntention.Name)
            {
            case TypesDesire.Dig:
                CurrentPlan = PlanLibrary.First(p => p.Name == TypesPlan.PathFinding);
                CurrentPlan.BuildPlan(new Tuple <int, int>(X, Y), location);
                break;
            }
        }
Exemple #4
0
 public File(MemoryStream sourceStream, bool compression = true, Intentions intentions = Intentions.None) : this(sourceStream.ToArray(), compression, intentions)
 {
 }