48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
using System.Collections.Generic;
|
|
using ClaimLink;
|
|
using Vintagestory.API.MathTools;
|
|
using Vintagestory.API.Server;
|
|
|
|
namespace ClaimLinkVisualizer;
|
|
|
|
internal static class ClaimLinkVisualizerServer
|
|
{
|
|
internal static void Start(ICoreServerAPI api)
|
|
{
|
|
api.Network
|
|
.RegisterChannel(ClaimLinkVisualizerModSystem.ChannelName)
|
|
.RegisterMessageType<ClaimLinkBufferRequest>()
|
|
.RegisterMessageType<ClaimLinkBufferResponse>()
|
|
.SetMessageHandler<ClaimLinkBufferRequest>((fromPlayer, _) =>
|
|
SendBuffers(api, fromPlayer)
|
|
);
|
|
}
|
|
|
|
private static void SendBuffers(ICoreServerAPI api, IServerPlayer toPlayer)
|
|
{
|
|
ClaimLinkBufferResponse response = new();
|
|
|
|
foreach (var (groupId, cuboids) in ClaimLinkApi.BufferMap)
|
|
{
|
|
ClaimLinkBufferEntryDto entry = new() { GroupId = groupId };
|
|
foreach (Cuboidi cuboid in cuboids)
|
|
entry.Cuboids.Add(
|
|
new BufferCuboidDto
|
|
{
|
|
MinX = cuboid.MinX,
|
|
MinY = cuboid.MinY,
|
|
MinZ = cuboid.MinZ,
|
|
MaxX = cuboid.MaxX,
|
|
MaxY = cuboid.MaxY,
|
|
MaxZ = cuboid.MaxZ,
|
|
}
|
|
);
|
|
response.Entries.Add(entry);
|
|
}
|
|
|
|
api.Network
|
|
.GetChannel(ClaimLinkVisualizerModSystem.ChannelName)
|
|
.SendPacket(response, toPlayer);
|
|
}
|
|
}
|