This PR refactors how Target and TargetIcon is used in the editor.
At a high level, it flips the dependency of how the rest of the editor gets/sets data with respect to targets and icons. Everyone now references the TargetData on Target and TargetIcon to view and set all properties like position, beat timing, behavior etc. Target and TargetIcon point at the same TargetData, and register callback handlers to update their internal state to reflect whatever the current data on TargetData is. This should make it so that whenever we update this data anywhere else in the editor, the note automatically syncs up without having to manually set data in gridTargetIcon or timelineTargetIcon. Because of this, gridTargetIcon and timelineTargetIcon are no longer accessible publicly from Target
This PR refactors how
Target
andTargetIcon
is used in the editor.At a high level, it flips the dependency of how the rest of the editor gets/sets data with respect to targets and icons. Everyone now references the
TargetData
onTarget
andTargetIcon
to view and set all properties like position, beat timing, behavior etc.Target
andTargetIcon
point at the sameTargetData
, and register callback handlers to update their internal state to reflect whatever the current data onTargetData
is. This should make it so that whenever we update this data anywhere else in the editor, the note automatically syncs up without having to manually set data ingridTargetIcon
ortimelineTargetIcon
. Because of this,gridTargetIcon
andtimelineTargetIcon
are no longer accessible publicly fromTarget