Array Object::_get_signal_list() const{ List<MethodInfo> signal_list; get_signal_list(&signal_list); Array ret; for (List<MethodInfo>::Element *E=signal_list.front();E;E=E->next()) { ret.push_back(Dictionary(E->get())); } return ret; }
void Node::generate_instance_state() { List<PropertyInfo> properties; get_property_list(&properties); data.instance_state.clear(); for( List<PropertyInfo>::Element *E=properties.front();E;E=E->next() ) { PropertyInfo &pi=E->get(); if ((pi.usage&PROPERTY_USAGE_NO_INSTANCE_STATE) || !(pi.usage&PROPERTY_USAGE_EDITOR) || !(pi.usage&PROPERTY_USAGE_STORAGE)) continue; data.instance_state[pi.name]=get(pi.name); } List<GroupInfo> groups; get_groups(&groups); for(List<GroupInfo>::Element *E=groups.front();E;E=E->next()) { if (!E->get().persistent) continue; data.instance_groups.push_back(E->get().name); } List<MethodInfo> signal_list; get_signal_list(&signal_list); for(List<MethodInfo>::Element *E=signal_list.front();E;E=E->next()) { StringName name = E->get().name; List<Connection> connections; get_signal_connection_list(name,&connections); for(List<Connection>::Element *F=connections.front();F;F=F->next()) { if (F->get().flags&CONNECT_PERSIST) data.instance_connections.push_back(F->get()); } } }