Yarn: NORTE / S / W / E / U / D -> ZN / ZP / ...

Creado en 11 dic. 2018  ·  11Comentarios  ·  Fuente: FabricMC/yarn

Las direcciones cardinales (n / s / w / e) tienen muy poco uso (/ ¿no?) Fuera de F3. El código generalmente se escribe teniendo en cuenta el eje + dirección o las coordenadas xyz, no una dirección cardinal ("5 cuadras al oeste + 1 al sur").

El mapeo entre el eje + el signo y la dirección cardinal fue elegido arbitrariamente por Mojang y el desarrollador debe buscarlo o memorizarlo para cada uso específico con el esquema de nomenclatura actual.

También es más limpio hablar de axis + dir en sistemas de coordenadas rotados. El eje Y ha sido girado 90 ° para apuntar hacia los lados suena más razonable que "hacia abajo" que ahora apunta hacia el lado.

Para resolver esto, los campos en Orientación deben cambiarse de nombre a XP / XN / YP / YN / ZP / ZN, donde la primera letra es el eje y la segunda es la dirección. Otras clases también pueden tener miembros que todavía usan nombres de direcciones cardinales que deberían cambiarse.

Comentario más útil

Gran no de mi parte.

Todos 11 comentarios

Lo siento, pero no estoy de acuerdo.

  • Si no tiene un buen conjunto de habilidades en matemáticas, estos nombres son más confusos y mucho menos legibles en código.
  • "El código generalmente se escribe teniendo en cuenta el eje + dirección o las coordenadas xyz, no una dirección cardinal (" 5 cuadras al oeste + 1 al sur ")". - Ese código generalmente simplemente modifica las coordenadas x / y / z directamente, no usa la enumeración.
  • Todos los que conozco, incluso los que no son modders, se coordinan con este mapeo de dirección cardinal en mente, simplemente usándolos para referirse a sus distancias relativas, por ejemplo.

Creo que esto es ser demasiado estricto.

Aparte de arriba / abajo, nunca he tenido que hacer referencia explícita a ninguna de las otras direcciones, por lo que no lo consideraría un problema. Es raro ver algo que funcione de manera diferente en diferentes direcciones horizontales, con esa dirección codificada. Tal vez excepto algún cambio ... caso en todas las direcciones existentes, pero en cualquier caso todavía no necesita saber cómo esas direcciones se asignan a las coordenadas, porque hay más que suficientes métodos útiles allí.

Y también es una enumeración, donde probablemente no sea una buena idea cambiar el nombre de las entradas. Los nombres de cadena en el código de bytes corresponden directamente a lo que deberían ser los nombres de los campos, es muy probable que confunda a los descompiladores y tal vez incluso a los IDE.

Sí, eso también es un factor importante. valueOf () para Direction devuelve los cardenales, por lo que Mojang en realidad se refiere a ellos internamente.

Generalmente hay 4 contextos / usos para los revestimientos horizontales:

  • iterando todo
  • opuestos (interacción vecino, worldgen)
  • coordenadas deltas (por ejemplo, código de movimiento de entidad)
  • eje (ver usos de la clase anidada de eje)

Los opuestos son un poco más claros con la notación del eje debido al mismo prefijo. Los deltas de coordenadas favorecen fuertemente la notación del eje, a.getX () - b.getX () se relaciona obviamente con XN / XP, pero no tanto con el oeste / este. Los ejes también son X / Y / Z, no norte-sur / oeste-este / arriba-abajo.

"muy buen conjunto de habilidades en matemáticas" -> son desplazamientos de coordenadas básicos / eje dirigido, esto no es difícil ni ilegible. Por el contrario, "oeste" es ilegible si el código que lo rodea funciona con coordenadas y primero debe buscar su relación de coordenadas.

"Ese código generalmente simplemente modifica las coordenadas x / y / z directamente" -> los métodos de desplazamiento / movimiento en BlockPos no están de acuerdo. De hecho, hace esas modificaciones directas debido a lo poco clara que es la relación con los nombres actuales

Cambiar el nombre de los campos de enumeración no es un problema técnico, se llaman af en nombres mojang. Creo que son lo suficientemente malos en lo que importa para no atender las elecciones de nombres de Mojang.

Simplemente no puedo encontrar un solo caso en el que norte / sur / oeste / este tengan sentido además de parecer un poco menos mathy.

Cambiar el nombre de los campos de enumeración no es un problema técnico, se llaman af en nombres mojang.

Incorrecto. El nombre de enumeración se conserva a pesar de la ofuscación para hacer que las llamadas a valueOf funcionen, incluso con la configuración Proguard de Mojang. Esos son nombres que conocemos .

Los campos tal como se envían se denominan af, al igual que cambiamos el nombre de los campos. Dado que el cambio de nombre funciona para Mojang, también funcionaría para nosotros.

Gran no de mi parte.

También estoy en desacuerdo, siento que esto causaría más confusión de la que vale.

En todo caso, diría NORTH_XP, SOUTH_XN, etc.

Sin embargo, realmente no veo la necesidad de esto. Me quedaría con los actuales

NORTH_XP

Es NORTH_ZN.

Creo que acaba de probar el punto de Player.

Pero estoy de acuerdo con modmuss y kashike, aunque ahora puedo ver su punto con mayor claridad y creo que es algo válido.

No estoy de acuerdo y esto causaría mucha confusión.

¿Fue útil esta página
0 / 5 - 0 calificaciones