feat: modules moved and engine moved to submodule

This commit is contained in:
Jan van der Weide 2025-04-12 18:40:44 +02:00
parent dfb5e645cd
commit c33d2130cc
5136 changed files with 225275 additions and 64485 deletions

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef VARIANT_H
#define VARIANT_H
#pragma once
#include "core/core_string_names.h"
#include "core/input/input_enums.h"
@ -55,6 +54,8 @@
#include "core/os/keyboard.h"
#include "core/string/node_path.h"
#include "core/string/ustring.h"
#include "core/templates/bit_field.h"
#include "core/templates/list.h"
#include "core/templates/paged_allocator.h"
#include "core/templates/rid.h"
#include "core/variant/array.h"
@ -66,6 +67,8 @@ class RefCounted;
template <typename T>
class Ref;
template <typename T>
class BitField;
struct PropertyInfo;
struct MethodInfo;
@ -479,12 +482,13 @@ public:
operator Vector<Variant>() const;
operator Vector<StringName>() const;
// some core type enums to convert to
operator Side() const;
operator Orientation() const;
operator IPAddress() const;
template <typename T, std::enable_if_t<std::is_enum_v<T>, int> = 0>
_FORCE_INLINE_ operator T() const { return static_cast<T>(operator int64_t()); }
template <typename T>
_FORCE_INLINE_ operator BitField<T>() const { return static_cast<T>(operator uint64_t()); }
Object *get_validated_object() const;
Object *get_validated_object_with_check(bool &r_previously_freed) const;
@ -527,6 +531,7 @@ public:
Variant(const Signal &p_signal);
Variant(const Dictionary &p_dictionary);
Variant(std::initializer_list<Variant> p_init);
Variant(const Array &p_array);
Variant(const PackedByteArray &p_byte_array);
Variant(const PackedInt32Array &p_int32_array);
@ -547,22 +552,12 @@ public:
Variant(const IPAddress &p_address);
#define VARIANT_ENUM_CLASS_CONSTRUCTOR(m_enum) \
Variant(m_enum p_value) : \
type(INT) { \
_data._int = (int64_t)p_value; \
}
// Only enum classes that need to be bound need this to be defined.
VARIANT_ENUM_CLASS_CONSTRUCTOR(EulerOrder)
VARIANT_ENUM_CLASS_CONSTRUCTOR(JoyAxis)
VARIANT_ENUM_CLASS_CONSTRUCTOR(JoyButton)
VARIANT_ENUM_CLASS_CONSTRUCTOR(Key)
VARIANT_ENUM_CLASS_CONSTRUCTOR(KeyLocation)
VARIANT_ENUM_CLASS_CONSTRUCTOR(MIDIMessage)
VARIANT_ENUM_CLASS_CONSTRUCTOR(MouseButton)
#undef VARIANT_ENUM_CLASS_CONSTRUCTOR
template <typename T, std::enable_if_t<std::is_enum_v<T>, int> = 0>
_FORCE_INLINE_ Variant(T p_enum) :
Variant(static_cast<int64_t>(p_enum)) {}
template <typename T>
_FORCE_INLINE_ Variant(BitField<T> p_bitfield) :
Variant(static_cast<uint64_t>(p_bitfield)) {}
// If this changes the table in variant_op must be updated
enum Operator {
@ -910,12 +905,7 @@ struct StringLikeVariantComparator {
};
struct StringLikeVariantOrder {
static _ALWAYS_INLINE_ bool compare(const Variant &p_lhs, const Variant &p_rhs) {
if (p_lhs.is_string() && p_rhs.is_string()) {
return p_lhs.operator String() < p_rhs.operator String();
}
return p_lhs < p_rhs;
}
static bool compare(const Variant &p_lhs, const Variant &p_rhs);
_ALWAYS_INLINE_ bool operator()(const Variant &p_lhs, const Variant &p_rhs) const {
return compare(p_lhs, p_rhs);
@ -998,18 +988,10 @@ Array::Iterator &Array::Iterator::operator--() {
}
const Variant &Array::ConstIterator::operator*() const {
if (unlikely(read_only)) {
*read_only = *element_ptr;
return *read_only;
}
return *element_ptr;
}
const Variant *Array::ConstIterator::operator->() const {
if (unlikely(read_only)) {
*read_only = *element_ptr;
return read_only;
}
return element_ptr;
}
@ -1023,4 +1005,6 @@ Array::ConstIterator &Array::ConstIterator::operator--() {
return *this;
}
#endif // VARIANT_H
// Zero-constructing Variant results in NULL.
template <>
struct is_zero_constructible<Variant> : std::true_type {};