示例#1
0
文件: Canvas.cs 项目: SteveDunn/oglr
        void startCreatingEntity(IEntityCreationProperties properties, bool addToCanvasNow)
        {
            if (_model.Level.ActiveLayer == null)
            {
                MessageBox.Show(Resources.No_Layer);

                return;
            }

            _userActionInEditor = UserActionInEditor.AddingAnItem;

            _mainForm.SetCursorForCanvas(Cursors.Cross);

            _entityCreation.StartedCreating    = addToCanvasNow;
            _entityCreation.CreationProperties = properties;

            var extensibility = ObjectFactory.GetInstance <IExtensibility>( );

            var plugin = extensibility.FindPluginInstanceForType(properties.PluginType);

            var newEditor = (ItemEditor)Activator.CreateInstance(plugin.EditorType);

            newEditor.WhenChosenFromToolbox( );

            if (addToCanvasNow)
            {
                newEditor.CreateInDesignMode(_model.Level.ActiveLayer, _entityCreation.CreationProperties);
                _entityCreation.CurrentEditor = newEditor;
            }
        }
示例#2
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _polygon = new Vector2[4];

            ParentLayer = parentLayer;

            string fullPath = null;            // creationProperties.Parameters[@"FullPath"];

            initialiseTexture(fullPath);

            _properties = new TexturedHullProperties
            {
                //todo: need filename
                Position = MouseStatus.WorldPosition,
                TexturePathRelativeToContentRoot = makeRelativePath(new PathToFolder(parentLayer.ParentLevel.ContentRootFolder), fullPath),
                CustomProperties = new CustomProperties( ),
                Visible          = true,
                Scale            = Vector2.One,
                TintColor        = Color.White,
            };

            _properties.Origin = getTextureOrigin( );

            WhenUpdatedByUi( );
        }
示例#3
0
        public override void CreateInDesignMode(
            LayerEditor parentLayer,
            IEntityCreationProperties creationProperties)
        {
            _polygon = new Vector2[4];

            ParentLayer = parentLayer;

            var tCreationProperties = (TextureCreationProperties)creationProperties;

            string fullPath = tCreationProperties.PathToTexture;

            tryInitialiseTexture(fullPath);

            // ReSharper disable UseObjectOrCollectionInitializer
            _properties = new TextureItemProperties
                          // ReSharper restore UseObjectOrCollectionInitializer
            {
                Position = MouseStatus.WorldPosition,
                TexturePathRelativeToContentRoot = ObjectFactory.GetInstance <IDisk>().MakeRelativePath(parentLayer.ParentLevel.ContentRootFolder, fullPath),
                CustomProperties = new CustomProperties(),
                Visible          = true,
                Scale            = Vector2.One,
                TintColor        = Color.White,
            };

            _properties.Origin = getTextureOrigin();

            WhenUpdatedByUi();
        }
示例#4
0
        public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
        {
            var handler = new ShapeDragDropHandler(entityCreationProperties);

            //move the 'EntityCreationProperties' into here and pass this method some context, e.g. the editor
            //so it can get the zoom level/store the last handler settings etc.
            return handler;
        }
示例#5
0
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     return(new LambdaDrivenDragDropHandler(
                DragDropEffects.Move,
                whenEnteringEditor: whenEnteringEditor,
                whenDraggingOverEditor: whenDraggingOverEditor,
                whenDroppedOntoEditor: whenDroppedOntoEditor));
 }
示例#6
0
        public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
        {
            var handler = new ShapeDragDropHandler(entityCreationProperties);

            //move the 'EntityCreationProperties' into here and pass this method some context, e.g. the editor
            //so it can get the zoom level/store the last handler settings etc.
            return(handler);
        }
示例#7
0
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     return new LambdaDrivenDragDropHandler(
         DragDropEffects.Move,
         whenEnteringEditor: whenEnteringEditor,
         whenDraggingOverEditor: whenDraggingOverEditor,
         whenDroppedOntoEditor: whenDroppedOntoEditor );
 }
