diff options
| -rw-r--r-- | ConfigFile.cs | 7 | ||||
| -rw-r--r-- | Mouse.cs | 4 | ||||
| -rw-r--r-- | MouseLocal.cs | 2 | ||||
| -rw-r--r-- | Net.cs | 1 | ||||
| -rw-r--r-- | NetClient.cs | 4 | ||||
| -rw-r--r-- | NetServer.cs | 4 | ||||
| -rw-r--r-- | OnekoLocal.cs | 2 | ||||
| -rw-r--r-- | OnekoNet.cs | 2 |
8 files changed, 23 insertions, 3 deletions
diff --git a/ConfigFile.cs b/ConfigFile.cs index e0f1293..cfe77c9 100644 --- a/ConfigFile.cs +++ b/ConfigFile.cs @@ -15,6 +15,7 @@ class ConfigFile Console.WriteLine("Config file does not exist, creating one."); File.WriteAllText(Path, TopLine); OptionChanged = true; + SaveFileDelayed(3000); return; } @@ -29,6 +30,12 @@ class ConfigFile } } + public async void SaveFileDelayed(int delayInMilliseconds) + { + await Task.Delay(delayInMilliseconds); + SaveFile(); + } + public void SaveFile() { if (!OptionChanged) return; @@ -23,6 +23,10 @@ abstract class Mouse : Drawable public override void Draw() { + Vector2 NametagPosition = new(Position.X-(Name.Length*3)+4, Position.Y-13); + Raylib.DrawTextEx(OnekoOnline.DefaultFont, Name, NametagPosition+Directions.Down, 11, 0, Color.BLACK); //Shadow + Raylib.DrawTextEx(OnekoOnline.DefaultFont, Name, NametagPosition, 11, 0, Color.WHITE); + Raylib.DrawTexture(CursorTex, (int)Position.X, (int)Position.Y, Color.WHITE); } diff --git a/MouseLocal.cs b/MouseLocal.cs index 0b38cd5..2b36ff3 100644 --- a/MouseLocal.cs +++ b/MouseLocal.cs @@ -12,6 +12,8 @@ class MouseLocal : Mouse Client.UserConnected += user => { MouseNet NewNetMouse = new(user); }; + + Name = Client.UserName; } public override void Update(float delta) @@ -96,4 +96,5 @@ class User(int id) //Oneko Stuff public byte[]? SpriteSheet; public string? Username; + public string? Nekoname; }
\ No newline at end of file diff --git a/NetClient.cs b/NetClient.cs index da287df..492c459 100644 --- a/NetClient.cs +++ b/NetClient.cs @@ -6,7 +6,7 @@ namespace OnekoOnline.Net; class Client { - public static readonly string UserName = OnekoOnline.Config.GetValue("UserName", "Oneko"); + public static readonly string UserName = OnekoOnline.Config.GetValue("UserName", "User"); public int Id {get; private set;} = -1; public bool Connected => NetClient?.ConnectedPeersCount > 0 && Id != -1; @@ -38,6 +38,7 @@ class Client writer.Put(new PacketInfo(PacketType.UserInfo, Id)); writer.Put(UserName); + writer.Put(OnekoLocal.Instance!.Name); writer.PutBytesWithLength(OnekoLocal.Instance!.SpriteSheet.Serialize()); peer.Send(writer, DeliveryMethod.ReliableUnordered); }; @@ -73,6 +74,7 @@ class Client else if (info.Type == PacketType.UserInfo) { from.Username = reader.GetString(); + from.Nekoname = reader.GetString(); from.SpriteSheet = reader.GetBytesWithLength(); Console.WriteLine($"User {from.Username} joined!"); from.Initialized = true; diff --git a/NetServer.cs b/NetServer.cs index a8e3130..875ddfd 100644 --- a/NetServer.cs +++ b/NetServer.cs @@ -53,6 +53,8 @@ class Server if (info.Type == PacketType.UserInfo) { user.Username = dataReader.GetString(); if (user.Username.Length > 40) user.Username = user.Username[0..40]; //Clamp username length + user.Nekoname = dataReader.GetString(); + if (user.Nekoname.Length > 40) user.Nekoname = user.Nekoname[0..40]; //Clamp nekoname length user.SpriteSheet = dataReader.GetBytesWithLength(); if (!user.Initialized) { @@ -71,12 +73,14 @@ class Server //Send all current users spritesheets to this user. writer.ResetWithInfo(new PacketInfo(PacketType.UserInfo, toSend.Id)); writer.Put(toSend.Username); + writer.Put(toSend.Nekoname); writer.PutBytesWithLength(toSend.SpriteSheet); fromPeer.Send(writer, DeliveryMethod.ReliableUnordered); //Send all current users this users spritesheet writer.ResetWithInfo(new PacketInfo(PacketType.UserInfo, user.Id)); writer.Put(user.Username); + writer.Put(user.Nekoname); writer.PutBytesWithLength(user.SpriteSheet); toSend.Peer.Send(writer, DeliveryMethod.ReliableUnordered); } diff --git a/OnekoLocal.cs b/OnekoLocal.cs index c33dd66..249c5d1 100644 --- a/OnekoLocal.cs +++ b/OnekoLocal.cs @@ -28,7 +28,7 @@ class OnekoLocal : Oneko Client.UserConnected += OnekoNet.SpawnNetNeko; - Name = Client.UserName; + Name = OnekoOnline.Config.GetValue("NekoName", "Oneko"); } public override void Update(float delta) diff --git a/OnekoNet.cs b/OnekoNet.cs index a5b2008..d01bff3 100644 --- a/OnekoNet.cs +++ b/OnekoNet.cs @@ -15,7 +15,7 @@ class OnekoNet : Oneko public OnekoNet(Bitmap bitmap, User user) : base(bitmap) { MyUser = user; - Name = user.Username!; + Name = user.Nekoname!; Client.UserDisconnected += disconnectedUser => { if (disconnectedUser == MyUser) Dispose(); |
