diff --git a/Ragon.Client/Ragon.Client.csproj b/Ragon.Client/Ragon.Client.csproj
index 0bfeac8..8b107bd 100644
--- a/Ragon.Client/Ragon.Client.csproj
+++ b/Ragon.Client/Ragon.Client.csproj
@@ -5,7 +5,7 @@
enable
10
Ragon.Client.Simulation
- Eduard Kargin (Edmand46)
+ Eduard Kargin
netstandard2.0
diff --git a/Ragon.Protocol/Ragon.Protocol.csproj b/Ragon.Protocol/Ragon.Protocol.csproj
index 6a0a76c..3a6493a 100644
--- a/Ragon.Protocol/Ragon.Protocol.csproj
+++ b/Ragon.Protocol/Ragon.Protocol.csproj
@@ -8,7 +8,9 @@
true
Ragon.Protocol
Eduard Kargin
- https://ragon-server.com
+ 1.4.0
+ Eduard Kargin
+ https://ragon.io
https://github.com/edmand46/Ragon
Source
Apache-2.0
diff --git a/Ragon.Server.ENetServer/Ragon.Server.ENetServer.csproj b/Ragon.Server.ENetServer/Ragon.Server.ENetServer.csproj
index ac438ef..ce07810 100644
--- a/Ragon.Server.ENetServer/Ragon.Server.ENetServer.csproj
+++ b/Ragon.Server.ENetServer/Ragon.Server.ENetServer.csproj
@@ -4,7 +4,17 @@
enable
enable
Ragon.ENet
- net6.0;net7.0
+ net6.0;net7.0;net8.0
+ true
+ Eduard Kargin
+ Eduard Kargin
+ 1.4.0
+ Ragon Server ENet
+ Ragon Server ENet transport
+ https://ragon.io
+ Apache-2.0
+ https://github.com/edmand46/Ragon
+ Source
diff --git a/Ragon.Server.WebSocketServer/Ragon.Server.WebSocketServer.csproj b/Ragon.Server.WebSocketServer/Ragon.Server.WebSocketServer.csproj
index 0ba9084..87d8c95 100644
--- a/Ragon.Server.WebSocketServer/Ragon.Server.WebSocketServer.csproj
+++ b/Ragon.Server.WebSocketServer/Ragon.Server.WebSocketServer.csproj
@@ -4,7 +4,17 @@
enable
enable
Ragon.WebSockets
- net7.0;net6.0
+ net6.0;net7.0;net8.0
+ Eduard Kargin
+ Eduard Kargin
+ true
+ 1.4.0
+ Ragon Server WebSocket
+ Ragon Server WebSocket transport
+ https://ragon.io
+ Apache-2.0
+ https://github.com/edmand46/Ragon
+ Source
diff --git a/Ragon.Server/Ragon.Server.csproj b/Ragon.Server/Ragon.Server.csproj
index 835d921..16a988a 100644
--- a/Ragon.Server/Ragon.Server.csproj
+++ b/Ragon.Server/Ragon.Server.csproj
@@ -5,15 +5,16 @@
enable
Ragon.Core
true
- 1.3.1
+ 1.4.0
Ragon.Server
Eduard Kargin
- https://ragon-server.com
+ Eduard Kargin
+ Apache-2.0
+ https://ragon.io
https://github.com/edmand46/Ragon
Source
- Apache-2.0
10
- net6.0;net7.0
+ net6.0;net7.0;net8.0
diff --git a/Ragon.Server/Sources/Plugin/BaseRoomPlugin.cs b/Ragon.Server/Sources/Plugin/BaseRoomPlugin.cs
index 6de1100..c7f0a10 100644
--- a/Ragon.Server/Sources/Plugin/BaseRoomPlugin.cs
+++ b/Ragon.Server/Sources/Plugin/BaseRoomPlugin.cs
@@ -65,7 +65,6 @@ public class BaseRoomPlugin: IRoomPlugin
public virtual bool OnData(RagonRoomPlayer player, byte[] data)
{
-
return true;
}
diff --git a/Ragon.Simulation/Program.cs b/Ragon.Simulation/Program.cs
deleted file mode 100644
index a34cb94..0000000
--- a/Ragon.Simulation/Program.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2023 Eduard Kargin
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using Ragon.Client.Simulation;
-
-var simulation = new Simulation();
-simulation.Start();
\ No newline at end of file
diff --git a/Ragon.Simulation/Ragon.Simulation.csproj b/Ragon.Simulation/Ragon.Simulation.csproj
deleted file mode 100644
index cad77a6..0000000
--- a/Ragon.Simulation/Ragon.Simulation.csproj
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
- Exe
- net7.0
- enable
- enable
- Linux
- Ragon.Client.Simulation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Always
-
-
-
-
-
-
-
-
diff --git a/Ragon.Simulation/Sources/Client/Client.cs b/Ragon.Simulation/Sources/Client/Client.cs
deleted file mode 100644
index 3180853..0000000
--- a/Ragon.Simulation/Sources/Client/Client.cs
+++ /dev/null
@@ -1,143 +0,0 @@
-using System.Numerics;
-using Raylib_cs;
-using static Raylib_cs.Raylib;
-
-namespace Ragon.Simulation;
-
-public class Client
-{
- public void Start()
- {
- // Initialization
- //--------------------------------------------------------------------------------------
- const int screenWidth = 800;
- const int screenHeight = 450;
-
- InitWindow(screenWidth, screenHeight, "raylib [models] example - first person maze");
-
- // Define the camera to look into our 3d world
- Camera3D camera = new();
- camera.Position = new Vector3(0.2f, 0.4f, 0.2f);
- camera.Target = new Vector3(0.0f, 0.0f, 0.0f);
- camera.Up = new Vector3(0.0f, 1.0f, 0.0f);
- camera.FovY = 45.0f;
- camera.Projection = CameraProjection.CAMERA_PERSPECTIVE;
-
- Image imMap = LoadImage("resources/cubicmap.png");
- Texture2D cubicmap = LoadTextureFromImage(imMap);
- Mesh mesh = GenMeshCubicmap(imMap, new Vector3(1.0f, 1.0f, 1.0f));
- Model model = LoadModelFromMesh(mesh);
-
- // NOTE: By default each cube is mapped to one part of texture atlas
- Texture2D texture = LoadTexture("resources/cubicmap_atlas.png");
-
- // Set map diffuse texture
- Raylib.SetMaterialTexture(ref model, 0, MaterialMapIndex.MATERIAL_MAP_ALBEDO, ref texture);
-
- // Get map image data to be used for collision detection
- Color* mapPixels = LoadImageColors(imMap);
- UnloadImage(imMap);
-
- Vector3 mapPosition = new(-16.0f, 0.0f, -8.0f);
- Vector3 playerPosition = camera.Position;
-
- SetTargetFPS(60);
- //--------------------------------------------------------------------------------------
-
- // Main game loop
- while (!WindowShouldClose())
- {
- // Update
- //----------------------------------------------------------------------------------
- Vector3 oldCamPos = camera.Position;
-
- UpdateCamera(ref camera, CameraMode.CAMERA_FIRST_PERSON);
-
- // Check player collision (we simplify to 2D collision detection)
- Vector2 playerPos = new(camera.Position.X, camera.Position.Z);
-
- // Collision radius (player is modelled as a cilinder for collision)
- float playerRadius = 0.1f;
-
- int playerCellX = (int)(playerPos.X - mapPosition.X + 0.5f);
- int playerCellY = (int)(playerPos.Y - mapPosition.Z + 0.5f);
-
- // Out-of-limits security check
- if (playerCellX < 0)
- {
- playerCellX = 0;
- }
- else if (playerCellX >= cubicmap.Width)
- {
- playerCellX = cubicmap.Width - 1;
- }
-
- if (playerCellY < 0)
- {
- playerCellY = 0;
- }
- else if (playerCellY >= cubicmap.Height)
- {
- playerCellY = cubicmap.Height - 1;
- }
-
- // Check map collisions using image data and player position
- // TODO: Improvement: Just check player surrounding cells for collision
- for (int y = 0; y < cubicmap.Height; y++)
- {
- for (int x = 0; x < cubicmap.Width; x++)
- {
- Color* mapPixelsData = mapPixels;
-
- // Collision: Color.white pixel, only check R channel
- Rectangle rec = new(
- mapPosition.X - 0.5f + x * 1.0f,
- mapPosition.Z - 0.5f + y * 1.0f,
- 1.0f,
- 1.0f
- );
-
- bool collision = CheckCollisionCircleRec(playerPos, playerRadius, rec);
- if ((mapPixelsData[y * cubicmap.Width + x].R == 255) && collision)
- {
- // Collision detected, reset camera position
- camera.Position = oldCamPos;
- }
- }
- }
- //----------------------------------------------------------------------------------
-
- // Draw
- //----------------------------------------------------------------------------------
- BeginDrawing();
- ClearBackground(Color.RAYWHITE);
-
- // Draw maze map
- BeginMode3D(camera);
- DrawModel(model, mapPosition, 1.0f, Color.WHITE);
- EndMode3D();
-
- DrawTextureEx(cubicmap, new Vector2(GetScreenWidth() - cubicmap.Width * 4 - 20, 20), 0.0f, 4.0f, Color.WHITE);
- DrawRectangleLines(GetScreenWidth() - cubicmap.Width * 4 - 20, 20, cubicmap.Width * 4, cubicmap.Height * 4, Color.GREEN);
-
- // Draw player position radar
- DrawRectangle(GetScreenWidth() - cubicmap.Width * 4 - 20 + playerCellX * 4, 20 + playerCellY * 4, 4, 4, Color.RED);
-
- DrawFPS(10, 10);
-
- EndDrawing();
- //----------------------------------------------------------------------------------
- }
-
- // De-Initialization
- //--------------------------------------------------------------------------------------
- UnloadImageColors(mapPixels);
-
- UnloadTexture(cubicmap);
- UnloadTexture(texture);
- UnloadModel(model);
-
- CloseWindow();
- //--------------------------------------------------------------------------------------
- }
-}
\ No newline at end of file
diff --git a/Ragon.Simulation/Sources/Client/IO/RagonENetConnection.cs b/Ragon.Simulation/Sources/Client/IO/RagonENetConnection.cs
deleted file mode 100644
index 44ab26f..0000000
--- a/Ragon.Simulation/Sources/Client/IO/RagonENetConnection.cs
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright 2023 Eduard Kargin
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using ENet;
-using Ragon.Protocol;
-using Event = ENet.Event;
-using EventType = ENet.EventType;
-
-namespace Ragon.Client
-{
- public class RagonENetConnection : INetworkConnection
- {
- public ushort Id { get; }
-
- public NetworkStatistics Statistics { get; private set; }
- public INetworkChannel Reliable { get; private set; }
- public INetworkChannel Unreliable { get; private set; }
-
- public Action OnData { get; set; }
- public Action OnConnected { get; set; }
- public Action OnDisconnected { get; set; }
- public ulong BytesSent { get; }
- public ulong BytesReceived { get; }
- public int Ping { get; }
-
- private static bool _libraryLoaded = false;
- private Host _host;
- private Peer _peer;
- private Event _netEvent;
-
- public RagonENetConnection()
- {
- _host = new Host();
- _host.Create();
- }
-
-
- public void Prepare()
- {
- if (!_libraryLoaded)
- {
- Library.Initialize();
- _libraryLoaded = true;
- }
- }
-
- public void Disconnect()
- {
- if (_peer.IsSet)
- _peer.DisconnectNow(0);
- }
-
- public void Connect(string server, ushort port, uint protocol)
- {
- Address address = new Address();
- address.SetHost(server);
- address.Port = port;
-
- _peer = _host.Connect(address, 2, protocol);
- _peer.Timeout(32, 5000, 5000);
- }
-
- public void Update()
- {
- bool polled = false;
- while (!polled)
- {
- if (_host.CheckEvents(out _netEvent) <= 0)
- {
- if (_host.Service(0, out _netEvent) <= 0)
- break;
-
- polled = true;
- }
-
- switch (_netEvent.Type)
- {
- case EventType.None:
- break;
- case EventType.Connect:
- Statistics = new NetworkStatistics();
- Reliable = new ENetReliableChannel(_netEvent.Peer, 0);
- Unreliable = new ENetUnreliableChannel(_netEvent.Peer, 1);
-
- OnConnected?.Invoke();
- break;
- case EventType.Disconnect:
- OnDisconnected?.Invoke(RagonDisconnect.SERVER);
- break;
- case EventType.Timeout:
- OnDisconnected?.Invoke(RagonDisconnect.TIMEOUT);
- break;
- case EventType.Receive:
- var data = new byte[_netEvent.Packet.Length];
-
- _netEvent.Packet.CopyTo(data);
- _netEvent.Packet.Dispose();
-
- OnData?.Invoke(data);
- break;
- }
- }
- }
-
- public void Dispose()
- {
- if (_host.IsSet)
- {
- _host?.Flush();
- _host?.Dispose();
- }
-
- if (_libraryLoaded)
- Library.Deinitialize();
- }
-
- public void Close()
- {
-
- }
- }
-}
\ No newline at end of file
diff --git a/Ragon.Simulation/Sources/Client/IO/RagonENetReliableChannel.cs b/Ragon.Simulation/Sources/Client/IO/RagonENetReliableChannel.cs
deleted file mode 100644
index f46b6f4..0000000
--- a/Ragon.Simulation/Sources/Client/IO/RagonENetReliableChannel.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2023 Eduard Kargin
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using ENet;
-using Ragon.Protocol;
-
-namespace Ragon.Client;
-
-public sealed class ENetReliableChannel : INetworkChannel
-{
- private Peer _peer;
- private byte _channelId;
-
- public ENetReliableChannel(Peer peer, int channelId)
- {
- _peer = peer;
- _channelId = (byte) channelId;
- }
-
- public void Send(byte[] data)
- {
- var newPacket = new Packet();
- newPacket.Create(data, data.Length, PacketFlags.Reliable);
-
- _peer.Send(_channelId, ref newPacket);
- }
-}
\ No newline at end of file
diff --git a/Ragon.Simulation/Sources/Client/IO/RagonENetUnreliableChannel.cs b/Ragon.Simulation/Sources/Client/IO/RagonENetUnreliableChannel.cs
deleted file mode 100644
index a95e9ce..0000000
--- a/Ragon.Simulation/Sources/Client/IO/RagonENetUnreliableChannel.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2023 Eduard Kargin
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using ENet;
-
-namespace Ragon.Client;
-
-public sealed class ENetUnreliableChannel : INetworkChannel
-{
- private Peer _peer;
- private byte _channelId;
-
- public ENetUnreliableChannel(Peer peer, int channelId)
- {
- _peer = peer;
- _channelId = (byte) channelId;
- }
-
- public void Send(byte[] data)
- {
- var newPacket = new Packet();
- newPacket.Create(data, data.Length, PacketFlags.None);
-
- _peer.Send(_channelId, ref newPacket);
- }
-}
\ No newline at end of file
diff --git a/Ragon.Simulation/Sources/Client/IO/RagonNullConnection.cs b/Ragon.Simulation/Sources/Client/IO/RagonNullConnection.cs
deleted file mode 100644
index 5376ddf..0000000
--- a/Ragon.Simulation/Sources/Client/IO/RagonNullConnection.cs
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright 2023 Eduard Kargin
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using ENet;
-using Ragon.Protocol;
-using Event = ENet.Event;
-using EventType = ENet.EventType;
-
-namespace Ragon.Client
-{
- public class RagonNullConnection : INetworkConnection
- {
- public ushort Id { get; }
-
- public NetworkStatistics Statistics { get; private set; }
- public INetworkChannel Reliable { get; private set; }
- public INetworkChannel Unreliable { get; private set; }
-
- public Action OnData { get; set; }
- public Action OnConnected { get; set; }
- public Action OnDisconnected { get; set; }
- public ulong BytesSent { get; }
- public ulong BytesReceived { get; }
- public int Ping { get; }
-
- private static bool _libraryLoaded = false;
- private Host _host;
- private Peer _peer;
- private Event _netEvent;
-
- public RagonNullConnection()
- {
- _host = new Host();
- _host.Create();
- }
-
-
- public void Prepare()
- {
- if (!_libraryLoaded)
- {
- Library.Initialize();
- _libraryLoaded = true;
- }
- }
-
- public void Disconnect()
- {
- if (_peer.IsSet)
- _peer.DisconnectNow(0);
- }
-
- public void Connect(string server, ushort port, uint protocol)
- {
- Address address = new Address();
- address.SetHost(server);
- address.Port = port;
-
- _peer = _host.Connect(address, 2, protocol);
- _peer.Timeout(32, 5000, 5000);
-
- Statistics = new NetworkStatistics();
- Reliable = new NullReliableChannel(_netEvent.Peer, 0);
- Unreliable = new NullUnreliableChannel(_netEvent.Peer, 1);
- }
-
- public void Update()
- {
- bool polled = false;
- while (!polled)
- {
- if (_host.CheckEvents(out _netEvent) <= 0)
- {
- if (_host.Service(0, out _netEvent) <= 0)
- break;
-
- polled = true;
- }
-
- switch (_netEvent.Type)
- {
- case EventType.None:
- break;
- case EventType.Connect:
-
- OnConnected?.Invoke();
- break;
- case EventType.Disconnect:
- OnDisconnected?.Invoke(RagonDisconnect.SERVER);
- break;
- case EventType.Timeout:
- OnDisconnected?.Invoke(RagonDisconnect.TIMEOUT);
- break;
- case EventType.Receive:
- var data = new byte[_netEvent.Packet.Length];
-
- _netEvent.Packet.CopyTo(data);
- _netEvent.Packet.Dispose();
-
- OnData?.Invoke(data);
- break;
- }
- }
- }
-
- public void Dispose()
- {
- if (_host.IsSet)
- {
- _host?.Flush();
- _host?.Dispose();
- }
-
- if (_libraryLoaded)
- Library.Deinitialize();
- }
-
- public void Close()
- {
-
- }
- }
-}
\ No newline at end of file
diff --git a/Ragon.Simulation/Sources/Client/IO/RagonNullReliableChannel.cs b/Ragon.Simulation/Sources/Client/IO/RagonNullReliableChannel.cs
deleted file mode 100644
index a685d1d..0000000
--- a/Ragon.Simulation/Sources/Client/IO/RagonNullReliableChannel.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2023 Eduard Kargin
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using ENet;
-using Ragon.Protocol;
-
-namespace Ragon.Client;
-
-public sealed class NullReliableChannel : INetworkChannel
-{
- private Peer _peer;
- private byte _channelId;
-
- public NullReliableChannel(Peer peer, int channelId)
- {
- _peer = peer;
- _channelId = (byte) channelId;
- }
-
- public void Send(byte[] data)
- {
-
- }
-}
\ No newline at end of file
diff --git a/Ragon.Simulation/Sources/Client/IO/RagonNullUnreliableChannel.cs b/Ragon.Simulation/Sources/Client/IO/RagonNullUnreliableChannel.cs
deleted file mode 100644
index 73b0874..0000000
--- a/Ragon.Simulation/Sources/Client/IO/RagonNullUnreliableChannel.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2023 Eduard Kargin
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using ENet;
-using Ragon.Protocol;
-
-namespace Ragon.Client;
-
-public sealed class NullUnreliableChannel : INetworkChannel
-{
- private Peer _peer;
- private byte _channelId;
-
- public NullUnreliableChannel(Peer peer, int channelId)
- {
- _peer = peer;
- _channelId = (byte) channelId;
- }
-
- public void Send(byte[] data)
- {
-
- }
-}
\ No newline at end of file
diff --git a/Ragon.Simulation/Sources/Client/Player/PlayerPayload.cs b/Ragon.Simulation/Sources/Client/Player/PlayerPayload.cs
deleted file mode 100644
index d4b5ca8..0000000
--- a/Ragon.Simulation/Sources/Client/Player/PlayerPayload.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2023 Eduard Kargin
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-using Ragon.Protocol;
-
-namespace Ragon.Client.Simulation.Sources;
-
-public class PlayerPayload : IRagonPayload
-{
- public uint Name { get; set; }
-
- public void Serialize(RagonBuffer buffer)
- {
- buffer.Write(Name, 16);
- }
-
- public void Deserialize(RagonBuffer buffer)
- {
- Name = buffer.Read(16);
- }
-}
\ No newline at end of file
diff --git a/Ragon.Simulation/Sources/Game.cs b/Ragon.Simulation/Sources/Game.cs
deleted file mode 100644
index 517001a..0000000
--- a/Ragon.Simulation/Sources/Game.cs
+++ /dev/null
@@ -1,115 +0,0 @@
-using Ragon.Client.Property;
-using Ragon.Protocol;
-
-namespace Ragon.Client.Simulation;
-
-public class Game : IRagonListener, IRagonSceneRequestListener
-{
- private RagonFloat _health;
- private RagonInt _points;
- private RagonString _name;
- private RagonEntity _entity;
- private RagonClient _client;
-
- public Game(RagonClient client)
- {
- _client = client;
- }
-
- public void OnConnected(RagonClient client)
- {
- RagonLog.Trace("Connected");
- _client.Session.AuthorizeWithKey("defaultkey", "Player Eduard");
- }
-
- public void OnAuthorizationSuccess(RagonClient client, string playerId, string playerName)
- {
- RagonLog.Trace("Authorized");
- client.Session.CreateOrJoin("Example", 1, 20);
- }
-
- public void OnAuthorizationFailed(RagonClient client, string message)
- {
- Console.WriteLine($"Authorization failed: {message}");
- }
-
- public void OnJoined(RagonClient client)
- {
-
- }
-
- public void OnFailed(RagonClient client, string message)
- {
- RagonLog.Trace("Failed to join");
- }
-
- public void OnLeft(RagonClient client)
- {
- RagonLog.Trace("Left");
- }
-
- public void OnDisconnected(RagonClient client, RagonDisconnect ragonDisconnect)
- {
- RagonLog.Trace("Disconnected");
- }
-
- public void OnPlayerJoined(RagonClient client, RagonPlayer player)
- {
- RagonLog.Trace("Player joined");
- }
-
- public void OnPlayerLeft(RagonClient client, RagonPlayer player)
- {
- RagonLog.Trace("Player left");
- }
-
- public void OnOwnershipChanged(RagonClient client, RagonPlayer player)
- {
- RagonLog.Trace("Owner ship changed");
- }
-
- public void OnSceneLoaded(RagonClient client)
- {
- RagonLog.Trace("Joined");
-
- _health = new RagonFloat(100.0f, false, 0);
- _health.Changed += () => Console.WriteLine($"[Ragon Property] Health: {_health.Value}");
-
- _points = new RagonInt(0, -1000, 1000, false, 0);
- _points.Changed += () => Console.WriteLine($"[Ragon Property] Points: {_points.Value}");
-
- _name = new RagonString("Edmand 000", false);
- _name.Changed += () => Console.WriteLine($"[Ragon Property] Name: {_name.Value}");
-
- _entity = new RagonEntity(12, 0);
- _entity.State.AddProperty(_health);
- _entity.State.AddProperty(_points);
- _entity.State.AddProperty(_name);
-
- client.Room.CreateEntity(_entity);
- }
-
- private float _timer = 0;
-
- public void Update()
- {
- if (_client.Status != RagonStatus.ROOM)
- return;
-
- _timer += 1 / 60.0f;
- if (_timer > 1)
- {
- _health.Value += 20.0f;
- _points.Value += 10;
- _name.Value = $"Edmand 00{_client.Room.Local.PeerId}";
- Console.WriteLine($"{_health.Value} {_points.Value} {_name.Value}");
- _timer = 0;
- }
- }
-
- public void OnRequestScene(RagonClient client, string sceneName)
- {
- client.Room.SceneLoaded();
-
- }
-}
\ No newline at end of file
diff --git a/Ragon.Simulation/Sources/Simulation.cs b/Ragon.Simulation/Sources/Simulation.cs
deleted file mode 100644
index 5d46619..0000000
--- a/Ragon.Simulation/Sources/Simulation.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using Ragon.Client;
-using Ragon.Client.Simulation;
-
-namespace Ragon.Simulation;
-
-public class EntityListener : IRagonEntityListener
-{
- public void OnEntityCreated(RagonEntity entity)
- {
- var health = new RagonFloat(100.0f, false, 0);
- health.Value = 50;
- health.Changed += () => Console.WriteLine($"[Ragon Property] Another Health: {health.Value}");
-
- var points = new RagonInt(0, -1000, 1000, false, 0);
- points.Changed += () => Console.WriteLine($"[Ragon Property] Anther Points: {points.Value}");
-
- var name = new RagonString("Eduard", false);
- name.Changed += () => Console.WriteLine($"[Ragon Property] Another Name: {name.Value}");
-
- entity.State.AddProperty(health);
- entity.State.AddProperty(points);
- entity.State.AddProperty(name);
- }
-}
-
-public class Simulation
-{
- public void Start()
- {
- var client = new Ragon.Simulation.Client();
- client.Start();
-
- // INetworkConnection protocol = debug ? new RagonNullConnection() : new RagonENetConnection();
- // var network = new RagonClient(protocol, new EntityListener(), 30);
- // var game = new Game(network);
- // network.AddListener(game);
- // network.Connect("127.0.0.1", 5001, "1.0.0");
- // var dt = 1000 / 60.0f;
- // while (true)
- // {
- // game.Update();
- // network.Update(dt);
- // Thread.Sleep((int) dt);
- // }
- //
- // network.Disconnect();
- }
-}
\ No newline at end of file
diff --git a/Ragon.sln b/Ragon.sln
index 667a51d..c62f46d 100644
--- a/Ragon.sln
+++ b/Ragon.sln
@@ -12,8 +12,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ragon.Server.ENetServer", "
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ragon.Client", "Ragon.Client\Ragon.Client.csproj", "{C82D65BF-6D80-4263-ADFE-CB9ED990B6C3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ragon.Simulation", "Ragon.Simulation\Ragon.Simulation.csproj", "{0384848D-3B63-4B3A-B15F-A836EBB3E95D}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ragon.Client.Property", "Ragon.Client.Property\Ragon.Client.Property.csproj", "{46A60DAB-F854-4BB6-A119-BD4C5B2B0D29}"
EndProject
Global
@@ -46,10 +44,6 @@ Global
{C82D65BF-6D80-4263-ADFE-CB9ED990B6C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C82D65BF-6D80-4263-ADFE-CB9ED990B6C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C82D65BF-6D80-4263-ADFE-CB9ED990B6C3}.Release|Any CPU.Build.0 = Release|Any CPU
- {0384848D-3B63-4B3A-B15F-A836EBB3E95D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0384848D-3B63-4B3A-B15F-A836EBB3E95D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0384848D-3B63-4B3A-B15F-A836EBB3E95D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0384848D-3B63-4B3A-B15F-A836EBB3E95D}.Release|Any CPU.Build.0 = Release|Any CPU
{46A60DAB-F854-4BB6-A119-BD4C5B2B0D29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{46A60DAB-F854-4BB6-A119-BD4C5B2B0D29}.Debug|Any CPU.Build.0 = Debug|Any CPU
{46A60DAB-F854-4BB6-A119-BD4C5B2B0D29}.Release|Any CPU.ActiveCfg = Release|Any CPU