示例#8
0
文件: Canvas.cs 项目: SteveDunn/oglr
        ItemEditor buildPrimitiveEditorReadyForDesigning(IEntityCreationProperties creationProperties)
        {
            var extensibility = ObjectFactory.GetInstance <IExtensibility>( );

            var editor = extensibility.GetNewEditor(creationProperties.PluginType);

            editor.CreateInDesignMode(_model.Level.ActiveLayer, creationProperties);

            return(editor);
        }
示例#9
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer;

            _properties          = fromRectangle(Rectangle.Empty);
            _properties.Position = MouseStatus.WorldPosition;
            _properties.Visible  = true;
            _properties.Opacity  = 1f;
            _properties.Scale    = Vector2.One;
            _properties.Rotation = 0f;

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Rectangle_Entered);

            WhenUpdatedByUi();
        }
示例#10
0
    protected string GetEntityName <T>(IEntityCreationProperties metadata)
    {
        string entityName = metadata?.EntityName;

        if (string.IsNullOrEmpty(entityName))
        {
            entityName = typeof(T).Name;
        }

        if (metadata != null && metadata.ShouldPluralizeEntityName)
        {
            entityName = EnglishPluralizationService.Pluralize(entityName);
        }

        return(entityName);
    }
示例#11
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _editorMode = ItemEditorMode.Creating;

            Vector2 mouseWorldPos = MouseStatus.WorldPosition;

            _properties = new ConvexHullProperties
            {
                Visible     = true,
                Position    = mouseWorldPos,
                WorldPoints = new List <Vector2>(),
                LocalPoints = new List <Vector2>(),
                Opacity     = 1f,
            };

            ParentLayer = parentLayer;

            var shapeSelectionForm = new ShapeSelectionForm(
                v =>
            {
                _properties.WorldPoints.Clear( );
                _properties.LocalPoints.Clear( );

                v.ForEach(vt => addWorldPoint(mouseWorldPos + vt));

                WhenUpdatedByUi( );
            })
            {
                TopLevel = true
            };

            shapeSelectionForm.FormClosed +=
                (s, e) =>
            {
                if (shapeSelectionForm.Action == DialogResult.OK)
                {
                    _editorMode = ItemEditorMode.Created;

                    PreviewEndedReadyForCreation(this, EventArgs.Empty);
                }
            };

            shapeSelectionForm.Show();

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.PreShapedHull_Entered);
        }
示例#12
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer;

            _properties = new CircularHullProperties
            {
                Visible   = true,
                Position  = MouseStatus.WorldPosition,
                Radius    = 10f,
                Scale     = Vector2.One,
                Opacity   = 1f,
                Sides     = 10,
                FillColor = Color.Black
            };

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Circle_Started);
        }
示例#13
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer;

            _properties = new LightProperties
            {
                Visible     = true,
                IsOn        = true,
                Range       = 100f,
                Color       = Color.White,
                FieldOfView = MathHelper.TwoPi,
                Intensity   = 1,
                ShadowType  = convertShadowType(ShadowType.Solid),
                Position    = MouseStatus.WorldPosition,
                TextureSize = 128
            };
        }
示例#14
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer;

            _properties = new CircleItemProperties
            {
                Visible   = true,
                Position  = MouseStatus.WorldPosition,
                Radius    = 0f,
                FillColor = Constants.Instance.ColorPrimitives
            };

            if (creationProperties.TriggeredBy == UiAction.Dragging)
            {
                _properties.Radius = Constants.Instance.GridSpacing.X;
            }

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Circle_Started);
        }
示例#15
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer;

            _properties = fromRectangle(Rectangle.Empty);

            if (creationProperties.TriggeredBy == UiAction.Dragging)
            {
                var size = calculateDefaultSizeOfNewlyCreatedItem();
                _properties.Width  = size.X;
                _properties.Height = size.Y;
            }

            _properties.Position = MouseStatus.WorldPosition;

            _properties.Visible   = true;
            _properties.FillColor = Constants.Instance.ColorPrimitives;

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Rectangle_Started);

            WhenUpdatedByUi();
        }
