add support for particle blending LSL functions

link-sitting
dahlia 2013-11-05 23:38:43 -08:00
parent e1ce3907f2
commit 709814c194
1 changed files with 15 additions and 1 deletions

View File

@ -6270,6 +6270,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
ps.BurstRate = 0.1f; ps.BurstRate = 0.1f;
ps.PartMaxAge = 10.0f; ps.PartMaxAge = 10.0f;
ps.BurstPartCount = 1; ps.BurstPartCount = 1;
ps.BlendFuncSource = ScriptBaseClass.PSYS_PART_BF_SOURCE_ALPHA;
ps.BlendFuncDest = ScriptBaseClass.PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA;
return ps; return ps;
} }
@ -6304,6 +6307,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
LSL_Vector tempv = new LSL_Vector(); LSL_Vector tempv = new LSL_Vector();
float tempf = 0; float tempf = 0;
int tmpi = 0;
for (int i = 0; i < rules.Length; i += 2) for (int i = 0; i < rules.Length; i += 2)
{ {
@ -6362,7 +6366,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
break; break;
case (int)ScriptBaseClass.PSYS_SRC_PATTERN: case (int)ScriptBaseClass.PSYS_SRC_PATTERN:
int tmpi = (int)rules.GetLSLIntegerItem(i + 1); tmpi = (int)rules.GetLSLIntegerItem(i + 1);
prules.Pattern = (Primitive.ParticleSystem.SourcePattern)tmpi; prules.Pattern = (Primitive.ParticleSystem.SourcePattern)tmpi;
break; break;
@ -6382,6 +6386,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
prules.PartFlags &= 0xFFFFFFFD; // Make sure new angle format is off. prules.PartFlags &= 0xFFFFFFFD; // Make sure new angle format is off.
break; break;
case (int)ScriptBaseClass.PSYS_PART_BLEND_FUNC_SOURCE:
tmpi = (int)rules.GetLSLIntegerItem(i + 1);
prules.BlendFuncSource = (byte)tmpi;
break;
case (int)ScriptBaseClass.PSYS_PART_BLEND_FUNC_DEST:
tmpi = (int)rules.GetLSLIntegerItem(i + 1);
prules.BlendFuncDest = (byte)tmpi;
break;
case (int)ScriptBaseClass.PSYS_SRC_TEXTURE: case (int)ScriptBaseClass.PSYS_SRC_TEXTURE:
prules.Texture = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, rules.GetLSLStringItem(i + 1)); prules.Texture = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, rules.GetLSLStringItem(i + 1));
break; break;