Skip to content

Commit

Permalink
PLM: Menu changes & some customization options
Browse files Browse the repository at this point in the history
PlayerLobbyManagement:
- Allow banning as client (doesn't kick)
- Color lobby bullet based on relationship (Friend, Banned, Bot)
- Added a recently played with list
- improved formatting on banned players list

Nickname:
- cache current nickname color to reduce generated garbage
  • Loading branch information
AuriRex committed Apr 23, 2023
1 parent a897d8b commit 8c7dee4
Show file tree
Hide file tree
Showing 6 changed files with 349 additions and 25 deletions.
33 changes: 32 additions & 1 deletion TheArchive.IL2CPP/Features/Accessibility/Nickname.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
using TheArchive.Core.Models;
using TheArchive.Interfaces;
using TheArchive.Utilities;
using UnityEngine;

namespace TheArchive.Features.Accessibility
{
Expand Down Expand Up @@ -54,6 +55,34 @@ public class NicknameSettings

public static new IArchiveLogger FeatureLogger { get; set; }

private static Color? _currentNicknameColor;
public static Color CurrentNicknameColor
{
get
{
if(_currentNicknameColor == null)
{
_currentNicknameColor = Settings.Color.ToUnityColor();
}
return _currentNicknameColor.Value;
}
}

public static bool IsNicknameColorEnabled
{
get
{
switch(Settings.Mode)
{
case NicknameMode.Color:
case NicknameMode.TerminatedColor:
return true;
default:
return false;
}
}
}

public override void OnEnable()
{
SetNickname();
Expand All @@ -78,7 +107,9 @@ public void OnGameStateChanged(eGameStateName state)

public override void OnFeatureSettingChanged(FeatureSetting setting)
{
if(setting.Identifier.StartsWith("Allow"))
_currentNicknameColor = Settings.Color.ToUnityColor();

if (setting.Identifier.StartsWith("Allow"))
{
foreach(var player in SNet.LobbyPlayers)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,9 @@ public static void Postfix(PlayerAgent __instance, int characterID)

public static void SetupColor(SNet_Player player, int characterID)
{
if(player.IsLocal && Settings.LocalUseNicknameColorAsPlayerColor)
if(player.IsLocal && Settings.LocalUseNicknameColorAsPlayerColor && FeatureManager.IsFeatureEnabled<Nickname>() && Nickname.IsNicknameColorEnabled)
{
player.PlayerColor = Nickname.Settings.Color.ToUnityColor();
player.PlayerColor = Nickname.CurrentNicknameColor;
return;
}

Expand Down
Loading

0 comments on commit 8c7dee4

Please sign in to comment.