def create_flatbuffer(self) -> Builder: builder = Builder(1000) name_dict = {} player_config_offsets = [ pc.write_to_flatbuffer(builder, name_dict) for pc in self.player_configs ] MatchSettingsFlat.MatchSettingsStartPlayerConfigurationsVector( builder, len(player_config_offsets)) for i in reversed(range(0, len(player_config_offsets))): builder.PrependUOffsetTRelative(player_config_offsets[i]) player_list_offset = builder.EndVector(len(player_config_offsets)) mutator_settings_offset = self.mutators.write_to_flatbuffer(builder) if self.game_map in game_map_dict: upk = game_map_dict[self.game_map] map_index = map_types.index(self.game_map) else: self.logger.info( f"Did not recognize {self.game_map}, hoping it's new or a custom map!" ) upk = self.game_map map_index = -1 upk_offset = builder.CreateString(upk) MatchSettingsFlat.MatchSettingsStart(builder) MatchSettingsFlat.MatchSettingsAddPlayerConfigurations( builder, player_list_offset) MatchSettingsFlat.MatchSettingsAddGameMode( builder, game_mode_types.index(self.game_mode)) MatchSettingsFlat.MatchSettingsAddGameMap(builder, map_index) MatchSettingsFlat.MatchSettingsAddGameMapUpk(builder, upk_offset) MatchSettingsFlat.MatchSettingsAddSkipReplays(builder, self.skip_replays) MatchSettingsFlat.MatchSettingsAddInstantStart(builder, self.instant_start) MatchSettingsFlat.MatchSettingsAddMutatorSettings( builder, mutator_settings_offset) MatchSettingsFlat.MatchSettingsAddExistingMatchBehavior( builder, index_or_zero(existing_match_behavior_types, self.existing_match_behavior)) MatchSettingsFlat.MatchSettingsAddEnableLockstep( builder, self.enable_lockstep) MatchSettingsFlat.MatchSettingsAddEnableRendering( builder, self.enable_rendering) MatchSettingsFlat.MatchSettingsAddEnableStateSetting( builder, self.enable_state_setting) MatchSettingsFlat.MatchSettingsAddAutoSaveReplay( builder, self.auto_save_replay) ms_offset = MatchSettingsFlat.MatchSettingsEnd(builder) builder.Finish(ms_offset) return builder
def create_match_settings(self) -> MatchSettings: match_settings = MatchSettings() name_dict = {} for index, player_config in enumerate(self.player_configs): player_config.write(match_settings.player_configuration[index], name_dict) match_settings.num_players = self.num_players match_settings.game_mode = game_mode_types.index(self.game_mode) match_settings.game_map = map_types.index(self.game_map) match_settings.skip_replays = self.skip_replays match_settings.instant_start = self.instant_start self.mutators.write(match_settings.mutator_settings) return match_settings
def create_match_settings(self) -> MatchSettings: match_settings = MatchSettings() name_dict = {} for index, player_config in enumerate(self.player_configs): player_config.write(match_settings.player_configuration[index], name_dict) match_settings.num_players = self.num_players match_settings.game_mode = game_mode_types.index(self.game_mode) match_settings.game_map = map_types.index(self.game_map) match_settings.skip_replays = self.skip_replays match_settings.instant_start = self.instant_start match_settings.existing_match_behavior = index_or_zero(existing_match_behavior_types, self.existing_match_behavior) match_settings.enable_lockstep = self.enable_lockstep self.mutators.write(match_settings.mutator_settings) return match_settings