void MapObject::DrawInteractionIcon() { if (!_interaction_icon) return; if (!MapObject::ShouldDraw()) return; MapMode* map_mode = MapMode::CurrentInstance(); vt_video::Color icon_color(1.0f, 1.0f, 1.0f, 0.0f); float icon_alpha = 1.0f - (fabs(GetXPosition() - map_mode->GetCamera()->GetXPosition()) + fabs(GetYPosition() - map_mode->GetCamera()->GetYPosition())) / INTERACTION_ICON_VISIBLE_RANGE; if (icon_alpha < 0.0f) icon_alpha = 0.0f; icon_color.SetAlpha(icon_alpha); vt_video::VideoManager->MoveRelative(0, -GetImgScreenHeight()); _interaction_icon->Draw(icon_color); }
void AnimationNodeStateMachineEditor::_connection_draw(const Vector2 &p_from, const Vector2 &p_to, AnimationNodeStateMachineTransition::SwitchMode p_mode, bool p_enabled, bool p_selected, bool p_travel, bool p_auto_advance) { Color linecolor = get_color("font_color", "Label"); Color icon_color(1, 1, 1); Color accent = get_color("accent_color", "Editor"); if (!p_enabled) { linecolor.a *= 0.2; icon_color.a *= 0.2; accent.a *= 0.6; } Ref<Texture> icons[6] = { get_icon("TransitionImmediateBig", "EditorIcons"), get_icon("TransitionSyncBig", "EditorIcons"), get_icon("TransitionEndBig", "EditorIcons"), get_icon("TransitionImmediateAutoBig", "EditorIcons"), get_icon("TransitionSyncAutoBig", "EditorIcons"), get_icon("TransitionEndAutoBig", "EditorIcons") }; if (p_selected) { state_machine_draw->draw_line(p_from, p_to, accent, 6, true); } if (p_travel) { linecolor = accent; linecolor.set_hsv(1.0, linecolor.get_s(), linecolor.get_v()); } state_machine_draw->draw_line(p_from, p_to, linecolor, 2, true); Ref<Texture> icon = icons[p_mode + (p_auto_advance ? 3 : 0)]; Transform2D xf; xf.elements[0] = (p_to - p_from).normalized(); xf.elements[1] = xf.elements[0].tangent(); xf.elements[2] = (p_from + p_to) * 0.5 - xf.elements[1] * icon->get_height() * 0.5 - xf.elements[0] * icon->get_height() * 0.5; state_machine_draw->draw_set_transform_matrix(xf); state_machine_draw->draw_texture(icon, Vector2(), icon_color); state_machine_draw->draw_set_transform_matrix(Transform2D()); }