ChangeHierarchyUpdateClasses

This commit is contained in:
rawer470 2024-08-16 22:11:10 +03:00
parent 91d15a9de5
commit a2df1b746a
15 changed files with 36 additions and 42 deletions

View file

@ -25,7 +25,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; } }
@ -39,7 +39,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

@ -21,7 +21,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
private IPEndPoint endPoint; private IPEndPoint endPoint;
private Socket socket; private Socket socket;
private List<Socket> clients; private List<Socket> clients;
private List<IUpdateData> updates; private List<UpdateData> updates;
public delegate void OnDataSend(string data); public delegate void OnDataSend(string data);
public event OnDataSend GetDataSend; // event public event OnDataSend GetDataSend; // event
Dictionary<Socket, Thread> managerThread; Dictionary<Socket, Thread> managerThread;
@ -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);
} }
@ -60,7 +60,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; }
} }

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

@ -24,7 +24,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 case будет честное слово //ТУТ Switch case будет честное слово
} }
@ -32,7 +32,7 @@ namespace ZoFo.GameCore
/// Для красоты) Отдел Серверов /// Для красоты) Отдел Серверов
/// </summary> /// </summary>
/// <param name="data"></param> /// <param name="data"></param>
public void AddData(IUpdateData data)//добавляет в лист updates новую data public void AddData(UpdateData data)//добавляет в лист updates новую data
{ {
networkManager.AddData(data); networkManager.AddData(data);
} }