public override void CopyValuesTo(SceneItem target)
        {
            base.CopyValuesTo(target);
            PostProcessAnimation ppAnim = target as PostProcessAnimation;

                        #if !XNATOUCH
            ppAnim.IceEffect = this.IceEffect;
#endif
            ppAnim.Life            = this.Life;
            ppAnim.LoopMax         = this.LoopMax;
            ppAnim.AutoPlay        = this.AutoPlay;
            ppAnim.HideWhenStopped = this.HideWhenStopped;
            for (int i = 0; i < _linearProperties.Length; i++)
            {
                this.LinearProperties[i].CopyValuesTo(ppAnim.LinearProperties[i]);
            }
        }
Example #2
0
        internal SceneItem InstanciateNewItemOfType(SceneItemType type)
        {
            SceneItem item = null;
            switch (type)
            {
                case SceneItemType.AnimatedSprite:
                    item = new AnimatedSprite();
                    AnimatedSprite animatedSprite = item as AnimatedSprite;
                    animatedSprite.Material = SceneManager.GetEmbeddedTileGridMaterial();
                    AnimationInfo newAnim = new AnimationInfo("Counting");
                    newAnim.AnimationFrames.Add(new AnimationFrame(20, "1"));
                    newAnim.AnimationFrames.Add(new AnimationFrame(20, "2"));
                    newAnim.AnimationFrames.Add(new AnimationFrame(20, "3"));
                    newAnim.AnimationFrames.Add(new AnimationFrame(20, "4"));
                    animatedSprite.AddAnimation(newAnim);
                    animatedSprite.PlayAnimation("Counting");
                    break;
                case SceneItemType.ParticleEffect:
                    item = new ParticleEffect();
                    ParticleEffect effect = item as ParticleEffect;
                    IceCream.SceneItems.ParticlesClasses.ParticleType pType = new IceCream.SceneItems.ParticlesClasses.ParticleType();
                    pType.Material = SceneManager.GetEmbeddedParticleMaterial();                    
                    effect.Emitter.ParticleTypes.Add(pType);
                    effect.Name = "New Particle Effect";
                    effect.Play();
                    break;
                case SceneItemType.PostProcessingAnimation:
                    item = new PostProcessAnimation();
                    item.Layer = 1;
                    break;
                case SceneItemType.Sprite:
                    item = new Sprite();
                    Sprite sprite = item as Sprite;
                    sprite.Name = GetNewSpriteName(); ;
                    sprite.Material = SceneManager.GetEmbeddedParticleMaterial();
                    break;
                case SceneItemType.TextItem:
                    item = new TextItem();
                    TextItem text = item as TextItem;
                    text.Name = GetNewTextItemName();
                    text.Font = SceneManager.GetEmbeddedFont("DefaultFont");
                    break;
                case SceneItemType.TileGrid:
                    item = new TileGrid();
                    TileGrid tileGrid = item as TileGrid;
                    tileGrid.Name = "New Tile Grid";
                    tileGrid.Material = SceneManager.GetEmbeddedTileGridMaterial();

                    tileGrid.TileRows = 4;
                    tileGrid.TileCols = 10;
                    tileGrid.TileSize = new Microsoft.Xna.Framework.Point(32, 32);
                    TileLayer newLayer = new TileLayer(tileGrid.TileCols, tileGrid.TileRows);
                    newLayer.Parent = tileGrid;
                    newLayer.Visible = true;
                    newLayer.Name = "Layer 1";
                    for (int tx = 0; tx < tileGrid.TileCols; tx++)
                    {
                        for (int ty = 0; ty < tileGrid.TileRows; ty++)
                        {
                            newLayer.Tiles[tx][ty].Index = 0;
                        }
                    }
                    tileGrid.TileLayers.Add(newLayer);
                    break;       
                case SceneItemType.CompositeEntity:
                    item = new CompositeEntity();
                    CompositeEntity composite = item as CompositeEntity;
                    break;
                default:
                    item = new SceneItem();
                    break;
            }
            return item;
        }
Example #3
0
        private static SceneItem LoadPostProcessAnimation(XmlNode _node, SceneBase scene)
        {
            PostProcessAnimation pp = null;
			#if !REACH
            string effectSource = _node.Attributes["effectSource"].Value;
            string effectRef = _node.Attributes["effectRef"].Value;
            if (effectSource.ToUpper() == "EMBEDDED")
            {
                foreach (var item in DrawingManager.EmbeddedIceEffects)
                {
                    if (item.Name == effectRef)
                    {
                        pp = new PostProcessAnimation(item);
                        break;
                    }
                }
            }
            if (effectSource.ToUpper() == "GLOBAL")
            {
                foreach (var item in SceneManager.GlobalDataHolder.Effects)
                {
                    if (item.Name == effectRef)
                    {
                        pp = new PostProcessAnimation(item);
                        break;
                    }
                }
            }
            if (effectSource.ToUpper() == "LOCAL")
            {
                foreach (var item in scene.Effects)
                {
                    if (item.Name == effectRef)
                    {
                        pp = new PostProcessAnimation(item);
                        break;
                    }
                }
            }


            LoadBaseSceneItem(_node, pp);
            SetIAnimationProperties(_node, pp);
            XmlNode gridsettings = _node.SelectSingleNode("Properties");
            int i = 0;
            foreach (XmlNode item in gridsettings.ChildNodes)
            {
                LinearProperty lin = new LinearProperty();
                XmlNode _linnode = item;
                lin.Description = _linnode.SelectSingleNode("Description").InnerText;
                lin.LowerBound = int.Parse(_linnode.SelectSingleNode("LowerBound").InnerText,
                    CultureInfo.InvariantCulture);
                lin.UpperBound = int.Parse(_linnode.SelectSingleNode("UpperBound").InnerText,
                    CultureInfo.InvariantCulture);

                foreach (XmlNode item1 in _linnode.SelectSingleNode("Values").ChildNodes)
                {
                    lin.Values.Add(new Vector2(
                        float.Parse(item1.SelectSingleNode("X").InnerText, CultureInfo.InvariantCulture),
                        float.Parse(item1.SelectSingleNode("Y").InnerText, CultureInfo.InvariantCulture)));
                }
                pp.LinearProperties[i] = lin;
                i++;
            }
#endif
            return pp;
        }
 public PostProcessAnimationControl()
 {
     _ppAnim = new PostProcessAnimation(_noEffect);
 }