Beispiel #1
0
 def __init__(self):
     self.window = Window(name="ACTV Delta", icon=False, width=240, height=184, texture="")
     self.cursor = Value(False)
     self.session = Value(-1)
     self.performance = Value(0)
     self.spline = Value(0)
     self.laptime = Value(0)
     self.TimeLeftUpdate = Value(0)
     self.referenceLap = []
     self.referenceLapTime = Value(0)
     self.lastLapTime = Value(0)
     self.lapCount = 0
     self.lastLapIsValid = True
     self.currentLap = []
     self.deltaLoaded = False
     self.thread_save = False
     self.highlight_end = 0
     self.rowHeight = Value(-1)
     self.lbl_delta = (
         Label(self.window.app, "+0.000")
         .setSize(150, 36)
         .setPos(0, 60)
         .setFontSize(26)
         .setAlign("right")
         .setVisible(1)
     )
     self.lbl_lap = (
         Label(self.window.app, "0.000")
         .setSize(150, 32)
         .setPos(0, 86)
         .setFontSize(17)
         .setAlign("right")
         .setVisible(1)
     )
     self.btn_reset = (
         Button(self.window.app, self.onResetPress)
         .setPos(90, 68)
         .setSize(60, 20)
         .setText("Reset")
         .setAlign("center")
         .setBgColor(rgb([255, 12, 12], bg=True))
         .setVisible(0)
     )
     self.spin_row_height = ac.addSpinner(self.window.app, "")
     ac.setRange(self.spin_row_height, 20, 48)
     ac.setPosition(self.spin_row_height, 20, 28)
     ac.setValue(self.spin_row_height, self.__class__.ui_row_height)
     ac.addOnValueChangeListener(self.spin_row_height, self.onSpinRowHeightChanged)
     ac.setVisible(self.spin_row_height, 0)
     fontName = "Segoe UI"
     if ac.initFont(0, fontName, 0, 0) > 0:
         self.lbl_delta.setFont(fontName, 0, 1)
     self.cfg = Config("apps/python/prunn/", "config.ini")
     self.loadCFG()
Beispiel #2
0
	def init_finish(self):
		self.lbl_session_info.setVisible(0)
		self.lbl_session_title.setVisible(0)
		self.lbl_session_border.setVisible(0)
		self.lbl_session_single.setVisible(1)
		self.lbl_session_single.setText("").setBgColor(rgb([255, 255, 255], bg = True)).setBgOpacity(0.76).setVisible(1)		
		if len(self.finish_labels) > 0:			
			for label in self.finish_labels:				
				label.setVisible(1)
		else:
			height=self.rowHeight/3
			for i in range(0,3):			
				for j in range(0,8):
					if i % 2 == 1 and j < 7:
						self.finish_labels.append(Label(self.window.app).setSize(height, height).setPos(height + j*height*2, i*height).setBgColor(rgb([0, 0, 0], bg = True)).setBgOpacity(0.8).setVisible(1))
					elif i % 2 == 0:
						self.finish_labels.append(Label(self.window.app).setSize(height, height).setPos(j*height*2, i*height).setBgColor(rgb([0, 0, 0], bg = True)).setBgOpacity(0.8).setVisible(1))
			
		self.finish_initialised = True
Beispiel #3
0
	def colorFromCar(car):
		if car.find("bmw")>=0:
			return Colors.bmw()
		if car.find("ford")>=0 or car.find("shelby")>=0:
			return Colors.ford()
		if car.find("merc")>=0 or car.find("mazda")>=0:
			return Colors.mercedes()
		if car.find("ruf")>=0 or car.find("corvette")>=0 or car.find("lotus")>=0 or car.find("porsche")>=0:
			return Colors.corvette()
		if car.find("lamborghini")>=0 or car.find("pagani")>=0:
			return Colors.lamborghini()
		if car.find("ktm")>=0 or car.find("mclaren")>=0:
			return Colors.ktm()
		if car.find("nissan")>=0:
			return Colors.nissan()
		if car.find("alfa")>=0:
			return Colors.alfa()
		if car.find("honda")>=0:
			return rgb([214, 112, 157], bg = True)
		#if car.find("glickenhaus")>=0 or car.find("p4-5_2011")>=0:
		#	return rgb([0, 0, 0], bg = True)
		return Colors.default()	
