private void SpriteAssetClicked( AssetItem sender, MouseEventArgs e ) { if( _selectedSpriteItem != null ) _selectedSpriteItem.DeselectMe( ); _selectedSpriteItem = sender as SpriteAssetItem; _selectedSpriteItem.SelectMe( ); Global.Properties.SelectObject( _selectedSpriteItem.Sprite.Properties ); if( e.Button == MouseButtons.Right ) { _spriteItemContextMenu.Show( sender, e.Location ); } }
private void AddSprite( SpriteEd sprite ) { SpriteAssetItem spriteItem = new SpriteAssetItem( sprite ); _SetAssetItemProperties( spriteItem ); spriteItem.AssetName = sprite.Name; spriteItem.AssetClicked += new AssetItemEventHandler( SpriteAssetClicked ); _spritesTabPanel.Controls.Add( spriteItem ); _spriteItems.Add( sprite.Name, spriteItem ); sprite.SpriteAdded = true; }
public void Initialize( string[] spritePaths, string[] scriptPaths, string[] actorPaths, string[] fontPaths ) { if( !_isReset ) { #if( DEBUG ) throw new Exception( "Initialize cannot be called without Reset( ) being called first!" ); #else return; #endif } if( !Directory.Exists( GetAssetFolder( AssetType.Sprite ) ) ) Directory.CreateDirectory( GetAssetFolder( AssetType.Sprite ) ); if( !Directory.Exists( GetAssetFolder( AssetType.Actor ) ) ) Directory.CreateDirectory( GetAssetFolder( AssetType.Actor ) ); if( !Directory.Exists( GetAssetFolder( AssetType.Script ) ) ) Directory.CreateDirectory( GetAssetFolder( AssetType.Script ) ); if( !Directory.Exists( GetAssetFolder( AssetType.Font ) ) ) Directory.CreateDirectory( GetAssetFolder( AssetType.Font ) ); SpriteAssetItem noSpriteItem = new SpriteAssetItem( Helper.GetSpriteFromImage( Global.GraphicsDevice, Properties.Resources.NoSprite ) ); noSpriteItem.Visible = false; _spritesTab.Controls.Add( noSpriteItem ); _LoadAssets( spritePaths, scriptPaths, actorPaths, fontPaths ); }
private void AddActorFromSprite( SpriteAssetItem spriteItem ) { string actorName = spriteItem.AssetName; while( _actorItems.ContainsKey( actorName ) ) { if( MessageBox.Show( Global.EditorTxt.ActorTypeWithSameNameExistsError + "\n" + Global.EditorTxt.ChooseNewNameMsg, "", MessageBoxButtons.YesNo, MessageBoxIcon.Question ) == DialogResult.Yes ) Helper.InputBox( Global.EditorTxt.NewActorTypeMsg, Global.EditorTxt.ActorTypeTypeNewName, ref actorName ); else return; } ActorTypeEd actor = new ActorTypeEd( ); actor.Name = actorName; actor.Tags = new string[] { actorName }; actor.Scale = 1f; actor.Rotation = 0f; actor.SpriteAsset = spriteItem; actor.Origin = new Microsoft.Xna.Framework.Vector2( spriteItem.Sprite.Width * 0.5f, spriteItem.Sprite.Height * 0.5f ); actor.IsTextActor = false; actor.Text = ""; actor.TextColor = Microsoft.Xna.Framework.Graphics.Color.White; actor.FilePath = Path.Combine( GetAssetFolder( AssetType.Actor ), actor.Name + Consts.Files.ACTORTYPE_EXTENSION ); actor.Save( ); AddActor( actor ); Global.MainWindow.OnAssetAdded( ); }
public void DeleteSprite( SpriteAssetItem spriteItem ) { try { foreach( ActorAssetItem actorItem in _actorItems.Values ) { if( actorItem.Actor.SpriteAsset == spriteItem ) { actorItem.Actor.SpriteAsset = NoSpriteItem; actorItem.UpdateAssetThumbnail( ); actorItem.Actor.Save( ); } } _spritesTabPanel.Controls.Remove( spriteItem ); _spriteItems.Remove( spriteItem.Sprite.Name ); File.Delete( spriteItem.FilePath ); spriteItem.Sprite.Dispose( ); spriteItem.Dispose( ); Global.MainWindow.OnAssetRemoved( ); } catch( Exception e ) { ErrorReport.Throw( e ); } }