public static void UnpackLayerData() { Logger.LogDebug("VolumeLayerManager.UnpackLayerData"); for (int i = 0; i < LayerData.Count; i++) { VolumeLayerData vlData = LayerData[i]; BitPack bitPack = new BitPack(vlData.Data); GroupHeader gh = new GroupHeader(bitPack); switch (vlData.LayerType) { case LayerType.Land: Agent.CurrentPlayer.Region.Land.DecompressPatches(bitPack, gh, false); break; case LayerType.Wind: break; case LayerType.Cloud: break; default: throw new ArgumentOutOfRangeException(); } } //TODO: Bogus event for debug purpose (generate a texture): Region region = Agent.CurrentPlayer.Region; Surface surface = region.Land; surface.IdleUpdate(0f); EventManager.Instance.RaiseOnHeightsDecoded(region, surface.SurfaceZ, surface.GridsPerEdge, surface.MinZ, surface.MaxZ); }
protected void ProcessLayerData(LayerDataMessage message) // TODO: This should not be here { //Logger.LogDebug("Session.ProcessLayerData", ""); // TODO: Verify that the sending endpoint is associated with the current region VolumeLayerData vlData = new VolumeLayerData { LayerType = message.LayerType, Data = message.Data, Size = message.Data.Length, Region = Agent.CurrentPlayer?.Region }; VolumeLayerManager.AddLayerData(vlData); }
public static void AddLayerData(VolumeLayerData vlData) { //Logger.LogDebug("VolumeLayerManager.AddLayerData"); switch (vlData.LayerType) { case LayerType.Land: LandByteCount += vlData.Size; break; case LayerType.Wind: WindByteCount += vlData.Size; break; case LayerType.Cloud: CloudByteCount += vlData.Size; break; default: throw new ArgumentOutOfRangeException(); } LayerData.Add(vlData); }