{
public partial class ObjectsConsole : UserControl, IContextMenuProvider
{
+ public List<Primitive> Prims = new List<Primitive>();
+
private RadegastInstance instance;
private GridClient client { get { return instance.Client; } }
private Primitive currentPrim = new Primitive();
PropertiesQueue propRequester;
private Thread ContentsThread;
private ObjectConsoleFilter filter;
- private List<Primitive> Prims = new List<Primitive>();
private ObjectSorter PrimSorter;
public Primitive CurrentPrim { get { return currentPrim; } }
{
private Radegast.ObjectsConsole obTab;
public bool Announce { get; set; }
- private ListViewNoFlicker objects;
private Primitive currentPrim = new Primitive();
private ListViewItem currentItem ;
Title = "surroundings";
Announce = false;
obTab = (ObjectsConsole)control.instance.TabConsole.Tabs["objects"].Control;
- objects = obTab.lstPrims;
}
/// <summary>
internal override void Start()
{
base.Start();
- objects.SelectedIndexChanged += Objects_SelectedIndexChanged;
+ obTab.lstPrims.SelectedIndexChanged += Objects_SelectedIndexChanged;
Talker.SayMore("Surroundings");
Objects_SelectedIndexChanged(null, null);
}
/// </summary>
internal override void Stop()
{
- objects.SelectedIndexChanged -= Objects_SelectedIndexChanged;
+ obTab.lstPrims.SelectedIndexChanged -= Objects_SelectedIndexChanged;
base.Stop();
}
#endregion
{
string description;
- if (objects.SelectedItems.Count != 1)
+ if (obTab.lstPrims.SelectedIndices.Count != 1)
return;
- currentItem = objects.SelectedItems[0];
- currentPrim = currentItem.Tag as Primitive;
+ currentPrim = obTab.Prims[obTab.lstPrims.SelectedIndices[0]];
+
+ Vector3 pos = Vector3.Zero;
+ if (currentPrim.ParentID == 0)
+ {
+ pos = currentPrim.Position;
+ }
if (currentPrim.Properties == null)
{
}
else
{
- description = control.env.people.Location(currentPrim.Position);
+ description = control.env.people.Location(pos);
if ((currentPrim.Flags & PrimFlags.Scripted) != 0)
description += " scripted,";
Talker.SayObject(
currentPrim.Properties.Name,
description,
- control.env.people.SameDirection( currentPrim.Position ) );
+ control.env.people.SameDirection( pos ) );
}
/// <summary>
internal override void Stop()
{
- vTab.gateway.OnSessionCreate -= new EventHandler(OnSessionCreate);
- vTab.gateway.OnSessionRemove -= new EventHandler(gateway_OnSessionRemove);
+ if (vTab.gateway != null)
+ {
+ vTab.gateway.OnSessionCreate -= new EventHandler(OnSessionCreate);
+ vTab.gateway.OnSessionRemove -= new EventHandler(gateway_OnSessionRemove);
+ }
vTab.chkVoiceEnable.CheckStateChanged -= new EventHandler(chkVoiceEnable_CheckStateChanged);
}
#endregion