Keep alpha when changing h, s or v on color
When modifying the h, s or v properties of a color in GDScript the alpha value needs to stay unchanged.
This commit is contained in:
parent
06c5a9ed5f
commit
100a775260
@ -1459,13 +1459,13 @@ void Variant::set_named(const StringName &p_index, const Variant &p_value, bool
|
|||||||
v->a = p_value._data._int / 255.0;
|
v->a = p_value._data._int / 255.0;
|
||||||
valid = true;
|
valid = true;
|
||||||
} else if (p_index == CoreStringNames::singleton->h) {
|
} else if (p_index == CoreStringNames::singleton->h) {
|
||||||
v->set_hsv(p_value._data._int, v->get_s(), v->get_v());
|
v->set_hsv(p_value._data._int, v->get_s(), v->get_v(), v->a);
|
||||||
valid = true;
|
valid = true;
|
||||||
} else if (p_index == CoreStringNames::singleton->s) {
|
} else if (p_index == CoreStringNames::singleton->s) {
|
||||||
v->set_hsv(v->get_h(), p_value._data._int, v->get_v());
|
v->set_hsv(v->get_h(), p_value._data._int, v->get_v(), v->a);
|
||||||
valid = true;
|
valid = true;
|
||||||
} else if (p_index == CoreStringNames::singleton->v) {
|
} else if (p_index == CoreStringNames::singleton->v) {
|
||||||
v->set_hsv(v->get_h(), v->get_v(), p_value._data._int);
|
v->set_hsv(v->get_h(), v->get_v(), p_value._data._int, v->a);
|
||||||
valid = true;
|
valid = true;
|
||||||
}
|
}
|
||||||
} else if (p_value.type == Variant::REAL) {
|
} else if (p_value.type == Variant::REAL) {
|
||||||
@ -1495,13 +1495,13 @@ void Variant::set_named(const StringName &p_index, const Variant &p_value, bool
|
|||||||
v->a = p_value._data._real / 255.0;
|
v->a = p_value._data._real / 255.0;
|
||||||
valid = true;
|
valid = true;
|
||||||
} else if (p_index == CoreStringNames::singleton->h) {
|
} else if (p_index == CoreStringNames::singleton->h) {
|
||||||
v->set_hsv(p_value._data._real, v->get_s(), v->get_v());
|
v->set_hsv(p_value._data._real, v->get_s(), v->get_v(), v->a);
|
||||||
valid = true;
|
valid = true;
|
||||||
} else if (p_index == CoreStringNames::singleton->s) {
|
} else if (p_index == CoreStringNames::singleton->s) {
|
||||||
v->set_hsv(v->get_h(), p_value._data._real, v->get_v());
|
v->set_hsv(v->get_h(), p_value._data._real, v->get_v(), v->a);
|
||||||
valid = true;
|
valid = true;
|
||||||
} else if (p_index == CoreStringNames::singleton->v) {
|
} else if (p_index == CoreStringNames::singleton->v) {
|
||||||
v->set_hsv(v->get_h(), v->get_s(), p_value._data._real);
|
v->set_hsv(v->get_h(), v->get_s(), p_value._data._real, v->a);
|
||||||
valid = true;
|
valid = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2117,15 +2117,15 @@ void Variant::set(const Variant &p_index, const Variant &p_value, bool *r_valid)
|
|||||||
return;
|
return;
|
||||||
} else if (*str == "h") {
|
} else if (*str == "h") {
|
||||||
valid = true;
|
valid = true;
|
||||||
v->set_hsv(p_value, v->get_s(), v->get_v());
|
v->set_hsv(p_value, v->get_s(), v->get_v(), v->a);
|
||||||
return;
|
return;
|
||||||
} else if (*str == "s") {
|
} else if (*str == "s") {
|
||||||
valid = true;
|
valid = true;
|
||||||
v->set_hsv(v->get_h(), p_value, v->get_v());
|
v->set_hsv(v->get_h(), p_value, v->get_v(), v->a);
|
||||||
return;
|
return;
|
||||||
} else if (*str == "v") {
|
} else if (*str == "v") {
|
||||||
valid = true;
|
valid = true;
|
||||||
v->set_hsv(v->get_h(), v->get_s(), p_value);
|
v->set_hsv(v->get_h(), v->get_s(), p_value, v->a);
|
||||||
return;
|
return;
|
||||||
} else if (*str == "r8") {
|
} else if (*str == "r8") {
|
||||||
valid = true;
|
valid = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user