direct encode lludp terse object update, let contain texture entry

This commit is contained in:
UbitUmarov
2019-03-02 18:23:29 +00:00
parent 9da1ca2b44
commit ca1993c72d
3 changed files with 78 additions and 41 deletions

View File

@@ -3242,8 +3242,6 @@ namespace OpenSim.Region.Framework.Scenes
if (ParentGroup.Scene.GetNumberOfClients() == 0)
return;
ParentGroup.QueueForUpdateCheck();
bool isfull = false;
if (ParentGroup.IsAttachment)
{
@@ -3254,6 +3252,8 @@ namespace OpenSim.Region.Framework.Scenes
lock (UpdateFlagLock)
UpdateFlag |= update;
ParentGroup.QueueForUpdateCheck();
ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this, isfull);
}
@@ -5133,8 +5133,7 @@ namespace OpenSim.Region.Framework.Scenes
m_shape.TextureEntry = newTex.GetBytes();
TriggerScriptChangedEvent(changeFlags);
ParentGroup.HasGroupChanged = true;
ScheduleFullUpdate();
ScheduleUpdate(PrimUpdateFlags.Textures);
}
/// <summary>
@@ -5163,7 +5162,7 @@ namespace OpenSim.Region.Framework.Scenes
m_shape.TextureEntry = newTex.GetBytes();
TriggerScriptChangedEvent(changeFlags);
ParentGroup.HasGroupChanged = true;
ScheduleFullUpdate();
ScheduleUpdate(PrimUpdateFlags.Textures);
}
internal void UpdatePhysicsSubscribedEvents()
@@ -5575,20 +5574,26 @@ namespace OpenSim.Region.Framework.Scenes
// handle osVolumeDetect
public void ScriptSetVolumeDetect(bool makeVolumeDetect)
{
if(ParentGroup.IsDeleted)
return;
if(_parentID == 0)
{
// if root prim do it via SOG
// if root prim do it is like llVolumeDetect
ParentGroup.ScriptSetVolumeDetect(makeVolumeDetect);
return;
}
bool wasUsingPhysics = ((Flags & PrimFlags.Physics) != 0);
bool wasTemporary = ((Flags & PrimFlags.TemporaryOnRez) != 0);
bool wasPhantom = ((Flags & PrimFlags.Phantom) != 0);
if(ParentGroup.IsVolumeDetect)
return; // entire linkset is phantom already
bool wasUsingPhysics = ParentGroup.UsesPhysics;
bool wasTemporary = ParentGroup.IsTemporary;
bool wasPhantom = ParentGroup.IsPhantom;
if(PhysActor != null)
PhysActor.Building = true;
UpdatePrimFlags(wasUsingPhysics,wasTemporary,wasPhantom,makeVolumeDetect,false);
UpdatePrimFlags(wasUsingPhysics, wasTemporary, wasPhantom, makeVolumeDetect, false);
}
protected static int m_animationSequenceNumber = (int)(Util.GetTimeStampTicks() & 0x5fffafL);