Renamed PlaneShape to WorldMarginShape
This commit is contained in:
parent
3b64ecbc4b
commit
2e0fb66c6f
12 changed files with 37 additions and 41 deletions
|
@ -1467,7 +1467,7 @@
|
|||
If [code]set[/code] there is a linear motor on this axis that targets a specific velocity.
|
||||
</constant>
|
||||
<constant name="SHAPE_PLANE" value="0" enum="ShapeType">
|
||||
The [Shape] is a [PlaneShape].
|
||||
The [Shape] is a [WorldMarginShape].
|
||||
</constant>
|
||||
<constant name="SHAPE_RAY" value="1" enum="ShapeType">
|
||||
The [Shape] is a [RayShape].
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="PlaneShape" inherits="Shape" version="4.0">
|
||||
<class name="WorldMarginShape" inherits="Shape" version="4.0">
|
||||
<brief_description>
|
||||
Infinite plane shape for 3D collisions.
|
||||
</brief_description>
|
||||
<description>
|
||||
An infinite plane shape for 3D collisions. Note that the [Plane]'s normal matters; anything "below" the plane will collide with it. If the [PlaneShape] is used in a [PhysicsBody], it will cause colliding objects placed "below" it to teleport "above" the plane.
|
||||
An infinite plane shape for 3D collisions. Note that the [Plane]'s normal matters; anything "below" the plane will collide with it. If the [WorldMarginShape] is used in a [PhysicsBody], it will cause colliding objects placed "below" it to teleport "above" the plane.
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
|
@ -12,7 +12,7 @@
|
|||
</methods>
|
||||
<members>
|
||||
<member name="plane" type="Plane" setter="set_plane" getter="get_plane" default="Plane( 0, 1, 0, 0 )">
|
||||
The [Plane] used by the [PlaneShape] for collision.
|
||||
The [Plane] used by the [WorldMarginShape] for collision.
|
||||
</member>
|
||||
</members>
|
||||
<constants>
|
|
@ -1 +0,0 @@
|
|||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m2 12h12l-3-8h-6z" fill="none" stroke="#ffd684" stroke-linejoin="round" stroke-width="2"/></svg>
|
Before Width: | Height: | Size: 188 B |
1
editor/icons/WorldMarginShape.svg
Normal file
1
editor/icons/WorldMarginShape.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m1 1044.4 7 3 7-3-7-3z" fill="#a2d2ff" fill-rule="evenodd" transform="translate(0 -1036.4)"/></svg>
|
After Width: | Height: | Size: 191 B |
|
@ -41,10 +41,10 @@
|
|||
#include "scene/resources/animation.h"
|
||||
#include "scene/resources/box_shape.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
#include "scene/resources/plane_shape.h"
|
||||
#include "scene/resources/ray_shape.h"
|
||||
#include "scene/resources/resource_format_text.h"
|
||||
#include "scene/resources/sphere_shape.h"
|
||||
#include "scene/resources/world_margin_shape.h"
|
||||
|
||||
uint32_t EditorSceneImporter::get_import_flags() const {
|
||||
|
||||
|
@ -446,9 +446,9 @@ Node *ResourceImporterScene::_fix_node(Node *p_node, Node *p_root, Map<Ref<Mesh>
|
|||
colshape->set_name("RayShape");
|
||||
Object::cast_to<Spatial>(sb)->rotate_x(Math_PI / 2);
|
||||
} else if (empty_draw_type == "IMAGE") {
|
||||
PlaneShape *planeShape = memnew(PlaneShape);
|
||||
colshape->set_shape(planeShape);
|
||||
colshape->set_name("PlaneShape");
|
||||
WorldMarginShape *world_margin_shape = memnew(WorldMarginShape);
|
||||
colshape->set_shape(world_margin_shape);
|
||||
colshape->set_name("WorldMarginShape");
|
||||
} else {
|
||||
SphereShape *sphereShape = memnew(SphereShape);
|
||||
sphereShape->set_radius(1);
|
||||
|
|
|
@ -58,11 +58,11 @@
|
|||
#include "scene/resources/convex_polygon_shape.h"
|
||||
#include "scene/resources/cylinder_shape.h"
|
||||
#include "scene/resources/height_map_shape.h"
|
||||
#include "scene/resources/plane_shape.h"
|
||||
#include "scene/resources/primitive_meshes.h"
|
||||
#include "scene/resources/ray_shape.h"
|
||||
#include "scene/resources/sphere_shape.h"
|
||||
#include "scene/resources/surface_tool.h"
|
||||
#include "scene/resources/world_margin_shape.h"
|
||||
|
||||
#define HANDLE_HALF_SIZE 9.5
|
||||
|
||||
|
@ -3575,9 +3575,9 @@ void CollisionShapeSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) {
|
|||
p_gizmo->add_handles(handles, handles_material);
|
||||
}
|
||||
|
||||
if (Object::cast_to<PlaneShape>(*s)) {
|
||||
if (Object::cast_to<WorldMarginShape>(*s)) {
|
||||
|
||||
Ref<PlaneShape> ps = s;
|
||||
Ref<WorldMarginShape> ps = s;
|
||||
Plane p = ps->get_plane();
|
||||
Vector<Vector3> points;
|
||||
|
||||
|
|
|
@ -110,13 +110,13 @@ protected:
|
|||
|
||||
PhysicsServer *ps = PhysicsServer::get_singleton();
|
||||
|
||||
RID plane_shape = ps->shape_create(PhysicsServer::SHAPE_PLANE);
|
||||
ps->shape_set_data(plane_shape, p_plane);
|
||||
RID world_margin_shape = ps->shape_create(PhysicsServer::SHAPE_PLANE);
|
||||
ps->shape_set_data(world_margin_shape, p_plane);
|
||||
|
||||
RID b = ps->body_create(PhysicsServer::BODY_MODE_STATIC);
|
||||
ps->body_set_space(b, space);
|
||||
//todo set space
|
||||
ps->body_add_shape(b, plane_shape);
|
||||
ps->body_add_shape(b, world_margin_shape);
|
||||
return b;
|
||||
}
|
||||
|
||||
|
|
|
@ -42,10 +42,10 @@
|
|||
#include "scene/resources/concave_polygon_shape.h"
|
||||
#include "scene/resources/convex_polygon_shape.h"
|
||||
#include "scene/resources/cylinder_shape.h"
|
||||
#include "scene/resources/plane_shape.h"
|
||||
#include "scene/resources/primitive_meshes.h"
|
||||
#include "scene/resources/shape.h"
|
||||
#include "scene/resources/sphere_shape.h"
|
||||
#include "scene/resources/world_margin_shape.h"
|
||||
|
||||
#include "modules/modules_enabled.gen.h"
|
||||
#ifdef TOOLS_ENABLED
|
||||
|
|
|
@ -33,9 +33,9 @@
|
|||
#include "scene/resources/capsule_shape.h"
|
||||
#include "scene/resources/concave_polygon_shape.h"
|
||||
#include "scene/resources/convex_polygon_shape.h"
|
||||
#include "scene/resources/plane_shape.h"
|
||||
#include "scene/resources/ray_shape.h"
|
||||
#include "scene/resources/sphere_shape.h"
|
||||
#include "scene/resources/world_margin_shape.h"
|
||||
#include "servers/visual_server.h"
|
||||
//TODO: Implement CylinderShape and HeightMapShape?
|
||||
#include "core/math/quick_hull.h"
|
||||
|
@ -123,10 +123,6 @@ String CollisionShape::get_configuration_warning() const {
|
|||
return TTR("A shape must be provided for CollisionShape to function. Please create a shape resource for it.");
|
||||
}
|
||||
|
||||
if (shape->is_class("PlaneShape")) {
|
||||
return TTR("Plane shapes don't work well and will be removed in future versions. Please don't use them.");
|
||||
}
|
||||
|
||||
return String();
|
||||
}
|
||||
|
||||
|
|
|
@ -151,7 +151,6 @@
|
|||
#include "scene/resources/packed_scene.h"
|
||||
#include "scene/resources/particles_material.h"
|
||||
#include "scene/resources/physics_material.h"
|
||||
#include "scene/resources/plane_shape.h"
|
||||
#include "scene/resources/polygon_path_finder.h"
|
||||
#include "scene/resources/primitive_meshes.h"
|
||||
#include "scene/resources/ray_shape.h"
|
||||
|
@ -169,6 +168,7 @@
|
|||
#include "scene/resources/visual_shader_nodes.h"
|
||||
#include "scene/resources/world.h"
|
||||
#include "scene/resources/world_2d.h"
|
||||
#include "scene/resources/world_margin_shape.h"
|
||||
#include "scene/scene_string_names.h"
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
|
@ -190,8 +190,8 @@
|
|||
#include "scene/3d/multimesh_instance.h"
|
||||
#include "scene/3d/navigation.h"
|
||||
#include "scene/3d/navigation_agent.h"
|
||||
#include "scene/3d/navigation_region.h"
|
||||
#include "scene/3d/navigation_obstacle.h"
|
||||
#include "scene/3d/navigation_region.h"
|
||||
#include "scene/3d/particles.h"
|
||||
#include "scene/3d/path.h"
|
||||
#include "scene/3d/physics_body.h"
|
||||
|
@ -643,7 +643,7 @@ void register_scene_types() {
|
|||
ClassDB::register_class<CapsuleShape>();
|
||||
ClassDB::register_class<CylinderShape>();
|
||||
ClassDB::register_class<HeightMapShape>();
|
||||
ClassDB::register_class<PlaneShape>();
|
||||
ClassDB::register_class<WorldMarginShape>();
|
||||
ClassDB::register_class<ConvexPolygonShape>();
|
||||
ClassDB::register_class<ConcavePolygonShape>();
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*************************************************************************/
|
||||
/* plane_shape.cpp */
|
||||
/* world_margin_shape.cpp */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
|
@ -28,11 +28,11 @@
|
|||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#include "plane_shape.h"
|
||||
#include "world_margin_shape.h"
|
||||
|
||||
#include "servers/physics_server.h"
|
||||
|
||||
Vector<Vector3> PlaneShape::get_debug_mesh_lines() {
|
||||
Vector<Vector3> WorldMarginShape::get_debug_mesh_lines() {
|
||||
|
||||
Plane p = get_plane();
|
||||
Vector<Vector3> points;
|
||||
|
@ -61,13 +61,13 @@ Vector<Vector3> PlaneShape::get_debug_mesh_lines() {
|
|||
return points;
|
||||
}
|
||||
|
||||
void PlaneShape::_update_shape() {
|
||||
void WorldMarginShape::_update_shape() {
|
||||
|
||||
PhysicsServer::get_singleton()->shape_set_data(get_shape(), plane);
|
||||
Shape::_update_shape();
|
||||
}
|
||||
|
||||
void PlaneShape::set_plane(Plane p_plane) {
|
||||
void WorldMarginShape::set_plane(Plane p_plane) {
|
||||
|
||||
plane = p_plane;
|
||||
_update_shape();
|
||||
|
@ -75,20 +75,20 @@ void PlaneShape::set_plane(Plane p_plane) {
|
|||
_change_notify("plane");
|
||||
}
|
||||
|
||||
Plane PlaneShape::get_plane() const {
|
||||
Plane WorldMarginShape::get_plane() const {
|
||||
|
||||
return plane;
|
||||
}
|
||||
|
||||
void PlaneShape::_bind_methods() {
|
||||
void WorldMarginShape::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_plane", "plane"), &PlaneShape::set_plane);
|
||||
ClassDB::bind_method(D_METHOD("get_plane"), &PlaneShape::get_plane);
|
||||
ClassDB::bind_method(D_METHOD("set_plane", "plane"), &WorldMarginShape::set_plane);
|
||||
ClassDB::bind_method(D_METHOD("get_plane"), &WorldMarginShape::get_plane);
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::PLANE, "plane"), "set_plane", "get_plane");
|
||||
}
|
||||
|
||||
PlaneShape::PlaneShape() :
|
||||
WorldMarginShape::WorldMarginShape() :
|
||||
Shape(PhysicsServer::get_singleton()->shape_create(PhysicsServer::SHAPE_PLANE)) {
|
||||
|
||||
set_plane(Plane(0, 1, 0, 0));
|
|
@ -1,5 +1,5 @@
|
|||
/*************************************************************************/
|
||||
/* plane_shape.h */
|
||||
/* world_margin_shape.h */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
|
@ -28,14 +28,14 @@
|
|||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#ifndef PLANE_SHAPE_H
|
||||
#define PLANE_SHAPE_H
|
||||
#ifndef world_margin_shape_H
|
||||
#define world_margin_shape_H
|
||||
|
||||
#include "scene/resources/shape.h"
|
||||
|
||||
class PlaneShape : public Shape {
|
||||
class WorldMarginShape : public Shape {
|
||||
|
||||
GDCLASS(PlaneShape, Shape);
|
||||
GDCLASS(WorldMarginShape, Shape);
|
||||
Plane plane;
|
||||
|
||||
protected:
|
||||
|
@ -52,6 +52,6 @@ public:
|
|||
return 0;
|
||||
}
|
||||
|
||||
PlaneShape();
|
||||
WorldMarginShape();
|
||||
};
|
||||
#endif // PLANE_SHAPE_H
|
||||
#endif // world_margin_shape_H
|
Loading…
Reference in a new issue