Máscara

<mask>

Las máscaras definen qué bloques o posiciones pueden participar en una operación de WorldEdit.

Una máscara es una condición que decide si un bloque o una posición puede participar en una operación.

Marcador de máscara

<mask>

El marcador no se escribe literalmente. Reemplázalo con una expresión de máscara válida.

Una máscara no determina qué bloque se coloca. Solo determina qué bloques o posiciones existentes cumplen la condición.

Ejemplo de máscara y patrón

;replace stone dirt

En este ejemplo:

  • stone es la máscara.
  • dirt es el patrón.

Máscaras de bloques

La máscara más sencilla es un identificador de bloque.

Máscara de bloque

stone

Un identificador de bloque sin estados coincide con ese bloque sin importar sus estados actuales.

Se puede incluir un espacio de nombres:

Máscara de bloque con espacio de nombres

minecraft:stone

Los bloques de otro complemento deben utilizar su propio espacio de nombres:

Máscara de bloque personalizado

my_addon:custom_block

Para inspeccionar el identificador y los estados del bloque que estás mirando:

Inspeccionar bloque

;blockid

Máscaras de estados de bloques

Una máscara de bloque puede exigir uno o varios estados exactos.

Un estado de bloque

block[state=value]

Separa varios estados con comas:

Varios estados de bloque

block[state1=value,state2=value]

Ejemplo:

Ejemplo de estado de bloque exacto

oak_stairs[weirdo_direction=0,upside_down_bit=false]

Los nombres de los estados y sus valores admitidos pueden cambiar entre versiones de Minecraft.

Unión con ,

Una coma representa O. Solo una condición necesita coincidir.

Sintaxis de unión

mask1,mask2,mask3

Ejemplo:

Unión de varios bloques

stone,dirt,gravel

Esto coincide con piedra, tierra o grava.

No añadas espacios después de las comas dentro de una unión.

Intersección con espacios

Un espacio representa Y. Todas las condiciones deben coincidir.

Sintaxis de intersección

mask1 mask2

Como los comandos también utilizan espacios para separar argumentos, encierra toda la expresión de máscara entre comillas:

Intersección entre comillas

"stone #surface"

Esto coincide con bloques que son piedra y, al mismo tiempo, bloques expuestos en una superficie.

Agrupación con paréntesis

Los paréntesis agrupan partes de una expresión compleja y hacen explícita la prioridad de los operadores.

Máscara agrupada

"(stone,andesite) #surface"

Esto significa:

Significado de la máscara agrupada

(stone O andesite) Y surface

Utiliza paréntesis al combinar uniones, intersecciones, negaciones o máscaras desplazadas.

Negación con !

El prefijo ! invierte una máscara.

Sintaxis de negación

!mask

Coincide con todo excepto el aire:

Excluir aire

!air

Excluye un grupo completo:

Grupo negado

!(sand,gravel,dirt)

La negación también puede aplicarse a máscaras avanzadas:

Máscara de superficie visible

"#surface !#shadow"

Bloques existentes con #existing

#existing coincide con todos los bloques que no sean aire.

Máscara de bloques existentes

#existing

Es aproximadamente equivalente a:

Máscara existente equivalente

!air

#existing significa que no es aire. No significa necesariamente que sea sólido. Puede incluir fluidos, vegetación y otros bloques que no sean aire.

Máscaras desplazadas con < y >

Las máscaras desplazadas inspeccionan un bloque vertical vecino.

OperadorCondición
<maskEl bloque superior debe coincidir
>maskEl bloque inferior debe coincidir

Coincide con tierra que tenga aire encima:

Comprobar el bloque superior

"dirt <air"

Coincide con aire que tenga piedra debajo:

Comprobar el bloque inferior

"air >stone"

Las condiciones desplazadas pueden contener máscaras agrupadas:

Máscara desplazada agrupada

"air >(dirt,grass_block)"

El analizador actual admite desplazamientos anidados:

Desplazamiento repetido

<<air

Esto comprueba dos bloques por encima de la posición evaluada. Prueba los desplazamientos anidados en un área pequeña antes de utilizarlos en una operación grande.

Máscaras aleatorias con %

Una máscara aleatoria evalúa cada posición de forma independiente con la probabilidad especificada.

Sintaxis de máscara aleatoria

%percentage

Coincide aproximadamente con el 20 % de todas las posiciones evaluadas:

Máscara del veinte por ciento

%20

Combínala con otra máscara para que coincida aproximadamente con el 20 % de la piedra:

Intersección aleatoria de piedra

"stone %20"

El resultado es probabilístico, no una cantidad exacta de bloques. Repetir la misma operación puede hacer que coincidan posiciones diferentes.

Máscaras únicamente de estados

Las máscaras únicamente de estados comparan estados de bloques sin exigir un identificador de bloque específico.

Hay dos modos disponibles:

  • Flexible: ^[state=value]
  • Estricto: ^=[state=value]

Coincidencia flexible de estados

Máscara de estado flexible

^[state=value]

La forma flexible coincide cuando:

  • El bloque tiene el estado con el valor solicitado, o
  • El bloque no tiene ese estado.

Por este motivo, puede coincidir con más bloques de los esperados.

Coincidencia estricta de estados

Máscara de estado estricta

^=[state=value]

La forma estricta exige que el bloque contenga el estado y que tenga exactamente el valor solicitado.

Ejemplo:

Estado de eje estricto

^=[pillar_axis=0]

Utiliza la forma estricta cuando el estado deba existir.

Varias condiciones de estado

Varios estados flexibles

^[state1=value,state2=value]

Varios estados estrictos

^=[state1=value,state2=value]

Máscaras de superficie

#surface coincide con un bloque que no sea aire y que tenga al menos un bloque de aire directamente adyacente.

Máscara de superficie

#surface

Alias:

Alias de la máscara de superficie

#exposed

Se comprueban las seis direcciones adyacentes:

  • Arriba
  • Abajo
  • Norte
  • Sur
  • Este
  • Oeste

Combínala con una máscara de bloque:

Máscara de superficie de piedra

"stone #surface"

La implementación comprueba específicamente si hay aire adyacente. Un bloque junto a agua o lava no se considera necesariamente expuesto.

Rangos de inclinación de superficie

Una máscara de superficie puede limitar el ángulo aproximado de inclinación.

Sintaxis de inclinación de superficie

#surface[min:max]

Ejemplos:

Rango de superficie plana

#surface[0:15]

Rango de inclinación media

#surface[10:45]

Rango de inclinación pronunciada

#surface[50:90]

Conceptualmente, el rango se mide entre y 90°.

La vegetación, las flores y los bloques decorativos pequeños pueden afectar la inclinación calculada.

En latest, utiliza #surface[min:max] en lugar de la sintaxis anterior #slope[min:max].

Máscaras de sombra

#shadow coincide con los bloques que no son visibles desde la referencia de colocación actual de WorldEdit.

Máscara de sombra

#shadow

Coincide con bloques expuestos ocultos:

Máscara de superficie oculta

"#surface #shadow"

Coincide con bloques expuestos visibles:

Máscara de superficie visible

"#surface !#shadow"

Para obtener un mejor rendimiento, combina #shadow con #surface en lugar de evaluar cada bloque interno.

Máscaras de etiquetas de bloques

El analizador actual admite máscaras basadas en etiquetas de bloques.

Máscara de etiqueta de bloque

##tag

Ejemplo con espacio de nombres:

Etiqueta de bloque con espacio de nombres

##my_addon:natural_block

Las etiquetas disponibles dependen de Minecraft, los complementos instalados y las etiquetas expuestas por la API. No supongas que una etiqueta existe sin comprobarlo.

Máscaras globales con ;gmask

Una máscara global se almacena en la sesión de WorldEdit del jugador y se aplica a las operaciones compatibles.

Sintaxis de máscara global

;gmask [mask]

Establece una máscara global:

Establecer máscara global

;gmask #existing

Establece una máscara global compuesta:

Máscara global compuesta

;gmask "stone #surface"

Limpia la máscara global activa ejecutando el comando sin ningún argumento:

Limpiar máscara global

;gmask

Una máscara global pertenece a la sesión del jugador actual. No es una regla para todo el servidor.

No todos los comandos utilizan la máscara global. Cuando un comando acepte un argumento directo <mask>, [mask] o -m <mask>, utiliza preferentemente esa máscara directa.

Selector de máscaras

El kit de WorldEdit incluye un selector de máscaras.

Obtener el selector de máscaras

