def __bld_drv(dct): drv = Driver( DriverProps( DriverInfo(dct['img_idx'], dct['name'], dct['speed'], dct['adherence'], dct['stability']), dct['car_name'], dct['f_engine'], dct['f_tires'], dct['f_suspensions'])) return drv
def __season_props(gameprops, car, player_car_names, cars_number, single_race, tun_engine, tun_tires, tun_suspensions, race_start_time, countdown_seconds): wpn2img = { 'Rocket': 'rocketfront', 'RearRocket': 'rocketrear', 'Turbo': 'turbo', 'RotateAll': 'turn', 'Mine': 'mine' } drivers = [] for drv_info, car_name in zip(gameprops.drivers_info, gameprops.cars_names): drivers += [Driver(DriverProps(drv_info, car_name, 0, 0, 0))] cars = player_car_names[:] + gameprops.cars_names cars = list(OrderedDict.fromkeys(cars))[:int(cars_number)] # cars = list(dict.fromkeys(cars))[:int(cars_number)] # python 3.6 return SeasonProps(gameprops, cars, car, player_car_names, drivers, [ 'assets/images/tuning/engine.txo', 'assets/images/tuning/tires.txo', 'assets/images/tuning/suspensions.txo' ], 'assets/fonts/Hanken-Book.ttf', 'assets/sfx/countdown.ogg', single_race, wpn2img, tun_engine, tun_tires, tun_suspensions, race_start_time, countdown_seconds)
def build_race_props(self, car_path, drivers, track_path, keys, joystick, sounds): wheel_names = [[ 'EmptyWheelFront', 'EmptyWheelFront.001', 'EmptyWheelRear', 'EmptyWheelRear.001' ], [ 'EmptyWheel', 'EmptyWheel.001', 'EmptyWheel.002', 'EmptyWheel.003' ]] wheel_gfx_names = ['wheelfront', 'wheelrear', 'wheel'] wheel_gfx_names = [ eng.curr_path + 'assets/models/cars/%s/' + elm for elm in wheel_gfx_names ] tuning = self.mdt.logic.season.tuning.tunings[car_path] def get_driver(car): for driver in drivers: if driver[3] == car: return driver driver = get_driver(car_path) driver_engine, driver_tires, driver_suspensions = driver[2] drivers_dct = {} for driver in drivers: d_s = driver[2] driver_props = DriverProps(str(driver[0]), d_s[0], d_s[1], d_s[2]) drv = Driver(driver_props) drivers_dct[driver[3]] = drv tr_file_path = 'assets/models/tracks/%s/track.yml' % track_path with open(eng.curr_path + tr_file_path) as track_file: music_name = load(track_file)['music'] music_path = 'assets/music/%s.ogg' % music_name corner_names = ['topleft', 'topright', 'bottomright', 'bottomleft'] corner_names = ['Minimap' + crn for crn in corner_names] col_dct = { 'kronos': (0, 0, 1, 1), 'themis': (1, 0, 0, 1), 'diones': (1, 1, 1, 1), 'iapeto': (1, 1, 0, 1), 'phoibe': (.6, .6, 1, 1), 'rea': (0, 0, .6, 1) } with open(eng.curr_path + tr_file_path) as track_file: track_cfg = load(track_file) camera_vec = track_cfg['camera_vector'] shadow_src = track_cfg['shadow_source'] laps = track_cfg['laps'] def sign_cb(parent): thanks = open(eng.curr_path + 'assets/thanks.txt').readlines() shuffle(thanks) text = '\n\n'.join(thanks[:3]) txt = OnscreenText(text, parent=parent, scale=.2, fg=(0, 0, 0, 1), pos=(.245, 0)) bounds = lambda: txt.getTightBounds() while bounds()[1][0] - bounds()[0][0] > .48: scale = txt.getScale()[0] txt.setScale(scale - .01, scale - .01) bounds = txt.getTightBounds() height = bounds[1][2] - bounds[0][2] txt.setZ(.06 + height / 2) race_props = RaceProps( keys, joystick, sounds, (.75, .75, .25, 1), (.75, .75, .75, 1), 'assets/fonts/Hanken-Book.ttf', 'assets/models/cars/%s/capsule', 'Capsule', 'assets/models/cars', eng.curr_path + 'assets/models/cars/%s/phys.yml', wheel_names, tuning.engine, tuning.tires, tuning.suspensions, 'Road', 'assets/models/cars/%s/car', [ 'assets/models/cars/%s/cardamage1', 'assets/models/cars/%s/cardamage2' ], wheel_gfx_names, 'assets/particles/sparks.ptf', drivers_dct, self.mdt.options['development']['shaders'], music_path, 'assets/models/tracks/%s/collision' % track_path, ['Road', 'Offroad'], ['Wall'], ['Goal', 'Slow', 'Respawn', 'PitStop'], corner_names, ['Waypoints', 'Waypoint', 'prev'], self.mdt.options['development']['show_waypoints'], self.mdt.options['development']['weapons'], ['Weaponboxs', 'EmptyWeaponboxAnim'], 'Start', track_path, 'tracks/' + track_path, 'track', 'Empty', 'Anim', 'omni', sign_cb, 'EmptyNameBillboard4Anim', 'assets/images/minimaps/%s.png' % track_path, 'assets/images/minimaps/car_handle.png', col_dct, camera_vec, shadow_src, laps, 'assets/models/weapons/rocket/rocket', 'assets/models/weapons/bonus/WeaponboxAnim', 'Anim', [ 'kronos', 'themis', 'diones', 'iapeto', 'phoibe', 'rea' ], self.mdt.options['development']['ai'], InGameMenu, Utils().menu_args, 'assets/images/drivers/driver%s_sel.png', 'assets/images/cars/%s_sel.png', [ 'https://www.facebook.com/sharer/sharer.php?u=ya2.it/yorg', 'https://twitter.com/share?text=I%27ve%20achieved%20{time}' '%20in%20the%20{track}%20track%20on%20Yorg%20by%20%40ya2tech' '%21&hashtags=yorg', 'https://plus.google.com/share?url=ya2.it/yorg', 'https://www.tumblr.com/widgets/share/tool?url=ya2.it' ], 'assets/images/icons/%s_png.png', 'Respawn', 'PitStop', 'Wall', 'Goal', 'Bonus', ['Road', 'Offroad'], [ 'kronos', 'themis', 'diones', 'iapeto', 'phoibe', 'rea' ], car_path) #todo compute the grid return race_props