Пример #1
0
        //Draws any overlays the editor might require
        protected virtual void drawEditorOverlays()
        {
            //Border
            World world = engine.world;

            drawBorder(new Color(0, 1, 0), 2f, new Vector2[]
            {
                camera.world2Screen(new Vector2(0, 0)),
                camera.world2Screen(new Vector2(world.width * Tile.size, 0)),
                camera.world2Screen(new Vector2(world.width * Tile.size, world.height * Tile.size)),
                camera.world2Screen(new Vector2(0, world.height * Tile.size)),
                camera.world2Screen(new Vector2(0, 0)),
            });

            //Selection tiles
            if (engine.editorComponent.activeTool is SelectionTool)
            {
                engine.editorComponent.selectionTool.drawTiles();
            }

            //Selection
            if (engine.editorComponent.selectionTool.active ||
                (engine.editorComponent.fillTool.active && !engine.editorComponent.fillTool.selectionBox.isDown))
            {
                engine.editorComponent.selectionTool.drawSelection();
            }

            //Floating pic
            if (engine.editorComponent.activeTool != null &&
                engine.editorComponent.activeTool.floatingPic != null)
            {
                engine.editorComponent.activeTool.floatingPic.draw();
            }
        }
        public void drawSelection()
        {
            if (selection.topLeft == new Vector2(-1, -1))
            {
                return;
            }

            Camera camera = editor.engine.graphicsComponent.camera;

            editor.engine.graphicsComponent.drawBorder(new Color(0, 0, 1), vtx: new Vector2[]
            {
                camera.world2Screen(selection.topLeft * Tile.size),
                camera.world2Screen((selection.topRight + new Vector2(1, 0)) * Tile.size),
                camera.world2Screen((selection.bottomRight + new Vector2(1, 1)) * Tile.size),
                camera.world2Screen((selection.bottomLeft + new Vector2(0, 1)) * Tile.size),
                camera.world2Screen(selection.topLeft * Tile.size),
            });

            if (mode != Mode.paste && !(editor.fillTool.active && !editor.fillTool.selectionBox.isDown))
            {
                editor.engine.graphicsComponent.drawRect(camera.world2Screen(selection.topLeft * Tile.size), camera.world2Screen((selection.bottomRight + new Vector2(1, 1)) * Tile.size), new Color(0, 0, 1, .2f));
            }
        }