def update(self, position): current_chunk = (int(position[X] // self.chunk_size), int(position[Y] // self.chunk_size)) if self.current_chunk[X] != current_chunk[X] or self.current_chunk[Y] != current_chunk[Y]: new_chunks = dict() render_dist_min = self.render_distance//2 render_dist_max = self.render_distance - render_dist_min for i in range(current_chunk[0] - render_dist_min, current_chunk[0] + render_dist_max): for j in range(current_chunk[1] - render_dist_min, current_chunk[1] + render_dist_max): if (i, j) not in self.chunks: new_chunks[(i, j)] = self.load_chunk(i, j) else: new_chunks[(i, j)] = self.chunks[(i, j)] for key, value in self.chunks.items(): if key not in new_chunks.keys(): PybulletAPI.removeBody(value) self.chunks = new_chunks self.current_chunk = current_chunk
def remove(self): for dot in self.dots: PybulletAPI.removeBody(dot)
def remove(self) -> None: p.removeBody(self._object_id) self._dvl.remove() self._buoyancy.remove() for thruster in self.thrusters.values(): thruster.remove()