def update_mouse_item(self, pos = None): rotation = 0.0 if self.mouse_item is not None: rotation = self.mouse_item.rotation() self.removeFromGroup(self.mouse_item) self.scene().removeItem(self.mouse_item) # Ghost robot ghost_pen = QPen(QColor(self.color)) if self.is_main_robot: (self.mouse_item, robot_item, gyration_item) = helpers.create_main_robot_base_item(ghost_pen, QBrush(), ghost_pen) else: (self.mouse_item, robot_item, gyration_item) = helpers.create_secondary_robot_base_item(ghost_pen, QBrush(), ghost_pen) line = QGraphicsLineItem(-50.0, 0.0, 50.0, 0.0) line.setPen(ghost_pen) self.mouse_item.addToGroup(line) line = QGraphicsLineItem(0.0, -50.0, 0.0, 50.0) line.setPen(ghost_pen) self.mouse_item.addToGroup(line) self.mouse_item.setRotation(rotation) if pos is None: self.mouse_item.setVisible(False) else: self.mouse_item.setPos(pos.x(), pos.y()) self.addToGroup(self.mouse_item)
def setup(self): if self.item is not None: for elt in self.carried_elements: self.item.removeFromGroup(elt) self.carried_elements = [] self.layer.field_view_controller.field_scene.removeItem(self.item) del self.item self.item = QGraphicsItemGroup(self.layer) dark_metal = QColor("#838383") light_metal = QColor("#e9eaff") if self.layer.robot_controller.is_main: (self.structure, self.robot_item, self.gyration_item) = helpers.create_main_robot_base_item( dark_metal, light_metal, QColor(self.layer.color).darker(150)) else: (self.structure, self.robot_item, self.gyration_item) = helpers.create_secondary_robot_base_item( dark_metal, light_metal, QColor(self.layer.color).darker(150)) self.item.addToGroup(self.structure) tower = QGraphicsRectItem(-40.0, -40.0, 80.0, 80.0) tower.setPen(QPen(0)) tower.setBrush(dark_metal) self.item.addToGroup(tower) self.team_indicator = QGraphicsEllipseItem(-25.0, -25.0, 50.0, 50.0) self.team_indicator.setBrush(QColor(self.layer.color)) self.team_indicator.setPen(QPen(0)) self.item.addToGroup(self.team_indicator) detection_radius = (TURRET_DETECTION_RANGE_START + TURRET_DETECTION_RANGE_END) / 2.0 * 100.0 self.short_detection_circle = QGraphicsEllipseItem( -detection_radius, -detection_radius, 2.0 * detection_radius, 2.0 * detection_radius) self.short_detection_circle.setPen( QPen(QColor(self.layer.color), 2, Qt.DashLine)) self.item.addToGroup(self.short_detection_circle) detection_radius = (TURRET_DETECTION_RANGE_START + TURRET_DETECTION_RANGE_END) / 2.0 * 100.0 self.long_detection_circle = QGraphicsEllipseItem( -detection_radius, -detection_radius, 2.0 * detection_radius, 2.0 * detection_radius) self.long_detection_circle.setPen( QPen(QColor(self.layer.color), 2, Qt.DashLine)) self.item.addToGroup(self.long_detection_circle) self.item.setVisible(False) self.item.setPos(0.0, 0.0) self.set_rotation(0.0)
def setup(self): if self.item is not None: for elt in self.carried_elements: self.item.removeFromGroup(elt) self.carried_elements = [] self.layer.field_view_controller.field_scene.removeItem(self.item) del self.item self.item = QGraphicsItemGroup(self.layer) dark_metal = QColor("#838383") light_metal = QColor("#e9eaff") if self.layer.robot_controller.is_main: (self.structure, self.robot_item, self.gyration_item) = helpers.create_main_robot_base_item(dark_metal, light_metal, QColor(self.layer.color).darker(150)) else: (self.structure, self.robot_item, self.gyration_item) = helpers.create_secondary_robot_base_item(dark_metal, light_metal, QColor(self.layer.color).darker(150)) self.item.addToGroup(self.structure) tower = QGraphicsRectItem(-40.0, -40.0, 80.0, 80.0) tower.setPen(QPen(0)) tower.setBrush(dark_metal) self.item.addToGroup(tower) self.team_indicator = QGraphicsEllipseItem(-25.0, -25.0, 50.0, 50.0) self.team_indicator.setBrush(QColor(self.layer.color)) self.team_indicator.setPen(QPen(0)) self.item.addToGroup(self.team_indicator) detection_radius = TURRET_SHORT_DISTANCE_DETECTION_RANGE * 1000.0 self.short_detection_circle = QGraphicsEllipseItem(-detection_radius, -detection_radius, 2.0 * detection_radius, 2.0 * detection_radius) self.short_detection_circle.setPen(QPen(QColor(self.layer.color), 2, Qt.DashLine)) self.item.addToGroup(self.short_detection_circle) detection_radius = TURRET_LONG_DISTANCE_DETECTION_RANGE * 1000.0 self.long_detection_circle = QGraphicsEllipseItem(-detection_radius, -detection_radius, 2.0 * detection_radius, 2.0 * detection_radius) self.long_detection_circle.setPen(QPen(QColor(self.layer.color), 2, Qt.DashLine)) self.item.addToGroup(self.long_detection_circle) self.item.setVisible(False) self.item.setPos(0.0, 0.0) self.set_rotation(0.0)