Yarn: Entity packages mess

Created on 11 Aug 2020  路  9Comments  路  Source: FabricMC/yarn

The entity package is quite messy as some classes are vaguely related to some categories. The package coukd use some organization. I will have a proposal written up in an hour on what I think could work.

discussion refactor

Most helpful comment

Not planning on branching out too far, mainly a clarification of certain categories of entities like mobs, animals, hostile mobs, etc.

All 9 comments

concern Just don't make super tiny packages with very long paths like your last pr. Too deep path is a problem

Not planning on branching out too far, mainly a clarification of certain categories of entities like mobs, animals, hostile mobs, etc.

So I've been thinking up a concept for new package standard:

entity.mob for all Mobs. These are entities which can control their own movement.

entity.mob.passive for all passive mobs. Such as cows, sheep, villagers.

entity.mob.hostile for all hostile entities. Such as zombies, piglins, creepers. Raiders also go in this package.

Neutral entities go in the regular mob package.

Item frames and armor stands keep their current package as decorations

The player package would stay the same as now.

Client and server player implementations would stay in their corresponding side.network packages.

Abstract classes which may be implemented by multiple types of entities should go in the most common package.

For example Angerable would go in mob since Piglins are hostile and wolves are passive. LivingEntity would stay in the root entity package since living entities are not exclusively mobs (such as the player).

what's the status of this now?

Nothing so far has changed in my idea, we have gotten some new mobs but some are yet to be added yet.

feel free to do one pr if you are willing to, or list the refactors and let someone else maintain a pr.

I pretty much have just proposed the idea here, someone else can take on the contributions if they wish.

Imo this current package setup is fine. I will close this for now and reopen if someone comment here and point out some actual examples of what classes are badly placed.

The current package setup is confusing and i5's proposal is better IMO. For example, why are hostile mobs in entity.mob but passive ones in entity.passive? Changing hostile mobs into their own subpackage would help with clarity. Also, this issue hasn't been resolved or heavily downvoted so reopening.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

asiekierka picture asiekierka  路  4Comments

Awakened-Redstone picture Awakened-Redstone  路  4Comments

ChloeDawn picture ChloeDawn  路  6Comments

Bixilon picture Bixilon  路  5Comments

quat1024 picture quat1024  路  3Comments