Skip to content

Commit 2f0f00b

Browse files
authored
Merge pull request #116 from GsLogiMaker/feature/query-set-term-source
Add method to set source in queries
2 parents 4de82dc + 38350a1 commit 2f0f00b

14 files changed

Lines changed: 112 additions & 43 deletions

cpp/src/doc_classes/GFComponentBuilder.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="GFComponentBuilder" inherits="GFEntityBuilder"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
2+
<class name="GFComponentBuilder" inherits="GFEntityBuilder" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
43
<brief_description>
54
Builder for a new component type.
65
</brief_description>

cpp/src/doc_classes/GFEntityBuilder.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="GFEntityBuilder" inherits="RefCounted"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
2+
<class name="GFEntityBuilder" inherits="RefCounted" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
43
<brief_description>
54
</brief_description>
65
<description>

cpp/src/doc_classes/GFModule.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="GFModule" inherits="GFRegisterableEntity"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
2+
<class name="GFModule" inherits="GFRegisterableEntity" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
43
<brief_description>
54
</brief_description>
65
<description>

cpp/src/doc_classes/GFObserverBuilder.xml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="GFObserverBuilder" inherits="GFQuerylikeBuilder"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
2+
<class name="GFObserverBuilder" inherits="GFQuerylikeBuilder" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
43
<brief_description>
54
A builder for observers.
65
</brief_description>
@@ -67,44 +66,44 @@
6766
</description>
6867
</method>
6968
<method name="from">
70-
<return type="GFSystemBuilder" />
69+
<return type="GFObserverBuilder" />
7170
<param index="0" name="entity" type="Variant" />
7271
<description>
7372
Overrides [GFQuerylikeBuilder.from].
7473
</description>
7574
</method>
7675
<method name="io_default">
77-
<return type="GFSystemBuilder" />
76+
<return type="GFObserverBuilder" />
7877
<description>
7978
Overrides [GFQuerylikeBuilder.io_default].
8079
</description>
8180
</method>
8281
<method name="io_filter">
83-
<return type="GFSystemBuilder" />
82+
<return type="GFObserverBuilder" />
8483
<description>
8584
Overrides [GFQuerylikeBuilder.io_filter].
8685
</description>
8786
</method>
8887
<method name="io_in">
89-
<return type="GFSystemBuilder" />
88+
<return type="GFObserverBuilder" />
9089
<description>
9190
Overrides [GFQuerylikeBuilder.io_in].
9291
</description>
9392
</method>
9493
<method name="io_inout">
95-
<return type="GFSystemBuilder" />
94+
<return type="GFObserverBuilder" />
9695
<description>
9796
Overrides [GFQuerylikeBuilder.io_inout].
9897
</description>
9998
</method>
10099
<method name="io_none">
101-
<return type="GFSystemBuilder" />
100+
<return type="GFObserverBuilder" />
102101
<description>
103102
Overrides [GFQuerylikeBuilder.io_none].
104103
</description>
105104
</method>
106105
<method name="io_out">
107-
<return type="GFSystemBuilder" />
106+
<return type="GFObserverBuilder" />
108107
<description>
109108
Overrides [GFQuerylikeBuilder.io_out].
110109
</description>
@@ -159,6 +158,13 @@
159158
Overrides [method GFEntityBuilder.set_target_entity].
160159
</description>
161160
</method>
161+
<method name="src">
162+
<return type="GFObserverBuilder" />
163+
<param index="0" name="source" type="Variant" />
164+
<description>
165+
Overrides [method GFQuerylikeBuilder.src].
166+
</description>
167+
</method>
162168
<method name="up">
163169
<return type="GFObserverBuilder" />
164170
<param index="0" name="traversal" type="Variant" default="0" />

cpp/src/doc_classes/GFPair.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="GFPair" inherits="GFEntity"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
2+
<class name="GFPair" inherits="GFEntity" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
43
<brief_description>
54
A reference to a pair of entity IDs.
65
</brief_description>

