3
3
use std:: { alloc:: Layout , any:: TypeId , mem:: size_of, ptr} ;
4
4
5
5
use anyhow:: Context ;
6
- use feather_ecs:: { DynamicQuery , DynamicQueryTypes , Ecs } ;
6
+ use feather_ecs:: { Ecs } ;
7
7
use feather_plugin_host_macros:: host_function;
8
8
use quill_common:: {
9
9
component:: { ComponentVisitor , SerializationMethod } ,
@@ -44,14 +44,13 @@ struct WrittenComponentData {
44
44
/// `ComponentVisitor` implementation used to write
45
45
/// component data to plugin memory.
46
46
struct WriteComponentsVisitor < ' a > {
47
- query : & ' a DynamicQuery < ' a > ,
48
47
cx : & ' a PluginContext ,
49
48
num_entities : usize ,
50
49
}
51
50
52
51
impl < ' a > ComponentVisitor < anyhow:: Result < WrittenComponentData > > for WriteComponentsVisitor < ' a > {
53
52
fn visit < T : Component > ( self ) -> anyhow:: Result < WrittenComponentData > {
54
- let components = self . query . iter_component_slices ( TypeId :: of :: < T > ( ) ) ;
53
+ let components = todo ! ( ) ;
55
54
56
55
// Write each component.
57
56
// We use a different strategy depending
@@ -109,10 +108,7 @@ fn create_query_data(
109
108
ecs : & Ecs ,
110
109
types : & [ HostComponent ] ,
111
110
) -> anyhow:: Result < QueryData > {
112
- let query_types: Vec < TypeId > = types. iter ( ) . copied ( ) . map ( HostComponent :: type_id) . collect ( ) ;
113
- let query = ecs. query_dynamic ( DynamicQueryTypes :: new ( & query_types, & [ ] ) ) ;
114
-
115
- let num_entities = query. iter_entities ( ) . count ( ) ;
111
+ let num_entities = todo ! ( ) ;
116
112
if num_entities == 0 {
117
113
return Ok ( QueryData {
118
114
num_entities : 0 ,
@@ -126,7 +122,6 @@ fn create_query_data(
126
122
let component_lens = cx. bump_allocate ( Layout :: array :: < u32 > ( types. len ( ) ) ?) ?;
127
123
for ( i, & typ) in types. iter ( ) . enumerate ( ) {
128
124
let data = typ. visit ( WriteComponentsVisitor {
129
- query : & query,
130
125
cx,
131
126
num_entities,
132
127
} ) ?;
@@ -138,8 +133,8 @@ fn create_query_data(
138
133
}
139
134
140
135
let entities_ptr = cx. bump_allocate ( Layout :: array :: < EntityId > ( num_entities) ?) ?;
141
- for ( i, entity) in query . iter_entities ( ) . enumerate ( ) {
142
- let bits = entity. to_bits ( ) ;
136
+ for ( i, entity) in todo ! ( ) . enumerate ( ) {
137
+ let bits = entity. to_bits ( ) . get ( ) ;
143
138
unsafe {
144
139
cx. write_pod ( entities_ptr. cast ( ) . add ( i) , bits) ?;
145
140
}
0 commit comments