Merge pull request #32 from progtime-net/ServerBranch

ChangeHierarchyUpdateClasses
This commit is contained in:
Andrey 2024-08-16 23:37:45 +03:00 committed by GitHub
commit ceb10ce7c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 34 additions and 40 deletions

View file

@ -28,7 +28,7 @@ namespace ZoFo.GameCore
public void OnDataSend(string data) public void OnDataSend(string data)
{ {
List<IUpdateData> updateDatas = JsonSerializer.Deserialize<List<IUpdateData>>(data); List<UpdateData> updateDatas = JsonSerializer.Deserialize<List<UpdateData>>(data);
// тут будет switch // тут будет switch
foreach (var item in updateDatas) foreach (var item in updateDatas)
{ {

View file

@ -18,7 +18,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
private int port = 7632; private int port = 7632;
private EndPoint endPoint; private EndPoint endPoint;
private Socket socket; private Socket socket;
List<IUpdateData> updates = new List<IUpdateData>(); List<UpdateData> updates = new List<UpdateData>();
public delegate void OnDataSent(string Data); public delegate void OnDataSent(string Data);
public event OnDataSent GetDataSent; // event public event OnDataSent GetDataSent; // event
public bool IsConnected { get { return socket.Connected; } } public bool IsConnected { get { return socket.Connected; } }
@ -44,7 +44,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
socket.Send(bytes); socket.Send(bytes);
} }
public void AddData(IUpdateData UpdateData) public void AddData(UpdateData UpdateData)
{ {
updates.Add(UpdateData); updates.Add(UpdateData);
} }

View file

@ -38,7 +38,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
managerThread = new Dictionary<Socket, Thread>(); managerThread = new Dictionary<Socket, Thread>();
clients = new List<Socket>(); clients = new List<Socket>();
updates = new List<IUpdateData>(); updates = new List<UpdateData>();
managerThread = new Dictionary<Socket, Thread>(); managerThread = new Dictionary<Socket, Thread>();
socket.Bind(endPoint); socket.Bind(endPoint);
} }
@ -68,7 +68,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
/// добавляет в лист updates новую data /// добавляет в лист updates новую data
/// </summary> /// </summary>
/// <param name="data"></param> /// <param name="data"></param>
public void AddData(IUpdateData data) public void AddData(UpdateData data)
{ {
updates.Add(data); updates.Add(data);
} }

View file

@ -6,9 +6,12 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer
{ {
public class UpdateInput :IUpdateData public class UpdateInput :UpdateData
{ {
public int IdEntity { get; set; } // public int IdEntity { get; set; }
public string UpdateType { get; set; } public UpdateInput()
{
UpdateType = "UpdateInput";
}
} }
} }

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer
{ {
public class UpdatePlayerExit : IUpdateData public class UpdatePlayerExit : UpdateData
{ {
public int IdEntity { get; set; } public UpdatePlayerExit() { UpdateType = "UpdatePlayerExit"; }
public string UpdateType { get; set; }
} }
} }

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{ {
public class UpdateAnimation : IUpdateData //хранит новую анимации public class UpdateAnimation : UpdateData //хранит новую анимации
{ {
public int IdEntity { get; set; } public UpdateAnimation() { UpdateType = "UpdateAnimation"; }
public string UpdateType { get; set; }
} }
} }

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{ {
public class UpdateEntityHealth : IUpdateData//хранит новое хп entity public class UpdateEntityHealth : UpdateData//хранит новое хп entity
{ {
public int IdEntity { get; set; } public UpdateEntityHealth() { UpdateType = "UpdateEntityHealth"; }
public string UpdateType { get; set; }
} }
} }

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{ {
public class UpdateGameEnded : IUpdateData //хранит полученый лут и уведомляет о конце игры public class UpdateGameEnded : UpdateData //хранит полученый лут и уведомляет о конце игры
{ {
public int IdEntity { get; set; } public UpdateGameEnded() { UpdateType = "UpdateGameEnded"; }
public string UpdateType { get; set; }
} }
} }

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{ {
public class UpdateGameObjectCreated : IUpdateData //Хранит объект, который только отправили public class UpdateGameObjectCreated : UpdateData //Хранит объект, который только отправили
{ {
public int IdEntity { get; set; } public UpdateGameObjectCreated() { UpdateType = "UpdateGameObjectCreated"; }
public string UpdateType { get; set; }
} }
} }

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{ {
public class UpdateLoot : IUpdateData //Хранит лут public class UpdateLoot : UpdateData //Хранит лут
{ {
public int IdEntity { get; set; } public UpdateLoot() { UpdateType = "UpdateLoot"; }
public string UpdateType { get; set; }
} }
} }

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{ {
public class UpdatePlayerParametrs : IUpdateData //Хранит хп, радиацию public class UpdatePlayerParametrs : UpdateData //Хранит хп, радиацию
{ {
public int IdEntity { get; set; } public UpdatePlayerParametrs() { UpdateType = "UpdatePlayerParametrs"; }
public string UpdateType { get; set; }
} }
} }

View file

@ -6,9 +6,8 @@ using System.Threading.Tasks;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{ {
public class UpdatePosition : IUpdateData //Хранит новую позицию public class UpdatePosition : UpdateData //Хранит новую позицию
{ {
public int IdEntity { get; set; } public UpdatePosition() { UpdateType = "UpdatePosition"; }
public string UpdateType { get; set; }
} }
} }

View file

@ -10,11 +10,10 @@ using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer;
namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient
{ {
public class UpdateTileCreated : IUpdateData public class UpdateTileCreated : UpdateData
{ {
public int IdEntity { get; set; } public UpdateTileCreated() { UpdateType = "UpdateTileCreated"; }
public string UpdateType { get; set; }
public Texture2D TextureTile { get; set; } public Texture2D TextureTile { get; set; }
public Vector2 Position { get; set; } public Vector2 Position { get; set; }
public Point Size { get; set; } public Point Size { get; set; }

View file

@ -20,10 +20,10 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager.Updates
[JsonDerivedType(typeof(UpdateTileCreated))] [JsonDerivedType(typeof(UpdateTileCreated))]
[JsonDerivedType(typeof(UpdateInput))] [JsonDerivedType(typeof(UpdateInput))]
[JsonDerivedType(typeof(UpdatePlayerExit))] [JsonDerivedType(typeof(UpdatePlayerExit))]
public interface IUpdateData public class UpdateData
{ {
public int IdEntity { get; set; } //Id объекта public int IdEntity { get; set; } //Id объекта
public string UpdateType { get; set; } //тип обновления public string UpdateType { get; protected set; } //тип обновления
} }
} }

View file

@ -50,7 +50,7 @@ namespace ZoFo.GameCore
/// добавляет в лист updates новую data /// добавляет в лист updates новую data
/// </summary> /// </summary>
/// <param name="data"></param> /// <param name="data"></param>
public void AddData(IUpdateData data) public void AddData(UpdateData data)//добавляет в лист updates новую data
{ {
networkManager.AddData(data); networkManager.AddData(data);
} }