Beispiel #4
0
	def white(bg = False):
		return rgb([255, 255, 255], bg = bg)
Beispiel #5
0
	def default():
		return rgb([191, 0, 0], bg = True)
Beispiel #6
0
	def pitColor(bg = False):
		return rgb([225, 225, 225], bg = bg)
Beispiel #7
0
	def grey(bg = False):
		return rgb([112, 112, 112], bg = bg)
Beispiel #8
0
	def green(bg = False):
		return rgb([32, 192, 31], bg = bg)
Beispiel #9
0
	def mercedes():
		return rgb([191, 191, 191], bg = True)
Beispiel #10
0
	def ford():
		#return rgb([0, 165, 255], bg = True)
		return rgb([62, 121, 218], bg = True)
Beispiel #11
0
	def bmw():
		#return rgb([42, 101, 198], bg = True)
		return rgb([40, 152, 211], bg = True)
Beispiel #12
0
 def __init__(self):   
     self.rowHeight=36     
     self.lastLapInPit = 0
     self.lastLapInvalidated = 0
     self.situation = 0
     self.carsCount=0
     self.lbl_timing_height = 0
     self.lbl_position_height = 0
     self.lbl_position_text=Value("")
     self.currentVehicule=Value(-1)
     self.ui_row_height = Value(-1)
     self.cursor=Value(False)
     self.fastestLap=Value(0)
     self.fastestLap2=Value(0)
     self.fastestPos=1
     self.lastLap=0
     self.lastLapStart=10000
     self.sector_delay = 5000
     self.lastTimeInPit=0
     self.visible_end = 0
     self.lastLapTime = 0
     self.nameOffset=0
     self.nameOffsetValue=Value(0)
     self.lapCanBeInvalidated=True
     self.fastestLapBorderActive = False
     self.firstLapStarted=False
     self.minLapCount=1
     self.sectorCount=-1
     self.lapTimesArray = []
     self.driversLap = []
     track=ac.getTrackName(0)
     config=ac.getTrackConfiguration(0)
     if track.find("ks_nordschleife")>=0 and config.find("touristenfahrten")>=0:
         self.minLapCount=0
         self.lastLapInvalidated = -1
     elif track.find("drag1000")>=0 or track.find("drag400")>=0:
         self.minLapCount=0
         self.lastLapInvalidated = -1
     self.fastestLapSectors = [0,0,0,0,0,0]
     self.session=Value(-1)
     #self.session.setValue()    
     self.window = Window(name="ACTV Info", icon=False, width=332, height=self.rowHeight*2, texture="")
     
     self.lbl_driver_name=Label(self.window.app,"").setSize(284, self.rowHeight).setPos(0, 0).setBgColor(rgb([20, 20, 20], bg = True)).setBgOpacity(0.8).setVisible(0)
     self.lbl_driver_name2=Label(self.window.app,"Loading").setSize(284, self.rowHeight).setPos(14, 0).setFontSize(26).setAlign("left").setVisible(0)
     self.lbl_driver_name_visible=Value()
     self.lbl_driver_name_visible_fin=Value(0)
     self.lbl_driver_name_text=Value("")
     self.lbl_position_visible=Value(0)
     self.lbl_timing_text=Value()
     self.race_fastest_lap=Value(0)
     #self.race_fastest_lap.setValue(0)
     self.race_fastest_lap_driver=Value()
     self.lbl_timing_visible=Value(0)
     self.lbl_timing=Label(self.window.app,"Loading").setSize(284, self.rowHeight).setPos(0, self.rowHeight).setFontSize(26).setAlign("left").setBgColor(rgb([55, 55, 55], bg = True)).setBgOpacity(0.64).setVisible(0)
     self.lbl_split=Label(self.window.app,"Loading").setSize(220, self.rowHeight).setPos(10, self.rowHeight).setFontSize(26).setAlign("right").setVisible(0)
     self.lbl_fastest_split=Label(self.window.app,"Loading").setSize(220, self.rowHeight).setPos(48, self.rowHeight).setFontSize(26).setAlign("right").setVisible(0)
     self.info_position=Label(self.window.app,"0").setSize(self.rowHeight, self.rowHeight).setPos(0, 0).setFontSize(26).setAlign("center").setBgColor(Colors.red(bg = True)).setBgOpacity(1).setVisible(0)
     self.info_position_lead=Label(self.window.app,"1").setSize(self.rowHeight, self.rowHeight).setPos(246, self.rowHeight).setFontSize(26).setAlign("center").setBgColor(Colors.red(bg = True)).setBgOpacity(1).setVisible(0)
     car = ac.getCarName(0)        
     self.lbl_border=Label(self.window.app,"").setSize(284, 1).setPos(0, self.rowHeight).setBgColor(Colors.colorFromCar(car)).setBgOpacity(0.7).setVisible(0)
     self.loadCFG()
     self.info_position.setAnimationSpeed("o", 0.1)
     self.info_position_lead.setAnimationSpeed("o", 0.1)
     self.lbl_split.setAnimationSpeed("a", 0.1)
     self.lbl_fastest_split.setAnimationSpeed("a", 0.1)
