public void DrawBlock(BlockData data)
        {
            _genMesh.ClearAll();
            var desc = StaticResources.BlocksInfo.GetBlockDescription(data.Type);
            var inp  = new MesherBlockInput()
            {
                Block = data, Lighting = LightInfo.FullLit, Position = Byte3.Zero, Visibility = VisibilityFlags.All
            };

            BlockModelGenerator.AddBlock(_genMesh, desc, ref Offset, ref inp);
            _renderer.material = VoxelsStatic.Instance.OpaqueMaterial;
            _genMesh.BakeMesh();
            _filter.mesh = _genMesh.Mesh;
        }
Exemple #2
0
        public static void AddBlock(GeneratableMesh meshInfo, BlockDescription desc, ref Vector3 rootPos, ref MesherBlockInput input)
        {
            if (desc == null)
            {
                return;
            }
            var data       = input.Block;
            var visibility = input.Visibility;
            var light      = input.Lighting;

            switch (desc.ModelType)
            {
            case BlockModelType.None:
                return;

            case BlockModelType.FullBlockSimple:
                GenerateFullBlockSimple(meshInfo, desc, data, rootPos, visibility, light);
                return;

            case BlockModelType.FullBlockComplex:
                GenerateFullBlockComplex(meshInfo, desc, data, rootPos, visibility, light);
                return;

            case BlockModelType.HalfBlockDown:
                GenerateHalfBlockDown(meshInfo, desc, data, rootPos, visibility, light);
                return;

            case BlockModelType.HalfBlockUp:
                return;

            case BlockModelType.Stairs:
                return;

            case BlockModelType.Plate:
                return;

            case BlockModelType.Grass:
                return;

            case BlockModelType.HorizontalPlane:
                GenerateHorizontalPlane(meshInfo, desc, data, rootPos, visibility);
                return;

            case BlockModelType.SmallerBlock:
                return;

            case BlockModelType.CrossedVPlanes:
                GenerateCrossedVPlanes(meshInfo, desc, data, rootPos, visibility);
                return;

            default:
                return;
            }
        }