es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

getOutlineShape está obsoleto, ¿hay otro método para cambiar el hitbox?

Estoy creando un bloque que no ocupa un bloque completo en Fabric 1.18.

He probado el siguiente código como se sugiere en el wiki de Fabric.

protected static final VoxelShape SHAPE = Block.createCuboidShape(2.d, .0d, 2.d, 14.d, 4.d, 14.d);

@Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) {
    return SHAPE;
}

Funciona, solo que aparece una advertencia obsoleta en el IDE y en la consola.

¿Hay algo más que debería usar para esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    De hecho, hay un método alternativo que puedes usar para crear un bloque que no ocupe un bloque completo en Fabric 1.18 sin activar ninguna advertencia de obsolescencia en tu IDE o consola. Aquí tienes un ejemplo de fragmento de código que puedes usar:

    protected static final VoxelShape SHAPE = VoxelShapes.union(
        Block.createCuboidShape(2.d, .0d, 2.d, 14.d, 4.d, 14.d),
        Block.createCuboidShape(6.d, 4.d, 6.d, 10.d, 6.d, 10.d)
    );
    
    @Override
    public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) {
        return SHAPE;
    }
    

    En este ejemplo, estamos utilizando el método VoxelShapes.union() para combinar dos formas de cubo separadas en un objeto VoxelShape. La primera forma del cubo representa la parte principal del bloque, mientras que la segunda forma representa una forma más pequeña que “flota” sobre ella. Puedes ajustar las dimensiones y la posición de estos cubos para adaptarlos a tus necesidades específicas.

    Al utilizar este método, deberías poder crear bloques no completos en Fabric 1.18 sin ninguna advertencia de obsolescencia. ¡Espero que esto te ayude!

Comments are closed.