示例#16
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _editorMode = ItemEditorMode.Creating;

            Vector2 mouseWorldPos = MouseStatus.WorldPosition;

            _properties = new ConvexHullProperties
            {
                Visible     = true,
                Position    = mouseWorldPos,
                WorldPoints = new List <Vector2>(),
                LocalPoints = new List <Vector2>(),
                Opacity     = 1f,
            };

            addWorldPoint(mouseWorldPos);

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Path_Entered);

            ParentLayer = parentLayer;

            WhenUpdatedByUi(  );
        }
示例#17
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _editorMode = ItemEditorMode.Creating;

            Vector2 mouseWorldPos = MouseStatus.WorldPosition;

            _properties = new PathItemProperties
            {
                Visible     = true,
                Position    = mouseWorldPos,
                WorldPoints = new List <Vector2>(),
                LocalPoints = new List <Vector2>(),
                LineWidth   = Constants.Instance.DefaultPathItemLineWidth,
                LineColor   = Constants.Instance.ColorPrimitives
            };

            addWorldPoint(mouseWorldPos);

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Path_Started);

            ParentLayer = parentLayer;

            WhenUpdatedByUi(  );
        }
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     return new BehaviourDragDropHandler( buildBehaviour );
 }
示例#19
0
        public virtual void CreateReadyForDroppingOntoCanvas(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer ;

            _properties = fromRectangle( Rectangle.Empty ) ;

            _properties.Position = MouseStatus.WorldPosition ;

            Vector2 size = calculateDefaultSizeOfNewlyCreatedItem();

            _properties.Width = size.X;
            _properties.Height = size.Y;
            _properties.Visible = true ;
            _properties.FillColor = Constants.Instance.ColorPrimitives ;

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Rectangle_DragDrop);

            WhenUpdatedByUi();
        }
示例#20
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer ;

            _properties = fromRectangle( Rectangle.Empty ) ;

            if (creationProperties.TriggeredBy == UiAction.Dragging)
            {
                var size = calculateDefaultSizeOfNewlyCreatedItem();
                _properties.Width = size.X;
                _properties.Height = size.Y;
            }

            _properties.Position = MouseStatus.WorldPosition ;

            _properties.Visible = true ;
            _properties.FillColor = Constants.Instance.ColorPrimitives ;

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Rectangle_Started);

            WhenUpdatedByUi();
        }
示例#21
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer ;

            _properties= new CircularHullProperties
                {
                    Visible=true,
                    Position = MouseStatus.WorldPosition,
                    Radius = 10f,
                    Scale = Vector2.One,
                    Opacity = 1f,
                    Sides = 10,
                    FillColor = Color.Black
                } ;

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Circle_Started);
        }
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     return(new BehaviourDragDropHandler(buildBehaviour));
 }
示例#23
0
 public ShapeDragDropHandler( IEntityCreationProperties entityCreationProperties)
 {
     _entityCreationProperties = entityCreationProperties;
 }
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _editorMode = ItemEditorMode.Creating ;

            Vector2 mouseWorldPos = MouseStatus.WorldPosition ;

            _properties = new PathItemProperties
                {
                    Visible = true,
                    Position = mouseWorldPos,
                    WorldPoints = new List<Vector2>(),
                    LocalPoints = new List<Vector2>(),
                    LineWidth = Constants.Instance.DefaultPathItemLineWidth,
                    LineColor = Constants.Instance.ColorPrimitives
                } ;

            addWorldPoint( mouseWorldPos );

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Path_Started);

            ParentLayer = parentLayer ;

            WhenUpdatedByUi(  );
        }
示例#25
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer ;

            _properties = fromRectangle( Rectangle.Empty ) ;
            _properties.Position = MouseStatus.WorldPosition ;
            _properties.Visible = true ;
            _properties.Opacity = 1f ;
            _properties.Scale = Vector2.One ;
            _properties.Rotation = 0f ;

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Rectangle_Entered);

            WhenUpdatedByUi();
        }
