Esempio n. 1
0
        public static void Emit(this ILGenerator il, OpCode opcode, IFieldElement el)
        {
            var m         = el as IMemberInfoSource;
            var fieldInfo = m.MemberInfo as FieldInfo;

            il.Emit(opcode, fieldInfo);
        }
Esempio n. 2
0
        private void CreateLevels()
        {
            string levelsString = File.ReadAllText(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "levels.txt"));

            try
            {
                var levels = JSONNode.Parse(levelsString).AsArray;

                foreach (JSONNode level in levels)
                {
                    var id           = level["id"].AsInt;
                    var currentLevel = new IFieldElement[width - 2, height - 2];
                    int y            = 0;
                    foreach (JSONNode imageStr in level["level"].AsArray)
                    {
                        int x = 0;
                        foreach (var imagePxl in (string)imageStr)
                        {
                            if (imagePxl == '1')
                            {
                                currentLevel[x, y] = new Wall(new Vector2i(x + 1, y + 1));
                            }
                            x++;
                        }
                        y++;
                    }
                    Levels.Add(id, currentLevel);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Esempio n. 3
0
    public void Delete(IFieldElement <string> val)
    {
        var sf = m_subFields.Single(f => f == val);

        m_subFields.Remove(sf);
        Destroy(sf.GameObject);
    }
Esempio n. 4
0
        /// <summary>
        /// Tries to multiply a scalar to the current element.
        /// </summary>
        /// <param name="Scalar">Scalar to multiply.</param>
        /// <returns>Result, if understood, null otherwise.</returns>
        public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar)
        {
            ComplexNumber ComplexNumber = Scalar as ComplexNumber;
            Complex       d;

            if (ComplexNumber == null)
            {
                DoubleNumber DoubleNumber = Scalar as DoubleNumber;
                if (DoubleNumber == null)
                {
                    return(null);
                }
                else
                {
                    d = new Complex(DoubleNumber.Value, 0);
                }
            }
            else
            {
                d = ComplexNumber.Value;
            }

            int i;

            Complex[] Values = this.Values;
            Complex[] v      = new Complex[this.dimension];

            for (i = 0; i < this.dimension; i++)
            {
                v[i] = d * Values[i];
            }

            return(new ComplexVector(v));
        }
Esempio n. 5
0
        private void DrawRectNearElement(Graphics g, IFieldElement element)
        {
            var pos  = element.ScaledLocation;
            var size = element.ScaledSize;
            var rect = new Rectangle(pos.X - 2, pos.Y - 2, size.Width + 3, size.Height + 3);

            g.DrawRectangle(rectHighlighter, rect);
        }
Esempio n. 6
0
 public Folder(string name, string path, IFieldElement prev)
 {
     Name = name;
     Path = path;
     Type = "<Папка>";
     Prev = prev;
     Next = null;
 }
Esempio n. 7
0
 public Disk(string name, string path, DriveType diskType, IFieldElement prev)
 {
     Name = name;
     Path = path;
     DiskType = diskType;
     Type = GetDiskType(diskType);
     Prev = prev;
     Next = null;
 }
Esempio n. 8
0
 public File(string name, string path, string type, long size, IFieldElement prev)
 {
     Name = name;
     Path = path;
     Type = type;
     Size = size;
     Prev = prev;
     Next = null;
 }
Esempio n. 9
0
        /// <summary>
        /// Tries to multiply a scalar to the current element.
        /// </summary>
        /// <param name="Scalar">Scalar to multiply.</param>
        /// <returns>Result, if understood, null otherwise.</returns>
        public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar)
        {
            LinkedList <IElement> Elements = new LinkedList <IElement>();

            foreach (IElement Element in this.elements)
            {
                Elements.AddLast(Operators.Arithmetics.Multiply.EvaluateMultiplication(Scalar, Element, null));
            }

            return(new ObjectVector(Elements));
        }
        /// <summary>
        /// Tries to multiply a scalar to the current element.
        /// </summary>
        /// <param name="Scalar">Scalar to multiply.</param>
        /// <returns>Result, if understood, null otherwise.</returns>
        public override IModuleElement MultiplyScalar(IRingElement Scalar)
        {
            IFieldElement FieldElement = Scalar as IFieldElement;

            if (FieldElement is null)
            {
                return(null);
            }
            else
            {
                return(this.MultiplyScalar(FieldElement));
            }
        }
