public GameObjectEditor()
{
consoleWrapper = new Console(1, 1);
consoleWrapper.Renderer = new LayeredTextRenderer();
consoleWrapper.MouseHandler = ProcessMouse;
consoleWrapper.CanUseKeyboard = false;
consoleWrapper.MouseMove += (o, e) => { toolsPanel.SelectedTool?.MouseMoveSurface(e.OriginalMouseInfo, textSurface); };
consoleWrapper.MouseEnter += (o, e) => { toolsPanel.SelectedTool?.MouseEnterSurface(e.OriginalMouseInfo, textSurface); };
consoleWrapper.MouseExit += (o, e) => { toolsPanel.SelectedTool?.MouseExitSurface(e.OriginalMouseInfo, textSurface); };
toolsPanel = new ToolsPanel();
animationPanel = new AnimationsPanel(SelectedAnimationChanged);
gameObjectNamePanel = new GameObjectNamePanel();
framesPanel = new AnimationFramesPanel(SelectedFrameChanged);
// Fill tools
tools = new Dictionary<string, Tools.ITool>();
tools.Add(Tools.PaintTool.ID, new Tools.PaintTool());
tools.Add(Tools.LineTool.ID, new Tools.LineTool());
tools.Add(Tools.CircleTool.ID, new Tools.CircleTool());
tools.Add(Tools.RecolorTool.ID, new Tools.RecolorTool());
tools.Add(Tools.FillTool.ID, new Tools.FillTool());
tools.Add(Tools.BoxTool.ID, new Tools.BoxTool());
tools.Add(Tools.SelectionTool.ID, new Tools.SelectionTool());
tools.Add(Tools.EntityCenterTool.ID, new Tools.EntityCenterTool());
toolsPanel.ToolsListBox.Items.Add(tools[Tools.EntityCenterTool.ID]);
toolsPanel.ToolsListBox.Items.Add(tools[Tools.PaintTool.ID]);
toolsPanel.ToolsListBox.Items.Add(tools[Tools.LineTool.ID]);
toolsPanel.ToolsListBox.Items.Add(tools[Tools.CircleTool.ID]);
toolsPanel.ToolsListBox.Items.Add(tools[Tools.RecolorTool.ID]);
toolsPanel.ToolsListBox.Items.Add(tools[Tools.FillTool.ID]);
toolsPanel.ToolsListBox.Items.Add(tools[Tools.BoxTool.ID]);
toolsPanel.ToolsListBox.Items.Add(tools[Tools.SelectionTool.ID]);
toolsPanel.ToolsListBox.SelectedItemChanged += ToolsListBox_SelectedItemChanged;
panels = new CustomPanel[] { gameObjectNamePanel, animationPanel, framesPanel, toolsPanel };
}