private void _ClearVars( )
        {
            _selectedScriptItem = null;
            _spritesTabPanel.Controls.Clear( );
            _spriteItems.Clear( );

            _selectedActorItem = null;
            _actorsTabPanel.Controls.Clear( );
            _actorItems.Clear( );

            _selectedScriptItem = null;
            _scriptsTabPanel.Controls.Clear( );
            _scriptItems.Clear( );

            _selectedFontItem = null;
            _fontsTabPanel.Controls.Clear( );
            _fontItems.Clear( );
        }
        private void ScriptAssetClicked( AssetItem sender, MouseEventArgs e )
        {
            if( _selectedScriptItem != null )
                _selectedScriptItem.DeselectMe( );

            _selectedScriptItem = sender as ScriptAssetItem;
            _selectedScriptItem.SelectMe( );

            Global.Properties.SelectObject( _selectedScriptItem.Script.Properties );

            if( e.Button == MouseButtons.Right )
            {
                _menuScriptItem.Show( sender, e.Location );
            }
        }
        public void DeleteScript( ScriptAssetItem scriptItem )
        {
            Global.ScriptEditor.CloseScript( scriptItem, true );

            Script script = scriptItem.Script;

            if( Global.World.Script == script )
                Global.World.Script = null;

            foreach( LevelEd lvl in Global.World.Levels )
            {
                if( lvl.Script == script )
                    lvl.Script = null;
            }

            foreach( ActorAssetItem actorItem in _actorItems.Values )
            {
                if( actorItem.Actor.Script == script )
                    actorItem.Actor.Script = null;
            }

            File.Delete( scriptItem.FilePath );

            _scriptsTabPanel.Controls.Remove( scriptItem );
            _scriptItems.Remove( scriptItem.AssetName );

            scriptItem.Dispose( );

            Global.MainWindow.OnScriptRemoved( );
        }
        private void AddScript( Script script )
        {
            ScriptAssetItem scriptItem = new ScriptAssetItem( script );
            _SetAssetItemProperties( scriptItem );
            scriptItem.AssetClicked += new AssetItemEventHandler( ScriptAssetClicked );
            scriptItem.AssetDoubleClicked += new AssetItemEventHandler( ScriptAssetDoubleClicked );

            _scriptsTabPanel.Controls.Add( scriptItem );
            _scriptItems.Add( script.Name, scriptItem );

            script.ScriptAdded = true;
        }
        public void AddNewScript( string name, ScriptFormat format )
        {
            string scriptName = name;
            int i = 1;
            while( _scriptItems.ContainsKey( scriptName ) )
            {
                scriptName = name + i;
                i++;
            };

            Script script = new Script( scriptName );
            script.ScriptText = GetScriptGeneratedCode( scriptName, format );
            script.ScriptType = ScriptType.CSharp;
            script.FilePath = Path.Combine( GetAssetFolder( AssetType.Script ), scriptName + GetScriptExtension( script.ScriptType ) );

            AddScript( script );

            script.Save( );

            _lastCreatedScript = script.Parent;

            Global.ScriptEditor.OpenScript( script.Parent );

            Global.MainWindow.OnScriptAdded( );
        }