Esempio n. 11
0
        private void OnFocusChanged(IFieldElement lastFocus, IFieldElement currentFocus)
        {
            if (currentFocus != null)
            {
                DrawRectNearElement(this.CreateGraphics(), currentFocus);
            }

            if (lastFocus != null)
            {
                var rect = new Rectangle(lastFocus.ScaledLocation.X - 2, lastFocus.ScaledLocation.Y - 2,
                                         lastFocus.ScaledSize.Width + 4, lastFocus.ScaledSize.Height + 4);
                Invalidate(rect);
            }
        }
Esempio n. 12
0
        /// <summary>
        /// Tries to multiply a scalar to the current element.
        /// </summary>
        /// <param name="Scalar">Scalar to multiply.</param>
        /// <returns>Result, if understood, null otherwise.</returns>
        public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar)
        {
            if (!(Scalar is DoubleNumber DoubleNumber))
            {
                return(null);
            }

            double d = DoubleNumber.Value;
            int    i;

            double[] Values = this.Values;
            double[] v      = new double[this.dimension];

            for (i = 0; i < this.dimension; i++)
            {
                v[i] = d * Values[i];
            }

            return(new DoubleVector(v));
        }
Esempio n. 13
0
        /// <summary>
        /// Tries to multiply a scalar to the current element.
        /// </summary>
        /// <param name="Scalar">Scalar to multiply.</param>
        /// <returns>Result, if understood, null otherwise.</returns>
        public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar)
        {
            BooleanValue BooleanValue = Scalar as BooleanValue;

            if (BooleanValue is null)
            {
                return(null);
            }

            bool d = BooleanValue.Value;
            int  i;

            bool[] Values = this.Values;
            bool[] v      = new bool[this.dimension];

            for (i = 0; i < this.dimension; i++)
            {
                v[i] = d && Values[i];
            }

            return(new BooleanVector(v));
        }
Esempio n. 14
0
                public override void PreDefine(ITypeDesigner t)
                {
                    if (_handlerType == null)
                    {
                        _handlerType = _eventArgsType == typeof(EventArgs)
                                                    ? typeof(EventHandler)
                                                    : typeof(EventHandler <>).MakeGenericType(_eventArgsType);
                    }

                    if (_bPrivateField)
                    {
                        _field = t.Field("_" + _name, _handlerType);

                        _fnAdd = (il) => {
                            il.Emit(OpCodes.Ldarg_0);
                            il.Emit(OpCodes.Ldarg_0);
                            il.Emit(OpCodes.Ldfld, _field);
                            il.Emit(OpCodes.Ldarg_1);
                            il.Emit(OpCodes.Call, typeof(Delegate).GetMethod("Combine", new[] { typeof(Delegate), typeof(Delegate) }, null));
                            il.Emit(OpCodes.Castclass, _handlerType);
                            il.Emit(OpCodes.Stfld, _field);
                            il.Emit(OpCodes.Ret);
                        };

                        _fnRemove = (il) => {
                            il.Emit(OpCodes.Ldarg_0);
                            il.Emit(OpCodes.Ldarg_0);
                            il.Emit(OpCodes.Ldfld, _field);
                            il.Emit(OpCodes.Ldarg_1);
                            il.Emit(OpCodes.Call, typeof(Delegate).GetMethod("Remove", new[] { typeof(Delegate), typeof(Delegate) }, null));
                            il.Emit(OpCodes.Castclass, _handlerType);
                            il.Emit(OpCodes.Stfld, _field);
                            il.Emit(OpCodes.Ret);
                        };
                    }
                }
Esempio n. 15
0
        protected virtual void SetupField(IFieldElement field, PropertyModel property)
        {
            field.BindValue(property);

            //TODO
        }
Esempio n. 16
0
 public static bool CanAnalyseAsDisposable(IFieldElement field)
 {
     if (field == null)
     return false;
       return !field.IsAspxTag && !field.IsRunAtServer;
 }
Esempio n. 17
0
 private static bool IsDisposed(ScopeResolveResult resolveResult, IClassElement scope, IFieldElement field)
 {
     if (scope == null || field == null)
     return false;
       IElementCollection references = field.FindAllReferences(scope);
       foreach (IElement reference in references)
       {
     IElement parent = reference.Parent;
     if (parent != null)
     {
       IWithSource withSource = parent as IWithSource;
       if (withSource != null)
       {
     if (withSource.Source == reference)
     {
       if (parent.Name == STR_Dispose)
       {
         IMethodElement parentMethod = reference.ParentMethod;
         if (parentMethod != null && parentMethod.Name == STR_Dispose)
           return true;
       }
     }
       }
       // B188310
       if (IsAddedToControls(parent))
     return true;
       if (ComponentsInstancePassedIntoConstructor(resolveResult, parent))
     return true;
       if (PassedIntoDifferentDisposeMethod(resolveResult, parent, reference))
     return true;
     }
       }
       return false;
 }
Esempio n. 18
0
        /*
         * Спробувати отримати список папок і файлів у OpenedElement.
         * Якщо поточний шлях не диск, то першою папкою є "..".
         * Спершу виводиться список папок, далі файлів.
         * У разі помилки зчитування список елементів не змінюється.
         */
        public bool UpdateField(IFieldElement openedElement)
        {
            if (openedElement == null)
            {
                MessageView.FileFolderGettingError();
                return false;
            }
            try
            {
                List<IFieldElement> fieldElementList = new List<IFieldElement>();
                if (!(openedElement is Disk))
                {
                    if (String.Compare(Directory.GetParent(openedElement.Path).Root.FullName,
                        Directory.GetParent(openedElement.Path).FullName) != 0)
                        fieldElementList.Add(new Folder("..", Directory.GetParent(openedElement.Path).FullName, openedElement));
                    else
                        fieldElementList.Add(new Disk("..", Directory.GetParent(openedElement.Path).FullName,
                            new DriveInfo(Directory.GetParent(openedElement.Path).FullName).DriveType, openedElement));
                }
                DirectoryInfo openedElementInfo = new DirectoryInfo(openedElement.Path);
                //Отримуємо список папок
                DirectoryInfo[] fieldDirectories = openedElementInfo.GetDirectories();
                foreach (DirectoryInfo fieldDirectory in fieldDirectories)
                    fieldElementList.Add(new Folder(fieldDirectory.Name, fieldDirectory.FullName, openedElement));
                //Отримуємо список файлів
                FileInfo[] fieldFiles = openedElementInfo.GetFiles();
                foreach (FileInfo fieldFile in fieldFiles)
                {

                    //WshShell shell = new WshShell();
                    //WshShortcut shortcut = shell.CreateShortcut(fieldFile.FullName) as WshShortcut;
                    //var temp = shortcut.TargetPath;
                    //Console.WriteLine(shortcut.TargetPath);
                    fieldElementList.Add(new File(Path.GetFileNameWithoutExtension(fieldFile.Name),
                        fieldFile.FullName, fieldFile.Extension, fieldFile.Length, openedElement));
                }
                FieldElementList = fieldElementList;
            }
            catch
            {
                MessageView.FileFolderGettingError();
                return false;
            }
            return true;
        }
Esempio n. 19
0
 /*
  * Спробувати змінити диск, тобто оновити змінну OpenedElement.
  * У разі неможливості зміни диску буде показане відповідне повідомлення,
  * стан змінної OpenedElement зберігається.
  */
 public bool SetDisk(List<Disk> disks)
 {
     IFieldElement openedElement = null;
     foreach(Disk disk in disks)
     {
         DriveInfo drive = new DriveInfo(disk.Name);
         if (drive.IsReady)
         {
             openedElement = new Disk(drive.Name, drive.Name, drive.DriveType, openedElement);
             break;
         }
     }
     if (openedElement == null)
     {
         DialogResult msgboxID = MessageView.NoAvaliableDisksMessage();
         if (msgboxID == DialogResult.Retry)
             return SetDisk(disks);
         return false;
     }
     if (UpdateField(openedElement))
     {
         OpenedElement = openedElement;
         return true;
     }
     return false;
 }
Esempio n. 20
0
 /// <summary>
 /// Performs a scalar multiplication, if possible.
 /// </summary>
 /// <param name="VectorSpaceElement">Vector Space element.</param>
 /// <param name="Scalar">Scalar element.</param>
 /// <returns>Result, if understood, null otherwise.</returns>
 public virtual IVectorSpaceElement MultiplyScalar(IFieldElement Scalar, IVectorSpaceElement VectorSpaceElement)
 {
     return(VectorSpaceElement.MultiplyScalar(Scalar));
 }
Esempio n. 21
0
 public void GoPath(string path)
 {
     if (string.IsNullOrEmpty(path) || OpenedElement.Path == path)
         return;
     if(Path.GetPathRoot(path) == path && (new DriveInfo(path).IsReady))
     {
         var openedDriveInfo = new DriveInfo(path);
         var openedElement = new Disk(openedDriveInfo.Name,
             openedDriveInfo.Name,
             openedDriveInfo.DriveType,
             OpenedElement);
         if (UpdateField(openedElement))
             OpenedElement = openedElement;
     }
     else if (Directory.Exists(path))
     {
         var openedDirectoryInfo = new DirectoryInfo(path);
         var openedElement = new Folder(openedDirectoryInfo.Name,
             openedDirectoryInfo.FullName,
             OpenedElement);
         if (UpdateField(openedElement))
             OpenedElement = openedElement;
     }
     else if(System.IO.File.Exists(path))
     {
         var openedFileInfo = new FileInfo(path);
         var openedElement = new File(
             openedFileInfo.Name,
             openedFileInfo.FullName,
             openedFileInfo.Extension,
             openedFileInfo.Length,
             OpenedElement);
         if (UpdateField(openedElement))
             OpenedElement = openedElement;
     }
 }
Esempio n. 22
0
 public bool GoForward()
 {
     if (OpenedElement.Next != null)
     {
         OpenedElement.Next.Prev = OpenedElement;
         OpenedElement = OpenedElement.Next;
         return true;
     }
     return false;
 }
Esempio n. 23
0
 public bool GoBack()
 {
     if (OpenedElement.Prev != null)
     {
         OpenedElement.Prev.Next = OpenedElement;
         OpenedElement = OpenedElement.Prev;
         return true;
     }
     return false;
 }
 public static string GetValueOrDefault(this IFieldElement fieldEle)
 {
     return(fieldEle == null ? null : fieldEle.Value);
 }
Esempio n. 25
0
 /// <summary>
 /// Tries to multiply a scalar to the current element.
 /// </summary>
 /// <param name="Scalar">Scalar to multiply.</param>
 /// <returns>Result, if understood, null otherwise.</returns>
 public override IVectorSpaceElement MultiplyScalar(IFieldElement Scalar)
 {
     return(null);
 }
Esempio n. 26
0
 IPropertyElement IPropertyElement.UseBackingField(IFieldElement backingField)
 {
     _backingField = backingField;
     return(this);
 }
Esempio n. 27
0
 /*
  * Повертає значення true, якщо потрібно оновити поле.
  */
 public bool OpenElement(int itemIndex)
 {
     bool needToUpdateField = FieldElementList[itemIndex].Open();
     if (needToUpdateField)
     {
         IFieldElement openedElement = FieldElementList[itemIndex];
         openedElement.Prev = OpenedElement;
         if (UpdateField(openedElement))
         {
             OpenedElement = openedElement;
             return true;
         }
     }
     return false;
 }
Esempio n. 28
0
 public void AddElement(IFieldElement element)
 {
     Elements.Add(element);
 }
Esempio n. 29
0
 /// <summary>
 /// Tries to multiply a scalar to the current element.
 /// </summary>
 /// <param name="Scalar">Scalar to multiply.</param>
 /// <returns>Result, if understood, null otherwise.</returns>
 public abstract IVectorSpaceElement MultiplyScalar(IFieldElement Scalar);
Esempio n. 30
0
 public void RemoveElement(IFieldElement element)
 {
     Elements.Remove(element);
 }
Esempio n. 31
0
 IPropertyElement IPropertyElement.EmitSet(Action <ILGenerator> fn)
 {
     _fnSet        = fn;
     _backingField = null;
     return(this);
 }