feat: updated engine version to 4.4-rc1
This commit is contained in:
parent
ee00efde1f
commit
21ba8e33af
5459 changed files with 1128836 additions and 198305 deletions
|
|
@ -172,7 +172,7 @@ void GPUParticlesCollisionSDF3D::_find_meshes(const AABB &p_aabb, Node *p_at_nod
|
|||
for (int i = 0; i < meshes.size(); i += 2) {
|
||||
Transform3D mxf = meshes[i];
|
||||
Ref<Mesh> mesh = meshes[i + 1];
|
||||
if (!mesh.is_valid()) {
|
||||
if (mesh.is_null()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -524,7 +524,7 @@ Ref<Image> GPUParticlesCollisionSDF3D::bake() {
|
|||
}
|
||||
|
||||
PackedStringArray GPUParticlesCollisionSDF3D::get_configuration_warnings() const {
|
||||
PackedStringArray warnings = Node::get_configuration_warnings();
|
||||
PackedStringArray warnings = GPUParticlesCollision3D::get_configuration_warnings();
|
||||
|
||||
if (bake_mask == 0) {
|
||||
warnings.push_back(RTR("The Bake Mask has no bits enabled, which means baking will not produce any collision for this GPUParticlesCollisionSDF3D.\nTo resolve this, enable at least one bit in the Bake Mask property."));
|
||||
|
|
@ -721,6 +721,12 @@ void GPUParticlesCollisionHeightField3D::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("set_update_mode", "update_mode"), &GPUParticlesCollisionHeightField3D::set_update_mode);
|
||||
ClassDB::bind_method(D_METHOD("get_update_mode"), &GPUParticlesCollisionHeightField3D::get_update_mode);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_heightfield_mask", "heightfield_mask"), &GPUParticlesCollisionHeightField3D::set_heightfield_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_heightfield_mask"), &GPUParticlesCollisionHeightField3D::get_heightfield_mask);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_heightfield_mask_value", "layer_number", "value"), &GPUParticlesCollisionHeightField3D::set_heightfield_mask_value);
|
||||
ClassDB::bind_method(D_METHOD("get_heightfield_mask_value", "layer_number"), &GPUParticlesCollisionHeightField3D::get_heightfield_mask_value);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_follow_camera_enabled", "enabled"), &GPUParticlesCollisionHeightField3D::set_follow_camera_enabled);
|
||||
ClassDB::bind_method(D_METHOD("is_follow_camera_enabled"), &GPUParticlesCollisionHeightField3D::is_follow_camera_enabled);
|
||||
|
||||
|
|
@ -728,6 +734,7 @@ void GPUParticlesCollisionHeightField3D::_bind_methods() {
|
|||
ADD_PROPERTY(PropertyInfo(Variant::INT, "resolution", PROPERTY_HINT_ENUM, "256 (Fastest),512 (Fast),1024 (Average),2048 (Slow),4096 (Slower),8192 (Slowest)"), "set_resolution", "get_resolution");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "update_mode", PROPERTY_HINT_ENUM, "When Moved (Fast),Always (Slow)"), "set_update_mode", "get_update_mode");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "follow_camera_enabled"), "set_follow_camera_enabled", "is_follow_camera_enabled");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "heightfield_mask", PROPERTY_HINT_LAYERS_3D_RENDER), "set_heightfield_mask", "get_heightfield_mask");
|
||||
|
||||
BIND_ENUM_CONSTANT(RESOLUTION_256);
|
||||
BIND_ENUM_CONSTANT(RESOLUTION_512);
|
||||
|
|
@ -790,6 +797,33 @@ GPUParticlesCollisionHeightField3D::UpdateMode GPUParticlesCollisionHeightField3
|
|||
return update_mode;
|
||||
}
|
||||
|
||||
void GPUParticlesCollisionHeightField3D::set_heightfield_mask(uint32_t p_heightfield_mask) {
|
||||
heightfield_mask = p_heightfield_mask;
|
||||
RS::get_singleton()->particles_collision_set_height_field_mask(_get_collision(), p_heightfield_mask);
|
||||
}
|
||||
|
||||
uint32_t GPUParticlesCollisionHeightField3D::get_heightfield_mask() const {
|
||||
return heightfield_mask;
|
||||
}
|
||||
|
||||
void GPUParticlesCollisionHeightField3D::set_heightfield_mask_value(int p_layer_number, bool p_value) {
|
||||
ERR_FAIL_COND_MSG(p_layer_number < 1, "Render layer number must be between 1 and 20 inclusive.");
|
||||
ERR_FAIL_COND_MSG(p_layer_number > 20, "Render layer number must be between 1 and 20 inclusive.");
|
||||
uint32_t mask = get_heightfield_mask();
|
||||
if (p_value) {
|
||||
mask |= 1 << (p_layer_number - 1);
|
||||
} else {
|
||||
mask &= ~(1 << (p_layer_number - 1));
|
||||
}
|
||||
set_heightfield_mask(mask);
|
||||
}
|
||||
|
||||
bool GPUParticlesCollisionHeightField3D::get_heightfield_mask_value(int p_layer_number) const {
|
||||
ERR_FAIL_COND_V_MSG(p_layer_number < 1, false, "Render layer number must be between 1 and 20 inclusive.");
|
||||
ERR_FAIL_COND_V_MSG(p_layer_number > 20, false, "Render layer number must be between 1 and 20 inclusive.");
|
||||
return heightfield_mask & (1 << (p_layer_number - 1));
|
||||
}
|
||||
|
||||
void GPUParticlesCollisionHeightField3D::set_follow_camera_enabled(bool p_enabled) {
|
||||
follow_camera_mode = p_enabled;
|
||||
set_process_internal(follow_camera_mode || update_mode == UPDATE_MODE_ALWAYS);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue