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:
stonees la máscara.dirtes 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.
| Operador | Condición |
|---|---|
<mask | El bloque superior debe coincidir |
>mask | El 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 0° 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:
| Comando | Propósito |
|---|---|
;mask | Qué bloques dentro del volumen del pincel pueden modificarse |
;tracemask | Qué 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áscara | Significado |
|---|---|
stone | Piedra, sin importar los estados no especificados |
stone,dirt | Piedra o tierra |
"stone #surface" | Piedra y superficie expuesta |
!air | Todo excepto aire |
#existing | Cualquier bloque que no sea aire |
<air | Aire sobre la posición evaluada |
>stone | Piedra debajo de la posición evaluada |
%20 | Aproximadamente un 20 % de probabilidad |
^[state=value] | Comparación flexible de estado |
^=[state=value] | Comparación estricta de estado |
#surface | Bloque que no sea aire adyacente al aire |
#exposed | Alias de #surface |
#surface[10:45] | Superficie expuesta dentro de un rango de inclinación |
#shadow | Oculto desde la referencia de colocación |
!#shadow | Visible desde la referencia de colocación |
##tag | Bloque 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]