Merge branch 'master' of /home/opensim/var/repo/opensim
commit
800fae41c7
|
@ -205,3 +205,4 @@ In addition, we would like to thank:
|
||||||
* The Mono Project
|
* The Mono Project
|
||||||
* The NANT Developers
|
* The NANT Developers
|
||||||
* Microsoft (.NET, MSSQL-Adapters)
|
* Microsoft (.NET, MSSQL-Adapters)
|
||||||
|
*x
|
||||||
|
|
|
@ -241,11 +241,15 @@ namespace OpenSim.Framework
|
||||||
|
|
||||||
m_textureEntry = prim.Textures.GetBytes();
|
m_textureEntry = prim.Textures.GetBytes();
|
||||||
|
|
||||||
|
if (prim.Sculpt != null)
|
||||||
|
{
|
||||||
SculptEntry = (prim.Sculpt.Type != OpenMetaverse.SculptType.None);
|
SculptEntry = (prim.Sculpt.Type != OpenMetaverse.SculptType.None);
|
||||||
SculptData = prim.Sculpt.GetBytes();
|
SculptData = prim.Sculpt.GetBytes();
|
||||||
SculptTexture = prim.Sculpt.SculptTexture;
|
SculptTexture = prim.Sculpt.SculptTexture;
|
||||||
SculptType = (byte)prim.Sculpt.Type;
|
SculptType = (byte)prim.Sculpt.Type;
|
||||||
}
|
}
|
||||||
|
else SculptType = (byte)OpenMetaverse.SculptType.None;
|
||||||
|
}
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
public Primitive.TextureEntry Textures
|
public Primitive.TextureEntry Textures
|
||||||
|
|
|
@ -356,7 +356,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[BASE HTTP SERVER]: OnRequest() failed with {0}{1}", e.Message, e.StackTrace);
|
m_log.Error(String.Format("[BASE HTTP SERVER]: OnRequest() failed: {0} ", e.Message), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -551,11 +551,11 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
// This has to be here to prevent a Linux/Mono crash
|
// This has to be here to prevent a Linux/Mono crash
|
||||||
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
m_log.Warn("[BASE HTTP SERVER]: XmlRpcRequest issue: " + e.Message);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}. ", e.Message), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -658,15 +658,15 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
//
|
//
|
||||||
// An alternative may be to turn off all response write exceptions on the HttpListener, but let's go
|
// An alternative may be to turn off all response write exceptions on the HttpListener, but let's go
|
||||||
// with the minimum first
|
// with the minimum first
|
||||||
m_log.WarnFormat("[BASE HTTP SERVER]: HandleRequest threw {0}.\nNOTE: this may be spurious on Linux", e);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: HandleRequest threw {0}.\nNOTE: this may be spurious on Linux ", e.Message), e);
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw {0}{1}", e.Message, e.StackTrace);
|
m_log.Error(String.Format("[BASE HTTP SERVER]: HandleRequest() threw {0} ", e.Message), e);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw {0}{1}", e.Message, e.StackTrace);
|
m_log.Error(String.Format("[BASE HTTP SERVER]: HandleRequest() threw {0} ", e.Message), e);
|
||||||
SendHTML500(response);
|
SendHTML500(response);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@ -933,11 +933,11 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
// This has to be here to prevent a Linux/Mono crash
|
// This has to be here to prevent a Linux/Mono crash
|
||||||
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
m_log.Warn("[BASE HTTP SERVER]: XmlRpcRequest issue: " + e.Message);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0} ", e.Message), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -970,11 +970,11 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
// This has to be here to prevent a Linux/Mono crash
|
// This has to be here to prevent a Linux/Mono crash
|
||||||
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
m_log.Warn("[BASE HTTP SERVER]: XmlRpcRequest issue: " + e.Message);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0} ", e.Message), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1085,12 +1085,12 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
m_log.WarnFormat("[BASE HTTP SERVER]: LLSD IOException {0}.", e);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: LLSD IOException {0} ", e.Message), e);
|
||||||
}
|
}
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
// This has to be here to prevent a Linux/Mono crash
|
// This has to be here to prevent a Linux/Mono crash
|
||||||
m_log.WarnFormat("[BASE HTTP SERVER]: LLSD issue {0}.\nNOTE: this may be spurious on Linux.", e);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: LLSD issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1342,8 +1342,8 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
catch (SocketException f)
|
catch (SocketException f)
|
||||||
{
|
{
|
||||||
// This has to be here to prevent a Linux/Mono crash
|
// This has to be here to prevent a Linux/Mono crash
|
||||||
m_log.WarnFormat(
|
m_log.Warn(
|
||||||
"[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", f);
|
String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", f.Message), f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(Exception)
|
catch(Exception)
|
||||||
|
@ -1638,11 +1638,11 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
// This has to be here to prevent a Linux/Mono crash
|
// This has to be here to prevent a Linux/Mono crash
|
||||||
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
m_log.Warn("[BASE HTTP SERVER]: XmlRpcRequest issue: " + e.Message);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0} ", e.Message), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1679,7 +1679,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
// This has to be here to prevent a Linux/Mono crash
|
// This has to be here to prevent a Linux/Mono crash
|
||||||
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e);
|
m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1715,7 +1715,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
// This has to be here to prevent a Linux/Mono crash
|
// This has to be here to prevent a Linux/Mono crash
|
||||||
m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e);
|
m_log.Warn(String.Format("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1794,7 +1794,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
|
|
||||||
public void httpServerException(object source, Exception exception)
|
public void httpServerException(object source, Exception exception)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[BASE HTTP SERVER]: {0} had an exception {1}", source.ToString(), exception.ToString());
|
m_log.Error(String.Format("[BASE HTTP SERVER]: {0} had an exception: {1} ", source.ToString(), exception.Message), exception);
|
||||||
/*
|
/*
|
||||||
if (HTTPDRunning)// && NotSocketErrors > 5)
|
if (HTTPDRunning)// && NotSocketErrors > 5)
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
using log4net;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
|
|
||||||
namespace OpenSim.Framework
|
namespace OpenSim.Framework
|
||||||
|
@ -35,6 +37,8 @@ namespace OpenSim.Framework
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class TaskInventoryItem : ICloneable
|
public class TaskInventoryItem : ICloneable
|
||||||
{
|
{
|
||||||
|
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// XXX This should really be factored out into some constants class.
|
/// XXX This should really be factored out into some constants class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -331,12 +335,18 @@ namespace OpenSim.Framework
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool OwnerChanged {
|
public bool OwnerChanged
|
||||||
get {
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
return _ownerChanged;
|
return _ownerChanged;
|
||||||
}
|
}
|
||||||
set {
|
set
|
||||||
|
{
|
||||||
_ownerChanged = value;
|
_ownerChanged = value;
|
||||||
|
// m_log.DebugFormat(
|
||||||
|
// "[TASK INVENTORY ITEM]: Owner changed set {0} for {1} {2} owned by {3}",
|
||||||
|
// _ownerChanged, Name, ItemID, OwnerID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -527,9 +527,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
||||||
private void AttachToAgent(
|
private void AttachToAgent(
|
||||||
IScenePresence sp, SceneObjectGroup so, uint attachmentpoint, Vector3 attachOffset, bool silent)
|
IScenePresence sp, SceneObjectGroup so, uint attachmentpoint, Vector3 attachOffset, bool silent)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
// "[ATTACHMENTS MODULE]: Adding attachment {0} to avatar {1} in pt {2} pos {3} {4}",
|
// "[ATTACHMENTS MODULE]: Adding attachment {0} to avatar {1} in pt {2} pos {3} {4}",
|
||||||
// so.Name, avatar.Name, attachmentpoint, attachOffset, so.RootPart.AttachedPos);
|
// so.Name, sp.Name, attachmentpoint, attachOffset, so.RootPart.AttachedPos);
|
||||||
|
|
||||||
so.DetachFromBackup();
|
so.DetachFromBackup();
|
||||||
|
|
||||||
|
@ -788,9 +788,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
||||||
/// <param name="att"></param>
|
/// <param name="att"></param>
|
||||||
private void ShowAttachInUserInventory(IScenePresence sp, uint AttachmentPt, UUID itemID, SceneObjectGroup att)
|
private void ShowAttachInUserInventory(IScenePresence sp, uint AttachmentPt, UUID itemID, SceneObjectGroup att)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
// "[USER INVENTORY]: Updating attachment {0} for {1} at {2} using item ID {3}",
|
// "[USER INVENTORY]: Updating attachment {0} for {1} at {2} using item ID {3}",
|
||||||
// att.Name, sp.Name, AttachmentPt, itemID);
|
// att.Name, sp.Name, AttachmentPt, itemID);
|
||||||
|
|
||||||
if (UUID.Zero == itemID)
|
if (UUID.Zero == itemID)
|
||||||
{
|
{
|
||||||
|
@ -853,9 +853,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
||||||
|
|
||||||
private void Client_OnObjectAttach(IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, bool silent)
|
private void Client_OnObjectAttach(IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, bool silent)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
// "[ATTACHMENTS MODULE]: Attaching object local id {0} to {1} point {2} from ground (silent = {3})",
|
// "[ATTACHMENTS MODULE]: Attaching object local id {0} to {1} point {2} from ground (silent = {3})",
|
||||||
// objectLocalID, remoteClient.Name, AttachmentPt, silent);
|
// objectLocalID, remoteClient.Name, AttachmentPt, silent);
|
||||||
|
|
||||||
if (!Enabled)
|
if (!Enabled)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -448,30 +448,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
/// Find the client for a ID
|
/// Find the client for a ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IClientAPI LocateClientObject(UUID agentID)
|
public IClientAPI LocateClientObject(UUID agentID)
|
||||||
{
|
|
||||||
Scene scene = GetClientScene(agentID);
|
|
||||||
if (scene != null)
|
|
||||||
{
|
|
||||||
ScenePresence presence = scene.GetScenePresence(agentID);
|
|
||||||
if (presence != null)
|
|
||||||
return presence.ControllingClient;
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Find the scene for an agent
|
|
||||||
/// </summary>
|
|
||||||
private Scene GetClientScene(UUID agentId)
|
|
||||||
{
|
{
|
||||||
lock (m_Scenes)
|
lock (m_Scenes)
|
||||||
{
|
{
|
||||||
foreach (Scene scene in m_Scenes)
|
foreach (Scene scene in m_Scenes)
|
||||||
{
|
{
|
||||||
ScenePresence presence = scene.GetScenePresence(agentId);
|
ScenePresence presence = scene.GetScenePresence(agentID);
|
||||||
if (presence != null && !presence.IsChildAgent)
|
if (presence != null && !presence.IsChildAgent)
|
||||||
return scene;
|
return presence.ControllingClient;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -498,7 +482,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
Util.FireAndForget(
|
Util.FireAndForget(
|
||||||
delegate
|
delegate
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[FRIENDS MODULE]: Notifying {0} friends", friendList.Count);
|
m_log.DebugFormat(
|
||||||
|
"[FRIENDS MODULE]: Notifying {0} friends of {1} of online status {2}",
|
||||||
|
friendList.Count, agentID, online);
|
||||||
|
|
||||||
// Notify about this user status
|
// Notify about this user status
|
||||||
StatusNotify(friendList, agentID, online);
|
StatusNotify(friendList, agentID, online);
|
||||||
}
|
}
|
||||||
|
@ -515,7 +502,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
{
|
{
|
||||||
// Try local
|
// Try local
|
||||||
if (LocalStatusNotification(userID, friendID, online))
|
if (LocalStatusNotification(userID, friendID, online))
|
||||||
return;
|
continue;
|
||||||
|
|
||||||
// The friend is not here [as root]. Let's forward.
|
// The friend is not here [as root]. Let's forward.
|
||||||
PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { friendID.ToString() });
|
PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { friendID.ToString() });
|
||||||
|
@ -523,11 +510,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
{
|
{
|
||||||
PresenceInfo friendSession = null;
|
PresenceInfo friendSession = null;
|
||||||
foreach (PresenceInfo pinfo in friendSessions)
|
foreach (PresenceInfo pinfo in friendSessions)
|
||||||
|
{
|
||||||
if (pinfo.RegionID != UUID.Zero) // let's guard against sessions-gone-bad
|
if (pinfo.RegionID != UUID.Zero) // let's guard against sessions-gone-bad
|
||||||
{
|
{
|
||||||
friendSession = pinfo;
|
friendSession = pinfo;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (friendSession != null)
|
if (friendSession != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -126,7 +126,6 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
// "[PRIM COUNT MODULE]: Ignoring OnParcelPrimCountAdd() for {0} on {1} since count is tainted",
|
// "[PRIM COUNT MODULE]: Ignoring OnParcelPrimCountAdd() for {0} on {1} since count is tainted",
|
||||||
// obj.Name, m_Scene.RegionInfo.RegionName);
|
// obj.Name, m_Scene.RegionInfo.RegionName);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,9 +113,11 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <param name="landAtTarget">
|
/// <param name="landAtTarget">
|
||||||
/// If true and the avatar is flying when it reaches the target, land.
|
/// If true and the avatar is flying when it reaches the target, land.
|
||||||
/// </param>
|
/// </param> name="running">
|
||||||
|
/// If true, NPC moves with running speed.
|
||||||
/// <returns>True if the operation succeeded, false if there was no such agent or the agent was not an NPC</returns>
|
/// <returns>True if the operation succeeded, false if there was no such agent or the agent was not an NPC</returns>
|
||||||
bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget);
|
///
|
||||||
|
bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget, bool running);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stop the NPC's current movement.
|
/// Stop the NPC's current movement.
|
||||||
|
|
|
@ -2771,7 +2771,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
//we need to do a terse update even if the move wasn't allowed
|
//we need to do a terse update even if the move wasn't allowed
|
||||||
// so that the position is reset in the client (the object snaps back)
|
// so that the position is reset in the client (the object snaps back)
|
||||||
ScheduleGroupForTerseUpdate();
|
RootPart.ScheduleTerseUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -1219,10 +1219,16 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
if (engine != null)
|
if (engine != null)
|
||||||
{
|
{
|
||||||
|
// m_log.DebugFormat(
|
||||||
|
// "[PRIM INVENTORY]: Resuming script {0} {1} for {2}, OwnerChanged {3}",
|
||||||
|
// item.Name, item.ItemID, item.OwnerID, item.OwnerChanged);
|
||||||
|
|
||||||
|
engine.ResumeScript(item.ItemID);
|
||||||
|
|
||||||
if (item.OwnerChanged)
|
if (item.OwnerChanged)
|
||||||
engine.PostScriptEvent(item.ItemID, "changed", new Object[] { (int)Changed.OWNER });
|
engine.PostScriptEvent(item.ItemID, "changed", new Object[] { (int)Changed.OWNER });
|
||||||
|
|
||||||
item.OwnerChanged = false;
|
item.OwnerChanged = false;
|
||||||
engine.ResumeScript(item.ItemID);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,7 +169,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget)
|
public bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget, bool running)
|
||||||
{
|
{
|
||||||
lock (m_avatars)
|
lock (m_avatars)
|
||||||
{
|
{
|
||||||
|
@ -183,6 +183,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
|
||||||
sp.Name, pos, scene.RegionInfo.RegionName, noFly, landAtTarget);
|
sp.Name, pos, scene.RegionInfo.RegionName, noFly, landAtTarget);
|
||||||
|
|
||||||
sp.MoveToTarget(pos, noFly, landAtTarget);
|
sp.MoveToTarget(pos, noFly, landAtTarget);
|
||||||
|
sp.SetAlwaysRun = running;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,7 +242,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests
|
||||||
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
|
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
|
||||||
|
|
||||||
Vector3 targetPos = startPos + new Vector3(0, 10, 0);
|
Vector3 targetPos = startPos + new Vector3(0, 10, 0);
|
||||||
m_npcMod.MoveToTarget(npc.UUID, m_scene, targetPos, false, false);
|
m_npcMod.MoveToTarget(npc.UUID, m_scene, targetPos, false, false, false);
|
||||||
|
|
||||||
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
|
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
|
||||||
//Assert.That(npc.Rotation, Is.EqualTo(new Quaternion(0, 0, 0.7071068f, 0.7071068f)));
|
//Assert.That(npc.Rotation, Is.EqualTo(new Quaternion(0, 0, 0.7071068f, 0.7071068f)));
|
||||||
|
@ -267,7 +267,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests
|
||||||
// Try a second movement
|
// Try a second movement
|
||||||
startPos = npc.AbsolutePosition;
|
startPos = npc.AbsolutePosition;
|
||||||
targetPos = startPos + new Vector3(10, 0, 0);
|
targetPos = startPos + new Vector3(10, 0, 0);
|
||||||
m_npcMod.MoveToTarget(npc.UUID, m_scene, targetPos, false, false);
|
m_npcMod.MoveToTarget(npc.UUID, m_scene, targetPos, false, false, false);
|
||||||
|
|
||||||
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
|
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
|
||||||
// Assert.That(npc.Rotation, Is.EqualTo(new Quaternion(0, 0, 0, 1)));
|
// Assert.That(npc.Rotation, Is.EqualTo(new Quaternion(0, 0, 0, 1)));
|
||||||
|
|
|
@ -128,6 +128,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
{
|
{
|
||||||
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
|
public const string GridInfoServiceConfigSectionName = "GridInfoService";
|
||||||
|
|
||||||
internal IScriptEngine m_ScriptEngine;
|
internal IScriptEngine m_ScriptEngine;
|
||||||
internal ILSL_Api m_LSL_Api = null; // get a reference to the LSL API so we can call methods housed there
|
internal ILSL_Api m_LSL_Api = null; // get a reference to the LSL API so we can call methods housed there
|
||||||
internal SceneObjectPart m_host;
|
internal SceneObjectPart m_host;
|
||||||
|
@ -2032,8 +2034,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
string nick = String.Empty;
|
string nick = String.Empty;
|
||||||
IConfigSource config = m_ScriptEngine.ConfigSource;
|
IConfigSource config = m_ScriptEngine.ConfigSource;
|
||||||
|
|
||||||
if (config.Configs["GridInfo"] != null)
|
if (config.Configs[GridInfoServiceConfigSectionName] != null)
|
||||||
nick = config.Configs["GridInfo"].GetString("gridnick", nick);
|
nick = config.Configs[GridInfoServiceConfigSectionName].GetString("gridnick", nick);
|
||||||
|
|
||||||
if (String.IsNullOrEmpty(nick))
|
if (String.IsNullOrEmpty(nick))
|
||||||
nick = GridUserInfo(InfoType.Nick);
|
nick = GridUserInfo(InfoType.Nick);
|
||||||
|
@ -2049,8 +2051,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
string name = String.Empty;
|
string name = String.Empty;
|
||||||
IConfigSource config = m_ScriptEngine.ConfigSource;
|
IConfigSource config = m_ScriptEngine.ConfigSource;
|
||||||
|
|
||||||
if (config.Configs["GridInfo"] != null)
|
if (config.Configs[GridInfoServiceConfigSectionName] != null)
|
||||||
name = config.Configs["GridInfo"].GetString("gridname", name);
|
name = config.Configs[GridInfoServiceConfigSectionName].GetString("gridname", name);
|
||||||
|
|
||||||
if (String.IsNullOrEmpty(name))
|
if (String.IsNullOrEmpty(name))
|
||||||
name = GridUserInfo(InfoType.Name);
|
name = GridUserInfo(InfoType.Name);
|
||||||
|
@ -2066,8 +2068,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
string loginURI = String.Empty;
|
string loginURI = String.Empty;
|
||||||
IConfigSource config = m_ScriptEngine.ConfigSource;
|
IConfigSource config = m_ScriptEngine.ConfigSource;
|
||||||
|
|
||||||
if (config.Configs["GridInfo"] != null)
|
if (config.Configs[GridInfoServiceConfigSectionName] != null)
|
||||||
loginURI = config.Configs["GridInfo"].GetString("login", loginURI);
|
loginURI = config.Configs[GridInfoServiceConfigSectionName].GetString("login", loginURI);
|
||||||
|
|
||||||
if (String.IsNullOrEmpty(loginURI))
|
if (String.IsNullOrEmpty(loginURI))
|
||||||
loginURI = GridUserInfo(InfoType.Login);
|
loginURI = GridUserInfo(InfoType.Login);
|
||||||
|
@ -2114,8 +2116,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
string retval = String.Empty;
|
string retval = String.Empty;
|
||||||
IConfigSource config = m_ScriptEngine.ConfigSource;
|
IConfigSource config = m_ScriptEngine.ConfigSource;
|
||||||
|
|
||||||
if (config.Configs["GridInfo"] != null)
|
if (config.Configs[GridInfoServiceConfigSectionName] != null)
|
||||||
retval = config.Configs["GridInfo"].GetString(key, retval);
|
retval = config.Configs[GridInfoServiceConfigSectionName].GetString(key, retval);
|
||||||
|
|
||||||
if (String.IsNullOrEmpty(retval))
|
if (String.IsNullOrEmpty(retval))
|
||||||
retval = GridUserInfo(InfoType.Custom, key);
|
retval = GridUserInfo(InfoType.Custom, key);
|
||||||
|
@ -2449,7 +2451,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Vector3 pos = new Vector3((float) position.x, (float) position.y, (float) position.z);
|
Vector3 pos = new Vector3((float) position.x, (float) position.y, (float) position.z);
|
||||||
module.MoveToTarget(npcId, World, pos, false, true);
|
module.MoveToTarget(npcId, World, pos, false, true, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2474,7 +2476,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
World,
|
World,
|
||||||
pos,
|
pos,
|
||||||
(options & ScriptBaseClass.OS_NPC_NO_FLY) != 0,
|
(options & ScriptBaseClass.OS_NPC_NO_FLY) != 0,
|
||||||
(options & ScriptBaseClass.OS_NPC_LAND_AT_TARGET) != 0);
|
(options & ScriptBaseClass.OS_NPC_LAND_AT_TARGET) != 0,
|
||||||
|
(options & ScriptBaseClass.OS_NPC_RUNNING) != 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -626,6 +626,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||||
public const int OS_NPC_FLY = 0;
|
public const int OS_NPC_FLY = 0;
|
||||||
public const int OS_NPC_NO_FLY = 1;
|
public const int OS_NPC_NO_FLY = 1;
|
||||||
public const int OS_NPC_LAND_AT_TARGET = 2;
|
public const int OS_NPC_LAND_AT_TARGET = 2;
|
||||||
|
public const int OS_NPC_RUNNING = 4;
|
||||||
|
|
||||||
public const int OS_NPC_SIT_NOW = 0;
|
public const int OS_NPC_SIT_NOW = 0;
|
||||||
|
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue