Ejemplo n.º 1
0
        /// <summary>
        /// Recursively updates the name map for a given object, mapping an identifier to a .Net object.
        /// </summary>
        /// <param name="nameMap">The name map being constructed</param>
        /// <param name="currentObject">The object to add</param>
        private void BuildNameMap(Dictionary <String, DotNetObject> nameMap, DotNetObject currentObject)
        {
            if (currentObject == null || currentObject.GetFullName() == null)
            {
                return;
            }

            nameMap[currentObject.GetFullName()] = currentObject;
            currentObject?.Children?.ForEach(x => this.BuildNameMap(nameMap, x));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds a .Net object to the project explorer.
        /// </summary>
        /// <param name="dotNetObjectViewModel">The view model of the .Net object.</param>
        private void AddDotNetObject(DotNetObjectViewModel dotNetObjectViewModel)
        {
            DotNetObject dotNetObject = dotNetObjectViewModel.DotNetObject;
            DotNetItem   dotnetItem   = new DotNetItem(
                dotNetObject.Name,
                dotNetObject.ElementType == DataTypes.Boolean ? DataTypes.Byte : dotNetObject.ElementType,
                dotNetObject.GetFullName());

            ProjectExplorerViewModel.GetInstance().AddNewProjectItems(true, dotnetItem);
        }
Ejemplo n.º 3
0
        public void ShouldInvokeMethod()
        {
            PepsiMachine machine = new PepsiMachine();

            object obj = DotNetObject.SendMessage(new System.IO.FileInfo("NonexistentFile.txt"), "exists", null);

            Assert.IsNotNull(obj);
            Assert.IsInstanceOfType(obj, typeof(bool));
            Assert.IsFalse((bool)obj);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Adds a .Net object to the project explorer.
        /// </summary>
        /// <param name="dotNetObjectViewModel">The view model of the .Net object.</param>
        private void AddDotNetObject(DotNetObjectViewModel dotNetObjectViewModel)
        {
            DotNetObject dotNetObject = dotNetObjectViewModel.DotNetObject;
            DotNetItem   dotnetItem   = new DotNetItem(
                SessionManager.Session,
                dotNetObject.Name,
                dotNetObject.ElementType == DataTypeBase.Boolean ? DataTypeBase.Byte : dotNetObject.ElementType,
                dotNetObject.GetFullName());

            ProjectExplorerViewModel.GetInstance().AddProjectItems(dotnetItem);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Adds a .Net object to the project explorer.
        /// </summary>
        /// <param name="dotNetObjectViewModel">The view model of the .Net object.</param>
        private void AddDotNetObject(DotNetObjectViewModel dotNetObjectViewModel)
        {
            DotNetObject dotNetObject = dotNetObjectViewModel.DotNetObject;
            AddressItem  addressItem  = new AddressItem();

            addressItem.Description    = dotNetObject.Name;
            addressItem.ElementType    = dotNetObject.ElementType == typeof(Boolean) ? typeof(Byte) : dotNetObject.ElementType;
            addressItem.BaseIdentifier = dotNetObject.GetFullName();
            addressItem.ResolveType    = AddressResolver.ResolveTypeEnum.DotNet;

            ProjectExplorerViewModel.GetInstance().AddNewProjectItems(true, addressItem);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DotNetObjectViewModel" /> class.
 /// </summary>
 /// <param name="dotNetObject">The .Net object model.</param>
 /// <param name="parent">The parent to this .Net object view model.</param>
 public DotNetObjectViewModel(DotNetObject dotNetObject, TreeViewItemViewModel parent = null) : base(parent)
 {
     this.dotNetObject = dotNetObject;
     this.children     = new FullyObservableCollection <TreeViewItemViewModel>(this.DotNetObject.Children.Select(x => new DotNetObjectViewModel(x)));
     this.RaisePropertyChanged(nameof(this.Children));
 }
        internal static void GetObjectField(
            DotNetObject managedObject,
            ref ScriptComponentFieldHolder scriptComponentFieldHolder,
            string fieldName,
            int type)
        {
            Managed.RglScriptFieldType rglScriptFieldType = (Managed.RglScriptFieldType)type;
            FieldInfo fieldOfClass = Managed.GetFieldOfClass(managedObject.GetType().Name, fieldName);

            switch (rglScriptFieldType)
            {
            case Managed.RglScriptFieldType.RglSftString:
                scriptComponentFieldHolder.s = (string)fieldOfClass.GetValue((object)managedObject);
                break;

            case Managed.RglScriptFieldType.RglSftDouble:
                scriptComponentFieldHolder.d = (double)Convert.ChangeType(fieldOfClass.GetValue((object)managedObject), typeof(double));
                break;

            case Managed.RglScriptFieldType.RglSftFloat:
                scriptComponentFieldHolder.f = (float)Convert.ChangeType(fieldOfClass.GetValue((object)managedObject), typeof(float));
                break;

            case Managed.RglScriptFieldType.RglSftBool:
                bool flag = (bool)fieldOfClass.GetValue((object)managedObject);
                scriptComponentFieldHolder.b = flag ? 1 : 0;
                break;

            case Managed.RglScriptFieldType.RglSftInt:
                scriptComponentFieldHolder.i = (int)Convert.ChangeType(fieldOfClass.GetValue((object)managedObject), typeof(int));
                break;

            case Managed.RglScriptFieldType.RglSftVec3:
                Vec3 c = (Vec3)fieldOfClass.GetValue((object)managedObject);
                scriptComponentFieldHolder.v3 = new Vec3(c, c.w);
                break;

            case Managed.RglScriptFieldType.RglSftEntity:
                GameEntity gameEntity = (GameEntity)fieldOfClass.GetValue((object)managedObject);
                scriptComponentFieldHolder.entityPointer = (NativeObject)gameEntity != (NativeObject)null ? (UIntPtr)Convert.ChangeType((object)gameEntity.Pointer, typeof(UIntPtr)) : (UIntPtr)0UL;
                break;

            case Managed.RglScriptFieldType.RglSftTexture:
                Texture texture = (Texture)fieldOfClass.GetValue((object)managedObject);
                scriptComponentFieldHolder.texturePointer = (NativeObject)texture != (NativeObject)null ? (UIntPtr)Convert.ChangeType((object)texture.Pointer, typeof(UIntPtr)) : (UIntPtr)0UL;
                break;

            case Managed.RglScriptFieldType.RglSftMesh:
                MetaMesh metaMesh = (MetaMesh)fieldOfClass.GetValue((object)managedObject);
                scriptComponentFieldHolder.meshPointer = (NativeObject)metaMesh != (NativeObject)null ? (UIntPtr)Convert.ChangeType((object)metaMesh.Pointer, typeof(UIntPtr)) : (UIntPtr)0UL;
                break;

            case Managed.RglScriptFieldType.RglSftEnum:
                scriptComponentFieldHolder.enumValue = fieldOfClass.GetValue((object)managedObject).ToString();
                break;

            case Managed.RglScriptFieldType.RglSftMaterial:
                Material material = (Material)fieldOfClass.GetValue((object)managedObject);
                scriptComponentFieldHolder.materialPointer = (NativeObject)material != (NativeObject)null ? (UIntPtr)Convert.ChangeType((object)material.Pointer, typeof(UIntPtr)) : (UIntPtr)0UL;
                break;

            case Managed.RglScriptFieldType.RglSftMatrixFrame:
                MatrixFrame matrixFrame = (MatrixFrame)fieldOfClass.GetValue((object)managedObject);
                scriptComponentFieldHolder.matrixFrame = matrixFrame;
                break;
            }
        }
        internal static void SetObjectField(
            DotNetObject managedObject,
            string fieldName,
            ref ScriptComponentFieldHolder scriptComponentHolder,
            int type,
            int callFieldChangeEventAsInteger)
        {
            bool flag1 = (uint)callFieldChangeEventAsInteger > 0U;

            Managed.RglScriptFieldType rglScriptFieldType = (Managed.RglScriptFieldType)type;
            FieldInfo fieldOfClass = Managed.GetFieldOfClass(managedObject.GetType().Name, fieldName);

            switch (rglScriptFieldType)
            {
            case Managed.RglScriptFieldType.RglSftString:
                fieldOfClass.SetValue((object)managedObject, (object)scriptComponentHolder.s);
                break;

            case Managed.RglScriptFieldType.RglSftDouble:
                fieldOfClass.SetValue((object)managedObject, Convert.ChangeType((object)scriptComponentHolder.d, fieldOfClass.FieldType));
                break;

            case Managed.RglScriptFieldType.RglSftFloat:
                fieldOfClass.SetValue((object)managedObject, Convert.ChangeType((object)scriptComponentHolder.f, fieldOfClass.FieldType));
                break;

            case Managed.RglScriptFieldType.RglSftBool:
                bool flag2 = scriptComponentHolder.b > 0;
                fieldOfClass.SetValue((object)managedObject, (object)flag2);
                break;

            case Managed.RglScriptFieldType.RglSftInt:
                fieldOfClass.SetValue((object)managedObject, Convert.ChangeType((object)scriptComponentHolder.i, fieldOfClass.FieldType));
                break;

            case Managed.RglScriptFieldType.RglSftVec3:
                Vec3 vec3 = new Vec3(scriptComponentHolder.v3.x, scriptComponentHolder.v3.y, scriptComponentHolder.v3.z, scriptComponentHolder.v3.w);
                fieldOfClass.SetValue((object)managedObject, (object)vec3);
                break;

            case Managed.RglScriptFieldType.RglSftEntity:
                fieldOfClass.SetValue((object)managedObject, scriptComponentHolder.entityPointer != UIntPtr.Zero ? (object)new GameEntity(scriptComponentHolder.entityPointer) : (object)(GameEntity)null);
                break;

            case Managed.RglScriptFieldType.RglSftTexture:
                fieldOfClass.SetValue((object)managedObject, scriptComponentHolder.texturePointer != UIntPtr.Zero ? (object)new Texture(scriptComponentHolder.texturePointer) : (object)(Texture)null);
                break;

            case Managed.RglScriptFieldType.RglSftMesh:
                fieldOfClass.SetValue((object)managedObject, scriptComponentHolder.meshPointer != UIntPtr.Zero ? (object)new MetaMesh(scriptComponentHolder.meshPointer) : (object)(MetaMesh)null);
                break;

            case Managed.RglScriptFieldType.RglSftEnum:
                object obj = Enum.Parse(fieldOfClass.FieldType, scriptComponentHolder.enumValue);
                fieldOfClass.SetValue((object)managedObject, obj);
                break;

            case Managed.RglScriptFieldType.RglSftMaterial:
                fieldOfClass.SetValue((object)managedObject, scriptComponentHolder.materialPointer != UIntPtr.Zero ? (object)new Material(scriptComponentHolder.materialPointer) : (object)(Material)null);
                break;

            case Managed.RglScriptFieldType.RglSftMatrixFrame:
                MatrixFrame matrixFrame = scriptComponentHolder.matrixFrame;
                fieldOfClass.SetValue((object)managedObject, (object)matrixFrame);
                break;
            }
            if (!(rglScriptFieldType != Managed.RglScriptFieldType.RglSftButton & flag1) || !(managedObject is ScriptComponentBehaviour))
            {
                return;
            }
            ((ScriptComponentBehaviour)managedObject).OnEditorVariableChanged(fieldName);
        }