Beispiel #13
0
	def onUpdate(self, sim_info):		
		self.session_draw.setValue(sim_info.graphics.session)
		self.manageWindow()
		sim_info_status=sim_info.graphics.status
		if sim_info_status == 2: #LIVE
			if self.replay_initialised:
				self.lbl_session_single.setColor(rgb([255,255,255]))
			self.session.setValue(self.session_draw.value)
			sessionTimeLeft = sim_info.graphics.sessionTimeLeft
			if self.session.value < 2  :				
				#0 to -5000 show finish
				if sessionTimeLeft < 0 and sessionTimeLeft > -5000:
					if not self.finish_initialised:
						self.init_finish()
				else:
					if sessionTimeLeft < 0:
						sessionTimeLeft = 0	
					if self.finish_initialised:
						self.destoy_finish()
					self.lbl_session_info.setVisible(1)
					self.lbl_session_title.setVisible(1)
					self.lbl_session_single.setVisible(0)
					self.lbl_session_border.setVisible(1)
					if self.session.hasChanged():
						self.lbl_session_title.setSize(self.rowHeight, self.rowHeight)
						self.lbl_session_info.setSize(self.rowHeight*4, self.rowHeight).setPos(self.rowHeight, 0)						
						if self.session.value == 1 :
							self.lbl_session_title.setText("Q")
						else:
							self.lbl_session_title.setText("P")  
					self.lbl_session_info.setText(self.time_splitting(sessionTimeLeft))
					if not self.finish_initialised:
						if sim_info.graphics.flag == 2:
							self.lbl_session_info.setBgColor(Colors.yellow(True))
							self.lbl_session_info.setColor(Colors.black(),True)
							self.lbl_session_border.setBgColor(Colors.black(bg = True),True)
							self.lbl_session_title.setBgColor(Colors.black(bg = True),True)
						else:
							self.lbl_session_info.setBgColor(rgb([55, 55, 55], bg = True))
							self.lbl_session_info.setColor(Colors.white(),True)	
							self.lbl_session_border.setBgColor(Colors.red(bg = True),True)	
							self.lbl_session_title.setBgColor(Colors.red(bg = True),True)
					self.lbl_session_border.animate()		
					self.lbl_session_info.animate()
					self.lbl_session_title.animate()
			elif self.session.value == 2 :
				completed=0
				for x in range(ac.getCarsCount()): 
					c = ac.getCarState(x,acsys.CS.LapCount)
					if c > completed:
						completed=c     
				completed+=1    
				if self.numberOfLaps==0:
					self.numberOfLaps=sim_info.graphics.numberOfLaps
				if sessionTimeLeft > 1800000 or (sim_info.graphics.iCurrentTime == 0 and sim_info.graphics.completedLaps == 0):
					if self.finish_initialised:
						self.destoy_finish()
					self.lbl_session_info.setVisible(0)
					self.lbl_session_title.setVisible(0)
					self.lbl_session_single.setVisible(1)
					self.lbl_session_border.setVisible(1)
					self.lbl_session_single.setText(self.trackName)
				elif completed > self.numberOfLaps:
					if not self.finish_initialised:
						self.init_finish()
				elif completed == self.numberOfLaps:
					if self.finish_initialised:
						self.destoy_finish()
					self.lbl_session_info.setVisible(0)
					self.lbl_session_title.setVisible(0)
					self.lbl_session_single.setVisible(1)
					self.lbl_session_border.setVisible(1)
					self.lbl_session_single.setText("Final lap")
				else:
					if self.finish_initialised:
						self.destoy_finish()
					self.lbl_session_info.setVisible(0)
					self.lbl_session_title.setVisible(0)
					self.lbl_session_single.setVisible(1)
					self.lbl_session_border.setVisible(1)
					if self.session.hasChanged():
						self.lbl_session_info.setSize(self.rowHeight*4,  self.rowHeight).setPos(self.rowHeight, 0)
						self.lbl_session_title.setSize(self.rowHeight, self.rowHeight)
						self.lbl_session_title.setText("Lap")
					self.lbl_session_single.setText("{0} / {1}".format(completed,self.numberOfLaps))
				if not self.finish_initialised:
					if sim_info.graphics.flag == 2:
						self.lbl_session_single.setBgColor(Colors.yellow(True),True)
						self.lbl_session_single.setColor(Colors.black(),True)
						self.lbl_session_border.setBgColor(Colors.black(bg = True),True)
					else:
						self.lbl_session_single.setBgColor(rgb([55, 55, 55], bg = True),True)
						self.lbl_session_single.setColor(Colors.white(),True)
						self.lbl_session_border.setBgColor(Colors.red(bg = True),True)
				self.lbl_session_border.animate()		
				self.lbl_session_single.animate()
			else:
				self.lbl_session_info.setVisible(0)
				self.lbl_session_title.setVisible(0)
				self.lbl_session_single.setVisible(0)
				self.lbl_session_border.setVisible(0)
			
					
		elif sim_info_status == 1:
			replayTimeMultiplier=sim_info.graphics.replayTimeMultiplier
			if self.finish_initialised:
				self.destoy_finish()
			self.lbl_session_info.setVisible(0)
			self.lbl_session_title.setVisible(0)
			self.lbl_session_border.setVisible(1)
			self.lbl_session_single.setVisible(1)
			self.replay_initialised=True
			self.lbl_session_single.setColor(rgb([self.replay_rgb,self.replay_rgb,self.replay_rgb]))
			if self.replay_asc and replayTimeMultiplier > 0:
				self.replay_rgb += 2
			elif replayTimeMultiplier > 0:
				self.replay_rgb -= 2
			if self.replay_rgb < 100:
				self.replay_asc=True
			elif self.replay_rgb >= 246:
				self.replay_rgb=246
				self.replay_asc=False
			self.lbl_session_single.setText("REPLAY")
