You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-29 16:16:38 +00:00
Fix remaining physics and navigation disabling issues.
This commit is contained in:
@@ -31,24 +31,27 @@
|
|||||||
#include "grid_map.h"
|
#include "grid_map.h"
|
||||||
|
|
||||||
#include "core/io/marshalls.h"
|
#include "core/io/marshalls.h"
|
||||||
#include "core/math/convex_hull.h"
|
|
||||||
#include "core/templates/a_hash_map.h"
|
#include "core/templates/a_hash_map.h"
|
||||||
|
#include "scene/resources/3d/mesh_library.h"
|
||||||
|
#include "scene/resources/3d/primitive_meshes.h"
|
||||||
|
#include "scene/resources/surface_tool.h"
|
||||||
|
#include "servers/rendering_server.h"
|
||||||
|
|
||||||
|
#ifndef PHYSICS_3D_DISABLED
|
||||||
|
#include "core/math/convex_hull.h"
|
||||||
#include "scene/resources/3d/box_shape_3d.h"
|
#include "scene/resources/3d/box_shape_3d.h"
|
||||||
#include "scene/resources/3d/capsule_shape_3d.h"
|
#include "scene/resources/3d/capsule_shape_3d.h"
|
||||||
#include "scene/resources/3d/concave_polygon_shape_3d.h"
|
#include "scene/resources/3d/concave_polygon_shape_3d.h"
|
||||||
#include "scene/resources/3d/convex_polygon_shape_3d.h"
|
#include "scene/resources/3d/convex_polygon_shape_3d.h"
|
||||||
#include "scene/resources/3d/cylinder_shape_3d.h"
|
#include "scene/resources/3d/cylinder_shape_3d.h"
|
||||||
#include "scene/resources/3d/height_map_shape_3d.h"
|
#include "scene/resources/3d/height_map_shape_3d.h"
|
||||||
#include "scene/resources/3d/mesh_library.h"
|
|
||||||
#include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h"
|
|
||||||
#include "scene/resources/3d/primitive_meshes.h"
|
|
||||||
#include "scene/resources/3d/shape_3d.h"
|
#include "scene/resources/3d/shape_3d.h"
|
||||||
#include "scene/resources/3d/sphere_shape_3d.h"
|
#include "scene/resources/3d/sphere_shape_3d.h"
|
||||||
#include "scene/resources/physics_material.h"
|
#include "scene/resources/physics_material.h"
|
||||||
#include "scene/resources/surface_tool.h"
|
#endif // PHYSICS_3D_DISABLED
|
||||||
#include "servers/rendering_server.h"
|
|
||||||
|
|
||||||
#ifndef NAVIGATION_3D_DISABLED
|
#ifndef NAVIGATION_3D_DISABLED
|
||||||
|
#include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h"
|
||||||
#include "servers/navigation_server_3d.h"
|
#include "servers/navigation_server_3d.h"
|
||||||
|
|
||||||
Callable GridMap::_navmesh_source_geometry_parsing_callback;
|
Callable GridMap::_navmesh_source_geometry_parsing_callback;
|
||||||
@@ -1234,7 +1237,9 @@ void GridMap::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("make_baked_meshes", "gen_lightmap_uv", "lightmap_uv_texel_size"), &GridMap::make_baked_meshes, DEFVAL(false), DEFVAL(0.1));
|
ClassDB::bind_method(D_METHOD("make_baked_meshes", "gen_lightmap_uv", "lightmap_uv_texel_size"), &GridMap::make_baked_meshes, DEFVAL(false), DEFVAL(0.1));
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "mesh_library", PROPERTY_HINT_RESOURCE_TYPE, "MeshLibrary"), "set_mesh_library", "get_mesh_library");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "mesh_library", PROPERTY_HINT_RESOURCE_TYPE, "MeshLibrary"), "set_mesh_library", "get_mesh_library");
|
||||||
|
#ifndef PHYSICS_3D_DISABLED
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "physics_material", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsMaterial"), "set_physics_material", "get_physics_material");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "physics_material", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsMaterial"), "set_physics_material", "get_physics_material");
|
||||||
|
#endif // PHYSICS_3D_DISABLED
|
||||||
ADD_GROUP("Cell", "cell_");
|
ADD_GROUP("Cell", "cell_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "cell_size", PROPERTY_HINT_NONE, "suffix:m"), "set_cell_size", "get_cell_size");
|
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "cell_size", PROPERTY_HINT_NONE, "suffix:m"), "set_cell_size", "get_cell_size");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "cell_octant_size", PROPERTY_HINT_RANGE, "1,1024,1"), "set_octant_size", "get_octant_size");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "cell_octant_size", PROPERTY_HINT_RANGE, "1,1024,1"), "set_octant_size", "get_octant_size");
|
||||||
|
|||||||
@@ -410,10 +410,10 @@ Vector<AudioFrame> AudioStreamPlayer3D::_update_panning() {
|
|||||||
|
|
||||||
float dist = local_pos.length();
|
float dist = local_pos.length();
|
||||||
|
|
||||||
|
#ifndef PHYSICS_3D_DISABLED
|
||||||
Vector3 area_sound_pos;
|
Vector3 area_sound_pos;
|
||||||
Vector3 listener_area_pos;
|
Vector3 listener_area_pos;
|
||||||
|
|
||||||
#ifndef PHYSICS_3D_DISABLED
|
|
||||||
Area3D *area = _get_overriding_area();
|
Area3D *area = _get_overriding_area();
|
||||||
if (area && area->is_using_reverb_bus() && area->get_reverb_uniformity() > 0) {
|
if (area && area->is_using_reverb_bus() && area->get_reverb_uniformity() > 0) {
|
||||||
area_sound_pos = space_state->get_closest_point_to_object_volume(area->get_rid(), listener_node->get_global_transform().origin);
|
area_sound_pos = space_state->get_closest_point_to_object_volume(area->get_rid(), listener_node->get_global_transform().origin);
|
||||||
|
|||||||
@@ -1634,8 +1634,8 @@ void RuntimeNodeSelect::_root_window_input(const Ref<InputEvent> &p_event) {
|
|||||||
if (camera_override) {
|
if (camera_override) {
|
||||||
if (node_select_type == NODE_TYPE_2D) {
|
if (node_select_type == NODE_TYPE_2D) {
|
||||||
is_dragging_camera = panner->gui_input(p_event, Rect2(Vector2(), root->get_visible_rect().get_size()));
|
is_dragging_camera = panner->gui_input(p_event, Rect2(Vector2(), root->get_visible_rect().get_size()));
|
||||||
} else if (node_select_type == NODE_TYPE_3D && selection_drag_state == SELECTION_DRAG_NONE) {
|
|
||||||
#ifndef _3D_DISABLED
|
#ifndef _3D_DISABLED
|
||||||
|
} else if (node_select_type == NODE_TYPE_3D && selection_drag_state == SELECTION_DRAG_NONE) {
|
||||||
if (_handle_3d_input(p_event)) {
|
if (_handle_3d_input(p_event)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1807,8 +1807,8 @@ void RuntimeNodeSelect::_physics_frame() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (node_select_type == NODE_TYPE_3D) {
|
|
||||||
#ifndef _3D_DISABLED
|
#ifndef _3D_DISABLED
|
||||||
|
} else if (node_select_type == NODE_TYPE_3D) {
|
||||||
if (selection_drag_valid) {
|
if (selection_drag_valid) {
|
||||||
_find_3d_items_at_rect(selection_drag_area, items);
|
_find_3d_items_at_rect(selection_drag_area, items);
|
||||||
} else {
|
} else {
|
||||||
@@ -2175,7 +2175,7 @@ void RuntimeNodeSelect::_update_selection() {
|
|||||||
if (visual_instance) {
|
if (visual_instance) {
|
||||||
bounds = visual_instance->get_aabb();
|
bounds = visual_instance->get_aabb();
|
||||||
} else {
|
} else {
|
||||||
#ifndef PHYSICS_2D_DISABLED
|
#ifndef PHYSICS_3D_DISABLED
|
||||||
CollisionShape3D *collision_shape = Object::cast_to<CollisionShape3D>(node_3d);
|
CollisionShape3D *collision_shape = Object::cast_to<CollisionShape3D>(node_3d);
|
||||||
if (collision_shape) {
|
if (collision_shape) {
|
||||||
Ref<Shape3D> shape = collision_shape->get_shape();
|
Ref<Shape3D> shape = collision_shape->get_shape();
|
||||||
@@ -2183,7 +2183,7 @@ void RuntimeNodeSelect::_update_selection() {
|
|||||||
bounds = shape->get_debug_mesh()->get_aabb();
|
bounds = shape->get_debug_mesh()->get_aabb();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // PHYSICS_2D_DISABLED
|
#endif // PHYSICS_3D_DISABLED
|
||||||
}
|
}
|
||||||
|
|
||||||
Transform3D xform_to_top_level_parent_space = node_3d->get_global_transform().affine_inverse() * node_3d->get_global_transform();
|
Transform3D xform_to_top_level_parent_space = node_3d->get_global_transform().affine_inverse() * node_3d->get_global_transform();
|
||||||
|
|||||||
@@ -34,7 +34,9 @@
|
|||||||
#include "scene/3d/camera_3d.h"
|
#include "scene/3d/camera_3d.h"
|
||||||
#include "scene/resources/camera_attributes.h"
|
#include "scene/resources/camera_attributes.h"
|
||||||
#include "scene/resources/environment.h"
|
#include "scene/resources/environment.h"
|
||||||
|
#ifndef NAVIGATION_3D_DISABLED
|
||||||
#include "servers/navigation_server_3d.h"
|
#include "servers/navigation_server_3d.h"
|
||||||
|
#endif // NAVIGATION_3D_DISABLED
|
||||||
|
|
||||||
void World3D::_register_camera(Camera3D *p_camera) {
|
void World3D::_register_camera(Camera3D *p_camera) {
|
||||||
cameras.insert(p_camera);
|
cameras.insert(p_camera);
|
||||||
@@ -58,6 +60,7 @@ RID World3D::get_space() const {
|
|||||||
return space;
|
return space;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NAVIGATION_3D_DISABLED
|
||||||
RID World3D::get_navigation_map() const {
|
RID World3D::get_navigation_map() const {
|
||||||
if (navigation_map.is_null()) {
|
if (navigation_map.is_null()) {
|
||||||
navigation_map = NavigationServer3D::get_singleton()->map_create();
|
navigation_map = NavigationServer3D::get_singleton()->map_create();
|
||||||
@@ -72,6 +75,7 @@ RID World3D::get_navigation_map() const {
|
|||||||
}
|
}
|
||||||
return navigation_map;
|
return navigation_map;
|
||||||
}
|
}
|
||||||
|
#endif // NAVIGATION_3D_DISABLED
|
||||||
|
|
||||||
RID World3D::get_scenario() const {
|
RID World3D::get_scenario() const {
|
||||||
return scenario;
|
return scenario;
|
||||||
@@ -149,7 +153,9 @@ PhysicsDirectSpaceState3D *World3D::get_direct_space_state() {
|
|||||||
|
|
||||||
void World3D::_bind_methods() {
|
void World3D::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("get_space"), &World3D::get_space);
|
ClassDB::bind_method(D_METHOD("get_space"), &World3D::get_space);
|
||||||
|
#ifndef NAVIGATION_3D_DISABLED
|
||||||
ClassDB::bind_method(D_METHOD("get_navigation_map"), &World3D::get_navigation_map);
|
ClassDB::bind_method(D_METHOD("get_navigation_map"), &World3D::get_navigation_map);
|
||||||
|
#endif // NAVIGATION_3D_DISABLED
|
||||||
ClassDB::bind_method(D_METHOD("get_scenario"), &World3D::get_scenario);
|
ClassDB::bind_method(D_METHOD("get_scenario"), &World3D::get_scenario);
|
||||||
ClassDB::bind_method(D_METHOD("set_environment", "env"), &World3D::set_environment);
|
ClassDB::bind_method(D_METHOD("set_environment", "env"), &World3D::set_environment);
|
||||||
ClassDB::bind_method(D_METHOD("get_environment"), &World3D::get_environment);
|
ClassDB::bind_method(D_METHOD("get_environment"), &World3D::get_environment);
|
||||||
@@ -164,7 +170,9 @@ void World3D::_bind_methods() {
|
|||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "fallback_environment", PROPERTY_HINT_RESOURCE_TYPE, "Environment"), "set_fallback_environment", "get_fallback_environment");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "fallback_environment", PROPERTY_HINT_RESOURCE_TYPE, "Environment"), "set_fallback_environment", "get_fallback_environment");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "camera_attributes", PROPERTY_HINT_RESOURCE_TYPE, "CameraAttributesPractical,CameraAttributesPhysical"), "set_camera_attributes", "get_camera_attributes");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "camera_attributes", PROPERTY_HINT_RESOURCE_TYPE, "CameraAttributesPractical,CameraAttributesPhysical"), "set_camera_attributes", "get_camera_attributes");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::RID, "space", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_space");
|
ADD_PROPERTY(PropertyInfo(Variant::RID, "space", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_space");
|
||||||
|
#ifndef NAVIGATION_3D_DISABLED
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::RID, "navigation_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_navigation_map");
|
ADD_PROPERTY(PropertyInfo(Variant::RID, "navigation_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_navigation_map");
|
||||||
|
#endif // NAVIGATION_3D_DISABLED
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::RID, "scenario", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_scenario");
|
ADD_PROPERTY(PropertyInfo(Variant::RID, "scenario", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_scenario");
|
||||||
#ifndef PHYSICS_3D_DISABLED
|
#ifndef PHYSICS_3D_DISABLED
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "direct_space_state", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsDirectSpaceState3D", PROPERTY_USAGE_NONE), "", "get_direct_space_state");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "direct_space_state", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsDirectSpaceState3D", PROPERTY_USAGE_NONE), "", "get_direct_space_state");
|
||||||
|
|||||||
@@ -48,7 +48,9 @@ class World3D : public Resource {
|
|||||||
private:
|
private:
|
||||||
RID scenario;
|
RID scenario;
|
||||||
mutable RID space;
|
mutable RID space;
|
||||||
|
#ifndef NAVIGATION_3D_DISABLED
|
||||||
mutable RID navigation_map;
|
mutable RID navigation_map;
|
||||||
|
#endif // NAVIGATION_3D_DISABLED
|
||||||
|
|
||||||
Ref<Environment> environment;
|
Ref<Environment> environment;
|
||||||
Ref<Environment> fallback_environment;
|
Ref<Environment> fallback_environment;
|
||||||
@@ -67,7 +69,9 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
RID get_space() const;
|
RID get_space() const;
|
||||||
|
#ifndef NAVIGATION_3D_DISABLED
|
||||||
RID get_navigation_map() const;
|
RID get_navigation_map() const;
|
||||||
|
#endif // NAVIGATION_3D_DISABLED
|
||||||
RID get_scenario() const;
|
RID get_scenario() const;
|
||||||
|
|
||||||
void set_environment(const Ref<Environment> &p_environment);
|
void set_environment(const Ref<Environment> &p_environment);
|
||||||
|
|||||||
Reference in New Issue
Block a user