Merge branch 'dev_kitty_debug' into dev_kitty
commit
9ee4a7e9f3
|
@ -978,6 +978,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
//save script state and stop script instances
|
//save script state and stop script instances
|
||||||
m_scene.EventManager.TriggerOnSymmetricSyncStop();
|
m_scene.EventManager.TriggerOnSymmetricSyncStop();
|
||||||
}
|
}
|
||||||
|
m_synced = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1059,11 +1060,10 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
{
|
{
|
||||||
syncConnector.StartCommThreads();
|
syncConnector.StartCommThreads();
|
||||||
AddSyncConnector(syncConnector);
|
AddSyncConnector(syncConnector);
|
||||||
|
m_synced = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_synced = true;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2145,8 +2145,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// Make sure no child prim is set for sale
|
// Make sure no child prim is set for sale
|
||||||
// So that, on delink, no prims are unwittingly
|
// So that, on delink, no prims are unwittingly
|
||||||
// left for sale and sold off
|
// left for sale and sold off
|
||||||
child.RootPart.ObjectSaleType = 0;
|
//SYMMETRIC SYNC: need to copy value w/o trigger UpdateBucketSyncInfo
|
||||||
child.RootPart.SalePrice = 10;
|
//child.RootPart.ObjectSaleType = 0;
|
||||||
|
//child.RootPart.SalePrice = 10;
|
||||||
|
child.RootPart.SetObjectSaleType(0);
|
||||||
|
child.RootPart.SetSalePrice(10);
|
||||||
childGroups.Add(child);
|
childGroups.Add(child);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3694,6 +3694,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
//Similar actions with DelinkFromGroup, except that m_scene.AddNewSceneObjectBySync is called
|
//Similar actions with DelinkFromGroup, except that m_scene.AddNewSceneObjectBySync is called
|
||||||
|
//!!!!!!!!!!!!!!!!!!NOTE!!!!!!!!!!!!!!!
|
||||||
|
//All SOP properties below is set through calling SetXXX(value) instead of by "XXX=value", as such a value is being changed due to sync (
|
||||||
|
//i.e. triggered by remote operation instead of by local operation
|
||||||
public SceneObjectGroup DelinkFromGroupBySync(SceneObjectPart linkPart, bool sendEvents)
|
public SceneObjectGroup DelinkFromGroupBySync(SceneObjectPart linkPart, bool sendEvents)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
|
@ -3714,7 +3717,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (parts.Length == 1 && RootPart != null)
|
if (parts.Length == 1 && RootPart != null)
|
||||||
{
|
{
|
||||||
// Single prim left
|
// Single prim left
|
||||||
RootPart.LinkNum = 0;
|
//RootPart.LinkNum = 0;
|
||||||
|
RootPart.SetLinkNum(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -3722,13 +3726,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
SceneObjectPart part = parts[i];
|
SceneObjectPart part = parts[i];
|
||||||
if (part.LinkNum > linkPart.LinkNum)
|
if (part.LinkNum > linkPart.LinkNum)
|
||||||
part.LinkNum--;
|
{
|
||||||
|
//part.LinkNum--;
|
||||||
|
part.SetLinkNum(part.LinkNum--);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
linkPart.ParentID = 0;
|
//linkPart.ParentID = 0;
|
||||||
linkPart.LinkNum = 0;
|
//linkPart.LinkNum = 0;
|
||||||
|
linkPart.SetParentID(0);
|
||||||
|
linkPart.SetLinkNum(0);
|
||||||
|
|
||||||
if (linkPart.PhysActor != null)
|
if (linkPart.PhysActor != null)
|
||||||
{
|
{
|
||||||
|
@ -3742,11 +3751,15 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
Vector3 axPos = linkPart.OffsetPosition;
|
Vector3 axPos = linkPart.OffsetPosition;
|
||||||
|
|
||||||
axPos *= parentRot;
|
axPos *= parentRot;
|
||||||
linkPart.OffsetPosition = new Vector3(axPos.X, axPos.Y, axPos.Z);
|
//linkPart.OffsetPosition = new Vector3(axPos.X, axPos.Y, axPos.Z);
|
||||||
linkPart.GroupPosition = AbsolutePosition + linkPart.OffsetPosition;
|
//linkPart.GroupPosition = AbsolutePosition + linkPart.OffsetPosition;
|
||||||
linkPart.OffsetPosition = new Vector3(0, 0, 0);
|
//linkPart.OffsetPosition = new Vector3(0, 0, 0);
|
||||||
|
//linkPart.RotationOffset = worldRot;
|
||||||
|
|
||||||
linkPart.RotationOffset = worldRot;
|
linkPart.SetOffsetPosition(new Vector3(axPos.X, axPos.Y, axPos.Z));
|
||||||
|
linkPart.SetGroupPosition(AbsolutePosition + linkPart.OffsetPosition);
|
||||||
|
linkPart.SetOffsetPosition(new Vector3(0, 0, 0));
|
||||||
|
linkPart.SetRotationOffset(worldRot);
|
||||||
|
|
||||||
SceneObjectGroup objectGroup = new SceneObjectGroup(linkPart);
|
SceneObjectGroup objectGroup = new SceneObjectGroup(linkPart);
|
||||||
|
|
||||||
|
|
|
@ -608,12 +608,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
public uint InventorySerial
|
public uint InventorySerial
|
||||||
{
|
{
|
||||||
get { return m_inventory.Serial; }
|
get { return m_inventory.Serial; }
|
||||||
set { m_inventory.Serial = value; }
|
set
|
||||||
|
{
|
||||||
|
SetInventorySerial(value);
|
||||||
|
UpdateBucketSyncInfo("InventorySerial");
|
||||||
|
//m_inventory.Serial = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//SYMMETRIC SYNC: implemented to be consistent with other properties. "m_inventory.Serial" set function will trigger UpdateBucketSyncInfo if appropriate
|
//SYMMETRIC SYNC: implemented to be consistent with other properties. "m_inventory.Serial" set function will trigger UpdateBucketSyncInfo,
|
||||||
|
//hence in SetInventorySerial we will call m_inventory.SetSerial to avoid triggering UpdateBucketSyncInfo().
|
||||||
public void SetInventorySerial(uint value)
|
public void SetInventorySerial(uint value)
|
||||||
{
|
{
|
||||||
m_inventory.Serial = value;
|
m_inventory.SetSerial(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <value>
|
/// <value>
|
||||||
|
@ -622,12 +628,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
public TaskInventoryDictionary TaskInventory
|
public TaskInventoryDictionary TaskInventory
|
||||||
{
|
{
|
||||||
get { return m_inventory.Items; }
|
get { return m_inventory.Items; }
|
||||||
set { m_inventory.Items = value; }
|
set
|
||||||
|
{
|
||||||
|
//SetTaskInventory(value);
|
||||||
|
//UpdateBucketSyncInfo("TaskInventory");
|
||||||
|
//SYMMETRIC SYNC: "m_inventory.Items" set function will trigger UpdateBucketSyncInfo if appropriate
|
||||||
|
m_inventory.Items = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//SYMMETRIC SYNC: implemented to be consistent with other properties. "m_inventory.Items" set function will trigger UpdateBucketSyncInfo if appropriate
|
//SYMMETRIC SYNC: implemented to be consistent with updating values of other properties (w/o triggering UpdateBucketSyncInfo);
|
||||||
public void SetTaskInventory(TaskInventoryDictionary value)
|
public void SetTaskInventory(TaskInventoryDictionary value)
|
||||||
{
|
{
|
||||||
m_inventory.Items = value;
|
m_inventory.SetItems(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1227,7 +1239,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
SetAcceleration(value);
|
SetAcceleration(value);
|
||||||
UpdateBucketSyncInfo("Acceleration");
|
//UpdateBucketSyncInfo("Acceleration");
|
||||||
//m_acceleration = value;
|
//m_acceleration = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1243,7 +1255,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
SetDescription(value);
|
SetDescription(value);
|
||||||
UpdateBucketSyncInfo("Description");
|
//UpdateBucketSyncInfo("Description");
|
||||||
/*
|
/*
|
||||||
m_description = value;
|
m_description = value;
|
||||||
PhysicsActor actor = PhysActor;
|
PhysicsActor actor = PhysActor;
|
||||||
|
@ -1274,7 +1286,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
SetColor(value);
|
SetColor(value);
|
||||||
UpdateBucketSyncInfo("Color");
|
//UpdateBucketSyncInfo("Color");
|
||||||
//m_color = value;
|
//m_color = value;
|
||||||
|
|
||||||
/* ScheduleFullUpdate() need not be called b/c after
|
/* ScheduleFullUpdate() need not be called b/c after
|
||||||
|
@ -1303,7 +1315,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
SetText(value, false);
|
SetText(value, false);
|
||||||
UpdateBucketSyncInfo("Text");
|
//UpdateBucketSyncInfo("Text");
|
||||||
//m_text = value;
|
//m_text = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1321,7 +1333,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
SetSitName(value);
|
SetSitName(value);
|
||||||
UpdateBucketSyncInfo("SitName");
|
//UpdateBucketSyncInfo("SitName");
|
||||||
//m_sitName = value;
|
//m_sitName = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1369,7 +1381,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
SetClickAction(value);
|
SetClickAction(value);
|
||||||
UpdateBucketSyncInfo("ClickAction");
|
//UpdateBucketSyncInfo("ClickAction");
|
||||||
//m_clickAction = value;
|
//m_clickAction = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1606,6 +1618,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
get { return _parentID; }
|
get { return _parentID; }
|
||||||
set { _parentID = value; }
|
set { _parentID = value; }
|
||||||
}
|
}
|
||||||
|
//SYMMETRIC SYNC: defined for consistency, for calling SetXXX in sync operations
|
||||||
|
public void SetParentID(uint value)
|
||||||
|
{
|
||||||
|
_parentID = value;
|
||||||
|
}
|
||||||
|
|
||||||
public int CreationDate
|
public int CreationDate
|
||||||
{
|
{
|
||||||
|
@ -5913,6 +5930,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
//private static Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>();
|
//private static Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>();
|
||||||
private Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>();
|
private Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>();
|
||||||
|
|
||||||
|
//Define this as a guard to not to fill in any sync info when not desired, i.e. while de-serializing and building SOP and SOG, where
|
||||||
|
//property set functions will be called and might trigger UpdateBucketSyncInfo() if not guarded carefully.
|
||||||
|
private bool m_syncEnabled = false;
|
||||||
|
|
||||||
public static void InitializeBucketInfo(Dictionary<string, string> propertyBucketMap, List<string> bucketNames, string actorID)
|
public static void InitializeBucketInfo(Dictionary<string, string> propertyBucketMap, List<string> bucketNames, string actorID)
|
||||||
{
|
{
|
||||||
m_primPropertyBucketMap = propertyBucketMap;
|
m_primPropertyBucketMap = propertyBucketMap;
|
||||||
|
@ -5965,8 +5986,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
SetMaterial(updatedPart.Material);
|
SetMaterial(updatedPart.Material);
|
||||||
SetPassTouches(updatedPart.PassTouches);
|
SetPassTouches(updatedPart.PassTouches);
|
||||||
//RegionHandle skipped
|
//RegionHandle skipped
|
||||||
|
SetScriptAccessPin(updatedPart.ScriptAccessPin);
|
||||||
|
|
||||||
|
//SetAcceleration(updatedPart.Acceleration);
|
||||||
|
//SetDescription(updatedPart.Description);
|
||||||
|
//SetColor(updatedPart.Color);
|
||||||
|
//SetText(updatedPart.Text);
|
||||||
|
//SetSitName(updatedPart.SitName);
|
||||||
|
|
||||||
|
SetTouchName(updatedPart.TouchName);
|
||||||
|
SetLinkNum(updatedPart.LinkNum);
|
||||||
|
//SetClickAction(updatedPart.ClickAction);
|
||||||
|
|
||||||
SetShape(updatedPart.Shape);
|
SetShape(updatedPart.Shape);
|
||||||
|
|
||||||
m_bucketSyncInfoList[bucketName].LastUpdateTimeStamp = updatedPart.BucketSyncInfoList[bucketName].LastUpdateTimeStamp;
|
m_bucketSyncInfoList[bucketName].LastUpdateTimeStamp = updatedPart.BucketSyncInfoList[bucketName].LastUpdateTimeStamp;
|
||||||
|
@ -6040,6 +6071,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
RegisterBucketUpdateProcessor();
|
RegisterBucketUpdateProcessor();
|
||||||
m_BucketUpdateProcessorRegistered = true;
|
m_BucketUpdateProcessorRegistered = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_syncEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -6048,7 +6081,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name="propertyName">Name of the property. Make sure the spelling is consistent with what are defined in PropertyList</param>
|
/// <param name="propertyName">Name of the property. Make sure the spelling is consistent with what are defined in PropertyList</param>
|
||||||
public void UpdateBucketSyncInfo(string propertyName)
|
public void UpdateBucketSyncInfo(string propertyName)
|
||||||
{
|
{
|
||||||
if (m_bucketSyncInfoList != null && m_bucketSyncInfoList.Count>0)
|
if (m_syncEnabled && m_bucketSyncInfoList != null && m_bucketSyncInfoList.Count>0)
|
||||||
{
|
{
|
||||||
//int bucketIndex = m_primPropertyBucketMap[propertyName];
|
//int bucketIndex = m_primPropertyBucketMap[propertyName];
|
||||||
string bucketName = m_primPropertyBucketMap[propertyName];
|
string bucketName = m_primPropertyBucketMap[propertyName];
|
||||||
|
|
|
@ -85,7 +85,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
//SYMMETRIC SYNC
|
//SYMMETRIC SYNC
|
||||||
protected void SetSerial(uint value)
|
public void SetSerial(uint value)
|
||||||
{
|
{
|
||||||
m_inventorySerial = value;
|
m_inventorySerial = value;
|
||||||
|
|
||||||
|
@ -100,6 +100,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
SetItems(value);
|
SetItems(value);
|
||||||
|
m_inventorySerial++;
|
||||||
m_part.UpdateBucketSyncInfo("TaskInventory");
|
m_part.UpdateBucketSyncInfo("TaskInventory");
|
||||||
m_part.UpdateBucketSyncInfo("InventorySerial");
|
m_part.UpdateBucketSyncInfo("InventorySerial");
|
||||||
//m_items = value;
|
//m_items = value;
|
||||||
|
@ -107,10 +108,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//SYMMETRIC SYNC
|
//SYMMETRIC SYNC
|
||||||
protected void SetItems(TaskInventoryDictionary value)
|
//This is inparticular for updating properties
|
||||||
|
public void SetItems(TaskInventoryDictionary value)
|
||||||
{
|
{
|
||||||
m_items = value;
|
m_items = value;
|
||||||
m_inventorySerial++;
|
//m_inventorySerial++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue