|
@@ -320,6 +320,8 @@ uint32_t PackedDataContainer::_pack(const Variant &p_data, Vector<uint8_t> &tmpd
|
|
}
|
|
}
|
|
|
|
|
|
Error PackedDataContainer::pack(const Variant &p_data) {
|
|
Error PackedDataContainer::pack(const Variant &p_data) {
|
|
|
|
+ ERR_FAIL_COND_V_MSG(p_data.get_type() != Variant::ARRAY && p_data.get_type() != Variant::DICTIONARY, ERR_INVALID_DATA, "PackedDataContainer can pack only Array and Dictionary type.");
|
|
|
|
+
|
|
Vector<uint8_t> tmpdata;
|
|
Vector<uint8_t> tmpdata;
|
|
HashMap<String, uint32_t> string_cache;
|
|
HashMap<String, uint32_t> string_cache;
|
|
_pack(p_data, tmpdata, string_cache);
|
|
_pack(p_data, tmpdata, string_cache);
|
|
@@ -361,7 +363,9 @@ void PackedDataContainer::_bind_methods() {
|
|
ClassDB::bind_method(D_METHOD("pack", "value"), &PackedDataContainer::pack);
|
|
ClassDB::bind_method(D_METHOD("pack", "value"), &PackedDataContainer::pack);
|
|
ClassDB::bind_method(D_METHOD("size"), &PackedDataContainer::size);
|
|
ClassDB::bind_method(D_METHOD("size"), &PackedDataContainer::size);
|
|
|
|
|
|
- ADD_PROPERTY(PropertyInfo(Variant::PACKED_BYTE_ARRAY, "__data__"), "_set_data", "_get_data");
|
|
|
|
|
|
+ BIND_METHOD_ERR_RETURN_DOC("pack", ERR_INVALID_DATA);
|
|
|
|
+
|
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::PACKED_BYTE_ARRAY, "__data__", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL), "_set_data", "_get_data");
|
|
}
|
|
}
|
|
|
|
|
|
//////////////////
|
|
//////////////////
|
|
@@ -378,16 +382,11 @@ Variant PackedDataContainerRef::_iter_get(const Variant &p_iter) {
|
|
return from->_iter_get_ofs(p_iter, offset);
|
|
return from->_iter_get_ofs(p_iter, offset);
|
|
}
|
|
}
|
|
|
|
|
|
-bool PackedDataContainerRef::_is_dictionary() const {
|
|
|
|
- return from->_type_at_ofs(offset) == PackedDataContainer::TYPE_DICT;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
void PackedDataContainerRef::_bind_methods() {
|
|
void PackedDataContainerRef::_bind_methods() {
|
|
ClassDB::bind_method(D_METHOD("size"), &PackedDataContainerRef::size);
|
|
ClassDB::bind_method(D_METHOD("size"), &PackedDataContainerRef::size);
|
|
ClassDB::bind_method(D_METHOD("_iter_init"), &PackedDataContainerRef::_iter_init);
|
|
ClassDB::bind_method(D_METHOD("_iter_init"), &PackedDataContainerRef::_iter_init);
|
|
ClassDB::bind_method(D_METHOD("_iter_get"), &PackedDataContainerRef::_iter_get);
|
|
ClassDB::bind_method(D_METHOD("_iter_get"), &PackedDataContainerRef::_iter_get);
|
|
ClassDB::bind_method(D_METHOD("_iter_next"), &PackedDataContainerRef::_iter_next);
|
|
ClassDB::bind_method(D_METHOD("_iter_next"), &PackedDataContainerRef::_iter_next);
|
|
- ClassDB::bind_method(D_METHOD("_is_dictionary"), &PackedDataContainerRef::_is_dictionary);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
Variant PackedDataContainerRef::getvar(const Variant &p_key, bool *r_valid) const {
|
|
Variant PackedDataContainerRef::getvar(const Variant &p_key, bool *r_valid) const {
|