/// <summary> /// /// </summary> /// <param name="line"></param> /// <param name="affector"></param> private void ParseAffectorAttrib(string line, ParticleAffector affector) { string[] values = line.Split(new char[] { ' ' }, 2); if (!(affector.SetParam(values[0], values[1]))) { ParseHelper.LogParserError(values[0], affector.Type, "Command not found."); } }
public virtual void CopyTo(ParticleAffector affector) { // loop through all registered commands and copy from this instance to the target instance foreach (var key in this.commandTable.Keys) { // get the value of the param from this instance var val = ((IPropertyCommand)this.commandTable[key]).Get(this); // set the param on the target instance affector.SetParam(key, val); } }
/// <summary> /// /// </summary> /// <param name="emitter"></param> public virtual void CopyTo(ParticleAffector affector) { // loop through all registered commands and copy from this instance to the target instance foreach (DictionaryEntry entry in commandTable) { string name = (string)entry.Key; // get the value of the param from this instance string val = ((ICommand)entry.Value).Get(this); // set the param on the target instance affector.SetParam(name, val); } }
/// <summary> /// /// </summary> /// <param name="affector"></param> public virtual void CopyTo( ParticleAffector affector ) { // loop through all registered commands and copy from this instance to the target instance foreach ( string key in commandTable.Keys ) { // get the value of the param from this instance string val = ( (IPropertyCommand)commandTable[ key ] ).Get( this ); // set the param on the target instance affector.SetParam( key, val ); } }
/// <summary> /// /// </summary> /// <param name="line"></param> /// <param name="affector"></param> private void ParseAffectorAttrib(string line, ParticleAffector affector) { string[] values = line.Split(new char[] {' '}, 2); if(!(affector.SetParam(values[0], values[1]))) { ParseHelper.LogParserError(values[0], affector.Type, "Command not found."); } }
/// <see cref="Translator.Translate"/> public override void Translate( ScriptCompiler compiler, AbstractNode node ) { ObjectAbstractNode obj = (ObjectAbstractNode)node; // Must have a type as the first value if ( obj.Values.Count == 0 ) { compiler.AddError( CompileErrorCode.StringExpected, obj.File, obj.Line ); return; } string type = string.Empty; if ( !getString( obj.Values[ 0 ], out type ) ) { compiler.AddError( CompileErrorCode.InvalidParameters, obj.File, obj.Line ); return; } ParticleSystem system = (ParticleSystem)obj.Parent.Context; _Affector = system.AddAffector( type ); foreach ( AbstractNode i in obj.Children ) { if ( i is PropertyAbstractNode ) { PropertyAbstractNode prop = (PropertyAbstractNode)i; string value = string.Empty; // Glob the values together foreach ( AbstractNode it in prop.Values ) { if ( it is AtomAbstractNode ) { if ( string.IsNullOrEmpty( value ) ) value = ( (AtomAbstractNode)it ).Value; else value = value + " " + ( (AtomAbstractNode)it ).Value; } else { compiler.AddError( CompileErrorCode.InvalidParameters, prop.File, prop.Line ); break; } } if ( !_Affector.SetParam( prop.Name, value ) ) { compiler.AddError( CompileErrorCode.InvalidParameters, prop.File, prop.Line ); } } else { _processNode( compiler, i ); } } }
/// <summary> /// /// </summary> /// <param name="emitter"></param> public virtual void CopyTo(ParticleAffector affector) { // loop through all registered commands and copy from this instance to the target instance foreach(DictionaryEntry entry in commandTable) { string name = (string)entry.Key; // get the value of the param from this instance string val = ((ICommand)entry.Value).Get(this); // set the param on the target instance affector.SetParam(name, val); } }