From 9a97bef741bb953d5074ddfcdc5436839bc66fb3 Mon Sep 17 00:00:00 2001 From: kaczy93 Date: Fri, 9 Jun 2023 13:58:01 +0200 Subject: [PATCH 01/76] Moved stuff around --- Client/{Client => }/CentrEDClient.cs | 4 ++-- Client/Client.csproj | 2 +- Client/{Client => }/ClientHandling.cs | 0 Client/{Client/Landscape.cs => ClientLandscape.cs} | 13 ++++++------- Client/{Client => }/ConnectionHandling.cs | 0 Client/{Client => }/LandscapePacketHandlers.cs | 2 +- Client/{Client => }/PacketHandlers.cs | 0 Client/{Client => }/Packets.cs | 0 Server/{Server => }/AdminHandling.cs | 0 Server/{Server => }/Application.cs | 0 Server/{Server => }/AssemblyInfo.cs | 0 Server/{Server => }/CEDServer.cs | 4 ++-- Server/{Server => }/ClientHandling.cs | 0 Server/{Server => }/Config/Account.cs | 0 Server/{Server => }/Config/Autobackup.cs | 0 Server/{Server => }/Config/Config.cs | 0 Server/{Server => }/Config/LastPos.cs | 0 Server/{Server => }/Config/Map.cs | 0 Server/{Server => }/Config/Region.cs | 0 Server/{Server => }/ConnectionHandling.cs | 0 Server/{Server => }/Map/LandscapePacketHandlers.cs | 2 +- Server/{Server => }/Map/LargeScaleOperations.cs | 14 +++++++------- Server/{Server => }/Map/RadarMap.cs | 2 +- .../Map/Landscape.cs => Map/ServerLandscape.cs} | 6 +++--- Server/{Server => }/PacketHandlers.cs | 0 Server/{Server => }/Packets.cs | 0 Server/Server.csproj | 2 +- Server/{Server => }/ServerNetState.cs | 0 Shared/BaseLandscape.cs | 12 +++++++++--- Shared/BlockCache.cs | 4 ++-- 30 files changed, 36 insertions(+), 31 deletions(-) rename Client/{Client => }/CentrEDClient.cs (96%) rename Client/{Client => }/ClientHandling.cs (100%) rename Client/{Client/Landscape.cs => ClientLandscape.cs} (71%) rename Client/{Client => }/ConnectionHandling.cs (100%) rename Client/{Client => }/LandscapePacketHandlers.cs (97%) rename Client/{Client => }/PacketHandlers.cs (100%) rename Client/{Client => }/Packets.cs (100%) rename Server/{Server => }/AdminHandling.cs (100%) rename Server/{Server => }/Application.cs (100%) rename Server/{Server => }/AssemblyInfo.cs (100%) rename Server/{Server => }/CEDServer.cs (97%) rename Server/{Server => }/ClientHandling.cs (100%) rename Server/{Server => }/Config/Account.cs (100%) rename Server/{Server => }/Config/Autobackup.cs (100%) rename Server/{Server => }/Config/Config.cs (100%) rename Server/{Server => }/Config/LastPos.cs (100%) rename Server/{Server => }/Config/Map.cs (100%) rename Server/{Server => }/Config/Region.cs (100%) rename Server/{Server => }/ConnectionHandling.cs (100%) rename Server/{Server => }/Map/LandscapePacketHandlers.cs (99%) rename Server/{Server => }/Map/LargeScaleOperations.cs (92%) rename Server/{Server => }/Map/RadarMap.cs (96%) rename Server/{Server/Map/Landscape.cs => Map/ServerLandscape.cs} (98%) rename Server/{Server => }/PacketHandlers.cs (100%) rename Server/{Server => }/Packets.cs (100%) rename Server/{Server => }/ServerNetState.cs (100%) diff --git a/Client/Client/CentrEDClient.cs b/Client/CentrEDClient.cs similarity index 96% rename from Client/Client/CentrEDClient.cs rename to Client/CentrEDClient.cs index a1edf28..6fda8cb 100644 --- a/Client/Client/CentrEDClient.cs +++ b/Client/CentrEDClient.cs @@ -8,7 +8,7 @@ namespace CentrED.Client; public sealed class CentrEDClient : IDisposable { private NetState NetState { get; } - private Landscape Landscape { get; set; } + private ClientLandscape Landscape { get; set; } public bool CentrEdPlus { get; internal set; } public bool Initialized { get; internal set; } public string Username { get; } @@ -74,7 +74,7 @@ public void RunLoop() { } public void InitLandscape(ushort width, ushort height) { - Landscape = new Landscape(this, width, height); + Landscape = new ClientLandscape(this, width, height); Initialized = true; } diff --git a/Client/Client.csproj b/Client/Client.csproj index 47ad4b8..da99606 100644 --- a/Client/Client.csproj +++ b/Client/Client.csproj @@ -4,7 +4,7 @@ net7.0 enable enable - CentrED + CentrED.Client diff --git a/Client/Client/ClientHandling.cs b/Client/ClientHandling.cs similarity index 100% rename from Client/Client/ClientHandling.cs rename to Client/ClientHandling.cs diff --git a/Client/Client/Landscape.cs b/Client/ClientLandscape.cs similarity index 71% rename from Client/Client/Landscape.cs rename to Client/ClientLandscape.cs index 2bc8fd9..3c392f8 100644 --- a/Client/Client/Landscape.cs +++ b/Client/ClientLandscape.cs @@ -1,19 +1,18 @@ using CentrED.Network; -namespace CentrED.Client; - -public partial class Landscape : BaseLandscape{ +namespace CentrED.Client; +public partial class ClientLandscape : BaseLandscape { private CentrEDClient _client; - - public Landscape(CentrEDClient client, ushort width, ushort height) : base(width, height) { + + public ClientLandscape(CentrEDClient client, ushort width, ushort height) : base(width, height) { _client = client; OnFreeBlock = FreeBlock; PacketHandlers.RegisterPacketHandler(0x04, 0, OnBlockPacket); } - + protected override Block LoadBlock(ushort x, ushort y) { - _client.Send(new RequestBlocksPacket(new BlockCoords(x,y))); + _client.Send(new RequestBlocksPacket(new BlockCoords(x, y))); var blockId = BlockCache.BlockId(x, y); var block = BlockCache.Get(blockId); while (block == null) { diff --git a/Client/Client/ConnectionHandling.cs b/Client/ConnectionHandling.cs similarity index 100% rename from Client/Client/ConnectionHandling.cs rename to Client/ConnectionHandling.cs diff --git a/Client/Client/LandscapePacketHandlers.cs b/Client/LandscapePacketHandlers.cs similarity index 97% rename from Client/Client/LandscapePacketHandlers.cs rename to Client/LandscapePacketHandlers.cs index a8dea6e..c7a2f7f 100644 --- a/Client/Client/LandscapePacketHandlers.cs +++ b/Client/LandscapePacketHandlers.cs @@ -2,7 +2,7 @@ namespace CentrED.Client; -public partial class Landscape { +public partial class ClientLandscape { private void OnBlockPacket(BinaryReader reader, NetState ns) { ns.LogDebug("OnBlockPacket"); var index = new GenericIndex(); diff --git a/Client/Client/PacketHandlers.cs b/Client/PacketHandlers.cs similarity index 100% rename from Client/Client/PacketHandlers.cs rename to Client/PacketHandlers.cs diff --git a/Client/Client/Packets.cs b/Client/Packets.cs similarity index 100% rename from Client/Client/Packets.cs rename to Client/Packets.cs diff --git a/Server/Server/AdminHandling.cs b/Server/AdminHandling.cs similarity index 100% rename from Server/Server/AdminHandling.cs rename to Server/AdminHandling.cs diff --git a/Server/Server/Application.cs b/Server/Application.cs similarity index 100% rename from Server/Server/Application.cs rename to Server/Application.cs diff --git a/Server/Server/AssemblyInfo.cs b/Server/AssemblyInfo.cs similarity index 100% rename from Server/Server/AssemblyInfo.cs rename to Server/AssemblyInfo.cs diff --git a/Server/Server/CEDServer.cs b/Server/CEDServer.cs similarity index 97% rename from Server/Server/CEDServer.cs rename to Server/CEDServer.cs index a698c51..0f383cc 100644 --- a/Server/Server/CEDServer.cs +++ b/Server/CEDServer.cs @@ -11,7 +11,7 @@ public class CEDServer { private ProtocolVersion ProtocolVersion; private Socket Listener { get; } = null!; public Config Config { get; } - public Landscape Landscape { get; } + public ServerLandscape Landscape { get; } public HashSet> Clients { get; } = new(8); private readonly ConcurrentQueue> _connectedQueue = new (); @@ -32,7 +32,7 @@ public CEDServer(string[] args) { ProtocolVersion = Config.CentrEdPlus ? ProtocolVersion.CentrEDPlus : ProtocolVersion.CentrED; Logger.LogInfo("Running as " + (Config.CentrEdPlus ? "CentrED+ 0.7.9" : "CentrED 0.6.3")); Console.CancelKeyPress += ConsoleOnCancelKeyPress; - Landscape = new Landscape(Config.Map.MapPath, Config.Map.Statics, Config.Map.StaIdx, Config.Tiledata, + Landscape = new ServerLandscape(Config.Map.MapPath, Config.Map.Statics, Config.Map.StaIdx, Config.Tiledata, Config.Radarcol, Config.Map.Width, Config.Map.Height, out _valid); Listener = Bind(new IPEndPoint(IPAddress.Any, Config.Port)); Quit = false; diff --git a/Server/Server/ClientHandling.cs b/Server/ClientHandling.cs similarity index 100% rename from Server/Server/ClientHandling.cs rename to Server/ClientHandling.cs diff --git a/Server/Server/Config/Account.cs b/Server/Config/Account.cs similarity index 100% rename from Server/Server/Config/Account.cs rename to Server/Config/Account.cs diff --git a/Server/Server/Config/Autobackup.cs b/Server/Config/Autobackup.cs similarity index 100% rename from Server/Server/Config/Autobackup.cs rename to Server/Config/Autobackup.cs diff --git a/Server/Server/Config/Config.cs b/Server/Config/Config.cs similarity index 100% rename from Server/Server/Config/Config.cs rename to Server/Config/Config.cs diff --git a/Server/Server/Config/LastPos.cs b/Server/Config/LastPos.cs similarity index 100% rename from Server/Server/Config/LastPos.cs rename to Server/Config/LastPos.cs diff --git a/Server/Server/Config/Map.cs b/Server/Config/Map.cs similarity index 100% rename from Server/Server/Config/Map.cs rename to Server/Config/Map.cs diff --git a/Server/Server/Config/Region.cs b/Server/Config/Region.cs similarity index 100% rename from Server/Server/Config/Region.cs rename to Server/Config/Region.cs diff --git a/Server/Server/ConnectionHandling.cs b/Server/ConnectionHandling.cs similarity index 100% rename from Server/Server/ConnectionHandling.cs rename to Server/ConnectionHandling.cs diff --git a/Server/Server/Map/LandscapePacketHandlers.cs b/Server/Map/LandscapePacketHandlers.cs similarity index 99% rename from Server/Server/Map/LandscapePacketHandlers.cs rename to Server/Map/LandscapePacketHandlers.cs index 659dd11..d0c44f9 100644 --- a/Server/Server/Map/LandscapePacketHandlers.cs +++ b/Server/Map/LandscapePacketHandlers.cs @@ -3,7 +3,7 @@ namespace CentrED.Server; -public partial class Landscape { +public partial class ServerLandscape { private void OnDrawMapPacket(BinaryReader reader, NetState ns) { ns.LogDebug("OnDrawMapPacket"); var x = reader.ReadUInt16(); diff --git a/Server/Server/Map/LargeScaleOperations.cs b/Server/Map/LargeScaleOperations.cs similarity index 92% rename from Server/Server/Map/LargeScaleOperations.cs rename to Server/Map/LargeScaleOperations.cs index 4a1e604..f6e0f28 100644 --- a/Server/Server/Map/LargeScaleOperations.cs +++ b/Server/Map/LargeScaleOperations.cs @@ -4,11 +4,11 @@ namespace CentrED.Server; public abstract class LargeScaleOperation { - public LargeScaleOperation(BinaryReader reader, Landscape landscape) { + public LargeScaleOperation(BinaryReader reader, ServerLandscape landscape) { _landscape = landscape; } - protected Landscape _landscape; + protected ServerLandscape _landscape; public abstract void Validate(); @@ -18,7 +18,7 @@ public LargeScaleOperation(BinaryReader reader, Landscape landscape) { } public class LsCopyMove : LargeScaleOperation { - public LsCopyMove(BinaryReader reader, Landscape landscape) : base(reader, landscape) { + public LsCopyMove(BinaryReader reader, ServerLandscape landscape) : base(reader, landscape) { _type = (CopyMove)reader.ReadByte(); OffsetX = reader.ReadInt32(); OffsetY = reader.ReadInt32(); @@ -75,7 +75,7 @@ public override void Apply(LandTile landTile, ReadOnlyCollection sta } public class LsSetAltitude : LargeScaleOperation { - public LsSetAltitude(BinaryReader reader, Landscape landscape) : base(reader, landscape) { + public LsSetAltitude(BinaryReader reader, ServerLandscape landscape) : base(reader, landscape) { _type = (SetAltitude)reader.ReadByte(); switch (_type) { case SetAltitude.Terrain: { @@ -120,7 +120,7 @@ public override void Apply(LandTile landTile, ReadOnlyCollection sta } public class LsDrawTerrain : LargeScaleOperation { - public LsDrawTerrain(BinaryReader reader, Landscape landscape) : base(reader, landscape) { + public LsDrawTerrain(BinaryReader reader, ServerLandscape landscape) : base(reader, landscape) { var count = reader.ReadUInt16(); _tileIds = new ushort[count]; for (int i = 0; i < count; i++) { @@ -144,7 +144,7 @@ public override void Apply(LandTile landTile, ReadOnlyCollection sta } public class LsDeleteStatics : LargeScaleOperation { - public LsDeleteStatics(BinaryReader reader, Landscape landscape) : base(reader, landscape) { + public LsDeleteStatics(BinaryReader reader, ServerLandscape landscape) : base(reader, landscape) { var count = reader.ReadUInt16(); _tileIds = new ushort[count]; for (int i = 0; i < count; i++) { @@ -178,7 +178,7 @@ public override void Apply(LandTile landTile, ReadOnlyCollection sta } public class LsInsertStatics : LargeScaleOperation { - public LsInsertStatics(BinaryReader reader, Landscape landscape) : base(reader, landscape) { + public LsInsertStatics(BinaryReader reader, ServerLandscape landscape) : base(reader, landscape) { var count = reader.ReadUInt16(); _tileIds = new ushort[count]; for (int i = 0; i < count; i++) { diff --git a/Server/Server/Map/RadarMap.cs b/Server/Map/RadarMap.cs similarity index 96% rename from Server/Server/Map/RadarMap.cs rename to Server/Map/RadarMap.cs index c9e8811..96a39d9 100644 --- a/Server/Server/Map/RadarMap.cs +++ b/Server/Map/RadarMap.cs @@ -5,7 +5,7 @@ namespace CentrED.Server; public class RadarMap { - public RadarMap(Landscape landscape, BinaryReader mapReader, BinaryReader staidxReader, BinaryReader staticsReader, string radarcolPath) { + public RadarMap(ServerLandscape landscape, BinaryReader mapReader, BinaryReader staidxReader, BinaryReader staticsReader, string radarcolPath) { using var radarcol = File.Open(radarcolPath, FileMode.Open, FileAccess.Read, FileShare.Read); _radarColors = new ushort[radarcol.Length / sizeof(ushort)]; var buffer = new byte[radarcol.Length]; diff --git a/Server/Server/Map/Landscape.cs b/Server/Map/ServerLandscape.cs similarity index 98% rename from Server/Server/Map/Landscape.cs rename to Server/Map/ServerLandscape.cs index 44512ac..17bc17d 100644 --- a/Server/Server/Map/Landscape.cs +++ b/Server/Map/ServerLandscape.cs @@ -4,9 +4,9 @@ namespace CentrED.Server; -public sealed partial class Landscape : BaseLandscape { +public sealed partial class ServerLandscape : BaseLandscape { - public Landscape(string mapPath, string staticsPath, string staidxPath, string tileDataPath, string radarcolPath, + public ServerLandscape(string mapPath, string staticsPath, string staidxPath, string tileDataPath, string radarcolPath, ushort width, ushort height, out bool valid) : base(width, height) { Logger.LogInfo("Loading Map"); @@ -86,7 +86,7 @@ private void InitStatics(string staticsPath, string staidxPath) { } } - ~Landscape() { + ~ServerLandscape() { _map.Close(); _statics.Close(); _staidx.Close(); diff --git a/Server/Server/PacketHandlers.cs b/Server/PacketHandlers.cs similarity index 100% rename from Server/Server/PacketHandlers.cs rename to Server/PacketHandlers.cs diff --git a/Server/Server/Packets.cs b/Server/Packets.cs similarity index 100% rename from Server/Server/Packets.cs rename to Server/Packets.cs diff --git a/Server/Server.csproj b/Server/Server.csproj index 5d7804b..f96f43d 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -9,7 +9,7 @@ false Cedserver Cedserver - CentrED + CentrED.Server diff --git a/Server/Server/ServerNetState.cs b/Server/ServerNetState.cs similarity index 100% rename from Server/Server/ServerNetState.cs rename to Server/ServerNetState.cs diff --git a/Shared/BaseLandscape.cs b/Shared/BaseLandscape.cs index 5fc6c3a..fb1824b 100644 --- a/Shared/BaseLandscape.cs +++ b/Shared/BaseLandscape.cs @@ -18,10 +18,11 @@ protected BaseLandscape(ushort width, ushort height) { BlockCache = new BlockCache(); } - public RemovedCachedObjectArgs OnFreeBlock { + public BlockChangedEvent OnFreeBlock { set => BlockCache.OnRemovedCachedObject = value; } - + + public BlockChangedEvent? OnLoadBlock; public ushort Width { get; } public ushort Height { get; } public ushort CellWidth { get; } @@ -53,7 +54,12 @@ public StaticBlock GetStaticBlock(ushort x, ushort y) { private Block GetBlock(ushort x, ushort y) { AssertBlockCoords(x, y); - return BlockCache.Get(x, y) ?? LoadBlock(x, y); + var result = BlockCache.Get(x, y); + if (result == null) { + result = LoadBlock(x, y); + OnLoadBlock?.Invoke(result); + } + return result; } protected abstract Block LoadBlock(ushort x, ushort y); diff --git a/Shared/BlockCache.cs b/Shared/BlockCache.cs index 4724efd..e4d5714 100644 --- a/Shared/BlockCache.cs +++ b/Shared/BlockCache.cs @@ -2,14 +2,14 @@ namespace CentrED; -public delegate void RemovedCachedObjectArgs(Block block); +public delegate void BlockChangedEvent(Block block); public class BlockCache { private readonly ConcurrentDictionary _blocks; private readonly ConcurrentQueue _queue; private readonly int _maxSize; - public RemovedCachedObjectArgs? OnRemovedCachedObject; + public BlockChangedEvent? OnRemovedCachedObject; public BlockCache(int maxSize = 256) { _maxSize = maxSize; From ac41dda0c6068f619dd16e4c46b4de90f4cf48bb Mon Sep 17 00:00:00 2001 From: kaczy93 Date: Sat, 10 Jun 2023 11:29:17 +0200 Subject: [PATCH 02/76] Extra assert during LoadBlock --- Server/Map/ServerLandscape.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Server/Map/ServerLandscape.cs b/Server/Map/ServerLandscape.cs index 17bc17d..643e5b0 100644 --- a/Server/Map/ServerLandscape.cs +++ b/Server/Map/ServerLandscape.cs @@ -165,6 +165,7 @@ public long GetStaidxOffset(ushort x, ushort y) { } protected override Block LoadBlock(ushort x, ushort y) { + AssertBlockCoords(x, y); _map.Position = GetMapOffset(x, y); var map = new LandBlock(x, y, _mapReader); From 0789fcb79b5d6b277df729dffab6046365fba95f Mon Sep 17 00:00:00 2001 From: kaczy93 Date: Fri, 16 Jun 2023 08:16:26 +0200 Subject: [PATCH 03/76] wip --- Client/CentrEDClient.cs | 32 +++++++++++--- Client/ClientLandscape.cs | 3 +- Client/LandscapePacketHandlers.cs | 15 +++++++ Server/Map/ServerLandscape.cs | 2 +- Shared/BaseLandscape.cs | 71 ++++++++++++++++++++++++++----- Shared/BlockCache.cs | 16 ++++--- Shared/Tile.cs | 4 +- Shared/WorldBlock.cs | 9 +++- 8 files changed, 126 insertions(+), 26 deletions(-) diff --git a/Client/CentrEDClient.cs b/Client/CentrEDClient.cs index 6fda8cb..efab0bd 100644 --- a/Client/CentrEDClient.cs +++ b/Client/CentrEDClient.cs @@ -7,8 +7,17 @@ namespace CentrED.Client; public sealed class CentrEDClient : IDisposable { + public event MapChanged? MapChanged; + public event BlockChanged? BlockUnloaded; + public event BlockChanged? BlockLoaded; + public event LandChanged? LandTileChanged; + public event StaticChanged? StaticTileAdded; + public event StaticChanged? StaticTileRemoved; + public event StaticChanged? StaticTileElevated; + public event StaticChanged? StaticTileHued; + private NetState NetState { get; } - private ClientLandscape Landscape { get; set; } + private ClientLandscape _landscape { get; set; } public bool CentrEdPlus { get; internal set; } public bool Initialized { get; internal set; } public string Username { get; } @@ -17,8 +26,7 @@ public sealed class CentrEDClient : IDisposable { public List Clients { get; } = new(); public bool Running = true; private Task netStateTask; - - + public CentrEDClient(string hostname, int port, string username, string password) { Username = username; Password = password; @@ -74,8 +82,20 @@ public void RunLoop() { } public void InitLandscape(ushort width, ushort height) { - Landscape = new ClientLandscape(this, width, height); + _landscape = new ClientLandscape(this, width, height); Initialized = true; + _landscape.MapChanged += () => MapChanged?.Invoke(); + _landscape.BlockLoaded += _ => BlockLoaded?.Invoke(_); + _landscape.BlockUnloaded += _ => BlockUnloaded?.Invoke(_); + _landscape.LandTileChanged += _ => LandTileChanged?.Invoke(_); + _landscape.StaticTileAdded += _ => StaticTileAdded?.Invoke(_); + _landscape.StaticTileRemoved += _ => StaticTileRemoved?.Invoke(_); + _landscape.StaticTileElevated += _ => StaticTileElevated?.Invoke(_); + _landscape.StaticTileHued += _ => StaticTileHued?.Invoke(_); + } + + public void LoadBlocks(List blockCoords) { + Send(new RequestBlocksPacket(blockCoords)); } public void SetPos(ushort x, ushort y) { @@ -87,7 +107,7 @@ public void ChatMessage(string sender, ushort message) { } public LandTile GetLandTile(ushort x, ushort y) { - return Landscape.GetLandTile(x, y); + return _landscape.GetLandTile(x, y); } public void SetLandTile(LandTile tile) { @@ -95,7 +115,7 @@ public void SetLandTile(LandTile tile) { } public ReadOnlyCollection GetStaticTiles(ushort x, ushort y) { - return Landscape.GetStaticTiles(x, y); + return _landscape.GetStaticTiles(x, y); } public void AddStaticTile(StaticTile tile) { diff --git a/Client/ClientLandscape.cs b/Client/ClientLandscape.cs index 3c392f8..995c15c 100644 --- a/Client/ClientLandscape.cs +++ b/Client/ClientLandscape.cs @@ -7,11 +7,12 @@ public partial class ClientLandscape : BaseLandscape { public ClientLandscape(CentrEDClient client, ushort width, ushort height) : base(width, height) { _client = client; - OnFreeBlock = FreeBlock; + BlockUnloaded += FreeBlock; PacketHandlers.RegisterPacketHandler(0x04, 0, OnBlockPacket); } protected override Block LoadBlock(ushort x, ushort y) { + AssertBlockCoords(x, y); _client.Send(new RequestBlocksPacket(new BlockCoords(x, y))); var blockId = BlockCache.BlockId(x, y); var block = BlockCache.Get(blockId); diff --git a/Client/LandscapePacketHandlers.cs b/Client/LandscapePacketHandlers.cs index c7a2f7f..b5db3dd 100644 --- a/Client/LandscapePacketHandlers.cs +++ b/Client/LandscapePacketHandlers.cs @@ -40,4 +40,19 @@ private void OnBlockPacket(BinaryReader reader, NetState ns) { BlockCache.Add(new Block(landBlock, staticBlock)); } } + + private void OnDrawMapPacket(BinaryReader reader, NetState ns) { + ns.LogDebug("OnDrawMapPacket"); + var x = reader.ReadUInt16(); + var y = reader.ReadUInt16(); + + var tile = GetLandTile(x, y); + + tile.Z = reader.ReadSByte(); + var newId = reader.ReadUInt16(); + // AssertLandTileId(newId); //Bring me back once we have TileDataProvider in client :) + tile.Id = newId; + + OnLandChanged(tile); + } } \ No newline at end of file diff --git a/Server/Map/ServerLandscape.cs b/Server/Map/ServerLandscape.cs index 643e5b0..66e300d 100644 --- a/Server/Map/ServerLandscape.cs +++ b/Server/Map/ServerLandscape.cs @@ -47,7 +47,7 @@ public ServerLandscape(string mapPath, string staticsPath, string staidxPath, st Logger.LogInfo("Loading Tiledata"); TileDataProvider = new TileDataProvider(tileDataPath, false, true); Logger.LogInfo("Creating Cache"); - OnFreeBlock = OnRemovedCachedObject; + BlockUnloaded += OnRemovedCachedObject; Logger.LogInfo("Creating RadarMap"); _radarMap = new RadarMap(this, _mapReader, _staidxReader, _staticsReader, radarcolPath); diff --git a/Shared/BaseLandscape.cs b/Shared/BaseLandscape.cs index fb1824b..64ec219 100644 --- a/Shared/BaseLandscape.cs +++ b/Shared/BaseLandscape.cs @@ -1,6 +1,12 @@ using System.Collections.ObjectModel; -namespace CentrED; +namespace CentrED; + +public delegate void MapChanged(); +public delegate void BlockChanged(Block block); +public delegate void LandChanged(LandTile landTile); +public delegate void StaticChanged(StaticTile staticTile); + public abstract class BaseLandscape { public uint GetBlockId(ushort x, ushort y) { @@ -9,20 +15,26 @@ public uint GetBlockId(ushort x, ushort y) { public static byte GetTileId(ushort x, ushort y) { return (byte)(y % 8 * 8 + x % 8); } + + public event MapChanged? MapChanged; + public event BlockChanged? BlockUnloaded; + public event BlockChanged? BlockLoaded; + public event LandChanged? LandTileChanged; + public event StaticChanged? StaticTileAdded; + public event StaticChanged? StaticTileRemoved; + public event StaticChanged? StaticTileElevated; + public event StaticChanged? StaticTileHued; protected BaseLandscape(ushort width, ushort height) { Width = width; Height = height; CellWidth = (ushort)(width * 8); CellHeight = (ushort)(height * 8); - BlockCache = new BlockCache(); + BlockCache = new BlockCache { + OnRemovedCachedObject = OnBlockReleased + }; } - - public BlockChangedEvent OnFreeBlock { - set => BlockCache.OnRemovedCachedObject = value; - } - - public BlockChangedEvent? OnLoadBlock; + public ushort Width { get; } public ushort Height { get; } public ushort CellWidth { get; } @@ -52,15 +64,54 @@ public StaticBlock GetStaticBlock(ushort x, ushort y) { return GetBlock(x, y).StaticBlock; } - private Block GetBlock(ushort x, ushort y) { + public Block GetBlock(ushort x, ushort y) { AssertBlockCoords(x, y); var result = BlockCache.Get(x, y); if (result == null) { result = LoadBlock(x, y); - OnLoadBlock?.Invoke(result); + OnBlockLoaded(result); } return result; } + public void OnMapChanged() { + MapChanged?.Invoke(); + } + + public void OnBlockReleased(Block block) { + BlockUnloaded?.Invoke(block); + OnMapChanged(); + } + + public void OnBlockLoaded(Block block) { + BlockLoaded?.Invoke(block); + OnMapChanged(); + } + + public void OnLandChanged(LandTile landTile) { + LandTileChanged?.Invoke(landTile); + OnMapChanged(); + } + + public void OnStaticTileAdded(StaticTile staticTile) { + StaticTileAdded?.Invoke(staticTile); + OnMapChanged(); + } + + public void OnStaticTileRemoved(StaticTile staticTile) { + StaticTileRemoved?.Invoke(staticTile); + OnMapChanged(); + } + + public void OnStaticTileElevated(StaticTile staticTile) { + StaticTileElevated?.Invoke(staticTile); + OnMapChanged(); + } + + public void OnStaticTileHued(StaticTile staticTile) { + StaticTileHued?.Invoke(staticTile); + OnMapChanged(); + } + protected abstract Block LoadBlock(ushort x, ushort y); } \ No newline at end of file diff --git a/Shared/BlockCache.cs b/Shared/BlockCache.cs index e4d5714..8c7951b 100644 --- a/Shared/BlockCache.cs +++ b/Shared/BlockCache.cs @@ -2,14 +2,12 @@ namespace CentrED; -public delegate void BlockChangedEvent(Block block); - public class BlockCache { private readonly ConcurrentDictionary _blocks; private readonly ConcurrentQueue _queue; - private readonly int _maxSize; - public BlockChangedEvent? OnRemovedCachedObject; + private int _maxSize; + public BlockChanged? OnRemovedCachedObject; public BlockCache(int maxSize = 256) { _maxSize = maxSize; @@ -33,8 +31,7 @@ public void Clear() { } public Block? Get(ushort x, ushort y) { - _blocks.TryGetValue(BlockId(x, y), out Block? value); - return value; + return Get(BlockId(x, y)); } public Block? Get(int blockId) { @@ -52,4 +49,11 @@ public void Clear() { public static int BlockId(ushort x, ushort y) { return HashCode.Combine(x, y); } + + public void Resize(int newSize) { + _maxSize = newSize; + while (_blocks.Count > _maxSize) { + Dequeue(); + } + } } \ No newline at end of file diff --git a/Shared/Tile.cs b/Shared/Tile.cs index a73dfff..bf21f4d 100644 --- a/Shared/Tile.cs +++ b/Shared/Tile.cs @@ -59,7 +59,9 @@ public bool Locked { } protected override void DoChanged() { - if (Owner != null) Owner.Changed = true; + if (Owner != null) { + Owner.Changed = true; + } } public override void Delete() { diff --git a/Shared/WorldBlock.cs b/Shared/WorldBlock.cs index 4e6c3a7..aa49eac 100644 --- a/Shared/WorldBlock.cs +++ b/Shared/WorldBlock.cs @@ -1,6 +1,7 @@ namespace CentrED; public abstract class WorldBlock : MulEntry { + private bool _changed; protected WorldBlock() { RefCount = 0; Changed = false; @@ -9,7 +10,13 @@ protected WorldBlock() { public ushort X { get; set; } public ushort Y { get; set; } public int RefCount { get; private set; } - public bool Changed { get; set; } + + public bool Changed { + get => _changed; + set { + _changed = value; + } + } public void AddRef() { RefCount++; From 5dea041af4a16c920e3c9ab620460393eb83f5f7 Mon Sep 17 00:00:00 2001 From: kaczy Date: Fri, 21 Jul 2023 12:30:17 +0200 Subject: [PATCH 04/76] [Client] fix OnBlockPacket --- Client/LandscapePacketHandlers.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Client/LandscapePacketHandlers.cs b/Client/LandscapePacketHandlers.cs index b5db3dd..5308af7 100644 --- a/Client/LandscapePacketHandlers.cs +++ b/Client/LandscapePacketHandlers.cs @@ -6,7 +6,7 @@ public partial class ClientLandscape { private void OnBlockPacket(BinaryReader reader, NetState ns) { ns.LogDebug("OnBlockPacket"); var index = new GenericIndex(); - while (reader.PeekChar() != -1) { + while (reader.BaseStream.Position < reader.BaseStream.Length) { var coords = new BlockCoords(reader); var landBlock = new LandBlock(x: coords.X, y: coords.Y, reader: reader); From b4a057a97b78fdfdc805e141545fa2d9b433f6d9 Mon Sep 17 00:00:00 2001 From: kaczy Date: Fri, 21 Jul 2023 12:30:36 +0200 Subject: [PATCH 05/76] [Client] Fix resizing block cache --- Client/CentrEDClient.cs | 18 +++++++++++++----- Shared/BaseLandscape.cs | 2 +- Shared/BlockCache.cs | 4 ++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Client/CentrEDClient.cs b/Client/CentrEDClient.cs index efab0bd..50a0bc2 100644 --- a/Client/CentrEDClient.cs +++ b/Client/CentrEDClient.cs @@ -92,10 +92,18 @@ public void InitLandscape(ushort width, ushort height) { _landscape.StaticTileRemoved += _ => StaticTileRemoved?.Invoke(_); _landscape.StaticTileElevated += _ => StaticTileElevated?.Invoke(_); _landscape.StaticTileHued += _ => StaticTileHued?.Invoke(_); + _landscape.BlockCache.Resize(1024); } public void LoadBlocks(List blockCoords) { - Send(new RequestBlocksPacket(blockCoords)); + var filteredBlocks = blockCoords.FindAll(b => !_landscape.BlockCache.Contains(b.X, b.Y)); + Send(new RequestBlocksPacket(filteredBlocks)); + foreach (var block in filteredBlocks) { + while (!_landscape.BlockCache.Contains(block.X, block.Y)) { + Thread.Sleep(1); + } + } + } public void SetPos(ushort x, ushort y) { @@ -106,16 +114,16 @@ public void ChatMessage(string sender, ushort message) { Logger.LogInfo($"{sender}: {message}"); } - public LandTile GetLandTile(ushort x, ushort y) { - return _landscape.GetLandTile(x, y); + public LandTile GetLandTile(int x, int y) { + return _landscape.GetLandTile(Convert.ToUInt16(x), Convert.ToUInt16(y)); } public void SetLandTile(LandTile tile) { NetState.Send(new DrawMapPacket(tile)); } - public ReadOnlyCollection GetStaticTiles(ushort x, ushort y) { - return _landscape.GetStaticTiles(x, y); + public ReadOnlyCollection GetStaticTiles(int x, int y) { + return _landscape.GetStaticTiles(Convert.ToUInt16(x), Convert.ToUInt16(y)); } public void AddStaticTile(StaticTile tile) { diff --git a/Shared/BaseLandscape.cs b/Shared/BaseLandscape.cs index 64ec219..a8cd47a 100644 --- a/Shared/BaseLandscape.cs +++ b/Shared/BaseLandscape.cs @@ -39,7 +39,7 @@ protected BaseLandscape(ushort width, ushort height) { public ushort Height { get; } public ushort CellWidth { get; } public ushort CellHeight { get; } - protected readonly BlockCache BlockCache; + public readonly BlockCache BlockCache; protected void AssertBlockCoords(ushort x, ushort y) { if (x >= Width || y >= Height) diff --git a/Shared/BlockCache.cs b/Shared/BlockCache.cs index 8c7951b..00e9613 100644 --- a/Shared/BlockCache.cs +++ b/Shared/BlockCache.cs @@ -30,6 +30,10 @@ public void Clear() { } } + public bool Contains(ushort x, ushort y) { + return Get(BlockId(x, y)) != null; + } + public Block? Get(ushort x, ushort y) { return Get(BlockId(x, y)); } From 225afc53fb28e377af6bc05187517715ed2fc874 Mon Sep 17 00:00:00 2001 From: kaczy Date: Fri, 21 Jul 2023 14:02:09 +0200 Subject: [PATCH 06/76] Fix compressed and large packets handling --- Shared/Network/NetState.cs | 5 +++-- Shared/Network/PacketHandlers.cs | 4 +++- Shared/Network/Packets.cs | 7 ++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Shared/Network/NetState.cs b/Shared/Network/NetState.cs index 2917886..adb3c72 100644 --- a/Shared/Network/NetState.cs +++ b/Shared/Network/NetState.cs @@ -19,6 +19,7 @@ public class NetState : IDisposable { public bool Running { get; private set; } = true; public bool FlushPending { get; private set; } = false; public bool Active => LastAction > DateTime.Now - TimeSpan.FromMinutes(2); + private const int RECV_BUFFER_CAPACITY = 65536; public NetState(T parent, Socket socket, PacketHandler?[] packetHandlers) { Parent = parent; @@ -26,7 +27,7 @@ public NetState(T parent, Socket socket, PacketHandler?[] packetHandlers) { PacketHandlers = packetHandlers; _recvStream = new MemoryStream(socket.ReceiveBufferSize); - _recvBuffer = new byte[_recvStream.Capacity]; + _recvBuffer = new byte[RECV_BUFFER_CAPACITY]; _recvReader = new BinaryReader(_recvStream); _sendStream = new MemoryStream(socket.SendBufferSize); @@ -45,8 +46,8 @@ public bool Receive() { if (_socket.Available > 0) { var bytesRead = _socket.Receive(_recvBuffer, SocketFlags.None); if (bytesRead > 0) { + _recvStream.Seek(0, SeekOrigin.End); _recvStream.Write(_recvBuffer, 0, bytesRead); - _recvBuffer = new byte[_recvStream.Capacity]; ProcessBuffer(); } } diff --git a/Shared/Network/PacketHandlers.cs b/Shared/Network/PacketHandlers.cs index 3f39634..8eaf89b 100644 --- a/Shared/Network/PacketHandlers.cs +++ b/Shared/Network/PacketHandlers.cs @@ -9,7 +9,9 @@ public static void OnCompressedPacket(BinaryReader buffer, NetState ns) { var targetSize = (int)buffer.ReadUInt32(); var zLibStream = new ZLibStream(buffer.BaseStream, CompressionMode.Decompress); var rawData = new MemoryStream(); - zLibStream.CopyBytesTo(rawData, targetSize); + zLibStream.CopyTo(rawData); + if (rawData.Length != targetSize) + throw new InvalidDataException("Uncompressed data doesn't match expected size"); rawData.Position = 0; using var reader = new BinaryReader(rawData); var packetId = reader.ReadByte(); diff --git a/Shared/Network/Packets.cs b/Shared/Network/Packets.cs index 2e59564..d9c6680 100644 --- a/Shared/Network/Packets.cs +++ b/Shared/Network/Packets.cs @@ -1,13 +1,14 @@ using System.IO.Compression; -using CentrED.Utility; namespace CentrED.Network; public class CompressedPacket : Packet { public CompressedPacket(Packet packet) : base(0x01, 0) { var compressedData = new MemoryStream(); - using var zLibStream = new ZLibStream(compressedData, CompressionLevel.Optimal); //SmallestSize level seems to be slow - zLibStream.Write(packet.Compile(out _)); + using var zLibStream = new ZLibStream(compressedData, CompressionLevel.NoCompression); //SmallestSize level seems to be slow + var bytes = packet.Compile(out var length); + zLibStream.Write(bytes); + zLibStream.Flush(); zLibStream.Dispose(); Writer.Write((uint)packet.Stream.Length); Writer.Write(compressedData.GetBuffer()); From c9451fb1e015965a9325313b3d3171d90f56391a Mon Sep 17 00:00:00 2001 From: kaczy Date: Fri, 21 Jul 2023 14:03:04 +0200 Subject: [PATCH 07/76] Beginning of CentrED# --- .gitmodules | 9 + CentrED/Camera.cs | 63 +++ CentrED/CentrED.csproj | 51 +- CentrED/CentrEDGame.cs | 82 +++ CentrED/Map/LocalMapClient.cs | 198 +++++++ CentrED/Map/MapManager.cs | 520 ++++++++++++++++++ CentrED/Program.cs | 113 +++- CentrED/Renderer/Effects/MapEffect.cs | 74 +++ CentrED/Renderer/Effects/Shaders/MapEffect.fx | 92 ++++ .../Renderer/Effects/Shaders/MapEffect.fxc | Bin 0 -> 2464 bytes .../Effects/Shaders/ShadowMapEffect.fx | 55 ++ .../Effects/Shaders/ShadowMapEffect.fxc | Bin 0 -> 1032 bytes .../Effects/Shaders/compile_shaders.bat | 4 + .../Effects/Shaders/d3dcompiler_47.dll | Bin 0 -> 4524496 bytes CentrED/Renderer/Effects/ShadowMapEffect.cs | 44 ++ CentrED/Renderer/MapRenderer.cs | 424 ++++++++++++++ CentrED/Renderer/PostProcessRenderer.cs | 104 ++++ CentrED/Renderer/ShadowRenderer.cs | 369 +++++++++++++ CentrED/Renderer/StbRectPack/CRuntime.cs | 86 +++ CentrED/Renderer/StbRectPack/Packer.cs | 85 +++ .../StbRectPack/StbRectPack.Generated.cs | 307 +++++++++++ CentrED/Renderer/StbRectPack/StbRectPack.cs | 52 ++ CentrED/Renderer/UIRenderer.cs | 286 ++++++++++ CentrED/UI/UIManager.cs | 178 ++++++ CentrEDSharp.sln | 18 + external/FNA | 1 + external/ImGui.NET | 1 + external/fna-libs | 1 + lib/x64/ClassicUO.Assets.dll | Bin 0 -> 121344 bytes lib/x64/ClassicUO.IO.dll | Bin 0 -> 34816 bytes lib/x64/ClassicUO.Utility.dll | Bin 0 -> 101888 bytes lib/x64/zlib.dll | Bin 0 -> 113152 bytes 32 files changed, 3199 insertions(+), 18 deletions(-) create mode 100644 .gitmodules create mode 100644 CentrED/Camera.cs create mode 100644 CentrED/CentrEDGame.cs create mode 100644 CentrED/Map/LocalMapClient.cs create mode 100644 CentrED/Map/MapManager.cs create mode 100644 CentrED/Renderer/Effects/MapEffect.cs create mode 100644 CentrED/Renderer/Effects/Shaders/MapEffect.fx create mode 100644 CentrED/Renderer/Effects/Shaders/MapEffect.fxc create mode 100644 CentrED/Renderer/Effects/Shaders/ShadowMapEffect.fx create mode 100644 CentrED/Renderer/Effects/Shaders/ShadowMapEffect.fxc create mode 100644 CentrED/Renderer/Effects/Shaders/compile_shaders.bat create mode 100644 CentrED/Renderer/Effects/Shaders/d3dcompiler_47.dll create mode 100644 CentrED/Renderer/Effects/ShadowMapEffect.cs create mode 100644 CentrED/Renderer/MapRenderer.cs create mode 100644 CentrED/Renderer/PostProcessRenderer.cs create mode 100644 CentrED/Renderer/ShadowRenderer.cs create mode 100644 CentrED/Renderer/StbRectPack/CRuntime.cs create mode 100644 CentrED/Renderer/StbRectPack/Packer.cs create mode 100644 CentrED/Renderer/StbRectPack/StbRectPack.Generated.cs create mode 100644 CentrED/Renderer/StbRectPack/StbRectPack.cs create mode 100644 CentrED/Renderer/UIRenderer.cs create mode 100644 CentrED/UI/UIManager.cs create mode 160000 external/FNA create mode 160000 external/ImGui.NET create mode 160000 external/fna-libs create mode 100644 lib/x64/ClassicUO.Assets.dll create mode 100644 lib/x64/ClassicUO.IO.dll create mode 100644 lib/x64/ClassicUO.Utility.dll create mode 100644 lib/x64/zlib.dll diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..3bf7b97 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "FNA"] + path = external/FNA + url = https://github.com/fna-xna/fna +[submodule "fna-libs"] + path = external/fna-libs + url = https://github.com/deccer/fna-libs +[submodule "ImGui"] + path = external/ImGui.NET + url = https://github.com/ImGuiNET/ImGui.NET diff --git a/CentrED/Camera.cs b/CentrED/Camera.cs new file mode 100644 index 0000000..b671b77 --- /dev/null +++ b/CentrED/Camera.cs @@ -0,0 +1,63 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input; + +namespace UORenderer; + +public class Camera +{ + public Camera() + { + } + + // Where the camera is looking, in "game/world" coordinates + public Vector3 LookAt; + + // 1.0 is standard. Large zooms in, smaller zooms out. + public float Zoom = 1.0f; + + // Camera rotation around the Z axis, in degrees + public float Rotation = 0; + + public Rectangle ScreenSize; + + /* Game Y goes from top to bottom. Drawing Y from bottom to top. This just flips it over. */ + private Matrix _reflection = Matrix.CreateReflection(new Plane(0, -1, 0, 0)); + + private Vector3 _up = new Vector3(-1, -1, 0); + + /* This takes the coordinates (x, y, z) and turns it into the screen point (x, y + z, z) */ + private Matrix _oblique = new Matrix( + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 1, 1, 0, + 0, 0, 0, 1); + + private Vector3 _position = new Vector3(0, 0, 128); + + public Matrix WorldViewProj { get; private set; } + + public void Update() + { + Matrix world = Matrix.CreateTranslation(-LookAt); + world = Matrix.Multiply(world, _reflection); + + var up = Vector3.Transform(_up, Matrix.CreateRotationZ(MathHelper.ToRadians(Rotation))); + up = Vector3.Transform(up, _reflection); + + Matrix view = Matrix.CreateLookAt(_position, Vector3.Zero, up); + + Matrix ortho = Matrix.CreateOrthographic(ScreenSize.Width, ScreenSize.Height, -128 * 6, 128 * 6); + + Matrix scale = Matrix.CreateScale(Zoom, Zoom, 1f); + + Matrix projection = _oblique * ortho * scale; + + Matrix worldViewProj; + Matrix worldView; + + Matrix.Multiply(ref world, ref view, out worldView); + Matrix.Multiply(ref worldView, ref projection, out worldViewProj); + + WorldViewProj = worldViewProj; + } +} \ No newline at end of file diff --git a/CentrED/CentrED.csproj b/CentrED/CentrED.csproj index 0e40a8c..f25108b 100644 --- a/CentrED/CentrED.csproj +++ b/CentrED/CentrED.csproj @@ -3,13 +3,60 @@ Exe net7.0 + x64 + enable enable + true + + false + true + + true + true + + ../output + ../publish - - + + + + + + + + + + + + + + + + + + + + ..\lib\x64\ClassicUO.Assets.dll + + + ..\lib\x64\ClassicUO.IO.dll + + + ..\lib\x64\ClassicUO.Utility.dll + + + + + + + + + + + diff --git a/CentrED/CentrEDGame.cs b/CentrED/CentrEDGame.cs new file mode 100644 index 0000000..b933754 --- /dev/null +++ b/CentrED/CentrEDGame.cs @@ -0,0 +1,82 @@ +using System.Runtime.InteropServices; +using CentrED.Map; +using CentrED.UI; +using ClassicUO.Assets; +using ClassicUO.Utility; +using ClassicUO.Utility.Logging; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace CentrED; + +internal class CentrEDGame : Game +{ + private readonly GraphicsDeviceManager _gdm; + + private MapManager _mapManager; + private UIManager _uiManager; + + public CentrEDGame() + { + _gdm = new GraphicsDeviceManager(this) + { + PreferredBackBufferWidth = 1024, + PreferredBackBufferHeight = 900, + IsFullScreen = false, + PreferredDepthStencilFormat = DepthFormat.Depth24 + }; + + _gdm.PreparingDeviceSettings += (sender, e) => { e.GraphicsDeviceInformation.PresentationParameters.RenderTargetUsage = RenderTargetUsage.DiscardContents; }; + + IsMouseVisible = true; + } + + protected override void Initialize() + { + if (_gdm.GraphicsDevice.Adapter.IsProfileSupported(GraphicsProfile.HiDef)) + { + _gdm.GraphicsProfile = GraphicsProfile.HiDef; + } + _gdm.ApplyChanges(); + + + NativeLibrary.Load(Path.Combine(AppContext.BaseDirectory, "x64", "zlib.dll")); + Log.Start(LogTypes.All); + UOFileManager.Load(ClientVersion.CV_70796, @"D:\Games\Ultima Online Classic_7_0_95_0_modified", false, "enu"); + + TextureAtlas.InitializeSharedTexture(_gdm.GraphicsDevice); + _mapManager = new MapManager(_gdm.GraphicsDevice); + _uiManager = new UIManager(_gdm.GraphicsDevice); + + base.Initialize(); + } + + protected override void LoadContent() + { + base.LoadContent(); + } + + protected override void UnloadContent() + { + base.UnloadContent(); + } + + protected override void Update(GameTime gameTime) + { + _uiManager.Update(gameTime); + _mapManager.Update(gameTime, !_uiManager.CapturingMouse, !_uiManager.CapturingKeyboard); + + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + if (!IsActive) + return; + + _mapManager.Draw(); + _uiManager.Draw(); + + base.Draw(gameTime); + } +} \ No newline at end of file diff --git a/CentrED/Map/LocalMapClient.cs b/CentrED/Map/LocalMapClient.cs new file mode 100644 index 0000000..3be4911 --- /dev/null +++ b/CentrED/Map/LocalMapClient.cs @@ -0,0 +1,198 @@ +using ClassicUO.Assets; + +namespace CentrED.Map; + +public class Map +{ + private struct Sector + { + public StaticTile[,][] Statics; + public LandTile[,] Land; + } + + private Sector[,] m_Sectors; + + private LandTile[,] m_InvalidLandSector; + private StaticTile[,][] m_EmptyStaticSector; + + private BinaryReader? m_Map; + + private FileStream? m_Index; + private BinaryReader? m_IndexReader; + + private BinaryReader? m_Statics; + + private int m_SectorWidth; + private int m_SectorHeight; + + public Map(int fileIndex, int width, int height) + { + m_SectorWidth = width >> 3; + m_SectorHeight = height >> 3; + + if (fileIndex != 0x7F) + { + string mapPath = UOFileManager.GetUOFilePath($"map{fileIndex}.mul"); + + if (File.Exists(mapPath)) + { + m_Map = new BinaryReader(new FileStream(mapPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)); + } + + string indexPath = UOFileManager.GetUOFilePath($"staidx{fileIndex}.mul"); + + if (File.Exists(indexPath)) + { + m_Index = new FileStream(indexPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + m_IndexReader = new BinaryReader(m_Index); + } + + string staticsPath = UOFileManager.GetUOFilePath($"statics{fileIndex}.mul"); + + if (File.Exists(staticsPath)) + m_Statics = new BinaryReader(new FileStream(staticsPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)); + } + + m_EmptyStaticSector = new StaticTile[8, 8][]; + + for (int i = 0; i < 8; ++i) + { + for (int j = 0; j < 8; ++j) + m_EmptyStaticSector[i, j] = Array.Empty(); + } + + m_InvalidLandSector = new LandTile[8, 8]; + + m_Sectors = new Sector[m_SectorWidth, m_SectorHeight]; + } + + private StaticTile[,][] GetStaticSector(int x, int y) + { + if (x < 0 || y < 0 || x >= m_SectorWidth || y >= m_SectorHeight || m_Statics == null || m_Index == null) + return m_EmptyStaticSector; + + ref var Sector = ref m_Sectors[x, y]; + + if (Sector.Statics == null) + { + Sector.Statics = ReadStaticSector(x, y); + } + + return Sector.Statics; + } + + public StaticTile[] GetStaticTiles(int x, int y) + { + StaticTile[,][] Sector = GetStaticSector(x >> 3, y >> 3); + + var tiles = Sector[(x & 0x7), (y & 0x7)]; + + if (tiles == null) + return Array.Empty(); + + return tiles; + } + + private LandTile[,] GetLandSector(int x, int y) + { + if (x < 0 || y < 0 || x >= m_SectorWidth || y >= m_SectorHeight || m_Map == null) + return m_InvalidLandSector; + + ref var Sector = ref m_Sectors[x, y]; + + if (Sector.Land == null) + { + Sector.Land = ReadLandSector(x, y); + } + + return Sector.Land; + } + + public LandTile GetLandTile(int x, int y) + { + LandTile[,] tiles = GetLandSector(x >> 3, y >> 3); + + return tiles[(x & 0x7), (y & 0x7)]; + } + + private unsafe StaticTile[,][] ReadStaticSector(int x, int y) + { + m_IndexReader.BaseStream.Seek(((x * m_SectorHeight) + y) * 12, SeekOrigin.Begin); + + int lookup = m_IndexReader.ReadInt32(); + int length = m_IndexReader.ReadInt32(); + + if (lookup < 0 || length <= 0) + { + return m_EmptyStaticSector; + } + + int count = length / 7; + + m_Statics.BaseStream.Seek(lookup, SeekOrigin.Begin); + + StaticTile[,][] tiles = new StaticTile[8, 8][]; + + for (int i = 0; i < count; i++) + { + var id = m_Statics.ReadUInt16(); + var offsetX = m_Statics.ReadByte(); + var offsetY = m_Statics.ReadByte(); + var offsetZ = m_Statics.ReadSByte(); + m_Statics.ReadUInt16(); + + ref var tileList = ref tiles[offsetX, offsetY]; + if (tileList == null) + { + tileList = new StaticTile[1]; + } + else + { + Array.Resize(ref tileList, tileList.Length + 1); + } + + ref var tile = ref tileList[tileList.Length - 1]; + + tile.Id = id; + tile.X = (ushort)(x * 8 + offsetX); + tile.Y = (ushort)(y * 8 + offsetY); + tile.Z = offsetZ; + } + + return tiles; + } + + private unsafe LandTile[,] ReadLandSector(int x, int y) + { + int offset = (x * m_SectorHeight + y) * 196 + 4; + + m_Map.BaseStream.Seek(offset, SeekOrigin.Begin); + + LandTile[,] tiles = new LandTile[8, 8]; + + for (int ty = 0; ty < 8; ty++) + { + for (int tx = 0; tx < 8; tx++) + { + ref LandTile tile = ref tiles[tx, ty]; + + tile.Id = m_Map.ReadUInt16(); + tile.Z = m_Map.ReadSByte(); + } + } + + return tiles; + } + + public void Dispose() + { + if (m_Map != null) + m_Map.Close(); + + if (m_Statics != null) + m_Statics.Close(); + + if (m_IndexReader != null) + m_IndexReader.Close(); + } +} \ No newline at end of file diff --git a/CentrED/Map/MapManager.cs b/CentrED/Map/MapManager.cs new file mode 100644 index 0000000..37bc08e --- /dev/null +++ b/CentrED/Map/MapManager.cs @@ -0,0 +1,520 @@ +using CentrED.Client; +using CentrED.Network; +using CentrED.Renderer; +using ClassicUO.Assets; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using SDL2; +using UORenderer; + +namespace CentrED.Map; + +public class MapManager { + private readonly GraphicsDevice _gfxDevice; + + private readonly MapRenderer _mapRenderer; + + private readonly ShadowRenderer _shadowRenderer; + private readonly RenderTarget2D _shadowTarget; + + private readonly PostProcessRenderer _postProcessRenderer; + + // Currently loaded map + private CentrEDClient _client; + + private Camera _camera = new Camera(); + private Camera _lightSourceCamera = new Camera(); + + private LightingState _lightingState = new LightingState(); + private DepthStencilState _depthStencilState = new DepthStencilState(); + + private float TILE_SIZE = 22f; + private float TILE_Z_SCALE = 4f; + + private void DarkenTexture(ushort[] pixels) { + for (int i = 0; i < pixels.Length; i++) { + ushort c = pixels[i]; + + int red = (c >> 10) & 0x1F; + int green = (c >> 5) & 0x1F; + int blue = c & 0x1F; + + red = (int)(red * 0.85355339f); + green = (int)(green * 0.85355339f); + blue = (int)(blue * 0.85355339f); + + pixels[i] = (ushort)((1 << 15) | (red << 10) | (green << 5) | blue); + } + } + + public MapManager(GraphicsDevice gd) { + _gfxDevice = gd; + + _mapRenderer = new MapRenderer(gd, null); + + _shadowTarget = new RenderTarget2D( + gd, + gd.PresentationParameters.BackBufferWidth * 2, + gd.PresentationParameters.BackBufferHeight * 2, + false, + SurfaceFormat.Single, + DepthFormat.Depth24); + _shadowRenderer = new ShadowRenderer(gd, _shadowTarget); + + _postProcessRenderer = new PostProcessRenderer(gd); + + _client = new CentrEDClient("127.0.0.1", 2597, "admin", "admin"); + + var focus = _client.GetLandTile(1455, 1900); + + _camera.LookAt = new Vector3(1455 * TILE_SIZE, 1900 * TILE_SIZE, focus.Z * TILE_Z_SCALE); + _camera.ScreenSize.X = 0; + _camera.ScreenSize.Y = 0; + _camera.ScreenSize.Width = gd.PresentationParameters.BackBufferWidth; + _camera.ScreenSize.Height = gd.PresentationParameters.BackBufferHeight; + + // This has to match the LightDirection below + _lightSourceCamera.LookAt = _camera.LookAt; + _lightSourceCamera.Zoom = _camera.Zoom; + _lightSourceCamera.Rotation = 45; + _lightSourceCamera.ScreenSize.Width = _camera.ScreenSize.Width * 2; + _lightSourceCamera.ScreenSize.Height = _camera.ScreenSize.Height * 2; + + _lightingState.LightDirection = new Vector3(0, -1, -1f); + _lightingState.LightDiffuseColor = Vector3.Normalize(new Vector3(1, 1, 1)); + _lightingState.LightSpecularColor = Vector3.Zero; + _lightingState.AmbientLightColor = new Vector3( + 1f - _lightingState.LightDiffuseColor.X, + 1f - _lightingState.LightDiffuseColor.Y, + 1f - _lightingState.LightDiffuseColor.Z + ); + + CalculateViewRange(out var minTileX, out var minTileY, out var maxTileX, out var maxTileY); + List requested = new List(); + for (var x = minTileX / 8; x < maxTileX / 8; x++) { + for (var y = minTileY / 8; y < maxTileY / 8; y++) { + requested.Add(new BlockCoords((ushort)x, (ushort)y)); + } + } + _client.LoadBlocks(requested); + } + + private enum MouseDirection { + North, + Northeast, + East, + Southeast, + South, + Southwest, + West, + Northwest + } + + // This is all just a fast math way to figure out what the direction of the mouse is. + private MouseDirection ProcessMouseMovement(ref MouseState mouseState, out float distance) { + Vector2 vec = new Vector2(mouseState.X - (_camera.ScreenSize.Width / 2), + mouseState.Y - (_camera.ScreenSize.Height / 2)); + + int hashf = 100 * (Math.Sign(vec.X) + 2) + 10 * (Math.Sign(vec.Y) + 2); + + distance = vec.Length(); + if (distance == 0) { + return MouseDirection.North; + } + + vec.X = Math.Abs(vec.X); + vec.Y = Math.Abs(vec.Y); + + if (vec.Y * 5 <= vec.X * 2) { + hashf = hashf + 1; + } + else if (vec.Y * 2 >= vec.X * 5) { + hashf = hashf + 3; + } + else { + hashf = hashf + 2; + } + + switch (hashf) { + case 111: return MouseDirection.Southwest; + case 112: return MouseDirection.West; + case 113: return MouseDirection.Northwest; + case 120: return MouseDirection.Southwest; + case 131: return MouseDirection.Southwest; + case 132: return MouseDirection.South; + case 133: return MouseDirection.Southeast; + case 210: return MouseDirection.Northwest; + case 230: return MouseDirection.Southeast; + case 311: return MouseDirection.Northeast; + case 312: return MouseDirection.North; + case 313: return MouseDirection.Northwest; + case 320: return MouseDirection.Northeast; + case 331: return MouseDirection.Northeast; + case 332: return MouseDirection.East; + case 333: return MouseDirection.Southeast; + } + + return MouseDirection.North; + } + + + private int _lastScrollWheel; + private readonly float WHEEL_DELTA = 1200f; + + public void Update(GameTime gameTime, bool processMouse, bool processKeyboard) { + if (processMouse) { + var mouse = Mouse.GetState(); + + if (mouse.RightButton == ButtonState.Pressed) { + var direction = ProcessMouseMovement(ref mouse, out var distance); + + int increment = distance > 200 ? 10 : 5; + switch (direction) { + case MouseDirection.North: + _camera.LookAt.Y -= increment; + break; + case MouseDirection.Northeast: + _camera.LookAt.Y -= increment; + _camera.LookAt.X += increment; + break; + case MouseDirection.East: + _camera.LookAt.X += increment; + break; + case MouseDirection.Southeast: + _camera.LookAt.X += increment; + _camera.LookAt.Y += increment; + break; + case MouseDirection.South: + _camera.LookAt.Y += increment; + break; + case MouseDirection.Southwest: + _camera.LookAt.X -= increment; + _camera.LookAt.Y += increment; + break; + case MouseDirection.West: + _camera.LookAt.X -= increment; + break; + case MouseDirection.Northwest: + _camera.LookAt.X -= increment; + _camera.LookAt.Y -= increment; + break; + } + } + + if (mouse.ScrollWheelValue != _lastScrollWheel) { + _camera.Zoom += (mouse.ScrollWheelValue - _lastScrollWheel) / WHEEL_DELTA; + _lastScrollWheel = mouse.ScrollWheelValue; + } + } + + if (processKeyboard) { + var keyboard = Keyboard.GetState(); + + foreach (var key in keyboard.GetPressedKeys()) { + switch (key) { + case Keys.E: + _camera.Rotation += 1; + break; + case Keys.Q: + _camera.Rotation -= 1; + break; + case Keys.Escape: + _camera.Rotation = 0; + _camera.Zoom = 1; + break; + case Keys.A: + _camera.LookAt.X -= 10; + _camera.LookAt.Y += 10; + break; + case Keys.D: + _camera.LookAt.X += 10; + _camera.LookAt.Y -= 10; + break; + case Keys.W: + _camera.LookAt.X -= 10; + _camera.LookAt.Y -= 10; + break; + case Keys.S: + _camera.LookAt.X += 10; + _camera.LookAt.Y += 10; + break; + case Keys.Z: + _camera.Zoom += 0.1f; + break; + case Keys.X: + _camera.Zoom -= 0.1f; + if (_camera.Zoom < 0.5f) + _camera.Zoom = 0.5f; + break; + } + } + } + + var t = _client.GetLandTile((int)(_camera.LookAt.X / TILE_SIZE), (int)(_camera.LookAt.Y / TILE_SIZE)); + _camera.LookAt.Z = t.Z; + + _camera.Update(); + + _lightSourceCamera.LookAt = _camera.LookAt; + _lightSourceCamera.Zoom = _camera.Zoom; + _lightSourceCamera.Rotation = 45; + _lightSourceCamera.ScreenSize.Width = _camera.ScreenSize.Width * 2; + _lightSourceCamera.ScreenSize.Height = _camera.ScreenSize.Height * 2; + + _lightSourceCamera.Update(); + } + + private void CalculateViewRange(out int minTileX, out int minTileY, out int maxTileX, out int maxTileY) { + float zoom = _camera.Zoom; + + int screenWidth = _camera.ScreenSize.Width; + int screenHeight = _camera.ScreenSize.Height; + + /* Calculate the size of the drawing diamond in pixels */ + float screenDiamondDiagonal = (screenWidth + screenHeight) / zoom; + + Vector3 center = _camera.LookAt; + + minTileX = (int)Math.Ceiling((center.X - screenDiamondDiagonal) / TILE_SIZE); + minTileY = (int)Math.Ceiling((center.Y - screenDiamondDiagonal) / TILE_SIZE); + + // Render a few extra rows at the bottom to deal with things at higher z + maxTileX = (int)Math.Ceiling((center.X + screenDiamondDiagonal) / TILE_SIZE) + 4; + maxTileY = (int)Math.Ceiling((center.Y + screenDiamondDiagonal) / TILE_SIZE) + 4; + } + + private static (Vector2, Vector2)[] _offsets = new[] { + (new Vector2(1, 0), new Vector2(0, 1)), + (new Vector2(0, 1), new Vector2(-1, 0)), + (new Vector2(-1, 0), new Vector2(0, -1)), + (new Vector2(0, -1), new Vector2(1, 0)) + }; + + public Vector3 ComputeNormal(int tileX, int tileY) { + var t = _client.GetLandTile(tileX, tileY); + + Vector3 normal = Vector3.Zero; + + for (int i = 0; i < _offsets.Length; i++) { + (var tu, var tv) = _offsets[i]; + + var tx = _client.GetLandTile((int)(tileX + tu.X), (int)(tileY + tu.Y)); + var ty = _client.GetLandTile((int)(tileX + tv.X), (int)(tileY + tv.Y)); + + if (tx.Id == 0 || ty.Id == 0) + continue; + + Vector3 u = new Vector3(tu.X * TILE_SIZE, tu.Y * TILE_SIZE, tx.Z - t.Z); + Vector3 v = new Vector3(tv.X * TILE_SIZE, tv.Y * TILE_SIZE, ty.Z - t.Z); + + var tmp = Vector3.Cross(u, v); + normal = Vector3.Add(normal, tmp); + } + + return Vector3.Normalize(normal); + } + + public Vector4 GetCornerZ(int x, int y) { + var top = _client.GetLandTile(x, y); + var right = _client.GetLandTile(x + 1, y); + var left = _client.GetLandTile(x, y + 1); + var bottom = _client.GetLandTile(x + 1, y + 1); + + return new Vector4( + top.Z * TILE_Z_SCALE, + right.Z * TILE_Z_SCALE, + left.Z * TILE_Z_SCALE, + bottom.Z * TILE_Z_SCALE + ); + } + + private void DrawShadowMap(int minTileX, int minTileY, int maxTileX, int maxTileY) { + var depthStatics = new DepthStencilState() { + DepthBufferEnable = true, + DepthBufferWriteEnable = true, + DepthBufferFunction = CompareFunction.Less + }; + + _shadowRenderer.Begin(_lightSourceCamera, RasterizerState.CullNone, SamplerState.PointClamp, depthStatics, + BlendState.AlphaBlend); + + for (int y = maxTileY; y >= minTileY; y--) { + for (int x = maxTileX; x >= minTileX; x--) { + var statics = _client.GetStaticTiles(x, y); + + for (int i = statics.Count - 1; i >= 0; i--) { + var s = statics[i]; + + var texture = ArtLoader.Instance.GetStaticTexture(s.Id, out var bounds); + var isLand = texture.Width == 44 && texture.Height == 44; + + if (isLand) { + _shadowRenderer.DrawTile( + new Vector2(x * TILE_SIZE, y * TILE_SIZE), + new Vector4(s.Z * TILE_Z_SCALE), + texture, + bounds, + true + ); + } + else { + _shadowRenderer.DrawBillboard( + new Vector3(x * TILE_SIZE, y * TILE_SIZE, s.Z * TILE_Z_SCALE), + texture, + bounds + ); + } + } + } + } + + for (int y = maxTileY; y >= minTileY; y--) { + for (int x = maxTileX; x >= minTileX; x--) { + var tile = _client.GetLandTile(x, y); + + var tileTex = ArtLoader.Instance.GetLandTexture(tile.Id, out var bounds); + + if (tileTex == null) + continue; + + ref var data = ref TileDataLoader.Instance.LandData[tile.Id]; + + Vector4 zCorners; + if ((data.Flags & TileFlag.Wet) != 0) { + /* Water tiles are always flat */ + zCorners = new Vector4(tile.Z * TILE_Z_SCALE); + } + else { + zCorners = GetCornerZ(x, y); + } + + _shadowRenderer.DrawTile( + new Vector2(x * TILE_SIZE, y * TILE_SIZE), + zCorners, + tileTex, + bounds, + true + ); + } + } + + _shadowRenderer.End(); + } + + public void DrawStatics(int minTileX, int minTileY, int maxTileX, int maxTileY) { + var depthStatics = new DepthStencilState() { + DepthBufferEnable = true, + DepthBufferWriteEnable = true, + DepthBufferFunction = CompareFunction.Less + }; + + _mapRenderer.Begin(_camera, RasterizerState.CullNone, SamplerState.PointClamp, _lightingState, depthStatics, + BlendState.AlphaBlend, _shadowTarget, _lightSourceCamera); + + for (int y = maxTileY; y >= minTileY; y--) { + for (int x = maxTileX; x >= minTileX; x--) { + var statics = _client.GetStaticTiles(x, y); + + for (int i = statics.Count - 1; i >= 0; i--) { + var s = statics[i]; + + var texture = ArtLoader.Instance.GetStaticTexture(s.Id, out var bounds); + var isLand = texture.Width == 44 && texture.Height == 44; + + if (isLand) { + _mapRenderer.DrawTile( + new Vector2(x * TILE_SIZE, y * TILE_SIZE), + new Vector4(s.Z * TILE_Z_SCALE), + Vector3.UnitZ, + Vector3.UnitZ, + Vector3.UnitZ, + Vector3.UnitZ, + texture, + bounds, + true + ); + } + else { + _mapRenderer.DrawBillboard( + new Vector3(x * TILE_SIZE, y * TILE_SIZE, s.Z * TILE_Z_SCALE), + Vector3.UnitZ, + texture, + bounds + ); + } + } + } + } + + _mapRenderer.End(); + } + + private void DrawLand(int minTileX, int minTileY, int maxTileX, int maxTileY) { + _depthStencilState.DepthBufferEnable = true; + _depthStencilState.DepthBufferWriteEnable = false; + _depthStencilState.DepthBufferFunction = CompareFunction.Less; + + _mapRenderer.Begin(_camera, RasterizerState.CullNone, SamplerState.PointClamp, _lightingState, + _depthStencilState, BlendState.AlphaBlend, _shadowTarget, _lightSourceCamera); + + for (int y = maxTileY; y >= minTileY; y--) { + for (int x = maxTileX; x >= minTileX; x--) { + var tile = _client.GetLandTile(x, y); + + var tileTex = TexmapsLoader.Instance.GetLandTexture(tile.Id, out var bounds); + var diamondTexture = false; + if (tileTex == null) { + tileTex = ArtLoader.Instance.GetLandTexture(tile.Id, out bounds); + diamondTexture = true; + } + + ref var data = ref TileDataLoader.Instance.LandData[tile.Id]; + + if ((data.Flags & TileFlag.Wet) != 0) { + /* Water tiles are always flat */ + _mapRenderer.DrawTile( + new Vector2(x * TILE_SIZE, y * TILE_SIZE), + new Vector4(tile.Z * TILE_Z_SCALE), + Vector3.UnitZ, + Vector3.UnitZ, + Vector3.UnitZ, + Vector3.UnitZ, + tileTex, + bounds, + diamondTexture + ); + } + else { + _mapRenderer.DrawTile( + new Vector2(x * TILE_SIZE, y * TILE_SIZE), + GetCornerZ(x, y), + ComputeNormal(x, y), + ComputeNormal(x + 1, y), + ComputeNormal(x, y + 1), + ComputeNormal(x + 1, y + 1), + tileTex, + bounds, + diamondTexture + ); + } + } + } + + _mapRenderer.End(); + } + + public void Draw() { + _gfxDevice.Clear(Color.Black); + _gfxDevice.Viewport = new Viewport(0, 0, _gfxDevice.PresentationParameters.BackBufferWidth, + _gfxDevice.PresentationParameters.BackBufferHeight); + + CalculateViewRange(out var minTileX, out var minTileY, out var maxTileX, out var maxTileY); + + DrawShadowMap(minTileX, minTileY, maxTileX, maxTileY); + + DrawStatics(minTileX, minTileY, maxTileX, maxTileY); + + DrawLand(minTileX, minTileY, maxTileX, maxTileY); + } +} \ No newline at end of file diff --git a/CentrED/Program.cs b/CentrED/Program.cs index d2b9d30..2beefd8 100644 --- a/CentrED/Program.cs +++ b/CentrED/Program.cs @@ -1,20 +1,101 @@ -using CentrED; -using CentrED.Client; +using System.Globalization; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Runtime.Loader; +using Microsoft.Xna.Framework; + +namespace CentrED; public class Program { - public static byte[,] array = { - { 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1 }, - { 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1 }, - { 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1 }, - { 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1 }, - { 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1 }, - }; - public static void Main(string[] args) { - using CentrEDClient client = new CentrEDClient("127.0.0.1", 2597, "autouser", "autopass"); - for(ushort y = 0; y < array.GetLength(0); y++) - for(ushort x = 0; x < array.GetLength(1); x++) - if(array[y,x] == 1) - client.AddStaticTile(new StaticTile(0xEEF, x, y, 5, 0)); + + static private AssemblyLoadContext _loadContext; + static private string? _rootDir; + + static private Assembly? LoadFromResource(string resourceName) + { + Console.WriteLine($"Loading resource {resourceName}"); + + foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) + { + var name = $"{assembly.GetName().Name}.{resourceName}.dll"; + if (name.StartsWith("System.")) + continue; + + using Stream? s = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.{resourceName}.dll"); + + if (s == null || s.Length == 0) + continue; + + return _loadContext.LoadFromStream(s); + } + + return null; + } + + static private Assembly? ResolveAssembly(AssemblyLoadContext loadContext, AssemblyName assemblyName) + { + Console.WriteLine($"Resolving assembly {assemblyName}"); + + if (loadContext != _loadContext) + { + throw new Exception("Mismatched load contexts!"); + } + + if (assemblyName == null || assemblyName.Name == null) + { + throw new Exception("Unable to load null assembly"); + } + + /* Wasn't in same directory. Try to load it as a resource. */ + return LoadFromResource(assemblyName.Name); } -} + static private IntPtr ResolveUnmanagedDll(Assembly assembly, string unmanagedDllName) + { + Console.WriteLine($"Loading unmanaged DLL {unmanagedDllName} for {assembly.GetName().Name}"); + + /* Try the correct native libs directory first */ + string osDir = ""; + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + osDir = "x64"; + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + osDir = "osx"; + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + osDir = "lib64"; + } + + var libraryPath = Path.Combine(_rootDir, osDir, unmanagedDllName); + + Console.WriteLine($"Resolved DLL to {libraryPath}"); + + if (File.Exists(libraryPath)) + return NativeLibrary.Load(libraryPath); + + return IntPtr.Zero; + } + + [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool SetDllDirectory(string lpPathName); + + [STAThread] + public static void Main(string[] args) + { + CultureInfo.CurrentCulture = CultureInfo.InvariantCulture; + + _rootDir = AppContext.BaseDirectory; + Console.WriteLine($"Root Dir: {_rootDir}"); + + _loadContext = AssemblyLoadContext.Default; + _loadContext.ResolvingUnmanagedDll += ResolveUnmanagedDll; + _loadContext.Resolving += ResolveAssembly; + + using Game g = new CentrEDGame(); + g.Run(); + } +} \ No newline at end of file diff --git a/CentrED/Renderer/Effects/MapEffect.cs b/CentrED/Renderer/Effects/MapEffect.cs new file mode 100644 index 0000000..3d8e485 --- /dev/null +++ b/CentrED/Renderer/Effects/MapEffect.cs @@ -0,0 +1,74 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace CentrED.Renderer.Effects; + +public class MapEffect : Effect +{ + private readonly EffectParameter _ambientLightColorParam; + private readonly EffectParameter _worldViewProjParam; + private readonly EffectParameter _lightWorldViewProjParam; + private DirectionalLight _lightSource; + + private Matrix _worldViewProj = Matrix.Identity; + private Matrix _lightWorldViewProj = Matrix.Identity; + + private Vector3 _ambientLightColor = Vector3.One; + + public Matrix WorldViewProj { + get { return _worldViewProj; } + set { _worldViewProj = value; } + } + + public Matrix LightWorldViewProj { + get { return _lightWorldViewProj; } + set { _lightWorldViewProj = value; } + } + + public Vector3 AmbientLightColor { + get { return _ambientLightColor; } + + set { + _ambientLightColor = value; + } + } + + public DirectionalLight LightSource { get { return _lightSource; } } + + protected static byte[] GetResource(string name) + { + Stream? stream = typeof(MapEffect).Assembly.GetManifestResourceStream(name); + + if (stream == null) + { + return Array.Empty(); + } + + using (MemoryStream ms = new MemoryStream()) + { + stream.CopyTo(ms); + + return ms.ToArray(); + } + } + + public MapEffect(GraphicsDevice device) + : base(device, GetResource("CentrED.Renderer.Effects.Shaders.MapEffect.fxc")) + { + _ambientLightColorParam = Parameters["AmbientLightColor"]; + _worldViewProjParam = Parameters["WorldViewProj"]; + _lightWorldViewProjParam = Parameters["LightWorldViewProj"]; + + _lightSource = new DirectionalLight(Parameters["DirectionalLightDirection"], + Parameters["DirectionalLightDiffuseColor"], + Parameters["DirectionalLightSpecularColor"], + null); + } + + protected override void OnApply() + { + _worldViewProjParam.SetValue(_worldViewProj); + _lightWorldViewProjParam.SetValue(_lightWorldViewProj); + _ambientLightColorParam.SetValue(new Vector4(_ambientLightColor, 1)); + } +} diff --git a/CentrED/Renderer/Effects/Shaders/MapEffect.fx b/CentrED/Renderer/Effects/Shaders/MapEffect.fx new file mode 100644 index 0000000..1793590 --- /dev/null +++ b/CentrED/Renderer/Effects/Shaders/MapEffect.fx @@ -0,0 +1,92 @@ +sampler TextureSampler : register(s0); +sampler ShadowSampler : register(s1); + +cbuffer Parameters : register(b0) { + float4 AmbientLightColor : register(vs, c0) : register(ps, c1); + + float3 DirectionalLightPosition : register(vs, c1) : register(ps, c2); + float3 DirectionalLightDirection : register(vs, c2) : register(ps, c3); + float3 DirectionalLightDiffuseColor : register(vs, c3) : register(ps, c4); + float3 DirectionalLightSpecularColor : register(vs, c4) : register(ps, c5); +}; + +cbuffer ProjectionMatrix : register(b1) { + float4x4 WorldViewProj : register(vs, c5); + float4x4 LightWorldViewProj : register(vs, c9); +}; + +struct VSInput { + float4 Position : SV_Position; + float3 Normal : NORMAL; + float2 TexCoord : TEXCOORD0; +}; + +struct VSOutput { + float4 ScreenPosition : SV_Position; + float4 WorldPosition : TEXCOORD0; + float4 LightViewPosition : TEXCOORD1; + float2 TexCoord : TEXCOORD2; + float3 Normal : TEXCOORD3; +}; + +struct PSInput { + float4 WorldPosition : TEXCOORD0; + float4 LightViewPosition : TEXCOORD1; + float2 TexCoord : TEXCOORD2; + float3 Normal : TEXCOORD3; +}; + +VSOutput VSMain(VSInput vin) { + VSOutput vout; + + vout.ScreenPosition = mul(vin.Position, WorldViewProj); + vout.WorldPosition = vin.Position; + vout.LightViewPosition = mul(vin.Position, LightWorldViewProj); + vout.Normal = vin.Normal; + vout.TexCoord = vin.TexCoord; + + return vout; +} + +float4 PSMain(PSInput pin) : SV_Target0 +{ + float4 color = tex2D(TextureSampler, pin.TexCoord.xy); + + if (color.a == 0) + discard; + + float2 LightViewTexCoords; + LightViewTexCoords.x = (pin.LightViewPosition.x / pin.LightViewPosition.w) / 2.0f + 0.5f; + LightViewTexCoords.y = (-pin.LightViewPosition.y / pin.LightViewPosition.w) / 2.0f + 0.5f; //zero y in a texture is the top, so reverse coordinates + + // get depth from shadow map red channel + float lightViewDepth = tex2D(ShadowSampler, LightViewTexCoords).r; + + // compare shadow-map depth to the actual depth + // subtracting a small value helps avoid floating point equality errors (depth bias) + // when the distances are equal + float pixelDepth = pin.LightViewPosition.z / pin.LightViewPosition.w; + float bias = max(0.012f * (1.0f - dot(DirectionalLightDirection, normalize(pin.Normal))), 0.01f); + //float bias = 0.005f; + if (pixelDepth - bias > lightViewDepth) { + // In shadow. Darken the color. + color.rgb *= 0.5f; + } + + float3 dotL = mul(-DirectionalLightDirection, normalize(pin.Normal)); + float3 diffuse = step(0, dotL) * dotL; + + color.rgb *= mul(diffuse, DirectionalLightDiffuseColor) * AmbientLightColor.rgb; + color.rgb += DirectionalLightSpecularColor * color.a; + + return color; +} + +Technique BasicEffect +{ + Pass + { + VertexShader = compile vs_2_0 VSMain(); + PixelShader = compile ps_2_0 PSMain(); + } +} diff --git a/CentrED/Renderer/Effects/Shaders/MapEffect.fxc b/CentrED/Renderer/Effects/Shaders/MapEffect.fxc new file mode 100644 index 0000000000000000000000000000000000000000..75ca50acd900360bf11be074b70897ca5a5e58e7 GIT binary patch literal 2464 zcmcIlF>4%06n;BcE?JQ5cHH!BFnXj7b_5Qyq}K;__2O-e%4R%^XWi8)#^^uH(Rqg{eFtCa|3*>)cuW}TBTu} zaW6d1>Fi7a^_jBX|99|gZ-kB7?Qa8rcexSX0XOmPzlV4qz`s7gzMw4ASxEn$m;&!= zzuuH}9CHhmX0UOkTEzvCQE<);LAVdD`w(Kr3_#fsd~ZVT=6D4BcaFaRE|_4zGr&tZ z{uA(TIeq}#%keL?%B z31o3~eu2Hd%Sn|a!}w&qU#dfQpK4UdkzsiR{1=4%r%)+JCWZT@?v>WL&`ns~B-Sfb z){!ZzV?Ag^f0r2(V_EBX4obeubSL{ijvc*{aR(3En_177gItfrW<8^)3d1Aiay!FMc8Mzj0G{RpZPX6YmZYK@;5fj2YX~bZ3p>GBL?zsyU4GIITyJB zM-bQ;&fF61Kb=oF7vcXE_M%{)+*8P#@i_0uemBi?&H8}7woCUhf}H7pKT7w{_^bzV zf-n!(2s!LA589-ArH$;NMti1?s10M-HRJ{4&v_*y@R!hMmOJAn?ICdHDtexI^cV|v zqHumXk0e2)Y_Qi2ehMQ|N9gshY_C7zBy`Bb_WGZ|WvcNa7UVO*9%K{pNb826o3gqA z?{Vyk3!At1CfvN!IR4!K_>LVD$L8MSzd?r>Paf)(V$>Qn^g4L^p?03)96PLW%9ZBB zmKQW1vAn2xG2^)Jhg?5uxzc>h@`C1PEH7$44zABnJk5#GqlY-#4l(ZdA?`tkC;1xk CM1*tz literal 0 HcmV?d00001 diff --git a/CentrED/Renderer/Effects/Shaders/ShadowMapEffect.fx b/CentrED/Renderer/Effects/Shaders/ShadowMapEffect.fx new file mode 100644 index 0000000..051fe51 --- /dev/null +++ b/CentrED/Renderer/Effects/Shaders/ShadowMapEffect.fx @@ -0,0 +1,55 @@ +sampler TextureSampler : register(s0); + +cbuffer ProjectionMatrix : register(b0) { + float4x4 WorldViewProj : register(vs, c0); +}; + +struct VSInput { + float4 Position : SV_Position; + float2 TexCoord : TEXCOORD0; +}; + +struct VSOutput { + float4 Position : SV_Position; + float4 ScreenPosition : TEXCOORD0; + float2 TexCoord : TEXCOORD1; +}; + +struct PSInput { + float4 ScreenPosition : TEXCOORD0; + float2 TexCoord : TEXCOORD1; +}; + +VSOutput VSMain(VSInput vin) { + VSOutput vout; + + vout.Position = mul(vin.Position, WorldViewProj); + vout.ScreenPosition = vout.Position; + vout.TexCoord = vin.TexCoord; + + return vout; +} + + +float4 PSMain(PSInput pin) : SV_Target0 +{ + float4 color = tex2D(TextureSampler, pin.TexCoord); + + if (color.a == 0) + discard; + + color.r = pin.ScreenPosition.z; + color.g = 0; + color.b = 0; + // We leave alpha in case we want to use that when generating the shadows + + return color; +} + +Technique BasicEffect { + Pass + { + VertexShader = compile vs_2_0 VSMain(); + PixelShader = compile ps_2_0 PSMain(); + } +} diff --git a/CentrED/Renderer/Effects/Shaders/ShadowMapEffect.fxc b/CentrED/Renderer/Effects/Shaders/ShadowMapEffect.fxc new file mode 100644 index 0000000000000000000000000000000000000000..a4bb249181eb62c64332120bfa915a25ca1fbae9 GIT binary patch literal 1032 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

;+g)5<6l5?! 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�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