;kit
  • Úsalo sobre un bloque sin agacharte para crear una nueva máscara global.
  • Agáchate y úsalo sobre bloques adicionales para añadirlos como una unión.
  • Limpia la máscara global resultante con ;gmask.

El selector de máscaras almacena la permutación completa del bloque elegido, incluidos sus estados. Una máscara escrita manualmente como oak_stairs es más amplia porque no exige una orientación exacta salvo que se especifiquen estados.

Máscaras de destino de pincel con ;mask

;mask controla qué bloques de destino puede modificar el pincel sostenido.

Sintaxis de máscara de pincel

;mask [mask]

Establece una máscara de destino para el pincel:

Establecer máscara de pincel

;mask #existing

Límpiala:

Limpiar máscara de pincel

;mask

La máscara pertenece a la configuración del pincel asociada con el objeto sostenido.

Máscaras de trazado de pincel con ;tracemask

;tracemask controla qué bloques puede seleccionar un pincel como objetivo o utilizar como punto de impacto.

Sintaxis de máscara de trazado

;tracemask [mask]

Establece una máscara de trazado:

Establecer máscara de trazado

;tracemask stone

Límpiala:

Limpiar máscara de trazado

;tracemask

La diferencia es:

ComandoPropósito
;maskQué bloques dentro del volumen del pincel pueden modificarse
;tracemaskQué bloque puede seleccionar el pincel como objetivo

Combinar máscaras activas

Las máscaras aplicadas mediante distintos sistemas se combinan como una intersección. Todas las condiciones activas deben coincidir.

Conceptualmente:

Lógica de máscaras combinadas

máscara directa
Y máscara global
Y máscara de pincel

Una combinación incompatible puede impedir que una operación modifique algo.

Antes de diagnosticar un problema con una máscara, limpia las máscaras temporales:

Limpiar máscaras activas

;mask
;tracemask
;gmask

Después, activa únicamente la condición necesaria para la operación actual.

Errores comunes

Confundir una máscara con un patrón

Una máscara selecciona el destino existente. Un patrón determina el resultado que se coloca.

Olvidar las comillas

Una intersección que contenga espacios debe escribirse entre comillas.

Incorrecto:

Intersección sin comillas no válida

stone #surface

Correcto:

Intersección entre comillas válida

"stone #surface"

Añadir espacios después de las comas

Evita:

Unión con espacios no válida

stone, dirt, gravel

Utiliza:

Unión compacta válida

stone,dirt,gravel

Confundir < y >

Recordatorio de dirección del desplazamiento

<air   = aire arriba
>stone = piedra abajo

Considerar que #existing solo representa bloques sólidos

#existing significa cualquier bloque que no sea aire.

Utilizar coincidencia flexible cuando se necesita coincidencia estricta

Utiliza ^=[state=value] cuando el estado deba existir en el bloque.

Esperar un porcentaje aleatorio exacto

%20 es una probabilidad independiente para cada posición. No garantiza exactamente un 20 % del total.

Olvidar una máscara global o de pincel activa

Una máscara anterior puede combinarse silenciosamente con la actual y hacer que la condición final sea demasiado restrictiva.

Referencia rápida

MáscaraSignificado
stonePiedra, sin importar los estados no especificados
stone,dirtPiedra o tierra
"stone #surface"Piedra y superficie expuesta
!airTodo excepto aire
#existingCualquier bloque que no sea aire
<airAire sobre la posición evaluada
>stonePiedra debajo de la posición evaluada
%20Aproximadamente un 20 % de probabilidad
^[state=value]Comparación flexible de estado
^=[state=value]Comparación estricta de estado
#surfaceBloque que no sea aire adyacente al aire
#exposedAlias de #surface
#surface[10:45]Superficie expuesta dentro de un rango de inclinación
#shadowOculto desde la referencia de colocación
!#shadowVisible desde la referencia de colocación
##tagBloque que contiene una etiqueta de la API
(stone,dirt)Unión agrupada

Plantillas reutilizables

Plantilla de máscara de bloque

<block>

Plantilla de unión

<mask1>,<mask2>,<mask3>

Plantilla de intersección

"<mask1> <mask2>"

Plantilla de negación

!<mask>

Plantilla de desplazamiento

"<mask> >(<mask1>,<mask2>)"

Plantilla de intersección aleatoria

"<mask> %<percentage>"

Plantilla de estado estricto

^=[state=value]

Plantilla de rango de superficie

#surface[min:max]