1 votos

Seleccione todas las entidades que pueden ver el cielo

Me gustaría saber si hay una forma de seleccionar todas las entidades que están expuestas al cielo (excluye todas las entidades que están bajo tierra, bajo techo, etc.). Una solución rudimentaria a esto sería seleccionar todas las entidades que estén a un nivel Y de 64 o más alto, pero esto no funciona correctamente porque no tiene en cuenta las entidades en agujeros (es decir, barrancos) y cuenta en exceso las entidades que están cubiertas (es decir, en una casa).

¿Hay alguna forma de lograr esto, y si no, cuál sería una solución alternativa que cubra tantos casos como sea posible?

1voto

amosel Puntos 354

Como comentó Fabian Röling, ese comando funcionaría así:

/execute as @e at @s positioned over world_surface if entity @s[distance=..1] run 

Sin embargo, la distancia es bastante importante.

Si la entidad está en un bloque completo y puede ver el sol, distance=..0 funciona genial. Pero en mis pruebas, usé bloques de miel para mantener quietas a las entidades, y esas entidades no se vieron afectadas.

Usar distance=..0.5 funcionó, al igual que cuando la entidad estaba en una losa.

Pero si la entidad está en medio de un salto y más lejos de la superficie que 0.5, entonces no será detectada.

Si aumentas la distancia a algo más alto es posible que detectes el techo en su lugar, como descubrí que si hay un bloque encima de la cabeza de la entidad y la distancia es 3, aún será afectada.

El bloque más pequeño en el que se encuentre la entidad, mayor será la distancia que necesitas, si la entidad está en una alfombra o una capa de nieve de 1, necesitas al menos una distancia de 0.94.

Por lo tanto, recomendaría usar distance=..1 ya que debería funcionar para todas las medias losas. Para una entidad en medio de un salto, encontré que 1.3 funciona bien, pero esas pruebas no son perfectas.

JugonesTop.com

Jugonestop es una comunidad para amantes del gaming. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X