equal
deleted
inserted
replaced
112 detected_collisions: DetectedCollisions::new(0), |
112 detected_collisions: DetectedCollisions::new(0), |
113 } |
113 } |
114 } |
114 } |
115 |
115 |
116 pub fn add(&mut self, gear_id: GearId, gear_data: CollisionData) { |
116 pub fn add(&mut self, gear_id: GearId, gear_data: CollisionData) { |
117 self.grid.insert_static(gear_id, &gear_data.bounds); |
117 self.grid.insert(gear_id, &gear_data.bounds); |
118 } |
118 } |
119 |
119 |
120 pub fn remove(&mut self, gear_id: GearId) { |
120 pub fn remove(&mut self, gear_id: GearId) { |
121 self.grid.remove(gear_id); |
121 self.grid.remove(gear_id, None); |
122 } |
122 } |
123 |
123 |
124 pub fn get(&mut self, gear_id: GearId) -> Option<CollisionData> { |
124 pub fn get(&mut self, gear_id: GearId) -> Option<CollisionData> { |
125 None |
125 None |
126 } |
126 } |
129 &mut self, |
129 &mut self, |
130 land: &Land2D<u32>, |
130 land: &Land2D<u32>, |
131 updates: &crate::physics::PositionUpdates, |
131 updates: &crate::physics::PositionUpdates, |
132 ) -> &DetectedCollisions { |
132 ) -> &DetectedCollisions { |
133 self.detected_collisions.clear(); |
133 self.detected_collisions.clear(); |
134 for (id, old_position, new_position) in updates.iter() { |
|
135 self.grid.update_position(id, old_position, new_position) |
|
136 } |
|
137 |
|
138 self.grid.check_collisions(&mut self.detected_collisions); |
134 self.grid.check_collisions(&mut self.detected_collisions); |
139 |
135 |
140 for (gear_id, collision) in self.enabled_collisions.iter() { |
136 for (gear_id, collision) in self.enabled_collisions.iter() { |
141 if collision |
137 if collision |
142 .bounds |
138 .bounds |