Merge branch 'avination' into careminster

avinationmerge
Melanie 2013-01-24 23:25:38 +00:00
commit c6e6614a44
9 changed files with 54 additions and 18 deletions

View File

@ -70,6 +70,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
private string m_name = "RemoteAdminPlugin"; private string m_name = "RemoteAdminPlugin";
private string m_version = "0.0"; private string m_version = "0.0";
private string m_openSimVersion;
public string Version public string Version
{ {
@ -89,6 +90,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
public void Initialise(OpenSimBase openSim) public void Initialise(OpenSimBase openSim)
{ {
m_openSimVersion = openSim.GetVersionText();
m_configSource = openSim.ConfigSource.Source; m_configSource = openSim.ConfigSource.Source;
try try
{ {
@ -159,6 +162,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
// Misc // Misc
availableMethods["admin_refresh_search"] = (req, ep) => InvokeXmlRpcMethod(req, ep, XmlRpcRefreshSearch); availableMethods["admin_refresh_search"] = (req, ep) => InvokeXmlRpcMethod(req, ep, XmlRpcRefreshSearch);
availableMethods["admin_get_opensim_version"] = (req, ep) => InvokeXmlRpcMethod(req, ep, XmlRpcGetOpenSimVersion);
// Either enable full remote functionality or just selected features // Either enable full remote functionality or just selected features
string enabledMethods = m_config.GetString("enabled_methods", "all"); string enabledMethods = m_config.GetString("enabled_methods", "all");
@ -1977,6 +1981,18 @@ namespace OpenSim.ApplicationPlugins.RemoteController
m_log.Info("[RADMIN]: Refresh Search Request complete"); m_log.Info("[RADMIN]: Refresh Search Request complete");
} }
private void XmlRpcGetOpenSimVersion(XmlRpcRequest request, XmlRpcResponse response, IPEndPoint remoteClient)
{
m_log.Info("[RADMIN]: Received Get OpenSim Version Request");
Hashtable responseData = (Hashtable)response.Value;
responseData["version"] = m_openSimVersion;
responseData["success"] = true;
m_log.Info("[RADMIN]: Get OpenSim Version Request complete");
}
/// <summary> /// <summary>
/// Parse a float with the given parameter name from a request data hash table. /// Parse a float with the given parameter name from a request data hash table.
/// </summary> /// </summary>

View File

@ -573,7 +573,7 @@ namespace OpenSim.Framework.Servers
} }
} }
protected string GetVersionText() public string GetVersionText()
{ {
return String.Format("Version: {0} (interface version {1})", m_version, VersionInfo.MajorInterfaceVersion); return String.Format("Version: {0} (interface version {1})", m_version, VersionInfo.MajorInterfaceVersion);
} }

View File

@ -533,6 +533,9 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
ResponseBody = e.Message; ResponseBody = e.Message;
} }
if (ResponseBody == null)
ResponseBody = String.Empty;
_finished = true; _finished = true;
return; return;
} }
@ -546,6 +549,9 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
response.Close(); response.Close();
} }
if (ResponseBody == null)
ResponseBody = String.Empty;
_finished = true; _finished = true;
} }

View File

@ -2052,11 +2052,11 @@ namespace OpenSim.Region.Framework.Scenes
EventManager.TriggerPrimsLoaded(this); EventManager.TriggerPrimsLoaded(this);
} }
public bool SuportsRayCastFiltered() public bool SupportsRayCastFiltered()
{ {
if (PhysicsScene == null) if (PhysicsScene == null)
return false; return false;
return PhysicsScene.SuportsRaycastWorldFiltered(); return PhysicsScene.SupportsRaycastWorldFiltered();
} }
public object RayCastFiltered(Vector3 position, Vector3 direction, float length, int Count, RayFilterFlags filter) public object RayCastFiltered(Vector3 position, Vector3 direction, float length, int Count, RayFilterFlags filter)

View File

@ -357,7 +357,7 @@ namespace OpenSim.Region.Physics.Manager
return null; return null;
} }
public virtual bool SuportsRaycastWorldFiltered() public virtual bool SupportsRaycastWorldFiltered()
{ {
return false; return false;
} }

View File

@ -2643,7 +2643,7 @@ namespace OpenSim.Region.Physics.OdePlugin
} }
} }
public override bool SuportsRaycastWorldFiltered() public override bool SupportsRaycastWorldFiltered()
{ {
return true; return true;
} }

View File

@ -3049,7 +3049,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return src.ToLower(); return src.ToLower();
} }
public void llGiveMoney(string destination, int amount) public LSL_Integer llGiveMoney(string destination, int amount)
{ {
Util.FireAndForget(x => Util.FireAndForget(x =>
{ {
@ -3083,6 +3083,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
money.ObjectGiveMoney( money.ObjectGiveMoney(
m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount,UUID.Zero); m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount,UUID.Zero);
}); });
return 0;
} }
public void llMakeExplosion(int particles, double scale, double vel, double lifetime, double arc, string texture, LSL_Vector offset) public void llMakeExplosion(int particles, double scale, double vel, double lifetime, double arc, string texture, LSL_Vector offset)
@ -12309,7 +12311,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
bool checkPhysical = !((rejectTypes & ScriptBaseClass.RC_REJECT_PHYSICAL) == ScriptBaseClass.RC_REJECT_PHYSICAL); bool checkPhysical = !((rejectTypes & ScriptBaseClass.RC_REJECT_PHYSICAL) == ScriptBaseClass.RC_REJECT_PHYSICAL);
if (World.SuportsRayCastFiltered()) if (World.SupportsRayCastFiltered())
{ {
if (dist == 0) if (dist == 0)
return list; return list;
@ -12372,13 +12374,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
else else
{ {
if (checkTerrain)
{
ContactResult? groundContact = GroundIntersection(rayStart, rayEnd);
if (groundContact != null)
results.Add((ContactResult)groundContact);
}
if (checkAgents) if (checkAgents)
{ {
ContactResult[] agentHits = AvatarIntersection(rayStart, rayEnd); ContactResult[] agentHits = AvatarIntersection(rayStart, rayEnd);
@ -12394,6 +12389,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
} }
// Double check this
if (checkTerrain)
{
bool skipGroundCheck = false;
foreach (ContactResult c in results)
{
if (c.ConsumerID == 0) // Physics gave us a ground collision
skipGroundCheck = true;
}
if (!skipGroundCheck)
{
ContactResult? groundContact = GroundIntersection(rayStart, rayEnd);
if (groundContact != null)
results.Add((ContactResult)groundContact);
}
}
results.Sort(delegate(ContactResult a, ContactResult b) results.Sort(delegate(ContactResult a, ContactResult b)
{ {
return a.Depth.CompareTo(b.Depth); return a.Depth.CompareTo(b.Depth);

View File

@ -208,7 +208,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
LSL_Float llGetWallclock(); LSL_Float llGetWallclock();
void llGiveInventory(string destination, string inventory); void llGiveInventory(string destination, string inventory);
void llGiveInventoryList(string destination, string category, LSL_List inventory); void llGiveInventoryList(string destination, string category, LSL_List inventory);
void llGiveMoney(string destination, int amount); LSL_Integer llGiveMoney(string destination, int amount);
LSL_String llTransferLindenDollars(string destination, int amount); LSL_String llTransferLindenDollars(string destination, int amount);
void llGodLikeRezObject(string inventory, LSL_Vector pos); void llGodLikeRezObject(string inventory, LSL_Vector pos);
LSL_Float llGround(LSL_Vector offset); LSL_Float llGround(LSL_Vector offset);

View File

@ -876,9 +876,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
m_LSL_Functions.llGiveInventoryList(destination, category, inventory); m_LSL_Functions.llGiveInventoryList(destination, category, inventory);
} }
public void llGiveMoney(string destination, int amount) public LSL_Integer llGiveMoney(string destination, int amount)
{ {
m_LSL_Functions.llGiveMoney(destination, amount); return m_LSL_Functions.llGiveMoney(destination, amount);
} }
public LSL_String llTransferLindenDollars(string destination, int amount) public LSL_String llTransferLindenDollars(string destination, int amount)