示例#26
0
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     return(new ShapeDragDropHandler(entityCreationProperties));
 }
示例#27
0
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     return(new TextureDragDropHandler(entityCreationProperties as TextureCreationProperties));
 }
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _polygon = new Vector2[ 4 ] ;

            ParentLayer = parentLayer ;

            string fullPath = null;// creationProperties.Parameters[@"FullPath"];

            initialiseTexture( fullPath ) ;

            _properties = new TexturedHullProperties
                {
                    //todo: need filename
                    Position = MouseStatus.WorldPosition,
                    TexturePathRelativeToContentRoot = makeRelativePath( new PathToFolder( parentLayer.ParentLevel.ContentRootFolder), fullPath ),
                    CustomProperties = new CustomProperties( ),
                    Visible = true,
                    Scale = Vector2.One,
                    TintColor = Color.White,
                } ;

            _properties.Origin = getTextureOrigin( ) ;

            WhenUpdatedByUi( ) ;
        }
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer ;

            _properties= new LightProperties
                {
                    Visible=true,
                    IsOn = true,
                    Range=100f,
                    Color=Color.White,
                    FieldOfView = MathHelper.TwoPi,
                    Intensity = 1,
                    ShadowType = convertShadowType( ShadowType.Solid),
                    Position = MouseStatus.WorldPosition,
                    TextureSize = 128
                } ;
        }
示例#30
0
 /// <summary>
 /// Called when the user starts creating something, e.g. a Rectangle will have a position but no height or width as this is
 /// set when the user moves the pointer around.
 /// Another example is the Path object.  This initially just has 1 point (that start point) and 
 /// the user add points by clicking around.
 /// </summary>
 /// <param name="parentLayer"></param>
 /// <param name="creationProperties"></param>
 public abstract void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties);
示例#31
0
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     throw new NotImplementedException();
 }
示例#32
0
        public virtual void CreateReadyForDroppingOntoCanvas(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer;

            _properties = fromRectangle(Rectangle.Empty);

            _properties.Position = MouseStatus.WorldPosition;

            Vector2 size = calculateDefaultSizeOfNewlyCreatedItem();

            _properties.Width     = size.X;
            _properties.Height    = size.Y;
            _properties.Visible   = true;
            _properties.FillColor = Constants.Instance.ColorPrimitives;

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Rectangle_DragDrop);

            WhenUpdatedByUi();
        }
示例#33
0
文件: Canvas.cs 项目: SteveDunn/oglr
        void startCreatingEntity( IEntityCreationProperties properties, bool addToCanvasNow )
        {
            if( _model.Level.ActiveLayer == null )
            {
                MessageBox.Show( Resources.No_Layer ) ;

                return ;
            }

            _userActionInEditor = UserActionInEditor.AddingAnItem ;

            _mainForm.SetCursorForCanvas( Cursors.Cross ) ;

            _entityCreation.StartedCreating = addToCanvasNow ;
            _entityCreation.CreationProperties = properties ;

            var extensibility = ObjectFactory.GetInstance<IExtensibility>( ) ;

            var plugin = extensibility.FindPluginInstanceForType( properties.PluginType ) ;

            var newEditor = (ItemEditor) Activator.CreateInstance( plugin.EditorType ) ;

            newEditor.WhenChosenFromToolbox( ) ;

            if (addToCanvasNow)
            {
                newEditor.CreateInDesignMode( _model.Level.ActiveLayer, _entityCreation.CreationProperties ) ;
                _entityCreation.CurrentEditor = newEditor;
            }
        }
示例#34
0
文件: Canvas.cs 项目: SteveDunn/oglr
        ItemEditor buildPrimitiveEditorReadyForDesigning( IEntityCreationProperties creationProperties )
        {
            var extensibility = ObjectFactory.GetInstance<IExtensibility>( ) ;

            var editor = extensibility.GetNewEditor(creationProperties.PluginType);

            editor.CreateInDesignMode( _model.Level.ActiveLayer, creationProperties ) ;

            return editor ;
        }
