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]); } }
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; }
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); }