cpp/src/doc_classes/GFQueryBuilder.xml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="GFQueryBuilder" inherits="GFQuerylikeBuilder"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
2+
<class name="GFQueryBuilder" inherits="GFQuerylikeBuilder" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
43
<brief_description>
54
A builder for queries.
65
</brief_description>
@@ -53,44 +52,44 @@
5352
</description>
5453
</method>
5554
<method name="from">
56-
<return type="GFSystemBuilder" />
55+
<return type="GFQueryBuilder" />
5756
<param index="0" name="entity" type="Variant" />
5857
<description>
5958
Overrides [GFQuerylikeBuilder.from].
6059
</description>
6160
</method>
6261
<method name="io_default">
63-
<return type="GFSystemBuilder" />
62+
<return type="GFQueryBuilder" />
6463
<description>
6564
Overrides [GFQuerylikeBuilder.io_default].
6665
</description>
6766
</method>
6867
<method name="io_filter">
69-
<return type="GFSystemBuilder" />
68+
<return type="GFQueryBuilder" />
7069
<description>
7170
Overrides [GFQuerylikeBuilder.io_filter].
7271
</description>
7372
</method>
7473
<method name="io_in">
75-
<return type="GFSystemBuilder" />
74+
<return type="GFQueryBuilder" />
7675
<description>
7776
Overrides [GFQuerylikeBuilder.io_in].
7877
</description>
7978
</method>
8079
<method name="io_inout">
81-
<return type="GFSystemBuilder" />
80+
<return type="GFQueryBuilder" />
8281
<description>
8382
Overrides [GFQuerylikeBuilder.io_inout].
8483
</description>
8584
</method>
8685
<method name="io_none">
87-
<return type="GFSystemBuilder" />
86+
<return type="GFQueryBuilder" />
8887
<description>
8988
Overrides [GFQuerylikeBuilder.io_none].
9089
</description>
9190
</method>
9291
<method name="io_out">
93-
<return type="GFSystemBuilder" />
92+
<return type="GFQueryBuilder" />
9493
<description>
9594
Overrides [GFQuerylikeBuilder.io_out].
9695
</description>
@@ -131,6 +130,13 @@
131130
Overrides [method GFEntityBuilder.set_target_entity].
132131
</description>
133132
</method>
133+
<method name="src">
134+
<return type="GFQueryBuilder" />
135+
<param index="0" name="source" type="Variant" />
136+
<description>
137+
Overrides [method GFQuerylikeBuilder.src].
138+
</description>
139+
</method>
134140
<method name="up">
135141
<return type="GFQueryBuilder" />
136142
<param index="0" name="traversal" type="Variant" default="0" />

cpp/src/doc_classes/GFQuerylikeBuilder.xml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="GFQuerylikeBuilder" inherits="GFEntityBuilder"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
2+
<class name="GFQuerylikeBuilder" inherits="GFEntityBuilder" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
43
<brief_description>
54
The abstract base class for different query-like builders.
65
</brief_description>
@@ -125,6 +124,19 @@
125124
Overrides [GFEntityBuilder.set_target_entity].
126125
</description>
127126
</method>
127+
<method name="src">
128+
<return type="GFQuerylikeBuilder" />
129+
<param index="0" name="source" type="Variant" />
130+
<description>
131+
Sets the source of last term.
132+
In this example, the query matches for a child whose parent has the [i]Planet[/i] component:
133+
[codeblock]
134+
GFQueryBuilder.new() \
135+
.with(ChildOf, "$par") \
136+
.with(Planet).src("$par")
137+
[/codeblock]
138+
</description>
139+
</method>
128140
<method name="up">
129141
<return type="GFQuerylikeBuilder" />
130142
<param index="0" name="traversal" type="Variant" default="0" />

cpp/src/doc_classes/GFSystemBuilder.xml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="GFSystemBuilder" inherits="GFQuerylikeBuilder"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
2+
<class name="GFSystemBuilder" inherits="GFQuerylikeBuilder" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
43
<brief_description>
54
A builder for systems.
65
</brief_description>
@@ -134,6 +133,13 @@
134133
Overrides [method GFEntityBuilder.set_target_entity].
135134
</description>
136135
</method>
136+
<method name="src">
137+
<return type="GFSystemBuilder" />
138+
<param index="0" name="source" type="Variant" />
139+
<description>
140+
Overrides [method GFQuerylikeBuilder.src].
141+
</description>
142+
</method>
137143
<method name="up">
138144
<return type="GFSystemBuilder" />
139145
<param index="0" name="traversal" type="Variant" default="0" />

cpp/src/doc_classes/GFTag.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<class name="GFTag" inherits="GFRegisterableEntity"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
2+
<class name="GFTag" inherits="GFRegisterableEntity" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
43
<brief_description>
54
A reference to an entity with no data.
65
</brief_description>

cpp/src/entity.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,7 @@ bool GFEntity::_set(StringName property, Variant value) {
206206

207207
Ref<GFEntity> GFEntity::add_child(const Variant entity) {
208208
ecs_entity_t id = get_world()->coerce_id(entity);
209-
if (!get_world()->id_set_parent(id, get_id())) {
210-
return nullptr;
211-
}
209+
get_world()->id_set_parent(id, get_id());
212210
return Ref(this);
213211
}
214212

0 commit comments

Comments
 (0)