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

varregion
Justin Clark-Casey (justincc) 2013-09-03 17:07:57 +01:00
parent 431156f6c4
commit 9c65207936
8 changed files with 45 additions and 12 deletions

View File

@ -35,6 +35,11 @@ namespace pCampBot
{
public class AbstractBehaviour : IBehaviour
{
/// <summary>
/// Abbreviated name of this behaviour.
/// </summary>
public string AbbreviatedName { get; protected set; }
public string Name { 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 CrossBehaviour() { Name = "Cross"; }
public CrossBehaviour()
{
AbbreviatedName = "c";
Name = "Cross";
}
public override void Action()
{

View File

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

View File

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

View File

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

View File

@ -42,7 +42,11 @@ namespace pCampBot
{
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()
{

View File

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

View File

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