* Tweak the caps manager so that the NPCAvatar works again.
parent
4ce5c894cf
commit
4cbf0444df
|
@ -581,7 +581,10 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
}
|
}
|
||||||
lock (m_landIDList)
|
lock (m_landIDList)
|
||||||
{
|
{
|
||||||
return m_landList[m_landIDList[x / 4, y / 4]];
|
if (m_landList.ContainsKey(m_landIDList[x / 4, y / 4]))
|
||||||
|
return m_landList[m_landIDList[x / 4, y / 4]];
|
||||||
|
else
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -360,15 +360,33 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
// we're going to be using the above code once neighbour cache is correct. Currently it doesn't appear to be
|
// we're going to be using the above code once neighbour cache is correct. Currently it doesn't appear to be
|
||||||
// So we're temporarily going back to the old method of grabbing it from the Grid Server Every time :/
|
// So we're temporarily going back to the old method of grabbing it from the Grid Server Every time :/
|
||||||
neighbours =
|
if (m_regionInfo != null)
|
||||||
|
{
|
||||||
|
neighbours =
|
||||||
m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
|
m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_log.Debug("[ENABLENEIGHBOURCHILDAGENTS]: m_regionInfo was null in EnableNeighbourChildAgents, is this a NPC?");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// We need to find the difference between the new regions where there are no child agents
|
/// We need to find the difference between the new regions where there are no child agents
|
||||||
/// and the regions where there are already child agents. We only send notification to the former.
|
/// and the regions where there are already child agents. We only send notification to the former.
|
||||||
List<ulong> neighbourHandles = NeighbourHandles(neighbours); // on this region
|
List<ulong> neighbourHandles = NeighbourHandles(neighbours); // on this region
|
||||||
neighbourHandles.Add(avatar.Scene.RegionInfo.RegionHandle); // add this region too
|
neighbourHandles.Add(avatar.Scene.RegionInfo.RegionHandle); // add this region too
|
||||||
List<ulong> previousRegionNeighbourHandles
|
List<ulong> previousRegionNeighbourHandles ;
|
||||||
= new List<ulong>(avatar.Scene.CapsModule.GetChildrenSeeds(avatar.UUID).Keys);
|
|
||||||
|
if (avatar.Scene.CapsModule != null)
|
||||||
|
{
|
||||||
|
previousRegionNeighbourHandles =
|
||||||
|
new List<ulong>(avatar.Scene.CapsModule.GetChildrenSeeds(avatar.UUID).Keys);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
previousRegionNeighbourHandles = new List<ulong>();
|
||||||
|
}
|
||||||
|
|
||||||
List<ulong> newRegions = NewNeighbours(neighbourHandles, previousRegionNeighbourHandles);
|
List<ulong> newRegions = NewNeighbours(neighbourHandles, previousRegionNeighbourHandles);
|
||||||
List<ulong> oldRegions = OldNeighbours(neighbourHandles, previousRegionNeighbourHandles);
|
List<ulong> oldRegions = OldNeighbours(neighbourHandles, previousRegionNeighbourHandles);
|
||||||
|
|
||||||
|
@ -381,8 +399,12 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
avatar.DropOldNeighbours(oldRegions);
|
avatar.DropOldNeighbours(oldRegions);
|
||||||
|
|
||||||
/// Collect as many seeds as possible
|
/// Collect as many seeds as possible
|
||||||
Dictionary<ulong, string> seeds
|
Dictionary<ulong, string> seeds;
|
||||||
= new Dictionary<ulong, string>(avatar.Scene.CapsModule.GetChildrenSeeds(avatar.UUID));
|
if (avatar.Scene.CapsModule != null)
|
||||||
|
seeds
|
||||||
|
= new Dictionary<ulong, string>(avatar.Scene.CapsModule.GetChildrenSeeds(avatar.UUID));
|
||||||
|
else
|
||||||
|
seeds = new Dictionary<ulong, string>();
|
||||||
|
|
||||||
//m_log.Debug(" !!! No. of seeds: " + seeds.Count);
|
//m_log.Debug(" !!! No. of seeds: " + seeds.Count);
|
||||||
if (!seeds.ContainsKey(avatar.Scene.RegionInfo.RegionHandle))
|
if (!seeds.ContainsKey(avatar.Scene.RegionInfo.RegionHandle))
|
||||||
|
@ -419,8 +441,12 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
a.ChildrenCapSeeds = new Dictionary<ulong, string>(seeds);
|
a.ChildrenCapSeeds = new Dictionary<ulong, string>(seeds);
|
||||||
}
|
}
|
||||||
// These two are the same thing!
|
|
||||||
avatar.Scene.CapsModule.SetChildrenSeed(avatar.UUID, seeds);
|
if (avatar.Scene.CapsModule != null)
|
||||||
|
{
|
||||||
|
// These two are the same thing!
|
||||||
|
avatar.Scene.CapsModule.SetChildrenSeed(avatar.UUID, seeds);
|
||||||
|
}
|
||||||
avatar.KnownRegions = seeds;
|
avatar.KnownRegions = seeds;
|
||||||
//avatar.Scene.DumpChildrenSeeds(avatar.UUID);
|
//avatar.Scene.DumpChildrenSeeds(avatar.UUID);
|
||||||
//avatar.DumpKnownRegions();
|
//avatar.DumpKnownRegions();
|
||||||
|
|
|
@ -538,7 +538,13 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public void AdjustKnownSeeds()
|
public void AdjustKnownSeeds()
|
||||||
{
|
{
|
||||||
Dictionary<ulong, string> seeds = Scene.CapsModule.GetChildrenSeeds(UUID);
|
Dictionary<ulong, string> seeds;
|
||||||
|
|
||||||
|
if (Scene.CapsModule != null)
|
||||||
|
seeds = Scene.CapsModule.GetChildrenSeeds(UUID);
|
||||||
|
else
|
||||||
|
seeds = new Dictionary<ulong, string>();
|
||||||
|
|
||||||
List<ulong> old = new List<ulong>();
|
List<ulong> old = new List<ulong>();
|
||||||
foreach (ulong handle in seeds.Keys)
|
foreach (ulong handle in seeds.Keys)
|
||||||
{
|
{
|
||||||
|
@ -552,7 +558,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DropOldNeighbours(old);
|
DropOldNeighbours(old);
|
||||||
Scene.CapsModule.SetChildrenSeed(UUID, seeds);
|
|
||||||
|
if (Scene.CapsModule != null)
|
||||||
|
Scene.CapsModule.SetChildrenSeed(UUID, seeds);
|
||||||
|
|
||||||
KnownRegions = seeds;
|
KnownRegions = seeds;
|
||||||
//m_log.Debug(" ++++++++++AFTER+++++++++++++ ");
|
//m_log.Debug(" ++++++++++AFTER+++++++++++++ ");
|
||||||
//DumpKnownRegions();
|
//DumpKnownRegions();
|
||||||
|
|
|
@ -1044,7 +1044,8 @@ namespace OpenSim.Region.OptionalModules.World.NPC
|
||||||
|
|
||||||
public bool AddGenericPacketHandler(string MethodName, GenericMessage handler)
|
public bool AddGenericPacketHandler(string MethodName, GenericMessage handler)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
//throw new NotImplementedException();
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendAvatarClassifiedReply(UUID targetID, UUID[] classifiedID, string[] name)
|
public void SendAvatarClassifiedReply(UUID targetID, UUID[] classifiedID, string[] name)
|
||||||
|
|
|
@ -42,8 +42,8 @@ namespace OpenSim.Region.OptionalModules.World.NPC
|
||||||
// {
|
// {
|
||||||
// NPCAvatar testAvatar = new NPCAvatar("Jack", "NPC", new Vector3(128, 128, 40), scene);
|
// NPCAvatar testAvatar = new NPCAvatar("Jack", "NPC", new Vector3(128, 128, 40), scene);
|
||||||
// NPCAvatar testAvatar2 = new NPCAvatar("Jill", "NPC", new Vector3(136, 128, 40), scene);
|
// NPCAvatar testAvatar2 = new NPCAvatar("Jill", "NPC", new Vector3(136, 128, 40), scene);
|
||||||
// scene.AddNewClient(testAvatar, false);
|
// scene.AddNewClient(testAvatar);
|
||||||
// scene.AddNewClient(testAvatar2, false);
|
// scene.AddNewClient(testAvatar2);
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue