dooferorg

Civ6 AutoQueue_GameScript.lua

Oct 3rd, 2020
1,973
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.08 KB | None | 0 0
  1. -- If New Cities start with AutoQueue Enabled?
  2. local StartsEnabled:boolean = true;
  3.  
  4. function IsLocalPlayer(PlayerID:number)
  5.     local LocalPlayer = Game.GetLocalPlayer();
  6.    
  7.     if (LocalPlayer == PlayerID) then
  8.         return true;
  9.     else
  10.         return false;
  11.     end
  12. end
  13. function CheckBuildQueue(PlayerID:number, CityID:number)
  14.     -- Only the local player can use AutoQueue
  15.     if (not IsLocalPlayer(PlayerID)) then
  16.         return;
  17.     end
  18.  
  19.     if ExposedMembers.AutoQueue.CityExists(CityID) then
  20.         ExposedMembers.AutoQueue.CheckCity(PlayerID, CityID);
  21.     end
  22. end
  23. function OnCityBuilt(PlayerID:number, CityID:number, CityX:number, CityY:number)   
  24.     -- Only the local player can use AutoQueue
  25.     if (not IsLocalPlayer(PlayerID)) then
  26.         return;
  27.     end
  28.    
  29.     if StartsEnabled then
  30.         table.insert(ExposedMembers.AutoQueue.Cities, CityID);
  31.         ExposedMembers.AutoQueue.CheckCity(PlayerID, CityID);
  32.     end
  33. end
  34. function OnCityInitialized(PlayerID:number, CityID:number)
  35.     OnCityBuilt(PlayerID, CityID);
  36. end
  37. function OnCityProductionCompleted(PlayerID:number, CityID:number)
  38.     CheckBuildQueue(PlayerID, CityID);
  39. end
  40. function OnCityProductionUpdate(PlayerID:number, CityID:number)
  41.     CheckBuildQueue(PlayerID, CityID);
  42. end
  43. function OnCityProductionChanged(PlayerID:number, CityID:number)
  44.     CheckBuildQueue(PlayerID, CityID);
  45. end
  46. function OnBuildingConstructed(PlayerID:number, CityID:number, eBuildingIndex:number, iPlotIndex:number, bOriginalConstruction:boolean)
  47.     CheckBuildQueue(PlayerID, CityID);
  48. end
  49. function OnProjectCompleted(PlayerID:number, CityID:number, ProjectID:number)
  50.     CheckBuildQueue(PlayerID, CityID);
  51. end
  52.  
  53. function Initialize()
  54.     if (not ExposedMembers.AutoQueue) then
  55.         ExposedMembers.AutoQueue = {};
  56.     end
  57.  
  58.     Events.CityProductionCompleted.Add(OnCityProductionCompleted);
  59.     Events.CityProductionUpdated.Add(OnCityProductionUpdate);
  60.     Events.CityProductionChanged.Add(OnCityProductionChanged);
  61.     Events.CityInitialized.Add(OnCityInitialized);
  62.  
  63.     GameEvents.CityBuilt.Add(OnCityBuilt);
  64.     GameEvents.BuildingConstructed.Add(OnBuildingConstructed);
  65.     GameEvents.CityProjectCompleted.Add(OnProjectCompleted);
  66. end
  67. Initialize();
Advertisement
Add Comment
Please, Sign In to add comment