Merge branch 'master' into careminster
commit
4fe6d8c3a4
|
@ -139,25 +139,29 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
"Objects",
|
"Objects",
|
||||||
false,
|
false,
|
||||||
"show object uuid",
|
"show object uuid",
|
||||||
"show object uuid <UUID>",
|
"show object uuid [--full] <UUID>",
|
||||||
"Show details of a scene object with the given UUID", HandleShowObjectByUuid);
|
"Show details of a scene object with the given UUID",
|
||||||
|
"The --full option will print out information on all the parts of the object.",
|
||||||
|
HandleShowObjectByUuid);
|
||||||
|
|
||||||
m_console.Commands.AddCommand(
|
m_console.Commands.AddCommand(
|
||||||
"Objects",
|
"Objects",
|
||||||
false,
|
false,
|
||||||
"show object name",
|
"show object name",
|
||||||
"show object name [--regex] <name>",
|
"show object name [--full] [--regex] <name>",
|
||||||
"Show details of scene objects with the given name.",
|
"Show details of scene objects with the given name.",
|
||||||
"If --regex is specified then the name is treatead as a regular expression",
|
"The --full option will print out information on all the parts of the object.\n"
|
||||||
|
+ "If --regex is specified then the name is treatead as a regular expression.",
|
||||||
HandleShowObjectByName);
|
HandleShowObjectByName);
|
||||||
|
|
||||||
m_console.Commands.AddCommand(
|
m_console.Commands.AddCommand(
|
||||||
"Objects",
|
"Objects",
|
||||||
false,
|
false,
|
||||||
"show object pos",
|
"show object pos",
|
||||||
"show object pos <start-coord> to <end-coord>",
|
"show object pos [--full] <start-coord> to <end-coord>",
|
||||||
"Show details of scene objects within the given area.",
|
"Show details of scene objects within the given area.",
|
||||||
"Each component of the coord is comma separated. There must be no spaces between the commas.\n"
|
"The --full option will print out information on all the parts of the object.\n"
|
||||||
|
+ "Each component of the coord is comma separated. There must be no spaces between the commas.\n"
|
||||||
+ "If you don't care about the z component you can simply omit it.\n"
|
+ "If you don't care about the z component you can simply omit it.\n"
|
||||||
+ "If you don't care about the x or y components then you can leave them blank (though a comma is still required)\n"
|
+ "If you don't care about the x or y components then you can leave them blank (though a comma is still required)\n"
|
||||||
+ "If you want to specify the maxmimum value of a component then you can use ~ instead of a number\n"
|
+ "If you want to specify the maxmimum value of a component then you can use ~ instead of a number\n"
|
||||||
|
@ -216,7 +220,12 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
// m_log.DebugFormat("[OBJECTS COMMANDS MODULE]: REGION {0} LOADED", scene.RegionInfo.RegionName);
|
// m_log.DebugFormat("[OBJECTS COMMANDS MODULE]: REGION {0} LOADED", scene.RegionInfo.RegionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OutputSogsToConsole(Predicate<SceneObjectGroup> searchPredicate)
|
/// <summary>
|
||||||
|
/// Outputs the sogs to console.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='searchPredicate'></param>
|
||||||
|
/// <param name='showFull'>If true then output all part details. If false then output summary.</param>
|
||||||
|
private void OutputSogsToConsole(Predicate<SceneObjectGroup> searchPredicate, bool showFull)
|
||||||
{
|
{
|
||||||
List<SceneObjectGroup> sceneObjects = m_scene.GetSceneObjectGroups().FindAll(searchPredicate);
|
List<SceneObjectGroup> sceneObjects = m_scene.GetSceneObjectGroups().FindAll(searchPredicate);
|
||||||
|
|
||||||
|
@ -224,7 +233,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
|
|
||||||
foreach (SceneObjectGroup so in sceneObjects)
|
foreach (SceneObjectGroup so in sceneObjects)
|
||||||
{
|
{
|
||||||
AddSceneObjectReport(sb, so);
|
AddSceneObjectReport(sb, so, showFull);
|
||||||
sb.Append("\n");
|
sb.Append("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,21 +262,26 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
m_console.OutputFormat(sb.ToString());
|
m_console.OutputFormat(sb.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleShowObjectByUuid(string module, string[] cmd)
|
private void HandleShowObjectByUuid(string module, string[] cmdparams)
|
||||||
{
|
{
|
||||||
if (!(m_console.ConsoleScene == null || m_console.ConsoleScene == m_scene))
|
if (!(m_console.ConsoleScene == null || m_console.ConsoleScene == m_scene))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (cmd.Length < 4)
|
bool showFull = false;
|
||||||
|
OptionSet options = new OptionSet().Add("full", v => showFull = v != null );
|
||||||
|
|
||||||
|
List<string> mainParams = options.Parse(cmdparams);
|
||||||
|
|
||||||
|
if (mainParams.Count < 4)
|
||||||
{
|
{
|
||||||
m_console.OutputFormat("Usage: show object uuid <uuid>");
|
m_console.OutputFormat("Usage: show object uuid <uuid>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
UUID objectUuid;
|
UUID objectUuid;
|
||||||
if (!UUID.TryParse(cmd[3], out objectUuid))
|
if (!UUID.TryParse(mainParams[3], out objectUuid))
|
||||||
{
|
{
|
||||||
m_console.OutputFormat("{0} is not a valid uuid", cmd[3]);
|
m_console.OutputFormat("{0} is not a valid uuid", mainParams[3]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -280,7 +294,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
AddSceneObjectReport(sb, so);
|
AddSceneObjectReport(sb, so, showFull);
|
||||||
|
|
||||||
m_console.OutputFormat(sb.ToString());
|
m_console.OutputFormat(sb.ToString());
|
||||||
}
|
}
|
||||||
|
@ -290,14 +304,17 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
if (!(m_console.ConsoleScene == null || m_console.ConsoleScene == m_scene))
|
if (!(m_console.ConsoleScene == null || m_console.ConsoleScene == m_scene))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
bool showFull = false;
|
||||||
bool useRegex = false;
|
bool useRegex = false;
|
||||||
OptionSet options = new OptionSet().Add("regex", v=> useRegex = v != null );
|
OptionSet options = new OptionSet();
|
||||||
|
options.Add("full", v => showFull = v != null );
|
||||||
|
options.Add("regex", v => useRegex = v != null );
|
||||||
|
|
||||||
List<string> mainParams = options.Parse(cmdparams);
|
List<string> mainParams = options.Parse(cmdparams);
|
||||||
|
|
||||||
if (mainParams.Count < 4)
|
if (mainParams.Count < 4)
|
||||||
{
|
{
|
||||||
m_console.OutputFormat("Usage: show object name [--regex] <name>");
|
m_console.OutputFormat("Usage: show object name [--full] [--regex] <name>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +332,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
searchPredicate = so => so.Name == name;
|
searchPredicate = so => so.Name == name;
|
||||||
}
|
}
|
||||||
|
|
||||||
OutputSogsToConsole(searchPredicate);
|
OutputSogsToConsole(searchPredicate, showFull);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleShowObjectByPos(string module, string[] cmdparams)
|
private void HandleShowObjectByPos(string module, string[] cmdparams)
|
||||||
|
@ -323,9 +340,14 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
if (!(m_console.ConsoleScene == null || m_console.ConsoleScene == m_scene))
|
if (!(m_console.ConsoleScene == null || m_console.ConsoleScene == m_scene))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (cmdparams.Length < 5)
|
bool showFull = false;
|
||||||
|
OptionSet options = new OptionSet().Add("full", v => showFull = v != null );
|
||||||
|
|
||||||
|
List<string> mainParams = options.Parse(cmdparams);
|
||||||
|
|
||||||
|
if (mainParams.Count < 5)
|
||||||
{
|
{
|
||||||
m_console.OutputFormat("Usage: show object pos <start-coord> to <end-coord>");
|
m_console.OutputFormat("Usage: show object pos [--full] <start-coord> to <end-coord>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -337,7 +359,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
Predicate<SceneObjectGroup> searchPredicate
|
Predicate<SceneObjectGroup> searchPredicate
|
||||||
= so => Util.IsInsideBox(so.AbsolutePosition, startVector, endVector);
|
= so => Util.IsInsideBox(so.AbsolutePosition, startVector, endVector);
|
||||||
|
|
||||||
OutputSogsToConsole(searchPredicate);
|
OutputSogsToConsole(searchPredicate, showFull);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleShowPartByUuid(string module, string[] cmd)
|
private void HandleShowPartByUuid(string module, string[] cmd)
|
||||||
|
@ -437,28 +459,54 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
OutputSopsToConsole(searchPredicate);
|
OutputSopsToConsole(searchPredicate);
|
||||||
}
|
}
|
||||||
|
|
||||||
private StringBuilder AddSceneObjectReport(StringBuilder sb, SceneObjectGroup so)
|
private StringBuilder AddSceneObjectReport(StringBuilder sb, SceneObjectGroup so, bool showFull)
|
||||||
{
|
{
|
||||||
sb.AppendFormat("Name: {0}\n", so.Name);
|
if (showFull)
|
||||||
sb.AppendFormat("Description: {0}\n", so.Description);
|
{
|
||||||
sb.AppendFormat("Location: {0} @ {1}\n", so.AbsolutePosition, so.Scene.RegionInfo.RegionName);
|
foreach (SceneObjectPart sop in so.Parts)
|
||||||
sb.AppendFormat("Parts: {0}\n", so.PrimCount);
|
{
|
||||||
sb.AppendFormat("Flags: {0}\n", so.RootPart.Flags);
|
AddScenePartReport(sb, sop);
|
||||||
|
sb.Append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AddSummarySceneObjectReport(sb, so);
|
||||||
|
}
|
||||||
|
|
||||||
return sb;
|
return sb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private StringBuilder AddSummarySceneObjectReport(StringBuilder sb, SceneObjectGroup so)
|
||||||
|
{
|
||||||
|
ConsoleDisplayList cdl = new ConsoleDisplayList();
|
||||||
|
cdl.AddRow("Name", so.Name);
|
||||||
|
cdl.AddRow("Descrition", so.Description);
|
||||||
|
cdl.AddRow("Local ID", so.LocalId);
|
||||||
|
cdl.AddRow("UUID", so.UUID);
|
||||||
|
cdl.AddRow("Location", string.Format("{0} @ {1}", so.AbsolutePosition, so.Scene.Name));
|
||||||
|
cdl.AddRow("Parts", so.PrimCount);
|
||||||
|
cdl.AddRow("Flags", so.RootPart.Flags);
|
||||||
|
|
||||||
|
return sb.Append(cdl.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
private StringBuilder AddScenePartReport(StringBuilder sb, SceneObjectPart sop)
|
private StringBuilder AddScenePartReport(StringBuilder sb, SceneObjectPart sop)
|
||||||
{
|
{
|
||||||
sb.AppendFormat("Name: {0}\n", sop.Name);
|
ConsoleDisplayList cdl = new ConsoleDisplayList();
|
||||||
sb.AppendFormat("Description: {0}\n", sop.Description);
|
cdl.AddRow("Name", sop.Name);
|
||||||
sb.AppendFormat("Location: {0} @ {1}\n", sop.AbsolutePosition, sop.ParentGroup.Scene.RegionInfo.RegionName);
|
cdl.AddRow("Description", sop.Description);
|
||||||
sb.AppendFormat("Parent: {0}",
|
cdl.AddRow("Local ID", sop.LocalId);
|
||||||
sop.IsRoot ? "Is Root\n" : string.Format("{0} {1}\n", sop.ParentGroup.Name, sop.ParentGroup.UUID));
|
cdl.AddRow("UUID", sop.UUID);
|
||||||
sb.AppendFormat("Link number: {0}\n", sop.LinkNum);
|
cdl.AddRow("Location", string.Format("{0} @ {1}", sop.AbsolutePosition, sop.ParentGroup.Scene.Name));
|
||||||
sb.AppendFormat("Flags: {0}\n", sop.Flags);
|
cdl.AddRow(
|
||||||
|
"Parent",
|
||||||
|
sop.IsRoot ? "Is Root" : string.Format("{0} {1}", sop.ParentGroup.Name, sop.ParentGroup.UUID));
|
||||||
|
cdl.AddRow("Link number", sop.LinkNum);
|
||||||
|
cdl.AddRow("Flags", sop.Flags);
|
||||||
|
cdl.AddRow("Items", sop.Inventory.Count);
|
||||||
|
|
||||||
return sb;
|
return sb.Append(cdl.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleDeleteObject(string module, string[] cmd)
|
private void HandleDeleteObject(string module, string[] cmd)
|
||||||
|
|
|
@ -269,18 +269,26 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
|
|
||||||
void ApplyGodPermissions(uint perms);
|
void ApplyGodPermissions(uint perms);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of items in this inventory.
|
||||||
|
/// </summary>
|
||||||
|
int Count { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns true if this inventory contains any scripts
|
/// Returns true if this inventory contains any scripts
|
||||||
/// </summary></returns>
|
/// </summary></returns>
|
||||||
bool ContainsScripts();
|
bool ContainsScripts();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the count of scripts contained
|
/// Number of scripts in this inventory.
|
||||||
/// </summary></returns>
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Includes both running and non running scripts.
|
||||||
|
/// </remarks>
|
||||||
int ScriptCount();
|
int ScriptCount();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the count of running scripts contained
|
/// Number of running scripts in this inventory.
|
||||||
/// </summary></returns>
|
/// </summary></returns>
|
||||||
int RunningScriptCount();
|
int RunningScriptCount();
|
||||||
|
|
||||||
|
|
|
@ -97,6 +97,15 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
QueryScriptStates();
|
QueryScriptStates();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int Count
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
lock (m_items)
|
||||||
|
return m_items.Count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructor
|
/// Constructor
|
||||||
|
|
Loading…
Reference in New Issue