Example #1
0
    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);
    }
Example #2
0
    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);
    }
Example #3
0
    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);
    }