Beispiel #14
0
	def destoy_finish(self):
		#Destroy
		self.lbl_session_single.setBgColor(rgb([55, 55, 55], bg = True)).setBgOpacity(0.64).setVisible(0)
		for label in self.finish_labels:		
			label.setVisible(0)
		self.finish_initialised = False
Beispiel #15
0
	def __init__(self):
		self.finish_labels = []
		self.finish_initialised = False
		self.replay_initialised = False
		self.replay_asc = False
		self.replay_rgb=255
		self.session=Value()
		self.cursor=Value()
		self.cursor.setValue(False)
		self.session_draw=Value()
		self.session_draw.setValue(-1)
		self.ui_row_height = Value(-1)
		self.numberOfLaps=0
		self.rowHeight=36
		self.window = Window(name="ACTV Timer", icon=False, width=228, height=42, texture="")
		
		self.lbl_session_info=Label(self.window.app,"Loading").setSize(154, self.rowHeight).setPos(self.rowHeight, 0).setFontSize(26).setAlign("center").setBgColor(rgb([55, 55, 55], bg = True)).setBgOpacity(0.64)
		self.lbl_session_title=Label(self.window.app,"P").setSize(self.rowHeight, self.rowHeight).setPos(0, 0).setFontSize(26).setAlign("center").setBgColor(Colors.red(bg = True)).setBgOpacity(0.64)
		
		self.lbl_session_single=Label(self.window.app,"Loading").setSize(190, self.rowHeight).setPos(0, 0).setFontSize(26).setAlign("center").setBgColor(rgb([55, 55, 55], bg = True)).setBgOpacity(0.64).setColor(Colors.white()).setVisible(0)
		self.lbl_session_border=Label(self.window.app,"").setSize(154+self.rowHeight, 1).setPos(0, self.rowHeight+1).setBgColor(Colors.red(bg = True)).setBgOpacity(0.7).setVisible(1)
		
		trackFilePath = "content/tracks/"+ ac.getTrackName(0) + "/ui/"
		if ac.getTrackConfiguration(0) != "":
			trackFilePath += ac.getTrackConfiguration(0) + "/ui_track.json"
		else:			
			trackFilePath += "ui_track.json"
		if os.path.exists(trackFilePath):
			with open(trackFilePath) as data_file:    
				data = json.load(data_file)			
			self.trackName = data["name"]
			
			if len(self.trackName) > 12:	
				if self.trackName[12] == " " or self.trackName[12] == "-":
					self.trackName = self.trackName[:12]
				else:
					self.trackName = self.trackName[:12]
					#cut multiword
					space = self.trackName.rfind(" ")
					dash = self.trackName.rfind("-")
					if space > 0:
						self.trackName = self.trackName[:space]
					elif dash > 0:
						self.trackName = self.trackName[:dash]
			
		else:
			self.trackName = ac.getTrackName(0)
		if len(self.trackName) > 12:
			self.trackName = self.trackName[:12]
			
		self.loadCFG()
