public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { IWindowsFormsEditorService wfes = provider.GetService( typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService; if (wfes != null) { BaseAssets _baseAssets = new BaseAssets(); _baseAssets.pgID = (int)value; _baseAssets._wfes = wfes; wfes.ShowDialog(_baseAssets); value = _baseAssets.selectedID; } return(value); }
public T GetAsset <T>(BaseAssets key) where T : class { object returnObj = null; if (typeof(T) == typeof(Texture2D) && Texture2D.ContainsKey(key.ToString())) { returnObj = Texture2D[key.ToString()]; } if (typeof(T) == typeof(Texture3D) && Texture3D.ContainsKey(key.ToString())) { returnObj = Texture3D[key.ToString()]; } if (typeof(T) == typeof(Effect) && Effects.ContainsKey(key.ToString())) { returnObj = Effects[key.ToString()]; } if (returnObj == null && typeof(T) == typeof(Song) && Songs.ContainsKey(key.ToString())) { returnObj = Songs[key.ToString()]; } if (returnObj == null && typeof(T) == typeof(SoundEffect) && SoundEffects.ContainsKey(key.ToString())) { returnObj = SoundEffects[key.ToString()]; } if (returnObj == null && typeof(T) == typeof(SpriteFont) && Fonts.ContainsKey(key.ToString())) { returnObj = Fonts[key.ToString()]; } if (returnObj == null && typeof(T) == typeof(Model) && Models.ContainsKey(key.ToString())) { returnObj = Models[key.ToString()]; } if (returnObj == null && typeof(T) == typeof(TextureCube) && TextureCubes.ContainsKey(key.ToString())) { returnObj = TextureCubes[key.ToString()]; } if (returnObj == null) { switch (key) { case BaseAssets.BlankTexture: Texture2D bt = new Microsoft.Xna.Framework.Graphics.Texture2D(Game.GraphicsDevice, 1, 1); bt.SetData <Color>(new Color[] { Color.Black }); AddAsset <T>(key.ToString(), bt); returnObj = GetAsset <T>(key); break; case BaseAssets.WhiteTexture: Texture2D wt = new Microsoft.Xna.Framework.Graphics.Texture2D(Game.GraphicsDevice, 1, 1); wt.SetData <Color>(new Color[] { Color.White }); AddAsset <T>(key.ToString(), wt); returnObj = GetAsset <T>(key); break; case BaseAssets.NormalTexture: Texture2D nt = new Microsoft.Xna.Framework.Graphics.Texture2D(Game.GraphicsDevice, 1, 1); nt.SetData <Color>(new Color[] { new Color(128, 128, 255) }); AddAsset <T>(key.ToString(), nt); returnObj = GetAsset <T>(key); break; } } return((T)returnObj); }