示例#1
0
        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);
        }
示例#2
0
        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);
        }