Beispiel #16
0
	def black(bg = False):
		if bg:
			return rgb([0, 0, 0], bg = bg)
		return rgb([12, 12, 12], bg = bg)
Beispiel #17
0
	def red(bg = False):
		return rgb([191, 0, 0], bg = bg)
Beispiel #18
0
	def corvette():
		return rgb([240, 171, 1], bg = True)
Beispiel #19
0
	def yellow(bg = False):
		return rgb([240, 171, 1], bg = bg)
Beispiel #20
0
	def lamborghini():
		return rgb([150, 191, 13], bg = True)
Beispiel #21
0
	def purple(bg = False):
		return rgb([135, 31, 144], bg = bg)
Beispiel #22
0
	def ktm():
		return rgb([250, 88, 0], bg = True)
Beispiel #23
0
	def orange(bg = False):
		return rgb([250, 88, 0], bg = bg)
Beispiel #24
0
	def nissan():
		return rgb([175, 71, 169], bg = True)
Beispiel #25
0
 def __init__(self): 
     self.rowHeight=36         
     self.lastLapInPit = 0
     self.lastLapInvalidated = 0
     self.lastLapShown = 0
     self.SpeedKMH=Value()
     self.SpeedMPH=Value()
     self.topSpeed=Value()
     self.userTopSpeed=Value()
     self.curTopSpeed=Value()
     self.curTopSpeedMPH=Value()
     self.currentVehicule=Value()
     self.currentVehicule.setValue(0)
     self.session=Value()
     self.session.setValue(-1)
     self.speedText=""
     self.trap=0
     self.userTrap=0
     self.time_end=0
     self.carsCount=0
     self.lapCanBeInvalidated=True
     self.relyOnEveryOne=True
     self.widget_visible=Value()
     self.cursor=Value()
     self.cursor.setValue(False)
     self.ui_row_height = Value(-1)
     self.window = Window(name="ACTV Speed Trap", icon=False, width=250, height=42, texture="")
     self.lbl_title = Label(self.window.app,"").setSize(self.rowHeight, self.rowHeight).setPos(0, 0).setFontSize(26).setAlign("center").setBgColor(rgb([12, 12, 12], bg = True)).setBgOpacity(0.72).setVisible(0)
     self.lbl_time = Label(self.window.app,"").setSize(172, self.rowHeight).setPos(38, 0).setFontSize(26).setAlign("center").setBgColor(rgb([55, 55, 55], bg = True)).setBgOpacity(0.64).setVisible(0)
     self.lbl_border = Label(self.window.app,"").setSize(210, 1).setPos(0, 39).setBgColor(Colors.red(bg = True)).setBgOpacity(0.7).setVisible(0)
     self.useMPH = False
     
     user_path = os.path.join(os.path.expanduser("~"), "Documents","Assetto Corsa","cfg")
     if os.path.exists(user_path + "/gameplay.ini"):
         self.checkMPH(user_path)
     else:
         user_path = "cfg"
         if os.path.exists(user_path + "/gameplay.ini"):
             self.checkMPH(user_path)
     self.loadCFG()
Beispiel #26
0
	def alfa():
		#return rgb([0, 154, 100], bg = True)
		return rgb([54, 172, 68], bg = True)