* Remove responsibilty for signalling scene object change from SceneObjectPart.SendFullUpdate()

* This means that we will no longer pointlessly repersist all the prims in the scene when OpenSim first starts up
* This also means that force-update on the console will not trigger repersistence.
* Also, in other places persistence is no longer done where it wasn't actually necessary
* I think I changed the code for all instances correctly, but it's not possible that I missed some and some things which did persist properly have stopped
* Please patch or mantis if this is the case
This commit is contained in:
Justin Clarke Casey
2008-06-27 16:36:19 +00:00
parent cea6e03ae0
commit 9bf67201c3
6 changed files with 97 additions and 13 deletions

View File

@@ -1058,6 +1058,19 @@ namespace OpenSim.Region.ScriptEngine.Common
}
}
/// <summary>
/// Set flexi parameters of a part.
///
/// FIXME: Much of this code should probably be within the part itself.
/// </summary>
/// <param name="part"></param>
/// <param name="flexi"></param>
/// <param name="softness"></param>
/// <param name="gravity"></param>
/// <param name="friction"></param>
/// <param name="wind"></param>
/// <param name="tension"></param>
/// <param name="Force"></param>
private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction,
float wind, float tension, LSL_Types.Vector3 Force)
{
@@ -1097,14 +1110,26 @@ namespace OpenSim.Region.ScriptEngine.Common
if (needs_fakedelete)
{
if (part.ParentGroup != null)
{
{
part.ParentGroup.FakeDeleteGroup();
}
}
part.ParentGroup.HasGroupChanged = true;
part.ScheduleFullUpdate();
}
/// <summary>
/// Set a light point on a part
///
/// FIXME: Much of this code should probably be in SceneObjectGroup
/// </summary>
/// <param name="part"></param>
/// <param name="light"></param>
/// <param name="color"></param>
/// <param name="intensity"></param>
/// <param name="radius"></param>
/// <param name="falloff"></param>
private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff)
{
if (part == null)
@@ -1125,6 +1150,7 @@ namespace OpenSim.Region.ScriptEngine.Common
part.Shape.LightEntry = false;
}
part.ParentGroup.HasGroupChanged = true;
part.ScheduleFullUpdate();
}
@@ -1583,7 +1609,7 @@ namespace OpenSim.Region.ScriptEngine.Common
m_host.SoundGain = volume;
m_host.SoundFlags = 1; // looping
m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable?
m_host.ScheduleFullUpdate();
m_host.SendFullUpdateToAllClients();
}

View File

@@ -911,6 +911,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
/// <summary>
/// Set flexi parameters of a part.
///
/// FIXME: Much of this code should probably be within the part itself.
/// </summary>
/// <param name="part"></param>
/// <param name="flexi"></param>
/// <param name="softness"></param>
/// <param name="gravity"></param>
/// <param name="friction"></param>
/// <param name="wind"></param>
/// <param name="tension"></param>
/// <param name="Force"></param>
private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction,
float wind, float tension, LSL_Types.Vector3 Force)
{
@@ -955,9 +968,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
part.ParentGroup.HasGroupChanged = true;
part.ScheduleFullUpdate();
}
/// <summary>
/// Set a light point on a part
///
/// FIXME: Much of this code should probably be in SceneObjectGroup
/// </summary>
/// <param name="part"></param>
/// <param name="light"></param>
/// <param name="color"></param>
/// <param name="intensity"></param>
/// <param name="radius"></param>
/// <param name="falloff"></param>
private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff)
{
if (part == null)
@@ -978,11 +1003,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.Shape.LightEntry = false;
}
part.ParentGroup.HasGroupChanged = true;
part.ScheduleFullUpdate();
}
public LSL_Types.Vector3 llGetColor(int face)
{
m_host.AddScriptLPS(1);