Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.66 KB | None | 0 0
  1.  
  2. import clr
  3. clr.AddReference("System.Core")
  4. import System
  5. clr.ImportExtensions(System.Linq)    
  6. from System.IO import File, Path
  7. from System.Threading import Thread
  8.  
  9. import json
  10.  
  11. #Method usually used validate the graphic execution.
  12. def __onStart(graphicOnAirItem, momentExecution, workFlowtype):
  13.    
  14.        
  15.     if workFlowtype.ToString() != "PreviewToProgram":
  16.         selectedConfig = Globals["SportsManagerDataVM"].SelectedConfiguration
  17.         if not selectedConfig or type(selectedConfig) == type(object()):
  18.             momentExecution.Message = "Select a configuration in 'AR Configurations' Form!!"
  19.             momentExecution.Cancel = True
  20.             return
  21.            
  22.         if not Globals["FootballHelper"].ValidateRGBs(Game):
  23.             momentExecution.Message = "Fill teams Equipment Colors!!"
  24.             momentExecution.Cancel = True
  25.             return
  26.  
  27.         selectedStats = Game.SelectedStats
  28.         if not selectedStats or selectedStats.Count < 1:
  29.             Core.StatusManager.Add("No Stat Selected!")
  30.             momentExecution.Cancel = True
  31.             return
  32.            
  33.         __SetExtraData(graphicOnAirItem.ExtraData, "SelectedStats", json.dumps(list(selectedStats)))
  34.         __SetExtraData(graphicOnAirItem.ExtraData, "StatIndex", "1")
  35.        
  36.    
  37. def __SetExtraData(extradata, key, value):
  38.     if not extradata.ContainsKey(key):
  39.         extradata.Add(key, value)
  40.     else:
  41.         extradata[key] = value
  42.        
  43. #Method called after the graphic goes on air
  44. def __afterProgram(graphicOnAirItem, momentExecution)
  45.     Scheduler.Add(Script.RefName, "__Continue", Project.Name, graphicOnAirItem, 1500, 0, Script.RefName)
  46.    
  47.    
  48. def __Continue(graphicOnAirItem, args):
  49.     graphicOnAirItem = graphicOnAirItem[0] 
  50.    
  51.     renders = graphicOnAirItem.GraphicsEngines
  52.     scenes = []
  53.     for render in renders:
  54.         scene = filter(lambda x: x.Name == graphicOnAirItem.Scene.Name, render.Scenes)
  55.         if scene:
  56.             scenes.append(scene[0])
  57.            
  58.        
  59.     stats = json.loads(graphicOnAirItem.ExtraData["SelectedStats"].ToString())
  60.     statIndex = int(graphicOnAirItem.ExtraData["StatIndex"].ToString())
  61.    
  62.     statsCount = stats.Count + 1
  63.     statsDifference = statsCount - statIndex
  64.    
  65.     if statsDifference <= 0: return
  66.                
  67.     for i in range(statsDifference):
  68.        
  69.         for scene in scenes:
  70.             scene.Rewind("Change")             
  71.            
  72.         if UserInteraction.ShowMessageBoxYesNo("Selected Stats AR", "SHOW NEXT?").ToString() != "Yes": return
  73.            
  74.         momentExecution = IntelliflowController.GetData(graphicOnAirItem)
  75.         if momentExecution.Cancel:
  76.             Core.StatusManager.Add(momentExecution.Message)
  77.             return
  78.        
  79.         IntelliflowController.FillData(graphicOnAirItem, graphicOnAirItem.GraphicTemplate.ViewData)
  80.        
  81.         for scene in scenes:
  82.             scene.Show("Change")
  83.        
  84.         for scene in scenes:
  85.             scene.Wait("Change")   
  86.            
  87.  
  88.  
  89. #Method used to fill the graphic view data.
  90. def __getData(graphicOnAirItem, viewBag, momentExecution):
  91.    
  92.     hometeam = Game.HomeTeam
  93.     awayteam = Game.AwayTeam
  94.    
  95.     homeRGB = Globals["FootballHelper"].GetTeamRGB(hometeam)
  96.     awayRGB = Globals["FootballHelper"].GetTeamRGB(awayteam)
  97.    
  98.     viewBag.SetString("vHomeColorRGB", homeRGB)
  99.     viewBag.SetString("vAwayColorRGB", awayRGB)
  100.    
  101.     selectedConfig = Globals["SportsManagerDataVM"].SelectedConfiguration
  102.     viewBag.SetVisibility("vHelpersVisibility", Globals["SportsManagerDataVM"].GraphicsHelper)
  103.     viewBag.SetPositionX("vPositionX", selectedConfig.GraphicPositionX.ToString().replace(",", "."))
  104.     viewBag.SetPositionZ("vPositionZ", selectedConfig.GraphicPositionZ.ToString().replace(",", "."))
  105.     viewBag.SetPositionZ("vFrontPanelPosition_Z", selectedConfig.FrontPanelPosition_Z.ToString().replace(",", "."))
  106.     viewBag.SetPositionY("vBackPanelPosition_Y", selectedConfig.BackPanelPosition_Y.ToString().replace(",", "."))
  107.     viewBag.SetPositionZ("vBackPanelPosition_Z", selectedConfig.BackPanelPosition_Z.ToString().replace(",", "."))
  108.     viewBag.SetFloat("vBackPanelScale", selectedConfig.BackPanelScale.ToString().replace(",", "."))
  109.     viewBag.SetFloat("vPitchAlpha", selectedConfig.Alpha.ToString().replace(",", "."))
  110.    
  111.     viewBag.SetImage("lgHomeTeamBadgeType02", "Images/TacticalTeamBadges/Home/%s.png" %hometeam.RefName)
  112.     viewBag.SetImage("lgAwayTeamBadgeType02", "Images/TacticalTeamBadges/Away/%s.png" %awayteam.RefName)
  113.     viewBag.SetImage("lgHomeTeamNameType02", "Images/TacticalTeamNames/Home/%s.png" %hometeam.RefName)
  114.     viewBag.SetImage("lgAwayTeamNameType02", "Images/TacticalTeamNames/Away/%s.png" %awayteam.RefName)
  115.    
  116.     stats = json.loads(graphicOnAirItem.ExtraData["SelectedStats"].ToString())
  117.     statIndex = int(graphicOnAirItem.ExtraData["StatIndex"].ToString())
  118.     selectedStat = stats[statIndex-1]
  119.    
  120.     statIndex += 1
  121.    
  122.     __SetExtraData(graphicOnAirItem.ExtraData, "StatIndex", statIndex.ToString())
  123.    
  124.     viewBag.SetTranslatedText("tStatName", "{{%s}}.{{AR TEAMCOMPARE}}|filter:ToUpper "%selectedStat)
  125.     viewBag.SetTranslatedText("tFrontPanelStatName", "{{%s}}.{{AR TEAMCOMPARE}}|filter:ToUpper "%selectedStat)
  126.    
  127.     viewBag.SetString("tHomeScoreColor", "WHITE")
  128.     viewBag.SetString("tAwayScoreColor", "WHITE")
  129.     viewBag.SetString("tSeparator", "-")
  130.    
  131.     viewBag.SetVisibility("vLeftPieVisibility", False)
  132.     viewBag.SetVisibility("vRightPieVisibility", False)
  133.      
  134.    
  135.     homeValue = int(getattr(hometeam.Stats, selectedStat))
  136.     awayValue = int(getattr(awayteam.Stats, selectedStat))
  137.    
  138.    
  139.     if selectedStat == "YellowCards" or selectedStat == "RedCards":
  140.         if selectedStat == "YellowCards":
  141.             if int(getattr(hometeam.Stats, "DoubleYellowCards")) > homeValue:
  142.                 homeValue += 1
  143.                 Core.StatusManager.Add("Verify the GameMovie for Home Team")
  144.            
  145.             if int(getattr(awayteam.Stats, "DoubleYellowCards")) > awayValue:
  146.                 awayValue += 1
  147.                 Core.StatusManager.Add("Verify the GameMovie for Away Team")
  148.                
  149.         if selectedStat == "RedCards":
  150.             homeValue += int(getattr(hometeam.Stats, "DoubleYellowCards"))
  151.             awayValue += int(getattr(awayteam.Stats, "DoubleYellowCards"))
  152.    
  153.     totalStatValue = homeValue + awayValue
  154.     if not totalStatValue:
  155.         momentExecution.Message = "No values for '%s' stat" % selectedStat
  156.         momentExecution.Cancel = True
  157.         return
  158.            
  159.     homeStatValue = (homeValue * 10) / max([homeValue, awayValue])
  160.     awayStatValue = (awayValue * 10) / max([homeValue, awayValue])
  161.    
  162.     viewBag.SetInt("vHomeValue", homeValue)
  163.     viewBag.SetInt("vAwayValue", awayValue)
  164.    
  165.     viewBag.SetFloat("vHomeValueYellowBar", homeStatValue if homeStatValue else 0.3)
  166.     viewBag.SetFloat("vAwayValueYellowBar", awayStatValue if awayStatValue else 0.3)   
  167.    
  168.     viewBag.SetFloat("vStatType", 2)
  169.     viewBag.SetFloat("vFrontPanelType", 2)
  170.     viewBag.SetFloat("vBackPanelType", 2)
  171.     viewBag.SetVisibility("vPlayersVisibility", False)
  172.    
  173.  
  174.  
  175. def __changeARValues():
  176.    
  177.     selectedConfig = Globals["SportsManagerDataVM"].SelectedConfiguration
  178.     if not selectedConfig or type(selectedConfig) == type(object()): return
  179.    
  180.     graphicsOnAir = IntelliflowController.GetGraphicsOnAirByName(Script.Name)
  181.    
  182.     if not graphicsOnAir:
  183.         return
  184.    
  185.     viewBag = IntelliflowController.CreateViewBag()
  186.    
  187.     viewBag.SetVisibility("vHelpersVisibility", Globals["SportsManagerDataVM"].GraphicsHelper)
  188.    
  189.     viewBag.SetPositionX("vPositionX", selectedConfig.GraphicPositionX.ToString().replace(",", "."))
  190.     viewBag.SetPositionZ("vPositionZ", selectedConfig.GraphicPositionZ.ToString().replace(",", "."))
  191.     viewBag.SetPositionZ("vFrontPanelPosition_Z", selectedConfig.FrontPanelPosition_Z.ToString().replace(",", "."))
  192.     viewBag.SetPositionY("vBackPanelPosition_Y", selectedConfig.BackPanelPosition_Y.ToString().replace(",", "."))
  193.     viewBag.SetPositionZ("vBackPanelPosition_Z", selectedConfig.BackPanelPosition_Z.ToString().replace(",", "."))
  194.     viewBag.SetFloat("vBackPanelScale", selectedConfig.BackPanelScale.ToString().replace(",", "."))
  195.     viewBag.SetFloat("vPitchAlpha", selectedConfig.Alpha.ToString().replace(",", "."))
  196.    
  197.    
  198.     for graphic in graphicsOnAir:
  199.         IntelliflowController.FillData(graphic, viewBag, True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement