Example #1
0
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());
}