{"record":{"id":"6d75318f4f6f635a","repo":"FyroxEngine/Fyrox","slug":"implement-me","errorCode":null,"errorMessage":"Implement me!","messagePattern":"Implement me!","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"fyrox-ui/src/animation.rs","lineNumber":131,"sourceCode":"    /// Tries to set each value from the collection to the respective property (by binding) of the\n    /// given widget.\n    fn apply(&self, node_ref: &mut UiNode);\n}\n\nimpl BoundValueCollectionExt for BoundValueCollection {\n    fn apply(&self, node_ref: &mut UiNode) {\n        for bound_value in self.values.iter() {\n            match bound_value.binding {\n                ValueBinding::Position => {\n                    if let TrackValue::Vector2(v) = bound_value.value {\n                        node_ref.set_desired_local_position(v);\n                    } else {\n                        Log::err(\n                            \"Unable to apply position, because underlying type is not Vector2!\",\n                        )\n                    }\n                }\n                ValueBinding::Scale => Log::warn(\"Implement me!\"),\n                ValueBinding::Rotation => Log::warn(\"Implement me!\"),\n                ValueBinding::Property {\n                    name: ref property_name,\n                    value_type,\n                } => bound_value.apply_to_object(node_ref, property_name, value_type),\n            }\n        }\n    }\n}\n\n/// Animation player is a node that contains multiple animations. It updates and plays all the animations.\n/// The node could be a source of animations for animation blending state machines. To learn more about\n/// animations, see [`Animation`] docs.\n#[derive(Visit, PartialEq, Reflect, Clone, Debug)]\n#[reflect(\n    derived_type = \"UiNode\",\n    type_uuid = \"44d1c94e-354f-4f9a-b918-9d31c28aa16a\"\n)]","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/FyroxEngine/Fyrox/blob/76c91aad8eca488ce527b1af707be8b3b24ad72d/fyrox-ui/src/animation.rs#L113-L149","documentation":"Fyrox UI animation value bindings support Position, Scale, Rotation, and Property. The Scale and Rotation bindings are simply not implemented yet: reaching those branches unconditionally logs this warning and the animated value is never applied to the widget. Animations targeting scale or rotation silently do nothing.","triggerScenarios":"Playing an Animation whose tracks contain ValueBinding::Scale or ValueBinding::Rotation tracks against a UI widget node; the binding's apply() hits the stub branch every frame.","commonSituations":"Creating UI animations in the editor or code that animate widget scale/rotation; porting scene animations to UI widgets assuming parity with 3D node animation.","solutions":["Restructure UI animations to use ValueBinding::Position or ValueBinding::Property instead of Scale/Rotation.","For transforms, bind Property targets if the widget exposes transform-like properties, or animate Position only.","Implement the Scale/Rotation arms by reading the track value and writing it to the widget's transform if you control the fork."],"exampleFix":"// before: track animates scale — does nothing at runtime\nlet track = Track::new(widget_handle, ValueBinding::Scale, ...);\n// after: animate via a bound property\nlet track = Track::new(widget_handle, ValueBinding::Property { name: \"width\".into(), value_type: NumericType::F32 }, ...);","handlingStrategy":"validation","validationCode":"// reject unimplemented bindings before building the animation\nfor track in &animation.tracks_ref() {\n    if matches!(track.binding(), ValueBinding::Scale | ValueBinding::Rotation) {\n        panic!(\"UI animation: Scale/Rotation bindings are not implemented\");\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use only Position and Property bindings in UI animations.","Check the Fyrox UI animation docs for supported ValueBinding variants before authoring tracks.","If scale/rotation is needed, implement it via Property bindings on widget fields."],"tags":["fyrox","ui","animation","unimplemented"],"backgroundTag":"method-not-implemented","analyzedSha":"76c91aad8eca488ce527b1af707be8b3b24ad72d","analyzedAt":"2026-09-10T16:04:01.633Z","contentChangedAt":"2026-09-10T16:04:01.633Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}