Show behaviours of pCampbot bots in "show bots" and "show bot" console commands

0.7.6-extended
Justin Clark-Casey (justincc) 2013-09-03 17:07:57 +01:00
parent 90907bf4fd
commit 6570f5dcfe
8 changed files with 45 additions and 12 deletions

View File

@ -35,6 +35,11 @@ namespace pCampBot
{ {
public class AbstractBehaviour : IBehaviour public class AbstractBehaviour : IBehaviour
{ {
/// <summary>
/// Abbreviated name of this behaviour.
/// </summary>
public string AbbreviatedName { get; protected set; }
public string Name { get; protected set; } public string Name { get; protected set; }
public Bot Bot { get; protected set; } public Bot Bot { get; protected set; }

View File

@ -47,7 +47,11 @@ namespace pCampBot
public const int m_regionCrossingTimeout = 1000 * 60; public const int m_regionCrossingTimeout = 1000 * 60;
public CrossBehaviour() { Name = "Cross"; } public CrossBehaviour()
{
AbbreviatedName = "c";
Name = "Cross";
}
public override void Action() public override void Action()
{ {

View File

@ -41,7 +41,11 @@ namespace pCampBot
/// </remarks> /// </remarks>
public class GrabbingBehaviour : AbstractBehaviour public class GrabbingBehaviour : AbstractBehaviour
{ {
public GrabbingBehaviour() { Name = "Grabbing"; } public GrabbingBehaviour()
{
AbbreviatedName = "g";
Name = "Grabbing";
}
public override void Action() public override void Action()
{ {

View File

@ -38,6 +38,10 @@ namespace pCampBot
/// </summary> /// </summary>
public class NoneBehaviour : AbstractBehaviour public class NoneBehaviour : AbstractBehaviour
{ {
public NoneBehaviour() { Name = "None"; } public NoneBehaviour()
{
AbbreviatedName = "n";
Name = "None";
}
} }
} }

View File

@ -46,6 +46,7 @@ namespace pCampBot
public PhysicsBehaviour() public PhysicsBehaviour()
{ {
AbbreviatedName = "p";
Name = "Physics"; Name = "Physics";
talkarray = readexcuses(); talkarray = readexcuses();
} }

View File

@ -42,7 +42,11 @@ namespace pCampBot
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public TeleportBehaviour() { Name = "Teleport"; } public TeleportBehaviour()
{
AbbreviatedName = "t";
Name = "Teleport";
}
public override void Action() public override void Action()
{ {

View File

@ -572,10 +572,11 @@ namespace pCampBot
private void HandleShowBotsStatus(string module, string[] cmd) private void HandleShowBotsStatus(string module, string[] cmd)
{ {
ConsoleDisplayTable cdt = new ConsoleDisplayTable(); ConsoleDisplayTable cdt = new ConsoleDisplayTable();
cdt.AddColumn("Name", 30); cdt.AddColumn("Name", 24);
cdt.AddColumn("Region", 30); cdt.AddColumn("Region", 24);
cdt.AddColumn("Status", 14); cdt.AddColumn("Status", 13);
cdt.AddColumn("Connections", 11); cdt.AddColumn("Conns", 5);
cdt.AddColumn("Behaviours", 20);
Dictionary<ConnectionState, int> totals = new Dictionary<ConnectionState, int>(); Dictionary<ConnectionState, int> totals = new Dictionary<ConnectionState, int>();
foreach (object o in Enum.GetValues(typeof(ConnectionState))) foreach (object o in Enum.GetValues(typeof(ConnectionState)))
@ -583,13 +584,17 @@ namespace pCampBot
lock (m_bots) lock (m_bots)
{ {
foreach (Bot pb in m_bots) foreach (Bot bot in m_bots)
{ {
Simulator currentSim = pb.Client.Network.CurrentSim; Simulator currentSim = bot.Client.Network.CurrentSim;
totals[pb.ConnectionState]++; totals[bot.ConnectionState]++;
cdt.AddRow( cdt.AddRow(
pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.ConnectionState, pb.SimulatorsCount); bot.Name,
currentSim != null ? currentSim.Name : "(none)",
bot.ConnectionState,
bot.SimulatorsCount,
string.Join(",", bot.Behaviours.ConvertAll<string>(behaviour => behaviour.AbbreviatedName)));
} }
} }
@ -645,6 +650,7 @@ namespace pCampBot
MainConsole.Instance.Output("Settings"); MainConsole.Instance.Output("Settings");
ConsoleDisplayList statusCdl = new ConsoleDisplayList(); ConsoleDisplayList statusCdl = new ConsoleDisplayList();
statusCdl.AddRow("Behaviours", string.Join(", ", bot.Behaviours.ConvertAll<string>(b => b.Name)));
GridClient botClient = bot.Client; GridClient botClient = bot.Client;
statusCdl.AddRow("SEND_AGENT_UPDATES", botClient.Settings.SEND_AGENT_UPDATES); statusCdl.AddRow("SEND_AGENT_UPDATES", botClient.Settings.SEND_AGENT_UPDATES);

View File

@ -31,6 +31,11 @@ namespace pCampBot.Interfaces
{ {
public interface IBehaviour public interface IBehaviour
{ {
/// <summary>
/// Abbreviated name of this behaviour.
/// </summary>
string AbbreviatedName { get; }
/// <summary> /// <summary>
/// Name of this behaviour. /// Name of this behaviour.
/// </summary> /// </summary>