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

Dibuat pada 11 Des 2018  ·  11Komentar  ·  Sumber: FabricMC/yarn

Arah mata angin (n/s/w/e) terlihat sangat sedikit (/tidak?) digunakan di luar F3. Kode biasanya ditulis dengan mempertimbangkan sumbu+arah atau koordinat xyz, bukan arah mata angin ("5 blok barat + 1 selatan").

Pemetaan antara sumbu+tanda dan arah mata angin dipilih secara sewenang-wenang oleh Mojang dan harus dicari atau diingat oleh pengembang untuk setiap penggunaan khusus dengan skema penamaan saat ini.

Juga lebih bersih untuk berbicara tentang sumbu+dir dalam sistem koordinat yang diputar. Sumbu Y yang telah diputar 90° untuk menunjuk ke samping terdengar lebih masuk akal daripada "ke bawah" yang sekarang menunjuk ke samping.

Untuk mengatasi ini, bidang di Menghadapi harus diganti namanya menjadi XP/XN/YP/YN/ZP/ZN, di mana huruf pertama adalah sumbu dan yang ke-2 adalah arah. Kelas lain mungkin juga memiliki anggota yang masih menggunakan nama arah mata angin yang perlu diubah.

Komentar yang paling membantu

Tidak besar dari saya.

Semua 11 komentar

Maaf, tapi saya tidak setuju.

  • Jika Anda tidak memiliki keahlian yang sangat baik dalam matematika, nama-nama ini lebih membingungkan dan kurang dapat dibaca dalam kode.
  • "Kode biasanya ditulis dengan mempertimbangkan sumbu+arah atau koordinat xyz, bukan arah mata angin ("5 blok barat + 1 selatan")." - Kode itu biasanya hanya memodifikasi koordinat x/y/z secara langsung, tidak menggunakan enum.
  • Semua orang yang saya kenal, bahkan non-modder, berkoordinasi dengan pemetaan arah mata angin ini, hanya dengan menggunakannya untuk merujuk pada jarak relatif mereka, katakanlah.

Saya pikir ini terlalu ketat.

Selain naik/turun, saya tidak pernah secara eksplisit merujuk ke arah lain, jadi saya akan menganggapnya bukan masalah. Sangat jarang untuk melihat sesuatu yang bekerja secara berbeda pada arah horizontal yang berbeda, dengan arah yang di-hardcode. Mungkin kecuali beberapa switch...case pada semua arah yang ada, tetapi dalam kedua kasus tersebut Anda masih tidak perlu tahu bagaimana arah tersebut dipetakan ke koordinat, karena ada lebih dari cukup metode yang berguna di sana.

Dan itu juga enum, di mana mungkin bukan ide yang baik untuk mengganti nama entri. Nama string dalam bytecode secara langsung sesuai dengan nama bidang yang seharusnya, ada kemungkinan besar itu akan membingungkan dekompiler dan bahkan mungkin IDE.

Ya, itu juga merupakan faktor penting. valueOf() for Direction mengembalikan kardinal, jadi Mojang sebenarnya merujuk ke mereka seperti itu secara internal.

Secara umum ada 4 konteks/penggunaan untuk permukaan horizontal:

  • mengulangi semua
  • berlawanan (interaksi tetangga, worldgen)
  • koordinat delta (misalnya kode gerakan entitas)
  • sumbu (lihat penggunaan kelas bersarang sumbu)

Berlawanan sedikit lebih jelas dengan notasi sumbu karena awalan yang sama. Delta koordinat sangat mendukung notasi sumbu, a.getX() - b.getX() jelas berhubungan dengan XN/XP, tetapi tidak terlalu ke barat/timur. Sumbu juga X/Y/Z, bukan utara-selatan/barat-timur/atas-bawah.

" keterampilan yang sangat baik dalam matematika" -> mereka adalah offset koordinat dasar/sumbu terarah, ini tidak sulit atau tidak dapat dibaca. Sebaliknya, "barat" tidak terbaca jika kode di sekitarnya bekerja dengan koordinat dan Anda harus melihat hubungan koordinatnya terlebih dahulu.

"Kode itu biasanya hanya memodifikasi koordinat x/y/z secara langsung" -> metode offset/pindah di BlockPos tidak setuju. Anda benar-benar melakukan modifikasi langsung itu karena betapa tidak jelas hubungannya dengan nama-nama saat ini

Mengganti nama bidang enum bukanlah masalah teknis, mereka disebut af dalam nama mojang. Saya pikir mereka cukup buruk di mana penting untuk tidak memenuhi pilihan penamaan Mojang juga.

Saya hanya gagal menemukan satu kasus di mana utara/selatan/barat/timur masuk akal selain terlihat kurang matematis.

Mengganti nama bidang enum bukanlah masalah teknis, mereka disebut af dalam nama mojang.

Salah. Nama enum dipertahankan meskipun kebingungan untuk membuat panggilan valueOf berfungsi, bahkan oleh konfigurasi Proguard Mojang. Itulah nama-nama yang kami kenal .

Bidang yang dikirimkan disebut af, sama seperti kita mengganti nama bidang. Karena penggantian nama berfungsi untuk Mojang, itu juga akan berhasil untuk kita.

Tidak besar dari saya.

Saya juga tidak setuju, saya merasa ini akan menyebabkan lebih banyak kebingungan daripada nilainya

Jika ada, saya akan mengatakan NORTH_XP, SOUTH_XN, dll.

Namun saya benar-benar tidak melihat perlunya ini. Saya hanya akan tetap dengan yang sekarang

NORTH_XP

Ini NORTH_ZN.

Saya pikir Anda baru saja membuktikan poin Player.

Tapi saya setuju dengan modmuss dan kashike, meskipun saya bisa melihat maksud Anda dengan lebih jelas sekarang dan saya pikir itu agak valid.

Saya tidak setuju dan ini akan menyebabkan banyak kebingungan

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

haykam821 picture haykam821  ·  4Komentar

Sollace picture Sollace  ·  5Komentar

asiekierka picture asiekierka  ·  3Komentar

Awakened-Redstone picture Awakened-Redstone  ·  4Komentar

Runemoro picture Runemoro  ·  4Komentar