fix: 装备属性面板避让逻辑 + 多项功能更新

- item_tooltip_view.gd: 新增 avoid_rect 属性,tooltip 与装备窗口重叠时自动推到左侧
- inventory_ui.gd: 悬停装备时传入窗口矩形作为避让区域
- 包含其他累积的功能开发和测试文件
This commit is contained in:
shen
2026-09-21 16:38:59 -07:00
parent 1522a8a1a1
commit c93894313a
5498 changed files with 4558004 additions and 1442 deletions
@@ -0,0 +1,173 @@
/**************************************************************************/
/* foldable_container.cpp */
/**************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* https://godotengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
// THIS FILE IS GENERATED. EDITS WILL BE LOST.
#include <godot_cpp/classes/foldable_container.hpp>
#include <godot_cpp/core/class_db.hpp>
#include <godot_cpp/core/engine_ptrcall.hpp>
#include <godot_cpp/core/error_macros.hpp>
#include <godot_cpp/classes/foldable_group.hpp>
namespace godot {
void FoldableContainer::fold() {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("fold")._native_ptr(), 3218959716);
CHECK_METHOD_BIND(_gde_method_bind);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner);
}
void FoldableContainer::expand() {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("expand")._native_ptr(), 3218959716);
CHECK_METHOD_BIND(_gde_method_bind);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner);
}
void FoldableContainer::set_folded(bool p_folded) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("set_folded")._native_ptr(), 2586408642);
CHECK_METHOD_BIND(_gde_method_bind);
int8_t p_folded_encoded;
PtrToArg<bool>::encode(p_folded, &p_folded_encoded);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, &p_folded_encoded);
}
bool FoldableContainer::is_folded() const {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("is_folded")._native_ptr(), 36873697);
CHECK_METHOD_BIND_RET(_gde_method_bind, (false));
return ::godot::internal::_call_native_mb_ret<int8_t>(_gde_method_bind, _owner);
}
void FoldableContainer::set_foldable_group(const Ref<FoldableGroup> &p_button_group) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("set_foldable_group")._native_ptr(), 3001390597);
CHECK_METHOD_BIND(_gde_method_bind);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, (p_button_group != nullptr ? &p_button_group->_owner : nullptr));
}
Ref<FoldableGroup> FoldableContainer::get_foldable_group() const {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("get_foldable_group")._native_ptr(), 66499518);
CHECK_METHOD_BIND_RET(_gde_method_bind, (Ref<FoldableGroup>()));
return Ref<FoldableGroup>::_gde_internal_constructor(::godot::internal::_call_native_mb_ret_obj<FoldableGroup>(_gde_method_bind, _owner));
}
void FoldableContainer::set_title(const String &p_text) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("set_title")._native_ptr(), 83702148);
CHECK_METHOD_BIND(_gde_method_bind);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, &p_text);
}
String FoldableContainer::get_title() const {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("get_title")._native_ptr(), 201670096);
CHECK_METHOD_BIND_RET(_gde_method_bind, (String()));
return ::godot::internal::_call_native_mb_ret<String>(_gde_method_bind, _owner);
}
void FoldableContainer::set_title_alignment(HorizontalAlignment p_alignment) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("set_title_alignment")._native_ptr(), 2312603777);
CHECK_METHOD_BIND(_gde_method_bind);
int64_t p_alignment_encoded;
PtrToArg<int64_t>::encode(p_alignment, &p_alignment_encoded);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, &p_alignment_encoded);
}
HorizontalAlignment FoldableContainer::get_title_alignment() const {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("get_title_alignment")._native_ptr(), 341400642);
CHECK_METHOD_BIND_RET(_gde_method_bind, (HorizontalAlignment(0)));
return (HorizontalAlignment)::godot::internal::_call_native_mb_ret<int64_t>(_gde_method_bind, _owner);
}
void FoldableContainer::set_language(const String &p_language) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("set_language")._native_ptr(), 83702148);
CHECK_METHOD_BIND(_gde_method_bind);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, &p_language);
}
String FoldableContainer::get_language() const {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("get_language")._native_ptr(), 201670096);
CHECK_METHOD_BIND_RET(_gde_method_bind, (String()));
return ::godot::internal::_call_native_mb_ret<String>(_gde_method_bind, _owner);
}
void FoldableContainer::set_title_text_direction(Control::TextDirection p_text_direction) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("set_title_text_direction")._native_ptr(), 119160795);
CHECK_METHOD_BIND(_gde_method_bind);
int64_t p_text_direction_encoded;
PtrToArg<int64_t>::encode(p_text_direction, &p_text_direction_encoded);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, &p_text_direction_encoded);
}
Control::TextDirection FoldableContainer::get_title_text_direction() const {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("get_title_text_direction")._native_ptr(), 797257663);
CHECK_METHOD_BIND_RET(_gde_method_bind, (Control::TextDirection(0)));
return (Control::TextDirection)::godot::internal::_call_native_mb_ret<int64_t>(_gde_method_bind, _owner);
}
void FoldableContainer::set_title_text_overrun_behavior(TextServer::OverrunBehavior p_overrun_behavior) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("set_title_text_overrun_behavior")._native_ptr(), 1008890932);
CHECK_METHOD_BIND(_gde_method_bind);
int64_t p_overrun_behavior_encoded;
PtrToArg<int64_t>::encode(p_overrun_behavior, &p_overrun_behavior_encoded);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, &p_overrun_behavior_encoded);
}
TextServer::OverrunBehavior FoldableContainer::get_title_text_overrun_behavior() const {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("get_title_text_overrun_behavior")._native_ptr(), 3779142101);
CHECK_METHOD_BIND_RET(_gde_method_bind, (TextServer::OverrunBehavior(0)));
return (TextServer::OverrunBehavior)::godot::internal::_call_native_mb_ret<int64_t>(_gde_method_bind, _owner);
}
void FoldableContainer::set_title_position(FoldableContainer::TitlePosition p_title_position) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("set_title_position")._native_ptr(), 2276829442);
CHECK_METHOD_BIND(_gde_method_bind);
int64_t p_title_position_encoded;
PtrToArg<int64_t>::encode(p_title_position, &p_title_position_encoded);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, &p_title_position_encoded);
}
FoldableContainer::TitlePosition FoldableContainer::get_title_position() const {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("get_title_position")._native_ptr(), 3028840207);
CHECK_METHOD_BIND_RET(_gde_method_bind, (FoldableContainer::TitlePosition(0)));
return (FoldableContainer::TitlePosition)::godot::internal::_call_native_mb_ret<int64_t>(_gde_method_bind, _owner);
}
void FoldableContainer::add_title_bar_control(Control *p_control) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("add_title_bar_control")._native_ptr(), 1496901182);
CHECK_METHOD_BIND(_gde_method_bind);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, (p_control != nullptr ? &p_control->_owner : nullptr));
}
void FoldableContainer::remove_title_bar_control(Control *p_control) {
static GDExtensionMethodBindPtr _gde_method_bind = ::godot::gdextension_interface::classdb_get_method_bind(FoldableContainer::get_class_static()._native_ptr(), StringName("remove_title_bar_control")._native_ptr(), 1496901182);
CHECK_METHOD_BIND(_gde_method_bind);
::godot::internal::_call_native_mb_no_ret(_gde_method_bind, _owner, (p_control != nullptr ? &p_control->_owner : nullptr));
}
} // namespace godot