示例#35
0
文件: Canvas.cs 项目: SteveDunn/oglr
 public void StartCreatingEntityAfterNextClick(IEntityCreationProperties properties)
 {
     startCreatingEntity( properties, false );
 }
示例#36
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _editorMode = ItemEditorMode.Creating ;

            Vector2 mouseWorldPos = MouseStatus.WorldPosition ;

            _properties = new ConvexHullProperties
                {
                    Visible = true,
                    Position = mouseWorldPos,
                    WorldPoints = new List<Vector2>(),
                    LocalPoints = new List<Vector2>(),
                    Opacity = 1f,
                } ;

            ParentLayer = parentLayer ;

            var shapeSelectionForm = new ShapeSelectionForm(
                v =>
                    {
                        _properties.WorldPoints.Clear( ) ;
                        _properties.LocalPoints.Clear( ) ;

                        v.ForEach( vt => addWorldPoint( mouseWorldPos + vt ) ) ;

                        WhenUpdatedByUi( ) ;
                    } )
                {
                    TopLevel = true
                } ;

            shapeSelectionForm.FormClosed+=
                ( s, e ) =>
                    {
                        if(shapeSelectionForm.Action==DialogResult.OK)
                        {
                            _editorMode=ItemEditorMode.Created;

                            PreviewEndedReadyForCreation( this, EventArgs.Empty ) ;
                        }
                    } ;

            shapeSelectionForm.Show() ;

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.PreShapedHull_Entered);
        }
示例#37
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _editorMode = ItemEditorMode.Creating ;

            Vector2 mouseWorldPos = MouseStatus.WorldPosition ;

            _properties = new ConvexHullProperties
                {
                    Visible = true,
                    Position = mouseWorldPos,
                    WorldPoints = new List<Vector2>(),
                    LocalPoints = new List<Vector2>(),
                    Opacity = 1f,
                } ;

            addWorldPoint( mouseWorldPos );

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Path_Entered);

            ParentLayer = parentLayer ;

            WhenUpdatedByUi(  );
        }
示例#38
0
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     return new ShapeDragDropHandler(entityCreationProperties);
 }
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            ParentLayer = parentLayer ;

            _properties= new CircleItemProperties
                {
                    Visible=true,
                    Position = MouseStatus.WorldPosition,
                    Radius = 0f,
                    FillColor = Constants.Instance.ColorPrimitives
                } ;

            if (creationProperties.TriggeredBy == UiAction.Dragging)
            {
                _properties.Radius = Constants.Instance.GridSpacing.X;
            }

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Circle_Started);
        }
示例#40
0
 /// <summary>
 /// Called when the user starts creating something, e.g. a Rectangle will have a position but no height or width as this is
 /// set when the user moves the pointer around.
 /// Another example is the Path object.  This initially just has 1 point (that start point) and
 /// the user add points by clicking around.
 /// </summary>
 /// <param name="parentLayer"></param>
 /// <param name="creationProperties"></param>
 public abstract void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties);
示例#41
0
 public ShapeDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     _entityCreationProperties = entityCreationProperties;
 }
示例#42
0
文件: Canvas.cs 项目: SteveDunn/oglr
 public EntityCreation StartCreatingEntityNow(IEntityCreationProperties properties)
 {
     startCreatingEntity(properties, true);
     return(_entityCreation);
 }
示例#43
0
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     return new TextureDragDropHandler( entityCreationProperties as TextureCreationProperties);
 }
示例#44
0
文件: Canvas.cs 项目: SteveDunn/oglr
 public EntityCreation StartCreatingEntityNow(IEntityCreationProperties properties)
 {
     startCreatingEntity( properties, true );
     return _entityCreation;
 }
示例#45
0
 public IHandleDragDrop CreateDragDropHandler(IEntityCreationProperties entityCreationProperties)
 {
     throw new NotImplementedException();
 }
示例#46
0
文件: Canvas.cs 项目: SteveDunn/oglr
 public void StartCreatingEntityAfterNextClick(IEntityCreationProperties properties)
 {
     startCreatingEntity(properties, false);
 }