コード例 #1
0
    public RebuildTask MakeCompileTaskChunk(ChunkRenderDispatcher dispatcher)
    {
        var cache = ChunkRenderCache.GenerateCache(dispatcher.World, _position - Vector3Int.one, _position + new Vector3Int(16, 16, 16), 1);

        _lastRebuildTask = new RebuildTask(dispatcher, this, GetDistanceSq(), cache);
        return(_lastRebuildTask);
    }
コード例 #2
0
    public void SetWorldAndLoadRenderers(ClientWorld world)
    {
        _world = world;

        _camera                = _client.Camera;
        _cameraTransform       = _camera.transform;
        _frustum               = new ViewFrustum(renderDistance: 3);
        _chunkRenderDispatcher = new ChunkRenderDispatcher(world);
    }
コード例 #3
0
 public RebuildTask(ChunkRenderDispatcher dispatcher, ChunkRender chunk, float distanceSq, ChunkRenderCache?chunkRenderCache) : base(dispatcher, chunk, distanceSq)
 {
     _chunkRenderCache = chunkRenderCache;
 }
コード例 #4
0
    // public bool ResortTransparency()
    // {
    //     if (_lastResortTransparencyTask != null)
    //     {
    //         _lastResortTransparencyTask.Cancel();
    //     }
    //     // _lastResortTransparencyTask = new SortTransparencyTask(this, GetDistanceSq());
    //     // return true;
    //     return false;
    // }

    public void RebuildChunk(ChunkRenderDispatcher dispatcher)
    {
        var task = MakeCompileTaskChunk(dispatcher);

        Task.Run(() => task.Execute());
    }
コード例 #5
0
 public ChunkRenderTask(ChunkRenderDispatcher dispatcher, ChunkRender chunk, float distanceSq)
 {
     Dispatcher = dispatcher;
     Chunk      = chunk;
     DistanceSq = distanceSq;
 }
コード例 #6
0
 public SortTransparencyTask(ChunkRenderDispatcher dispatcher, ChunkRender chunk, float distanceSq) : base(dispatcher, chunk, distanceSq)
 {
 }