Merge branch 'master' of ssh://melanie@3dhosting.de/var/git/careminster into careminster

avinationmerge
Melanie 2009-12-23 21:25:08 +00:00
commit 165f193f78
1 changed files with 85 additions and 29 deletions

View File

@ -221,7 +221,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public List<SceneObjectPart> GetLinkParts(int linkType) public List<SceneObjectPart> GetLinkParts(int linkType)
{ {
List<SceneObjectPart> ret = new List<SceneObjectPart>(); List<SceneObjectPart> ret = new List<SceneObjectPart>();
if (m_host == null || m_host.ParentGroup == null || m_host.ParentGroup.IsDeleted)
return ret;
ret.Add(m_host); ret.Add(m_host);
switch (linkType) switch (linkType)
@ -1136,7 +1138,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
public void llSetStatus(int status, int value) public void llSetStatus(int status, int value)
{ {
if (m_host == null || m_host.ParentGroup == null || m_host.ParentGroup.IsDeleted)
return;
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
int statusrotationaxis = 0; int statusrotationaxis = 0;
@ -1290,7 +1294,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetScale(SceneObjectPart part, LSL_Vector scale) protected void SetScale(SceneObjectPart part, LSL_Vector scale)
{ {
// TODO: this needs to trigger a persistance save as well // TODO: this needs to trigger a persistance save as well
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return; return;
@ -1349,7 +1353,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetColor(SceneObjectPart part, LSL_Vector color, int face) protected void SetColor(SceneObjectPart part, LSL_Vector color, int face)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
Primitive.TextureEntry tex = part.Shape.Textures; Primitive.TextureEntry tex = part.Shape.Textures;
Color4 texcolor; Color4 texcolor;
if (face >= 0 && face < GetNumberOfSides(part)) if (face >= 0 && face < GetNumberOfSides(part))
@ -1386,7 +1393,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
public void SetTexGen(SceneObjectPart part, int face,int style) public void SetTexGen(SceneObjectPart part, int face,int style)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
Primitive.TextureEntry tex = part.Shape.Textures; Primitive.TextureEntry tex = part.Shape.Textures;
MappingType textype; MappingType textype;
textype = MappingType.Default; textype = MappingType.Default;
@ -1416,7 +1426,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
public void SetGlow(SceneObjectPart part, int face, float glow) public void SetGlow(SceneObjectPart part, int face, float glow)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
Primitive.TextureEntry tex = part.Shape.Textures; Primitive.TextureEntry tex = part.Shape.Textures;
if (face >= 0 && face < GetNumberOfSides(part)) if (face >= 0 && face < GetNumberOfSides(part))
{ {
@ -1441,7 +1454,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
public void SetShiny(SceneObjectPart part, int face, int shiny, Bumpiness bump) public void SetShiny(SceneObjectPart part, int face, int shiny, Bumpiness bump)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
Shininess sval = new Shininess(); Shininess sval = new Shininess();
@ -1491,7 +1506,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
public void SetFullBright(SceneObjectPart part, int face, bool bright) public void SetFullBright(SceneObjectPart part, int face, bool bright)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
Primitive.TextureEntry tex = part.Shape.Textures; Primitive.TextureEntry tex = part.Shape.Textures;
if (face >= 0 && face < GetNumberOfSides(part)) if (face >= 0 && face < GetNumberOfSides(part))
{ {
@ -1558,7 +1576,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetAlpha(SceneObjectPart part, double alpha, int face) protected void SetAlpha(SceneObjectPart part, double alpha, int face)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
Primitive.TextureEntry tex = part.Shape.Textures; Primitive.TextureEntry tex = part.Shape.Textures;
Color4 texcolor; Color4 texcolor;
if (face >= 0 && face < GetNumberOfSides(part)) if (face >= 0 && face < GetNumberOfSides(part))
@ -1603,8 +1624,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
/// <param name="Force"></param> /// <param name="Force"></param>
protected void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, protected void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction,
float wind, float tension, LSL_Vector Force) float wind, float tension, LSL_Vector Force)
{ {
if (part == null) if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return; return;
if (flexi) if (flexi)
@ -1638,8 +1659,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
/// <param name="radius"></param> /// <param name="radius"></param>
/// <param name="falloff"></param> /// <param name="falloff"></param>
protected void SetPointLight(SceneObjectPart part, bool light, LSL_Vector color, float intensity, float radius, float falloff) protected void SetPointLight(SceneObjectPart part, bool light, LSL_Vector color, float intensity, float radius, float falloff)
{ {
if (part == null) if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return; return;
if (light) if (light)
@ -1724,7 +1745,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetTexture(SceneObjectPart part, string texture, int face) protected void SetTexture(SceneObjectPart part, string texture, int face)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
UUID textureID=new UUID(); UUID textureID=new UUID();
if (!UUID.TryParse(texture, out textureID)) if (!UUID.TryParse(texture, out textureID))
@ -1769,7 +1793,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void ScaleTexture(SceneObjectPart part, double u, double v, int face) protected void ScaleTexture(SceneObjectPart part, double u, double v, int face)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
Primitive.TextureEntry tex = part.Shape.Textures; Primitive.TextureEntry tex = part.Shape.Textures;
if (face >= 0 && face < GetNumberOfSides(part)) if (face >= 0 && face < GetNumberOfSides(part))
{ {
@ -1805,7 +1832,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void OffsetTexture(SceneObjectPart part, double u, double v, int face) protected void OffsetTexture(SceneObjectPart part, double u, double v, int face)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
Primitive.TextureEntry tex = part.Shape.Textures; Primitive.TextureEntry tex = part.Shape.Textures;
if (face >= 0 && face < GetNumberOfSides(part)) if (face >= 0 && face < GetNumberOfSides(part))
{ {
@ -1841,7 +1871,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void RotateTexture(SceneObjectPart part, double rotation, int face) protected void RotateTexture(SceneObjectPart part, double rotation, int face)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
Primitive.TextureEntry tex = part.Shape.Textures; Primitive.TextureEntry tex = part.Shape.Textures;
if (face >= 0 && face < GetNumberOfSides(part)) if (face >= 0 && face < GetNumberOfSides(part))
{ {
@ -1911,7 +1944,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetPos(SceneObjectPart part, LSL_Vector targetPos) protected void SetPos(SceneObjectPart part, LSL_Vector targetPos)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
// Capped movemment if distance > 10m (http://wiki.secondlife.com/wiki/LlSetPos) // Capped movemment if distance > 10m (http://wiki.secondlife.com/wiki/LlSetPos)
LSL_Vector currentPos = llGetLocalPos(); LSL_Vector currentPos = llGetLocalPos();
@ -2005,7 +2041,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetRot(SceneObjectPart part, Quaternion rot) protected void SetRot(SceneObjectPart part, Quaternion rot)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
part.UpdateRotation(rot); part.UpdateRotation(rot);
// Update rotation does not move the object in the physics scene if it's a linkset. // Update rotation does not move the object in the physics scene if it's a linkset.
@ -6499,8 +6538,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist) protected ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist)
{ {
ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock();
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return shapeBlock;
if (holeshape != (int)ScriptBaseClass.PRIM_HOLE_DEFAULT && if (holeshape != (int)ScriptBaseClass.PRIM_HOLE_DEFAULT &&
holeshape != (int)ScriptBaseClass.PRIM_HOLE_CIRCLE && holeshape != (int)ScriptBaseClass.PRIM_HOLE_CIRCLE &&
@ -6569,7 +6610,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector taper_b, LSL_Vector topshear, byte fudge) protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector taper_b, LSL_Vector topshear, byte fudge)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
ObjectShapePacket.ObjectDataBlock shapeBlock; ObjectShapePacket.ObjectDataBlock shapeBlock;
shapeBlock = SetPrimitiveBlockShapeParams(part, holeshape, cut, hollow, twist); shapeBlock = SetPrimitiveBlockShapeParams(part, holeshape, cut, hollow, twist);
@ -6617,7 +6661,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector dimple, byte fudge) protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector dimple, byte fudge)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
ObjectShapePacket.ObjectDataBlock shapeBlock; ObjectShapePacket.ObjectDataBlock shapeBlock;
shapeBlock = SetPrimitiveBlockShapeParams(part, holeshape, cut, hollow, twist); shapeBlock = SetPrimitiveBlockShapeParams(part, holeshape, cut, hollow, twist);
@ -6658,7 +6705,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector holesize, LSL_Vector topshear, LSL_Vector profilecut, LSL_Vector taper_a, float revolutions, float radiusoffset, float skew, byte fudge) protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector holesize, LSL_Vector topshear, LSL_Vector profilecut, LSL_Vector taper_a, float revolutions, float radiusoffset, float skew, byte fudge)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
ObjectShapePacket.ObjectDataBlock shapeBlock; ObjectShapePacket.ObjectDataBlock shapeBlock;
shapeBlock = SetPrimitiveBlockShapeParams(part, holeshape, cut, hollow, twist); shapeBlock = SetPrimitiveBlockShapeParams(part, holeshape, cut, hollow, twist);
@ -6778,7 +6828,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetPrimitiveShapeParams(SceneObjectPart part, string map, int type) protected void SetPrimitiveShapeParams(SceneObjectPart part, string map, int type)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock();
UUID sculptId; UUID sculptId;
@ -6812,14 +6865,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
public void llSetPrimitiveParams(LSL_List rules) public void llSetPrimitiveParams(LSL_List rules)
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
SetPrimParams(m_host, rules); SetPrimParams(m_host, rules);
} }
public void llSetLinkPrimitiveParams(int linknumber, LSL_List rules) public void llSetLinkPrimitiveParams(int linknumber, LSL_List rules)
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
List<SceneObjectPart> parts = GetLinkParts(linknumber); List<SceneObjectPart> parts = GetLinkParts(linknumber);
@ -6828,7 +6881,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
protected void SetPrimParams(SceneObjectPart part, LSL_List rules) protected void SetPrimParams(SceneObjectPart part, LSL_List rules)
{ {
if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
return;
int idx = 0; int idx = 0;
while (idx < rules.Length) while (idx < rules.Length)