Break up Modifier::Attributes
#529
Labels
area: data
Things related to the data structures underlying the world, and the functions that manipulate them.
kind: incomplete
A feature is partially implemented; the current state of the code is inconsistent
Commit ec4813f moved the storage of
BlockAttributes
from the primitive to a modifierModifier::Attributes
. This allows more flexibility, such as applying arbitrary attributes to a non-primitive block definition, but there is still a deficiency: either the entire set ofBlockAttributes
is overridden, or none. This means it is not possible to, for example, give a block a name without also overwriting its actions, animation hint, etc.I see two paths forward. One is to allow each field of
BlockAttributes
to be explicitly absent, and not override the prior value; the other is to break upModifier::Attributes
into many modifiers.The latter seems more elegant (especially as it fits into a path of completely eliminating
BlockAttributes
as a public part of the API / schema, so there is no longer a question of what is inside the attributes and what is outside), but it adds more degrees of freedom to accidentally generate redundant stacks of modifiers, or just list them in an arbitrary inconsistent order.The text was updated successfully, but these errors were encountered: