Ejemplo n.º 1
0
        /// <summary>
        /// Loads a texture from a file
        /// </summary>
        /// <param name="filename">The file from which to get the texture</param>
        /// <returns>If it loaded the texture correctly</returns>
        public bool Load(string filename)
        {
            FileStream   fs = new FileStream(filename, FileMode.Open);
            BinaryReader br = new BinaryReader(fs);

            //Read the size
            int sizex = br.ReadInt32();
            int sizey = br.ReadInt32();

            this.Scale(sizex, sizey);              //Scale to new size
            ComponentEditor.ModifyAll(this, null); //And clear

            //Read textures
            int totalPixels = br.ReadInt32();

            for (int i = 0; i < totalPixels; i++)
            {
                int          x = br.ReadInt32();
                int          y = br.ReadInt32();
                char         c = (char)br.ReadInt32();
                ConsoleColor f = (ConsoleColor)br.ReadInt32();
                ConsoleColor b = (ConsoleColor)br.ReadInt32();
                Contents[x, y] = new Pixel(c, f, b);
            }
            return(true);
        }
Ejemplo n.º 2
0
        public override PropertyDescriptor[] GetProperties(ComponentEditor editor, object converter)
        {
            MemberInfo groupInfo  = Strong.MemberInfo((SelectDisplayFieldsBehaviour x) => x.Group);
            MemberInfo field1Info = Strong.MemberInfo((SelectDisplayFieldsBehaviour x) => x.Field1);
            MemberInfo field2Info = Strong.MemberInfo((SelectDisplayFieldsBehaviour x) => x.Field2);

            List <PropertyDescriptor> descriptors = new List <PropertyDescriptor>();

            descriptors.Add(new PropertyDescriptor("Group", editor.Components, groupInfo)
            {
                ValueChangedCallback = () => editor.BuildEditor()
            });

            IEnumerable <FieldGroup> groups = editor.Components.Where(component => component != null).OfType <SelectDisplayFieldsBehaviour>().Select(behavior => behavior.Group).Distinct();

            foreach (FieldGroup group in groups)
            {
                switch (group)
                {
                case FieldGroup.Group1:
                    descriptors.Add(new PropertyDescriptor("Field1", editor.Components, field1Info));
                    break;

                case FieldGroup.Group2:
                    descriptors.Add(new PropertyDescriptor("Field2", editor.Components, field2Info));
                    break;
                }
            }

            return(descriptors.ToArray());
        }
        public override PropertyDescriptor[] GetProperties(ComponentEditor editor, object converter)
        {
            MemberInfo groupInfo  = Strong.MemberInfo((SelectDisplayFieldsBehaviour x) => x.Group);
            MemberInfo field1Info = Strong.MemberInfo((SelectDisplayFieldsBehaviour x) => x.Field1);
            MemberInfo field2Info = Strong.MemberInfo((SelectDisplayFieldsBehaviour x) => x.Field2);

            List <PropertyDescriptor> descriptors = new List <PropertyDescriptor>();

            descriptors.Add(new PropertyDescriptor("Group", editor.Component, groupInfo)
            {
                ValueChangedCallback = () => editor.BuildEditor()
            });

            SelectDisplayFieldsBehaviour behaviour = (SelectDisplayFieldsBehaviour)editor.Component;

            switch (behaviour.Group)
            {
            case FieldGroup.Group1:
                descriptors.Add(new PropertyDescriptor("Field1", editor.Component, field1Info));
                break;

            case FieldGroup.Group2:
                descriptors.Add(new PropertyDescriptor("Field2", editor.Component, field2Info));
                break;
            }

            return(descriptors.ToArray());
        }
Ejemplo n.º 4
0
        /// <include file='doc\DesignerPackage.uex' path='docs/doc[@for="DesignerPackage.ShowComponentEditor"]/*' />
        /// <devdoc>
        ///     Attempts to display a ComponentDesigner for a component.  ComponenentDesigners
        ///     are similar to property pages from COM.
        ///
        ///     If the component does not support component designers, and InvalidArgumentException is thrown.  To
        ///     avoid this, be sure to call CanShowComponentDesigner first.
        /// </devdoc>
        public bool ShowComponentEditor(object component, IWin32Window parent)
        {
            object obj = component;

            // sburke, 5.22.200, why are we preventing vs calls for all custom type descriptors?
            // I think we should be preventing the vs call for all non-native
            // ICustomTypeDescriptor objects...
            //
            bool preventVsCall = false;

            if (obj is ICustomTypeDescriptor)
            {
                obj           = ((ICustomTypeDescriptor)obj).GetPropertyOwner(null);
                preventVsCall = !Marshal.IsComObject(obj);
            }

            IVsPropertyPageFrame pVsPageFrame = (IVsPropertyPageFrame)GetService((typeof(IVsPropertyPageFrame)));

            if (!preventVsCall && pVsPageFrame != null && Marshal.IsComObject(obj))
            {
                if (NativeMethods.S_OK == pVsPageFrame.ShowFrame(Guid.Empty))
                {
                    return(true);
                }
            }

            try {
                ComponentEditor editor = (ComponentEditor)TypeDescriptor.GetEditor(obj, typeof(ComponentEditor));
                if (editor != null)
                {
                    if (editor is WindowsFormsComponentEditor)
                    {
                        return(((WindowsFormsComponentEditor)editor).EditComponent(obj, GetDialogOwnerWindow()));
                    }
                    else
                    {
                        return(editor.EditComponent(obj));
                    }
                }
            }
            catch (Exception) {
                return(false);
            }

            return(false);
        }
Ejemplo n.º 5
0
        public bool ShowComponentEditor(object component, IWin32Window parent)
        {
            bool            result          = false;
            ComponentEditor componentEditor = (ComponentEditor)TypeDescriptor.GetEditor(component, typeof(ComponentEditor));

            if (componentEditor != null)
            {
                WindowsFormsComponentEditor windowsFormsComponentEditor = componentEditor as WindowsFormsComponentEditor;
                if (windowsFormsComponentEditor != null)
                {
                    if (parent == null)
                    {
                        parent = this.GetDialogOwnerWindow();
                    }
                    result = windowsFormsComponentEditor.EditComponent(component, parent);
                }
                else
                {
                    result = componentEditor.EditComponent(component);
                }
            }
            return(result);
        }
        private bool CreateComponentEditor(List <Component> components)
        {
            if (components.Count == 0)
            {
                return(false);
            }

            Component component     = components[0];
            Type      componentType = component.GetType();

            if (m_editorsMap.IsObjectEditorEnabled(componentType))
            {
                GameObject editorPrefab = m_editorsMap.GetObjectEditor(componentType);
                if (editorPrefab != null)
                {
                    ComponentEditor componentEditorPrefab = editorPrefab.GetComponent <ComponentEditor>();
                    if (componentEditorPrefab != null)
                    {
                        ComponentEditor editor = Instantiate(componentEditorPrefab);
                        editor.EndEditCallback = () =>
                        {
                            UpdatePreviews(components);
                        };
                        editor.transform.SetParent(ComponentsPanel, false);
                        editor.Components = components.ToArray();
                        return(true);
                    }
                    else
                    {
                        Debug.LogErrorFormat("editor prefab {0} does not have ComponentEditor script", editorPrefab.name);
                        return(false);
                    }
                }
            }

            return(false);
        }
Ejemplo n.º 7
0
        public bool CanShowComponentEditor(object component)
        {
            ComponentEditor componentEditor = (ComponentEditor)TypeDescriptor.GetEditor(component, typeof(ComponentEditor));

            return(null != componentEditor);
        }
Ejemplo n.º 8
0
 public virtual void Render(int TickTime)
 {
     ComponentEditor.Clear(this);
     ComponentEditor.WriteString(this, _VisibleText, 0, 0, SizeX, SizeY);
 }
 public override PropertyDescriptor[] GetProperties(ComponentEditor editor, object converter)
 {
     return(new PropertyDescriptor[0]);
 }
        public override PropertyDescriptor[] GetProperties(ComponentEditor editor, object converter)
        {
            ILocalization lc = IOC.Resolve <ILocalization>();

            bool overrideVoxelSize = editor.NotNullComponents.OfType <NavMeshSurface>().All(nms => nms.overrideVoxelSize);
            bool overrideTileSize  = editor.NotNullComponents.OfType <NavMeshSurface>().All(nms => nms.overrideTileSize);

            MemberInfo agentTypeInfo         = Strong.MemberInfo((NavMeshSurface x) => x.agentTypeID);
            MemberInfo collectObjectsInfo    = Strong.MemberInfo((NavMeshSurface x) => x.collectObjects);
            MemberInfo useGeometryInfo       = Strong.MemberInfo((NavMeshSurface x) => x.useGeometry);
            MemberInfo defaultAreaInfo       = Strong.MemberInfo((NavMeshSurface x) => x.defaultArea);
            MemberInfo overrideVoxelSizeInfo = Strong.MemberInfo((NavMeshSurface x) => x.overrideVoxelSize);
            MemberInfo voxelSizeInfo         = Strong.MemberInfo((NavMeshSurface x) => x.voxelSize);
            MemberInfo overrideTileSizeInfo  = Strong.MemberInfo((NavMeshSurface x) => x.overrideTileSize);
            MemberInfo tileSizeInfo          = Strong.MemberInfo((NavMeshSurface x) => x.tileSize);
            MemberInfo buildHightMesh        = Strong.MemberInfo((NavMeshSurface x) => x.buildHeightMesh);

            MethodInfo bakeMethodInfo  = Strong.MethodInfo((NavMeshSurface x) => x.BuildNavMesh());
            MethodInfo clearMethodInfo = Strong.MethodInfo((NavMeshSurface x) => x.RemoveData());

            int settingsCount = NavMesh.GetSettingsCount();

            RangeOptions.Option[] agentTypes = new RangeOptions.Option[settingsCount];
            for (int i = 0; i < settingsCount; ++i)
            {
                var id   = NavMesh.GetSettingsByIndex(i).agentTypeID;
                var name = NavMesh.GetSettingsNameFromID(id);
                agentTypes[i] = new RangeOptions.Option(name, id);
            }

            List <PropertyDescriptor> descriptors = new List <PropertyDescriptor>();

            descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_AgentType"), editor.Components, agentTypeInfo)
            {
                Range = new RangeOptions(agentTypes)
            });
            descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_CollectObjects"), editor.Components, collectObjectsInfo));
            descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_UseGeometry"), editor.Components, useGeometryInfo));
            descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_DefaultArea"), editor.Components, defaultAreaInfo));
            descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_OverrideVoxelSize"), editor.Components, overrideVoxelSizeInfo)
            {
                ValueChangedCallback = () => editor.BuildEditor()
            });
            if (overrideVoxelSize)
            {
                descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_VoxelSize"), editor.Components, voxelSizeInfo));
            }
            descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_OverrideTileSize"), editor.Components, overrideTileSizeInfo)
            {
                ValueChangedCallback = () => editor.BuildEditor()
            });

            if (overrideTileSize)
            {
                descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_TileSize"), editor.Components, tileSizeInfo));
            }
            descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_BuildHeightMesh"), editor.Components, buildHightMesh));
            descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_Bake"), editor.Components, bakeMethodInfo)
            {
                ValueChangedCallback = () => editor.BuildEditor()
            });
            descriptors.Add(new PropertyDescriptor(lc.GetString("ID_RTNavigation_NavMeshAgentComponentDescriptor_Clear"), editor.Components, clearMethodInfo)
            {
                ValueChangedCallback = () => editor.BuildEditor()
            });

            return(descriptors.ToArray());
        }
Ejemplo n.º 11
0
 private void ribbonButtonComponentEditorOpen_Click(object sender, EventArgs e)
 {
     ComponentEditor cm = new ComponentEditor();
     cm.Show(this);
 }
Ejemplo n.º 12
0
 public override void Render(int TickTime)
 {
     base.Render(TickTime);
     ComponentEditor.ModifyBoarders(this);
 }
Ejemplo n.º 13
0
 private void componentsToolStripMenuItem_Click(object sender, EventArgs e)
 {
     ComponentEditor ce = new ComponentEditor((GameObject)SelectedNode.Tag);
     ce.Show();
 }
Ejemplo n.º 14
0
        private void treeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (e.Node.Parent == null) return;

            HandleOpenFile(e.Node);

            if(e.Node.Tag is GameObject)
            {
                ComponentEditor ce = new ComponentEditor((GameObject)e.Node.Tag);
                ce.Show();
            }
        }
Ejemplo n.º 15
0
 public static CustomComponentEditor CustomEditor(ComponentEditor visitor)
 {
     return(new CustomComponentEditor {
         Visitor = visitor
     });
 }