diff options
Diffstat (limited to 'scene/resources/packed_scene.h')
| -rw-r--r-- | scene/resources/packed_scene.h | 81 |
1 files changed, 35 insertions, 46 deletions
diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h index 4a3841abe..5fa54413a 100644 --- a/scene/resources/packed_scene.h +++ b/scene/resources/packed_scene.h @@ -32,23 +32,21 @@ #include "resource.h" #include "scene/main/node.h" - class SceneState : public Reference { - GDCLASS( SceneState, Reference ); - + GDCLASS(SceneState, Reference); Vector<StringName> names; Vector<Variant> variants; Vector<NodePath> node_paths; Vector<NodePath> editable_instances; - mutable HashMap<NodePath,int> node_path_cache; - mutable Map<int,int> base_scene_node_remap; + mutable HashMap<NodePath, int> node_path_cache; + mutable Map<int, int> base_scene_node_remap; int base_scene_idx; enum { - NO_PARENT_SAVED=0x7FFFFFFF, + NO_PARENT_SAVED = 0x7FFFFFFF, }; struct NodeData { @@ -67,13 +65,12 @@ class SceneState : public Reference { Vector<Property> properties; Vector<int> groups; - }; struct PackState { Ref<SceneState> state; int node; - PackState() { node=-1; } + PackState() { node = -1; } }; Vector<NodeData> nodes; @@ -90,9 +87,8 @@ class SceneState : public Reference { Vector<ConnectionData> connections; - - Error _parse_node(Node *p_owner,Node *p_node,int p_parent_idx, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher,VariantComparator> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map); - Error _parse_connections(Node *p_owner,Node *p_node, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher,VariantComparator> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map); + Error _parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map<StringName, int> &name_map, HashMap<Variant, int, VariantHasher, VariantComparator> &variant_map, Map<Node *, int> &node_map, Map<Node *, int> &nodepath_map); + Error _parse_connections(Node *p_owner, Node *p_node, Map<StringName, int> &name_map, HashMap<Variant, int, VariantHasher, VariantComparator> &variant_map, Map<Node *, int> &node_map, Map<Node *, int> &nodepath_map); String path; @@ -105,16 +101,14 @@ class SceneState : public Reference { PoolVector<String> _get_node_groups(int p_idx) const; protected: - static void _bind_methods(); public: - enum { - FLAG_ID_IS_PATH=(1<<30), - TYPE_INSTANCED=0x7FFFFFFF, - FLAG_INSTANCE_IS_PLACEHOLDER=(1<<30), - FLAG_MASK=(1<<24)-1, + FLAG_ID_IS_PATH = (1 << 30), + TYPE_INSTANCED = 0x7FFFFFFF, + FLAG_INSTANCE_IS_PLACEHOLDER = (1 << 30), + FLAG_MASK = (1 << 24) - 1, }; enum GenEditState { @@ -125,13 +119,12 @@ public: static void set_disable_placeholders(bool p_disable); - int find_node_by_path(const NodePath& p_node) const; - Variant get_property_value(int p_node,const StringName& p_property,bool &found) const; - bool is_node_in_group(int p_node,const StringName& p_group) const; - bool is_connection(int p_node,const StringName& p_signal,int p_to_node,const StringName& p_to_method) const; - + int find_node_by_path(const NodePath &p_node) const; + Variant get_property_value(int p_node, const StringName &p_property, bool &found) const; + bool is_node_in_group(int p_node, const StringName &p_group) const; + bool is_connection(int p_node, const StringName &p_signal, int p_to_node, const StringName &p_to_method) const; - void set_bundled_scene(const Dictionary& p_dictionary); + void set_bundled_scene(const Dictionary &p_dictionary); Dictionary get_bundled_scene() const; Error pack(Node *p_scene); @@ -144,13 +137,12 @@ public: bool can_instance() const; Node *instance(GenEditState p_edit_state) const; - //unbuild API int get_node_count() const; StringName get_node_type(int p_idx) const; StringName get_node_name(int p_idx) const; - NodePath get_node_path(int p_idx,bool p_for_parent=false) const; + NodePath get_node_path(int p_idx, bool p_for_parent = false) const; NodePath get_node_owner_path(int p_idx) const; Ref<PackedScene> get_node_instance(int p_idx) const; String get_node_instance_placeholder(int p_idx) const; @@ -158,8 +150,8 @@ public: Vector<StringName> get_node_groups(int p_idx) const; int get_node_property_count(int p_idx) const; - StringName get_node_property_name(int p_idx,int p_prop) const; - Variant get_node_property_value(int p_idx,int p_prop) const; + StringName get_node_property_name(int p_idx, int p_prop) const; + Variant get_node_property_value(int p_idx, int p_prop) const; int get_connection_count() const; NodePath get_connection_source(int p_idx) const; @@ -169,27 +161,26 @@ public: int get_connection_flags(int p_idx) const; Array get_connection_binds(int p_idx) const; - bool has_connection(const NodePath &p_node_from, const StringName& p_signal, const NodePath &p_node_to, const StringName& p_method) const; + bool has_connection(const NodePath &p_node_from, const StringName &p_signal, const NodePath &p_node_to, const StringName &p_method) const; Vector<NodePath> get_editable_instances() const; //build API - int add_name(const StringName& p_name); - int find_name(const StringName& p_name) const; - int add_value(const Variant& p_value); - int add_node_path(const NodePath& p_path); - int add_node(int p_parent,int p_owner,int p_type,int p_name, int p_instance); - void add_node_property(int p_node,int p_name,int p_value); - void add_node_group(int p_node,int p_group); + int add_name(const StringName &p_name); + int find_name(const StringName &p_name) const; + int add_value(const Variant &p_value); + int add_node_path(const NodePath &p_path); + int add_node(int p_parent, int p_owner, int p_type, int p_name, int p_instance); + void add_node_property(int p_node, int p_name, int p_value); + void add_node_group(int p_node, int p_group); void set_base_scene(int p_idx); - void add_connection(int p_from,int p_to, int p_signal, int p_method, int p_flags,const Vector<int>& p_binds); - void add_editable_instance(const NodePath& p_path); + void add_connection(int p_from, int p_to, int p_signal, int p_method, int p_flags, const Vector<int> &p_binds); + void add_editable_instance(const NodePath &p_path); - virtual void set_last_modified_time(uint64_t p_time) { last_modified_time=p_time; } + virtual void set_last_modified_time(uint64_t p_time) { last_modified_time = p_time; } uint64_t get_last_modified_time() const { return last_modified_time; } - SceneState(); }; @@ -197,20 +188,19 @@ VARIANT_ENUM_CAST(SceneState::GenEditState) class PackedScene : public Resource { - GDCLASS(PackedScene, Resource ); + GDCLASS(PackedScene, Resource); RES_BASE_EXTENSION("scn"); Ref<SceneState> state; - void _set_bundled_scene(const Dictionary& p_scene); + void _set_bundled_scene(const Dictionary &p_scene); Dictionary _get_bundled_scene() const; protected: - virtual bool editor_can_reload_from_file() { return false; } // this is handled by editor better static void _bind_methods(); -public: +public: enum GenEditState { GEN_EDIT_STATE_DISABLED, GEN_EDIT_STATE_INSTANCE, @@ -222,12 +212,12 @@ public: void clear(); bool can_instance() const; - Node *instance(GenEditState p_edit_state=GEN_EDIT_STATE_DISABLED) const; + Node *instance(GenEditState p_edit_state = GEN_EDIT_STATE_DISABLED) const; void recreate_state(); void replace_state(Ref<SceneState> p_by); - virtual void set_path(const String& p_path,bool p_take_over=false); + virtual void set_path(const String &p_path, bool p_take_over = false); #ifdef TOOLS_ENABLED virtual void set_last_modified_time(uint64_t p_time) { state->set_last_modified_time(p_time); } @@ -235,7 +225,6 @@ public: Ref<SceneState> get_state(); PackedScene(); - }; VARIANT_ENUM_CAST(PackedScene::GenEditState) |
