Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import clr
- clr.AddReference("System.Core")
- import System
- clr.ImportExtensions(System.Linq)
- from System.IO import File, Path
- from System.Threading import Thread
- import json
- #Method usually used validate the graphic execution.
- def __onStart(graphicOnAirItem, momentExecution, workFlowtype):
- if workFlowtype.ToString() != "PreviewToProgram":
- selectedConfig = Globals["SportsManagerDataVM"].SelectedConfiguration
- if not selectedConfig or type(selectedConfig) == type(object()):
- momentExecution.Message = "Select a configuration in 'AR Configurations' Form!!"
- momentExecution.Cancel = True
- return
- if not Globals["FootballHelper"].ValidateRGBs(Game):
- momentExecution.Message = "Fill teams Equipment Colors!!"
- momentExecution.Cancel = True
- return
- selectedStats = Game.SelectedStats
- if not selectedStats or selectedStats.Count < 1:
- Core.StatusManager.Add("No Stat Selected!")
- momentExecution.Cancel = True
- return
- __SetExtraData(graphicOnAirItem.ExtraData, "SelectedStats", json.dumps(list(selectedStats)))
- __SetExtraData(graphicOnAirItem.ExtraData, "StatIndex", "1")
- def __SetExtraData(extradata, key, value):
- if not extradata.ContainsKey(key):
- extradata.Add(key, value)
- else:
- extradata[key] = value
- #Method called after the graphic goes on air
- def __afterProgram(graphicOnAirItem, momentExecution):
- Scheduler.Add(Script.RefName, "__Continue", Project.Name, graphicOnAirItem, 1500, 0, Script.RefName)
- def __Continue(graphicOnAirItem, args):
- graphicOnAirItem = graphicOnAirItem[0]
- renders = graphicOnAirItem.GraphicsEngines
- scenes = []
- for render in renders:
- scene = filter(lambda x: x.Name == graphicOnAirItem.Scene.Name, render.Scenes)
- if scene:
- scenes.append(scene[0])
- stats = json.loads(graphicOnAirItem.ExtraData["SelectedStats"].ToString())
- statIndex = int(graphicOnAirItem.ExtraData["StatIndex"].ToString())
- statsCount = stats.Count + 1
- statsDifference = statsCount - statIndex
- if statsDifference <= 0: return
- for i in range(statsDifference):
- for scene in scenes:
- scene.Rewind("Change")
- if UserInteraction.ShowMessageBoxYesNo("Selected Stats AR", "SHOW NEXT?").ToString() != "Yes": return
- momentExecution = IntelliflowController.GetData(graphicOnAirItem)
- if momentExecution.Cancel:
- Core.StatusManager.Add(momentExecution.Message)
- return
- IntelliflowController.FillData(graphicOnAirItem, graphicOnAirItem.GraphicTemplate.ViewData)
- for scene in scenes:
- scene.Show("Change")
- for scene in scenes:
- scene.Wait("Change")
- #Method used to fill the graphic view data.
- def __getData(graphicOnAirItem, viewBag, momentExecution):
- hometeam = Game.HomeTeam
- awayteam = Game.AwayTeam
- homeRGB = Globals["FootballHelper"].GetTeamRGB(hometeam)
- awayRGB = Globals["FootballHelper"].GetTeamRGB(awayteam)
- viewBag.SetString("vHomeColorRGB", homeRGB)
- viewBag.SetString("vAwayColorRGB", awayRGB)
- selectedConfig = Globals["SportsManagerDataVM"].SelectedConfiguration
- viewBag.SetVisibility("vHelpersVisibility", Globals["SportsManagerDataVM"].GraphicsHelper)
- viewBag.SetPositionX("vPositionX", selectedConfig.GraphicPositionX.ToString().replace(",", "."))
- viewBag.SetPositionZ("vPositionZ", selectedConfig.GraphicPositionZ.ToString().replace(",", "."))
- viewBag.SetPositionZ("vFrontPanelPosition_Z", selectedConfig.FrontPanelPosition_Z.ToString().replace(",", "."))
- viewBag.SetPositionY("vBackPanelPosition_Y", selectedConfig.BackPanelPosition_Y.ToString().replace(",", "."))
- viewBag.SetPositionZ("vBackPanelPosition_Z", selectedConfig.BackPanelPosition_Z.ToString().replace(",", "."))
- viewBag.SetFloat("vBackPanelScale", selectedConfig.BackPanelScale.ToString().replace(",", "."))
- viewBag.SetFloat("vPitchAlpha", selectedConfig.Alpha.ToString().replace(",", "."))
- viewBag.SetImage("lgHomeTeamBadgeType02", "Images/TacticalTeamBadges/Home/%s.png" %hometeam.RefName)
- viewBag.SetImage("lgAwayTeamBadgeType02", "Images/TacticalTeamBadges/Away/%s.png" %awayteam.RefName)
- viewBag.SetImage("lgHomeTeamNameType02", "Images/TacticalTeamNames/Home/%s.png" %hometeam.RefName)
- viewBag.SetImage("lgAwayTeamNameType02", "Images/TacticalTeamNames/Away/%s.png" %awayteam.RefName)
- stats = json.loads(graphicOnAirItem.ExtraData["SelectedStats"].ToString())
- statIndex = int(graphicOnAirItem.ExtraData["StatIndex"].ToString())
- selectedStat = stats[statIndex-1]
- statIndex += 1
- __SetExtraData(graphicOnAirItem.ExtraData, "StatIndex", statIndex.ToString())
- viewBag.SetTranslatedText("tStatName", "{{%s}}.{{AR TEAMCOMPARE}}|filter:ToUpper "%selectedStat)
- viewBag.SetTranslatedText("tFrontPanelStatName", "{{%s}}.{{AR TEAMCOMPARE}}|filter:ToUpper "%selectedStat)
- viewBag.SetString("tHomeScoreColor", "WHITE")
- viewBag.SetString("tAwayScoreColor", "WHITE")
- viewBag.SetString("tSeparator", "-")
- viewBag.SetVisibility("vLeftPieVisibility", False)
- viewBag.SetVisibility("vRightPieVisibility", False)
- homeValue = int(getattr(hometeam.Stats, selectedStat))
- awayValue = int(getattr(awayteam.Stats, selectedStat))
- if selectedStat == "YellowCards" or selectedStat == "RedCards":
- if selectedStat == "YellowCards":
- if int(getattr(hometeam.Stats, "DoubleYellowCards")) > homeValue:
- homeValue += 1
- Core.StatusManager.Add("Verify the GameMovie for Home Team")
- if int(getattr(awayteam.Stats, "DoubleYellowCards")) > awayValue:
- awayValue += 1
- Core.StatusManager.Add("Verify the GameMovie for Away Team")
- if selectedStat == "RedCards":
- homeValue += int(getattr(hometeam.Stats, "DoubleYellowCards"))
- awayValue += int(getattr(awayteam.Stats, "DoubleYellowCards"))
- totalStatValue = homeValue + awayValue
- if not totalStatValue:
- momentExecution.Message = "No values for '%s' stat" % selectedStat
- momentExecution.Cancel = True
- return
- homeStatValue = (homeValue * 10) / max([homeValue, awayValue])
- awayStatValue = (awayValue * 10) / max([homeValue, awayValue])
- viewBag.SetInt("vHomeValue", homeValue)
- viewBag.SetInt("vAwayValue", awayValue)
- viewBag.SetFloat("vHomeValueYellowBar", homeStatValue if homeStatValue else 0.3)
- viewBag.SetFloat("vAwayValueYellowBar", awayStatValue if awayStatValue else 0.3)
- viewBag.SetFloat("vStatType", 2)
- viewBag.SetFloat("vFrontPanelType", 2)
- viewBag.SetFloat("vBackPanelType", 2)
- viewBag.SetVisibility("vPlayersVisibility", False)
- def __changeARValues():
- selectedConfig = Globals["SportsManagerDataVM"].SelectedConfiguration
- if not selectedConfig or type(selectedConfig) == type(object()): return
- graphicsOnAir = IntelliflowController.GetGraphicsOnAirByName(Script.Name)
- if not graphicsOnAir:
- return
- viewBag = IntelliflowController.CreateViewBag()
- viewBag.SetVisibility("vHelpersVisibility", Globals["SportsManagerDataVM"].GraphicsHelper)
- viewBag.SetPositionX("vPositionX", selectedConfig.GraphicPositionX.ToString().replace(",", "."))
- viewBag.SetPositionZ("vPositionZ", selectedConfig.GraphicPositionZ.ToString().replace(",", "."))
- viewBag.SetPositionZ("vFrontPanelPosition_Z", selectedConfig.FrontPanelPosition_Z.ToString().replace(",", "."))
- viewBag.SetPositionY("vBackPanelPosition_Y", selectedConfig.BackPanelPosition_Y.ToString().replace(",", "."))
- viewBag.SetPositionZ("vBackPanelPosition_Z", selectedConfig.BackPanelPosition_Z.ToString().replace(",", "."))
- viewBag.SetFloat("vBackPanelScale", selectedConfig.BackPanelScale.ToString().replace(",", "."))
- viewBag.SetFloat("vPitchAlpha", selectedConfig.Alpha.ToString().replace(",", "."))
- for graphic in graphicsOnAir:
- IntelliflowController.FillData(graphic, viewBag, True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement