Merge pull request #52758 from Calinou/add-listener-gizmo-icon-3.x
This commit is contained in:
commit
6ba5d36853
11 changed files with 37 additions and 32 deletions
|
@ -6245,6 +6245,7 @@ void SpatialEditor::_register_all_gizmos() {
|
|||
add_gizmo_plugin(Ref<CameraSpatialGizmoPlugin>(memnew(CameraSpatialGizmoPlugin)));
|
||||
add_gizmo_plugin(Ref<LightSpatialGizmoPlugin>(memnew(LightSpatialGizmoPlugin)));
|
||||
add_gizmo_plugin(Ref<AudioStreamPlayer3DSpatialGizmoPlugin>(memnew(AudioStreamPlayer3DSpatialGizmoPlugin)));
|
||||
add_gizmo_plugin(Ref<ListenerSpatialGizmoPlugin>(memnew(ListenerSpatialGizmoPlugin)));
|
||||
add_gizmo_plugin(Ref<MeshInstanceSpatialGizmoPlugin>(memnew(MeshInstanceSpatialGizmoPlugin)));
|
||||
add_gizmo_plugin(Ref<SoftBodySpatialGizmoPlugin>(memnew(SoftBodySpatialGizmoPlugin)));
|
||||
add_gizmo_plugin(Ref<Sprite3DSpatialGizmoPlugin>(memnew(Sprite3DSpatialGizmoPlugin)));
|
||||
|
|
|
@ -1226,6 +1226,29 @@ void AudioStreamPlayer3DSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo)
|
|||
|
||||
//////
|
||||
|
||||
ListenerSpatialGizmoPlugin::ListenerSpatialGizmoPlugin() {
|
||||
create_icon_material("listener_icon", SpatialEditor::get_singleton()->get_icon("GizmoListener", "EditorIcons"));
|
||||
}
|
||||
|
||||
bool ListenerSpatialGizmoPlugin::has_gizmo(Spatial *p_spatial) {
|
||||
return Object::cast_to<Listener>(p_spatial) != nullptr;
|
||||
}
|
||||
|
||||
String ListenerSpatialGizmoPlugin::get_name() const {
|
||||
return "Listener";
|
||||
}
|
||||
|
||||
int ListenerSpatialGizmoPlugin::get_priority() const {
|
||||
return -1;
|
||||
}
|
||||
|
||||
void ListenerSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) {
|
||||
const Ref<Material> icon = get_material("listener_icon", p_gizmo);
|
||||
p_gizmo->add_unscaled_billboard(icon, 0.05);
|
||||
}
|
||||
|
||||
//////
|
||||
|
||||
CameraSpatialGizmoPlugin::CameraSpatialGizmoPlugin() {
|
||||
Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/camera", Color(0.8, 0.4, 0.8));
|
||||
|
||||
|
|
|
@ -70,6 +70,19 @@ public:
|
|||
AudioStreamPlayer3DSpatialGizmoPlugin();
|
||||
};
|
||||
|
||||
class ListenerSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
||||
GDCLASS(ListenerSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
||||
|
||||
public:
|
||||
bool has_gizmo(Spatial *p_spatial);
|
||||
String get_name() const;
|
||||
int get_priority() const;
|
||||
|
||||
void redraw(EditorSpatialGizmo *p_gizmo);
|
||||
|
||||
ListenerSpatialGizmoPlugin();
|
||||
};
|
||||
|
||||
class CameraSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
||||
GDCLASS(CameraSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
||||
|
||||
|
|
|
@ -258,10 +258,6 @@ bool Camera::is_current() const {
|
|||
}
|
||||
}
|
||||
|
||||
bool Camera::_can_gizmo_scale() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
Vector3 Camera::project_ray_normal(const Point2 &p_pos) const {
|
||||
Vector3 ray = project_local_ray_normal(p_pos);
|
||||
return get_camera_transform().basis.xform(ray).normalized();
|
||||
|
|
|
@ -82,8 +82,6 @@ private:
|
|||
|
||||
Ref<Environment> environment;
|
||||
|
||||
virtual bool _can_gizmo_scale() const;
|
||||
|
||||
//void _camera_make_current(Node *p_camera);
|
||||
friend class Viewport;
|
||||
void _update_audio_listener_state();
|
||||
|
|
|
@ -34,10 +34,6 @@
|
|||
#include "core/project_settings.h"
|
||||
#include "scene/resources/surface_tool.h"
|
||||
|
||||
bool Light::_can_gizmo_scale() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
void Light::set_param(Param p_param, float p_value) {
|
||||
ERR_FAIL_INDEX(p_param, PARAM_MAX);
|
||||
param[p_param] = p_value;
|
||||
|
|
|
@ -84,8 +84,6 @@ private:
|
|||
protected:
|
||||
RID light;
|
||||
|
||||
virtual bool _can_gizmo_scale() const;
|
||||
|
||||
static void _bind_methods();
|
||||
void _notification(int p_what);
|
||||
virtual void _validate_property(PropertyInfo &property) const;
|
||||
|
|
|
@ -140,16 +140,6 @@ bool Listener::is_current() const {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Listener::_can_gizmo_scale() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
RES Listener::_get_gizmo_geometry() const {
|
||||
Ref<ArrayMesh> mesh = memnew(ArrayMesh);
|
||||
|
||||
return mesh;
|
||||
}
|
||||
|
||||
void Listener::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("make_current"), &Listener::make_current);
|
||||
ClassDB::bind_method(D_METHOD("clear_current"), &Listener::clear_current);
|
||||
|
@ -161,7 +151,6 @@ Listener::Listener() {
|
|||
current = false;
|
||||
force_change = false;
|
||||
set_notify_transform(true);
|
||||
//active=false;
|
||||
}
|
||||
|
||||
Listener::~Listener() {
|
||||
|
|
|
@ -43,9 +43,6 @@ private:
|
|||
|
||||
RID scenario_id;
|
||||
|
||||
virtual bool _can_gizmo_scale() const;
|
||||
virtual RES _get_gizmo_geometry() const;
|
||||
|
||||
friend class Viewport;
|
||||
void _update_audio_listener_state();
|
||||
|
||||
|
|
|
@ -86,9 +86,6 @@ SceneStringNames::SceneStringNames() {
|
|||
update = StaticCString::create("update");
|
||||
updated = StaticCString::create("updated");
|
||||
|
||||
_get_gizmo_geometry = StaticCString::create("_get_gizmo_geometry");
|
||||
_can_gizmo_scale = StaticCString::create("_can_gizmo_scale");
|
||||
|
||||
_physics_process = StaticCString::create("_physics_process");
|
||||
_process = StaticCString::create("_process");
|
||||
|
||||
|
|
|
@ -105,9 +105,6 @@ public:
|
|||
StringName _body_inout;
|
||||
StringName _area_inout;
|
||||
|
||||
StringName _get_gizmo_geometry;
|
||||
StringName _can_gizmo_scale;
|
||||
|
||||
StringName _physics_process;
|
||||
StringName _process;
|
||||
StringName _enter_world;
|
||||
|
|
Loading…
Add table
Reference in a new issue