Advertisement
aleosiss

UIDebugStateMachines.uc

Nov 10th, 2017
695
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // maybe I shouldn't put all of my debugging code in this class? :thinking:
  2. // credits to robojumper for everything until the line saying 'Aleosiss code to follow'
  3.  
  4. class UIDebugStateMachines extends UIScreen;
  5.  
  6. struct UnitTextMapping
  7. {
  8.     var name ActorName;
  9.     var UIText Text;
  10. };
  11.  
  12. var array<UnitTextMapping> Texts;
  13.  
  14. static function UIDebugStateMachines GetThisScreen()
  15. {
  16.     local UIDebugStateMachines Scr;
  17.     foreach `TACTICALGRI.AllActors(class'UIDebugStateMachines', Scr)
  18.     {
  19.         return Scr;
  20.     }
  21.     Scr = `PRES.Spawn(class'UIDebugStateMachines', `PRES);
  22.     Scr.InitScreen(XComPlayerController(`PRES.GetALocalPlayerController()), `PRES.Get2DMovie());
  23.     `PRES.Get2DMovie().LoadScreen(Scr);
  24.     return Scr;
  25. }
  26.  
  27.  
  28. event Tick(float fDeltaTime)
  29. {
  30.     local XGUnit Unit;
  31.     if (!bIsVisible)
  32.     {
  33.         return;
  34.     }
  35.     foreach DynamicActors(class'XGUnit', Unit)
  36.     {
  37.         UpdateFlagForUnit(Unit);
  38.     }
  39. }
  40.  
  41. simulated function UpdateFlagForUnit(XGUnit Unit)
  42. {
  43.     local int i;
  44.     local UnitTextMapping NewMapping;
  45.     local vector2d TextLoc;
  46.     i = Texts.Find('ActorName', Unit.Name);
  47.     if (i == INDEX_NONE)
  48.     {
  49.         `log("Created flag for" @ Unit.Name);
  50.         i = Texts.Length;
  51.         NewMapping.ActorName = Unit.Name;
  52.         NewMapping.Text = Spawn(class'UIText', self).InitText();
  53.         Texts.AddItem(NewMapping);
  54.     }
  55.     if (!Unit.IsVisible())
  56.     {
  57.         Texts[i].Text.Hide();
  58.     }
  59.     else
  60.     {
  61.         if (class'UIUtilities'.static.IsOnscreen(Unit.GetPawn().GetHeadshotLocation(), TextLoc))
  62.         {
  63.             Texts[i].Text.Show();
  64.             Texts[i].Text.SetNormalizedPosition(TextLoc);
  65.             Texts[i].Text.SetText("<font color='#ffffff'>"$ Unit.Name @ Unit.GetPawn().arrPawnPerkContent[0].GetAbilityName() $ "</font>");
  66.             //Texts[i].Text.SetText(Unit.Name @ Unit.IdleStateMachine.GetStateName());
  67.         }
  68.         else
  69.         {
  70.             Texts[i].Text.Hide();
  71.         }
  72.     }
  73. }
  74.  
  75.  
  76. // Aleosiss code to follow
  77. // Trying to determine if my PerkContents are even managing to make it onto my units!
  78. simulated static function PrintOutPerkContentsForXComUnits() {
  79.     local XGUnit Unit;
  80.    
  81.     foreach `TACTICALGRI.AllActors(class'XGUnit', Unit)
  82.     {
  83.         if(Unit.GetTeam() == eTeam_XCom) {
  84.             PrintOutPerkContentsForUnit(Unit);
  85.         }
  86.     }
  87. }
  88.  
  89. simulated static function PrintOutPerkContentsForUnit(XGUnit Unit) {
  90.     local XComUnitPawn UnitPawn;
  91.     local XComPerkContent IteratorPerkContent;
  92.  
  93.     UnitPawn = Unit.GetPawn();
  94.     `log(Unit.Name $ " -------" $ XComGameState_Unit(`XCOMHISTORY.GetGameStateForObjectID(UnitPawn.m_kGameUnit.ObjectID)).GetFullName());
  95.     if(UnitPawn.arrPawnPerkDefinitions.Length > 0)
  96.         `log("This UnitPawn has "$ UnitPawn.arrPawnPerkDefinitions.Length $" Perks defined, and here they are: ");
  97.     else `log("This UnitPawn has no Perks defined.");
  98.     foreach UnitPawn.arrPawnPerkDefinitions(IteratorPerkContent) {
  99.         `log(IteratorPerkContent.Name);
  100.     }
  101. }
  102.  
  103. simulated static function PrintOutLoadedPerkContents() {
  104.     local XComContentManager Content;
  105.     local XComPerkContent PerkDef;
  106.    
  107.     Content = `CONTENT;
  108.  
  109.     `LOG("Printing all loaded PerkContent names:");
  110.     foreach Content.PerkContent( PerkDef ) {
  111.         `LOG(PerkDef.Name);
  112.     }
  113. }
  114.  
  115. simulated static function TryForceAppendAbilityPerks(name AbilityName) {
  116.     local XComUnitPawnNativeBase UnitPawnNativeBase;
  117.    
  118.     UnitPawnNativeBase = XComTacticalController(class'WorldInfo'.static.GetWorldInfo().GetALocalPlayerController()).GetActiveUnitPawn();
  119.     `CONTENT.AppendAbilityPerks(AbilityName, UnitPawnNativeBase);
  120. }
  121.  
  122. simulated static function TryForceCachePerkContent(name AbilityName) {
  123.     `CONTENT.CachePerkContent(AbilityName);
  124. }
  125.  
  126. simulated static function TryForceBuildPerkContentCache() {
  127.     `CONTENT.BuildPerkPackageCache();
  128. }
  129.  
  130. defaultproperties
  131. {
  132.     bIsVisible=false
  133.     TickGroup=TG_PostAsyncWork
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement