* mindcomponent namespace * wip MindRole stuff * admin player tab * mindroletype comment * mindRolePrototype redesign * broken param * wip RoleType implementation * basic role type switching for antags * traitor fix * fix AdminPanel update * the renameningTM * cleanup * feature uncreeping * roletypes on mind roles * update MindComponent.RoleType when MindRoles change * ghostrole configuration * ghostrole config improvements * live update of roleType on the character window * logging stuff and notes * remove thing no one asked for * weh * Mind Role Entities wip * headrev count fix * silicon stuff, cleanup * exclusive antag config, cleanup * jobroleadd overwerite * logging stuff * MindHasRole cleanup, admin log stuff * last second cleanup * ocd * move roletypeprototype to its own file, minor note stuff * remove Roletype.Created * log stuff * roletype setup for ghostroles and autotraitor reinforcements * ghostrole type configs * adjustable admin overlay * cleanup * fix this in its own PR * silicon antagonist * borg stuff * mmi roletype handling * spawnable borg roletype handling * weh * ghost role cleanup * weh * RoleEvent update * polish * log stuff * admin overlay config * ghostrolecomponent cleanup * weh * admin overlay code cleanup * minor cleanup * Obsolete MindRoleAddedEvent * comment * minor code cleanup * MindOnDoGreeting fix * Role update message * fix duplicate job greeting for cyborgs * fix emag job message dupe * nicer-looking role type update * crew aligned * syndicate assault borg role fix * fix test fail * fix a merge mistake * fix LoneOp role type * Update Content.Client/Administration/AdminNameOverlay.cs Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * Update Content.Shared/Roles/SharedRoleSystem.cs Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * comment formatting Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * change logging category Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * fix a space Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * use MindAddRoles Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * get MindComponent from TryGetMind Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * move var declaration outside loop * remove TryComp * take RoleEnum behind the barn * don't use ensurecomp unnecessarily * cvar comments * toggleableghostrolecomponent documentation * skrek * use EntProtoId * mindrole config * merge baserolecomponent into basemindrolecomponent * ai and borg silicon role tweaks * formatting Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * I will end you (the color) Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * use LocId type for a locale id * update RoleEvent documentation * update RoleEvent documentation * remove obsolete MindRoleAddedEvent * refine MindRolesUpdate() * use dependency Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * inject dependency Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * roleType.Name no longer required * reformatted draw code logic * GhostRoleMarkerRoleComponent comment * minor SharedRoleSystem cleanup * StartingMindRoleComponent, unhardcode roundstart silicon * Update Content.Shared/Roles/SharedRoleSystem.cs * remove a whitespace --------- Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
116 lines
3.2 KiB
C#
116 lines
3.2 KiB
C#
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Client.UserInterface.Controls;
|
|
using Robust.Client.UserInterface.XAML;
|
|
using Robust.Shared.Input;
|
|
|
|
namespace Content.Client.Administration.UI.Tabs.PlayerTab;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class PlayerTabHeader : Control
|
|
{
|
|
public event Action<Header>? OnHeaderClicked;
|
|
|
|
public PlayerTabHeader()
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
|
|
UsernameLabel.OnKeyBindDown += UsernameClicked;
|
|
CharacterLabel.OnKeyBindDown += CharacterClicked;
|
|
JobLabel.OnKeyBindDown += JobClicked;
|
|
AntagonistLabel.OnKeyBindDown += AntagonistClicked;
|
|
RoleTypeLabel.OnKeyBindDown += RoleTypeClicked;
|
|
PlaytimeLabel.OnKeyBindDown += PlaytimeClicked;
|
|
}
|
|
|
|
public Label GetHeader(Header header)
|
|
{
|
|
return header switch
|
|
{
|
|
Header.Username => UsernameLabel,
|
|
Header.Character => CharacterLabel,
|
|
Header.Job => JobLabel,
|
|
Header.Antagonist => AntagonistLabel,
|
|
Header.RoleType => RoleTypeLabel,
|
|
Header.Playtime => PlaytimeLabel,
|
|
_ => throw new ArgumentOutOfRangeException(nameof(header), header, null)
|
|
};
|
|
}
|
|
|
|
public void ResetHeaderText()
|
|
{
|
|
UsernameLabel.Text = Loc.GetString("player-tab-username");
|
|
CharacterLabel.Text = Loc.GetString("player-tab-character");
|
|
JobLabel.Text = Loc.GetString("player-tab-job");
|
|
AntagonistLabel.Text = Loc.GetString("player-tab-antagonist");
|
|
RoleTypeLabel.Text = Loc.GetString("player-tab-roletype");
|
|
PlaytimeLabel.Text = Loc.GetString("player-tab-playtime");
|
|
}
|
|
|
|
private void HeaderClicked(GUIBoundKeyEventArgs args, Header header)
|
|
{
|
|
if (args.Function != EngineKeyFunctions.UIClick)
|
|
{
|
|
return;
|
|
}
|
|
|
|
OnHeaderClicked?.Invoke(header);
|
|
args.Handle();
|
|
}
|
|
|
|
private void UsernameClicked(GUIBoundKeyEventArgs args)
|
|
{
|
|
HeaderClicked(args, Header.Username);
|
|
}
|
|
|
|
private void CharacterClicked(GUIBoundKeyEventArgs args)
|
|
{
|
|
HeaderClicked(args, Header.Character);
|
|
}
|
|
|
|
private void JobClicked(GUIBoundKeyEventArgs args)
|
|
{
|
|
HeaderClicked(args, Header.Job);
|
|
}
|
|
|
|
private void AntagonistClicked(GUIBoundKeyEventArgs args)
|
|
{
|
|
HeaderClicked(args, Header.Antagonist);
|
|
}
|
|
|
|
private void RoleTypeClicked(GUIBoundKeyEventArgs args)
|
|
{
|
|
HeaderClicked(args, Header.RoleType);
|
|
}
|
|
|
|
private void PlaytimeClicked(GUIBoundKeyEventArgs args)
|
|
{
|
|
HeaderClicked(args, Header.Playtime);
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
base.Dispose(disposing);
|
|
|
|
if (disposing)
|
|
{
|
|
UsernameLabel.OnKeyBindDown -= UsernameClicked;
|
|
CharacterLabel.OnKeyBindDown -= CharacterClicked;
|
|
JobLabel.OnKeyBindDown -= JobClicked;
|
|
AntagonistLabel.OnKeyBindDown -= AntagonistClicked;
|
|
RoleTypeLabel.OnKeyBindDown -= RoleTypeClicked;
|
|
PlaytimeLabel.OnKeyBindDown -= PlaytimeClicked;
|
|
}
|
|
}
|
|
|
|
public enum Header
|
|
{
|
|
Username,
|
|
Character,
|
|
Job,
|
|
Antagonist,
|
|
RoleType,
|
|
Playtime
|
|
}
|
|
}
|