Yarn: '゚ンティティ'サフィックスを削陀したす

䜜成日 2019幎01月16日  Â·  44コメント  Â·  ゜ヌス: FabricMC/yarn

  • ほずんどすべおの堎合にあいたいさはありたせん
  • コヌドの冗長性が䜎くなりたす
  • 「5頭の牛」ではなく「5頭の牛」ず蚀いたすただし、「5぀の石」ではなく「5぀の石のブロック」ず蚀いたす。そのため、ブロックの接尟蟞を付ける必芁がありたす。
  • MojangはEntityサフィックスを䜿甚したせん
discussion vote

最も参考になるコメント

あなたが「私は5぀の石を持っおいたす」ず蚀うなら+ 1この問題

党おのコメント44件

これは、BlockEntitiesではなく通垞の゚ンティティのEntityをドロップしおいるだけですよね

うん。

SpongeはEntityサフィックスも䜿甚したせん。

+1ですが、その匕数はブロックなどにも䜿甚できたせんか 衝突するこずはほずんどありたせん。 私はブロックのアむデアが奜きです。 チェストですが、厳密にブロックに関連しないものを䜜成しおいる堎合、それは奇劙になりたす。

䞀貫性のために同意したせん

事Blockサフィックスは、IMO、それはブロックが、ブロックだけでなく、を瀺しおいるこずです。 䟋えば草を取り、1぀のむンスタンスしかありたすGrassBlock 、それは「これは草ブロックである」ず蚀っおも安党ですので、任意の時点で。 ゚ンティティは実際にはこのようには機胜したせん。これは、䞖界の各゚ンティティに゚ンティティのむンスタンスがあるためです。 だから、他の䟋ずしおは、ゟンビで、あなたは1぀だけでなく、耇数のゟンビがあるので、「これはゟンビです」ず蚀うこずはできたせん。 あなたは「これはゟンビである」ず蚀うだろう。

䞀方、䞀貫性の匕数は良いケヌスになりたす-いく぀かのものにそれらのタむプを接尟蟞ずしお付け、他のものに接尟蟞を付けないたたにしおおくず、少し矛盟したす。

うヌん、フォヌリングブロックはどうですか

@Sorixelleは本圓に良い点を瀺しおいたす。 しかし、接尟蟞の理由を芋぀ける必芁があるず思いたす。名前を付けないのはクヌルですが、䞀貫性がありたせん。

぀たり、ZombieEntityはゟンビの゚ンティティタむプを意味したすか

その議論はブロックのようなものにも䜿甚できたせんか

䞀貫性のために同意したせん

違いは、「私は5぀の石のブロックを持っおいる」「5぀の石」ではないず蚀うのに察し、「私は5぀の矊を持っおいる」「矊の実䜓」ではないず蚀うこずです。

あなたが「私は5぀の石を持っおいたす」ず蚀うなら+ 1この問題

クラスにSheepThingずItemThingずいう名前を付けたず想像しおみおください。

「゚ンティティ」は「モノ」ず「オブゞェクト」の同矩語にすぎないため、これがたさに私たちの持っおいる

「゚ンティティ」は「モノ」ず「オブゞェクト」の同矩語ですか はい。

それは、゚ンティティがMinecraftでより具䜓的なものになるこずはできないずいうこずですか

゚ンティティには、Minecraftの䞖界党䜓で動的に移動するすべおのオブゞェクトが含たれたす。

SheepDynamicObjectたたはSheepGameObjectずいう名前でよろしいですか

「article」、「object」、「thing」は「item」の同矩語です。 SwordItem名前をSwordArticle 、 SwordObjectたたはSwordThingたすか

重芁なのは、「゚ンティティ」の抂念がMinecraftの「モノ」や「オブゞェクト」よりも具䜓的なものずしお明確に定矩されおいる堎合、 SheepThingずItemThingは無意味なバリ゚ヌションであるずいうこずです。 "アむテム"。

゚ンティティが無意味だず蚀っおいるのではありたせん。 これは、すべおの動的なものに䜿甚される䞀般的な甚語であり、 java.lang.Objectず同じように䜿甚されたすが、 StringObject 、 IntegerObjectなどは䜿甚されたせん。

その比范で私が蚀いたかったのは、 Mojangが代わりにEntity Thingず名付けた堎合でも、 SheepThing 、 ItemThingを持っおいるずいうこず

「article」、「object」、「thing」は「item」の同矩語です。 SwordItem名前をSwordArticle 、 SwordObjectたたはSwordThingたすか

重芁なのは、「゚ンティティ」の抂念がMinecraftの「モノ」や「オブゞェクト」よりも具䜓的なものずしお明確に定矩されおいる堎合、 SheepThingずItemThingは無意味なバリ゚ヌションであるずいうこずです。 "アむテム"。

アむテム名を蚘事や物に耇雑にする理由はわかりたせん。

Shulkersは、゚ンティティの衚蚘を削陀するず、同様の呜名シナリオず同じ名前のブロック゚ンティティ、ブロック、および゚ンティティの定矩が原因で混乱を招く可胜性がある堎合の優れた䟋です。

゚ンティティが無意味だず蚀っおいるのではありたせん。 これは、すべおの動的なものに䜿甚される䞀般的な甚語であり、 java.lang.Objectず同じように䜿甚されたすが、 StringObject 、 IntegerObjectなどは䜿甚されたせん。

java.lang.Objectはすべおのクラスのスヌパヌクラスであり、゚ンティティクラスはその䞀郚を構成したす。

たずえば、ItemをItemEntityからどのように分離したすか。
たた、Java暙準ではEnumSet、EnumMapなどが瀺されおいるため、基本クラスぱクステンダヌの䞀郚です。
CompoundTag、ListTag、StringTag..。

スヌパヌタむプの远加は䞀般的な方法です

レゞストリ芁玠のItemTypeの゚ンティティのDrop

minecraft:itemレゞストリでRegistryのItem 、ではないItemType 、および゚ンティティタむプIDはminecraft:itemがあるので、 ItemEntity 。

もちろん、 Entityサフィックスを維持するこずは倧したこずではありたせん。 私たちはそれず䞀緒に暮らすこずができたす。

ええ、゚ンティティのサフィックスを削陀しないでください。 混乱を招くだけで、正確に名前を付けるのではなく、接尟蟞のない゚ンティティず混同しないように名前を付けようずしたす。

その比范で私が蚀いたかったのは、Mojangが代わりにEntity Thingず名付けた堎合でも、 SheepThing 、 ItemThingを持っおいるずいうこず

はい、その堎合、 Thingは特定の意味を持぀ためです。

ダニスが蚀ったように、接尟蟞を削陀するず混乱を招くだけです。 名前はわかりやすくするためのものであり、「芋栄え」を衚すものではありたせん。

名前はわかりやすくするためのものであり、「芋栄え」を衚すものではありたせん。

自然に聞こえる名前は、明快さず同じくらい重芁です。

Minecraftをプレむしおいるずきに、「牛の実䜓を殺しお生の牛肉アむテムを入手し、かたどを䜿っお調理枈みの牛肉アむテムに倉える」ず蚀ったず想像しおみおください。

私たちの考え方や話し方に䞀臎するコヌドは非垞に良いこずです。

䞡方を同時に持぀こずができたす倩然ベヌス牛、生の牛肉、かたどず明確な接尟蟞゚ンティティ、アむテム、ブロック。

重芁なのは、接尟蟞は䞍芁だずいうこずです。 牛は実䜓であり、牛肉はアむテムです。 「牛の実䜓」や「牛肉のアむテム」ずは誰も蚀わないのに、コヌドを曞いたり読んだりするずきに、なぜそれを蚀わなければならないのでしょうか。

ItemEntityの問題はただありたす。

ええ、 Itemが、これが機胜しおいない唯䞀の理由です。 Item -> ItemTypeを実行しない限り、おそらく同意したせんが、ゲヌム内のアむテムの量が非垞に倚いため、これはさらに倧きな名前倉曎になりたす。

もう1぀のオプションは、名前があいたいであるが名前に䞀貫性がない堎合を明確にするこずです。

ItemEntity -> DroppedItem 、 ThrownSnowballEntityず同じように

牛は実䜓であり、牛肉はアむテムです。 「牛の実䜓」や「牛肉のアむテム」ずは誰も蚀わないのに、コヌドを曞いたり読んだりするずきに、なぜそれを蚀わなければならないのでしょうか。

他の唯䞀のオプションは、解決策に関係なく䞀貫性を欠くこずです。

サフィックスを削陀するず、異なるレゞストリのコンテンツのクラスで問題が発生したす。 Item基本クラスは、識別子minecraft:itemを䜿甚しお、それたたはそのサブクラスでいっぱいのレゞストリが存圚するため、そのように明確に名前が付けられおいたす。 同様に、 ItemEntity゚ンティティクラスは、それぞれの゚ンティティタむプがminecraft:entity_typeレゞストリにminecraft:itemずしお登録されおいるため、このように明確に名前が付けられおいたす。 珟圚のItemクラスはItemですが、 ItemEntityクラスもItemたす。

埌者のクラスの名前をDroppedItemなどに倉曎するこずでこの特定の問題が解決された堎合、識別子ずは䞀臎しなくなりたす。 レゞストリコンテンツクラスのフィヌルドに名前を付け、レゞストリサフィックスをクラス名に远加する珟圚の自動システムがあるため、識別子がクラス名の適切な衚珟であるずいう十分な信頌があるため、これは問題です。

サフィックスを萜ずすの党䜓のアむデアは、リストや地図の実装を参照ず同様のJava暙準ず矛盟しおいる前述のように。

Item -> ItemTypeを実行しない限り、おそらく同意したせんが、ゲヌム内のアむテムの量が非垞に倚いため、これはさらに倧きな名前倉曎になりたす。

Mojangがアむテムをデヌタ駆動型にするずすぐにItemTypeになるず確信しおいるので、今のずころこれを保留するのが最善です。 さらに、これは、識別子およびminecraft:x_typeレゞストリに関する珟圚の芏則ずは䟝然ずしお矛盟したす。

ItemEntity -> DroppedItem 、 ThrownSnowballEntityず同じように

繰り返しになりたすが、これはJava暙準およびYarn暙準ず矛盟したす。 識別子がminecraft:snowball考慮するず、 ThrownSnowballEntityに関する議論に興味がありたす。

接尟蟞を削陀するずいう党䜓的な考え方は、Java暙準ずも矛盟しおいたすリストたたはマップの実装を参照。

HashMapはハッシュではなく、ハッシュ[ベヌス]マップであり、 ArrayListは配列ではなく、配列[ベヌス]リストです。 CowEntityは牛です。 「鉛筆削り」ではなく「鉛筆削り」ず蚀うので、「牛」ではなく「牛の動物」ず蚀うのず少し䌌おいたす。

JavaAWTを芋おください。 すべおが拡匵Component 、私たちはただ持っおいるButtonではなくButtonComponent 、 ScrollbarではなくScrollbarComponent私たちが埓っおいる堎合などだから、 Java暙準では、サフィックスを削陀する必芁がありたす。

埌者のクラスの名前をDroppedItemなどに倉曎するこずでこの特定の問題が解決された堎合、識別子ずは䞀臎しなくなりたす。

クラスを芋぀けやすくするために識別子を䞀臎させるこずが重芁であるこずに同意したすが、完党に䞀臎さDroppedなどの明確な単語を远加しおも問題ありたせん。

「OCDを満たすためにすべおの識別子を完党に䞀臎させる」ず「䜿いやすい名前を付ける」の間で、2番目を遞択したす。

Mojangがアむテムをデヌタ駆動型にするずすぐにItemTypeになるず確信しおいるので、今のずころこれを保留するのが最善です。

Item -> ItemType およびBlock -> BlockType は非垞に重芁であり、できるだけ早く実行する必芁があるず思いたす。 Itemは、すべおのアむテムにクラスのむンスタンスがないため、間違っおいたす。 それは、アむテムクラスのフィヌルドにアむテムの状態を保存するずいう間違いを犯すために、改造に䞍慣れな人々にさえ぀ながりたす。

minecraft:x_typeレゞストリに関する識別子および珟圚の芏則ず矛盟しおいたす。

その慣習は意味がありたせん。 レゞストリには、個々のアむテムずブロックのむンスタンスではなく、アむテムタむプずブロックタむプが栌玍されたす。 _typeサフィックスのバリ゚ヌションは、Mojangによる䞍敎合であり、識別子のタむプミスをコピヌしないのず同じように、コピヌしないでください。

正盎なずころ、ルヌンは、「私はいく぀かの牛の実䜓を殺すために出かける」ずいうこずは、技術コミュニティから来お、私にずっお自然に聞こえるこずからそう遠くはありたせん。

Minecraftを自然蚀語のように読み䞊げたい堎合は、他にも倚くの名前倉曎を行うこずができたす。 「いく぀かの朚の特城を切り萜ずす぀もりです」は誰にずっおもよく読めたせん。 それは私たちが名前を倉曎する必芁がありたす意味しおいたすTreeFeatureにTree  番号 しかし、「牛の実䜓」は実際にはよく読めたす。 特に、「1぀の堎所に倚くの牛の゚ンティティがあるため、サヌバヌが遅れおいる」などのコンテキストでは。

それは私たちが名前を倉曎する必芁がありたす意味しおいたすTreeFeatureにTree 

はい、ここでのFeatureずいう単語はここでは冗長です。 たた、機胜クラスの最埌にGeneratorを远加するこずをお勧めしたす。これらは実際には機胜自䜓ではなく、機胜のゞェネレヌタヌであるためです。 TreeGenerator extends FeatureGeneratorようなものがありたす。

䞀箇所にたくさんの牛の実䜓があるため、サヌバヌは遅れおいたす

このように蚀う理由は、サヌバヌに遅れをずっおいるのはたたたた牛である゚ンティティであるずいう事実を匷調するためだず思いたす。

しかし、䞀般的に、この匷調は必芁ありたせん。 コンテンツを远加するだけの通垞のmodパフォヌマンス向䞊modではないに取り組んでいる堎合、「牛タむプの゚ンティティを生成する」ではなく、「牛をスポヌンする」こずを考えおいるので、曞きたいず思いたす。そのように私のコヌド。

しかし、圌らは牛ではなく、牛の実䜓です。 牛の抂念は自然蚀語でのみ存圚したす。CowEntityは、牛の抂念党䜓ではなく、牛の_゚ンティティ_を具䜓的に指したす。 そのクラスには、牛の他の郚分ドロップなどに関連するコヌドは入れたせん。

このバむクシェディングは圹に立たない...

Entity接尟蟞は、「このクラスずは䜕か」を疑うこずがないため、明確です。 Minecraftのコンテキストでは、 Entityは明らかにThingの同矩語ではありたせん。

たた、改造者のために、これほど倧きな倉曎を導入しないでください。曎新が行われるずきに、誰かがEntityサフィックスを嫌っおいたために、ワヌクスペヌスをク゜するこずで改造者を難しくする必芁がないので、すでに十分に耇雑です。

確かに、それを倉曎しお、500゚ラヌのためにmodがコンパむルされないため、党䞖界が燃えるのを芋おください。 確かにmigrateMappingsがありたすが、倉曎のためにそれを実行しなければならないのはなぜですか。

この号は1幎間発行されおおり、適甚されたせんでした。 その間、人々はEntityサフィックスを䜿甚したした。 個人的には、そのような倉曎がマヌゞされお、珟圚のすべおのmodワヌクスペヌスが爆発するのを芋お非垞に腹を立おたす。

たた、自然蚀語はかっこいいですが、これはゲヌム゚ンゞンに固有のものであり、小説のようにコヌドを読み取ろうずするこずは䞍可胜です。

私もノヌず蚀わざるを埗たせん。 あいたいになる堎合がたくさんありたす前述のItemEntity 、およびArrowEntityたたはTridentEntity 。

私はこのアむデアのファンではありたせん、私はそれが話された蚀語でそれがどのように蚀ったかに本圓に芁玄するずは思わない。 それは糞党䜓で䞀貫しおいる必芁があり、゚ンティティからそれを削陀するこずは奇劙に思えたす。どこでもブロックずアむテムそれを削陀するこずはたったく意味がありたせん。

投祚を芋お、それは明らかだず思いたすか

LivingEntity  LivingたたはEntity なし、接尟蟞は他の名前ずの䞀貫性を提䟛したす、私は@lに同意したす- CowEntityルナは牛はCowEntity衚し、 Cowぱンティティ、そのドロップ、およびそのモデル/レンダヌを衚したす。 Entity接尟蟞は誰にも害を及がすものではなく、 BlockEntityも䜿甚されおいる接尟蟞であるずいう事実に加えお、䞇が䞀の堎合に備えお説明を远加するのに圹立぀ず思いたす。 ちょうど私の2セント。

LivingEntityLivingたたはEntityず呌びたすか

私はLivingEntityを「生きおいる実䜓」ず呌んでいるので、その名前はそのたたにしおおく必芁がありたす。 私はCowEntityを「牛」ず呌んでいるので、名前を倉曎する必芁がありたす。

私の問題は、サヌバヌ偎のみのように名前を付けようずしおいるこずです。サヌバヌ偎のみのAPIでCowEntity Cowずいう名前を付けるこずは、文字通り牛の抂念党䜓であるため、意味がありたす。サヌバヌ。

しかし、ここにはクラむアントもありたす。牛のプロパティを凊理するオブゞェクトであるEntityによっお牛が定矩されるため、 CowEntity Cowずいう名前は明らかに間違っおいたす。䞖界ずその目暙ず盞互䜜甚したす。 モデルずレンダラヌによっおも

CowEntity Cowずいう名前を付けるこずで、クラスの意味の倧郚分を取り陀き、誀解を招くようにしたす。

糞がサヌバヌ偎だけであれば問題ありたせんが、そうではありたせん。

サヌバヌ䞊でも、 CowEntityは、デヌタパックに個別に保存された戊利品テヌブルもあるため、牛を完党に衚すわけではありたせん。 そしお、技術的に話すずき、私はCowEntity代わりにCow CowEntityず蚀いたす。 ゲヌムプレむのチュヌトリアルではなく、技術的なマッピングセットを䜜成しおいたす。 はい、通垞のゲヌムプレむではChestBlockEntityをチェストず呌びたすが、これは通垞のゲヌムプレむではなく、 ChestBlockを混乱させたくないmod䜜成です。 ChestBlockEntityずチェストルヌトテヌブル。 はい、たずえばクリヌパヌの堎合はサフィックスが冗長ではないため、たずえばクリヌパヌの堎合はサフィックスを保持する必芁がありたす LivingEntity 、 Entity 、 ItemEntity 、およびIMO文法的に正しいよりも、技術情報に䞀貫性を持たせる方がよいでしょう。

ほずんどがそれに反察しおいるので、これを閉じたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡

関連する問題

quat1024 picture quat1024  Â·  3コメント

altrisi picture altrisi  Â·  4コメント

Bixilon picture Bixilon  Â·  5コメント

Awakened-Redstone picture Awakened-Redstone  Â·  4コメント

quat1024 picture quat1024  Â·  6コメント