public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer) { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } Buffer.Add("<sprite name=\"Hacking\">").Add(localSide.StoredHacking.IntValue.ToString("#,##0")); GameEntity hacker = localSide.Entities.GetFirstMatching(EntityRollupType.KingUnits); if (hacker == null || hacker.ActiveHack == null) { return; } GameEntity target = World_AIW2.Instance.GetEntityByID(hacker.ActiveHack_Target); if (target == null) { return; } int secondsSoFar = hacker.ActiveHack_DurationThusFar; int totalDuration = hacker.ActiveHack.Implementation.GetTotalSecondsToHack(target, hacker); int secondsLeft = totalDuration - secondsSoFar; Buffer.Add("\n").Add(Engine_Universal.ToHoursAndMinutesString(secondsLeft)); }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; Window_InGameFormationMenu windowController = (Window_InGameFormationMenu)Element.Window.Controller; if (windowController.TimeOfLastRefresh < Engine_AIW2.Instance.TimeOfLastControlGroupChange) { windowController.NeedRefresh = true; } if (windowController.LastControlGroupID != World_AIW2.Instance.CurrentActiveSelectionControlGroupPrimaryKeyID) { windowController.NeedRefresh = true; } if (windowController.NeedRefresh) { windowController.NeedRefresh = false; windowController.TimeOfLastRefresh = DateTime.Now; windowController.LastControlGroupID = World_AIW2.Instance.CurrentActiveSelectionControlGroupPrimaryKeyID; elementAsType.ClearButtons(); int x = 0; { bClear newButtonController = new bClear(); Vector2 offset; offset.x = x * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); x++; } for (int i = 0; i < FormationTypeDataTable.Instance.Rows.Count; i++) { FormationTypeData item = FormationTypeDataTable.Instance.Rows[i]; bItem newButtonController = new bItem(item); Vector2 offset; offset.x = x * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); x++; } elementAsType.ActuallyPutItemsBackInPoolThatAreStillCleared(); } }
public void SetStartingSideRelationships(WorldSide side) { for (int i = 0; i < World_AIW2.Instance.Sides.Count; i++) { WorldSide otherSide = World_AIW2.Instance.Sides[i]; if (side == otherSide) { continue; } switch (otherSide.Type) { case WorldSideType.Player: case WorldSideType.AI: side.MakeFriendlyTo(otherSide); otherSide.MakeFriendlyTo(side); break; case WorldSideType.SpecialFaction: if (otherSide.SpecialFactionData != null && otherSide.SpecialFactionData.Implementation == SpecialFaction_Devourer.Instance) { side.MakeHostileTo(otherSide); otherSide.MakeHostileTo(side); } else { side.MakeFriendlyTo(otherSide); otherSide.MakeFriendlyTo(side); } break; } } }
public static Vector3Int ToVector(this WorldSide worldSide) { switch (worldSide) { case WorldSide.North: return(new Vector3Int(0, 0, 1)); case WorldSide.South: return(new Vector3Int(0, 0, -1)); case WorldSide.East: return(new Vector3Int(1, 0, 0)); case WorldSide.West: return(new Vector3Int(-1, 0, 0)); case WorldSide.Top: return(new Vector3Int(0, 1, 0)); case WorldSide.Bottom: return(new Vector3Int(0, -1, 0)); default: throw new ArgumentOutOfRangeException(nameof(worldSide), worldSide, null); } }
public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer) { WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (localSide == null) { return; } buffer.Add("Metal: "); buffer.Add(localSide.StoredMetal.IntValue.ToString("#,##0")); if (localSide.LastFrame_TotalMetalFlowRequested > 0) { buffer.Add("\n"); FInt percentProduced = localSide.LastFrame_MetalFlowRequestPortionMet * 100; buffer.Add(percentProduced.IntValue); buffer.Add("%"); if (localSide.LastFrame_MetalFlowRequestPortionMet < FInt.One && localSide.LastFrame_MetalProduced > FInt.Zero) { buffer.Add(" ("); int framesLeft = (localSide.LastFrame_TotalMetalFlowProjectedRequests / localSide.LastFrame_MetalProduced).GetNearestIntPreferringHigher(); int secondsLeft = (framesLeft * World_AIW2.Instance.SimulationProfile.SecondsPerFrameSim).GetNearestIntPreferringHigher(); buffer.Add(Engine_Universal.ToHoursAndMinutesString(secondsLeft)); buffer.Add(")"); buffer.Add("\n").Add(localSide.LastFrame_TotalMetalFlowProjectedRequests.IntValue).Add(" / ").Add(localSide.LastFrame_MetalProduced.ReadableString); } } }
public override MouseHandlingResult HandleClick() { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return(MouseHandlingResult.PlayClickDeniedSound); } GameEntity launcher = localSide.Entities.GetFirstMatching(EntityRollupType.KingUnits); if (launcher == null) { return(MouseHandlingResult.PlayClickDeniedSound); } Planet planet = Engine_AIW2.Instance.NonSim_GetPlanetBeingCurrentlyViewed(); if (planet == null || planet != launcher.Combat.Planet) { return(MouseHandlingResult.PlayClickDeniedSound); } GameCommand command = GameCommand.Create(GameCommandType.LaunchWarhead); command.RelatedEntityType = this.Type; command.RelatedEntityIDs.Add(launcher.PrimaryKeyID); if (command.RelatedEntityIDs.Count > 0) { World_AIW2.Instance.QueueGameCommand(command, true); } return(MouseHandlingResult.None); }
public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer) { base.GetTextToShow(buffer); if (this.Item == null) { buffer.Add("NULL"); return; } buffer.Add(this.Item.Name); WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (localSide.UnlockedTechs.Contains(this.Item)) { buffer.Add("\n").Add("(Unlocked)"); } else { buffer.Add("\n").Add("(").Add(this.Item.ScienceCost).Add(")"); if (localSide.GetCanResearch(this.Item, false, false) == ArcenRejectionReason.SideDoesNotHavePrerequisiteTech) { buffer.Add("\n").Add("(Locked)"); } } }
private Vector2 GetBlockCornerUv(WorldSide side, Corner corner) { GetBlockCornerData(side, corner, out var textureSize, out var position); var uv = position / textureSize; return(uv); }
private void GetBlockCornerData(WorldSide side, Corner corner, out Vector2Int textureSize, out Vector2 position) { Rect rect; (textureSize, rect) = _block.GetTextureData(side); switch (corner) { case Corner.LeftBottom: position = rect.min + Vector2.one * _bordersInPixels; break; case Corner.LeftTop: position = new Vector2(rect.xMin, rect.yMax); position.x += _bordersInPixels; position.y -= _bordersInPixels; break; case Corner.RightTop: position = rect.max - Vector2.one * _bordersInPixels; break; case Corner.RightBottom: position = new Vector2(rect.xMax, rect.yMin); position.x -= _bordersInPixels; position.y += _bordersInPixels; break; default: throw new ArgumentOutOfRangeException(nameof(corner), corner, null); } }
public BlockTerrainMeshBuilder AddSide(WorldSide side) { var vertices = WorldSideVertices[side]; Quad(side, vertices[0], vertices[1], vertices[2], vertices[3]); return(this); }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; //Window_InGameTracingMenu windowController = (Window_InGameTracingMenu)Element.Window.Controller; if (elementAsType.Buttons.Count <= 0) { int x = 0; for (int flagInt = 1; flagInt < (int)ArcenTracingFlags.Length; flagInt <<= 1, x++) { ArcenTracingFlags flag = (ArcenTracingFlags)flagInt; bItem newButtonController = new bItem(flag); Vector2 offset; offset.x = x * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); } } }
public void HandleDeathWithEffectApplied(GameEntity Entity, int ThisDeathEffectDamageSustained, WorldSide SideThatDidTheKilling, WorldSide SideResponsibleForTheDeathEffect, ArcenSimContext Context) { if (SideResponsibleForTheDeathEffect == null) { return; } if (!Entity.GetMatches(EntityRollupType.MobileCombatants)) { return; } ISpecialFactionImplementation implementationToSearchFor = null; if (SideResponsibleForTheDeathEffect.Type == WorldSideType.AI) { implementationToSearchFor = SpecialFaction_AntiPlayerZombie.Instance; } else if (SideResponsibleForTheDeathEffect.Type == WorldSideType.Player) { implementationToSearchFor = SpecialFaction_AntiAIZombie.Instance; } else { implementationToSearchFor = SpecialFaction_AntiEveryoneZombie.Instance; } WorldSide destinationSide = World_AIW2.Instance.GetSideBySpecialFactionImplementation(implementationToSearchFor); if (destinationSide == null) { return; } CombatSide sideForNewEntity = Entity.Combat.GetSideForWorldSide(destinationSide); GameEntity zombie = GameEntity.CreateNew(sideForNewEntity, Entity.TypeData, Entity.WorldLocation, Context); zombie.EntitySpecificOrders.Behavior = EntityBehaviorType.Attacker; }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; //Window_InGameGalaxyMapDisplayModeMenu windowController = (Window_InGameGalaxyMapDisplayModeMenu)Element.Window.Controller; if (elementAsType.Buttons.Count <= 0) { int x = 0; for (int i = 0; i < GalaxyMapDisplayModeTable.Instance.Rows.Count; i++) { GalaxyMapDisplayMode mode = GalaxyMapDisplayModeTable.Instance.Rows[i]; bItem newButtonController = new bItem(mode); Vector2 offset; offset.x = x * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); x++; } } }
public void DoLongRangePlanning(WorldSide side, ArcenLongTermPlanningContext Context) { Galaxy galaxy = World_AIW2.Instance.SetOfGalaxies.Galaxies[0]; side.Entities.DoForEntities(GameEntityCategory.Ship, delegate(GameEntity entity) { if (entity.LongRangePlanningData == null) { return(DelReturn.Continue); // if created after the start of this planning cycle, skip } if (!entity.TypeData.GetHasTag(DEVOURER_TAG)) { return(DelReturn.Continue); // if not the Big D, skip (shouldn't happen, but if somebody mods in a reclamator gun for the thing, etc) } if (entity.LongRangePlanningData.FinalDestinationPlanetIndex != -1 && entity.LongRangePlanningData.FinalDestinationPlanetIndex != entity.LongRangePlanningData.CurrentPlanetIndex) { return(DelReturn.Continue); // if heading somewhere else, skip } Planet planet = World_AIW2.Instance.GetPlanetByIndex(entity.LongRangePlanningData.CurrentPlanetIndex); List <GameEntity> threatShipsNotAssignedElsewhere = new List <GameEntity>(); threatShipsNotAssignedElsewhere.Add(entity); FactionUtilityMethods.Helper_SendThreatOnRaid(threatShipsNotAssignedElsewhere, side, galaxy, planet, true, Context); return(DelReturn.Continue); }); }
public override void GetTextToShow(ArcenDoubleCharacterBuffer buffer) { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } buffer.Add("<sprite name=\"Metal\">"); buffer.Add(localSide.StoredMetal.IntValue.ToString("#,##0")); if (localSide.LastFrame_TotalMetalFlowRequested > 0) { buffer.Add(" ("); int amountSpentLastFrame = localSide.LastFrame_MetalSpent.IntValue; int incomeLastFrame = localSide.LastFrame_MetalProduced.GetNearestIntPreferringHigher(); int netIncome = incomeLastFrame - amountSpentLastFrame; if (netIncome > 0) { buffer.Add("+"); } buffer.Add(netIncome); buffer.Add(" net)"); if (localSide.LastFrame_MetalFlowRequestPortionMet < FInt.One && localSide.LastFrame_MetalProduced > FInt.Zero) { buffer.Add(" ("); int framesLeft = (localSide.LastFrame_TotalMetalFlowProjectedRequests / localSide.LastFrame_MetalProduced).GetNearestIntPreferringHigher(); int secondsLeft = (framesLeft * World_AIW2.Instance.SimulationProfile.SecondsPerFrameSim).GetNearestIntPreferringHigher(); buffer.Add(Engine_Universal.ToHoursAndMinutesString(secondsLeft)); buffer.Add(" est)"); //estimated time left buffer.Add("\n required: ").Add(localSide.LastFrame_TotalMetalFlowProjectedRequests.IntValue).Add("\nproduced: ").Add(localSide.LastFrame_MetalProduced.GetNearestIntPreferringHigher()); } } }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (localSide == null) { return; } GameEntity launcher = localSide.Entities.GetFirstMatching(EntityRollupType.KingUnits); if (launcher == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; Window_InGameWarheadMenu windowController = (Window_InGameWarheadMenu)Element.Window.Controller; if (windowController.PlanetChangedSinceLastButtonSetUpdate) { elementAsType.ClearButtons(); int x = 0; for (int i = 0; i < GameEntityTypeDataTable.Instance.Rows.Count; i++) { GameEntityTypeData type = GameEntityTypeDataTable.Instance.Rows[i]; if (type.SpecialType != SpecialEntityType.Warhead) { continue; } bool foundIt = false; for (int j = 0; j < launcher.WarheadContents.Count; j++) { if (launcher.WarheadContents[j].ContainedType != type) { continue; } foundIt = true; break; } if (!foundIt) { continue; } bItem newButtonController = new bItem(type); Vector2 offset; offset.x = x * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); x++; } elementAsType.ActuallyPutItemsBackInPoolThatAreStillCleared(); windowController.PlanetChangedSinceLastButtonSetUpdate = false; } }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (localSide == null) { return; } Planet planet = Engine_AIW2.Instance.NonSim_GetPlanetBeingCurrentlyViewed(); ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; Window_InGameBuildMenu windowController = (Window_InGameBuildMenu)Element.Window.Controller; if (windowController.EntityChangedSinceLastButtonSetUpdate_Menu) { elementAsType.ClearButtons(); GameEntity entity = World_AIW2.Instance.GetEntityByID(windowController.EntityID); if (entity != null) { List <BuildMenu> menus = entity.TypeData.BuildMenus; int x = 0; for (int i = 0; i < menus.Count; i++) { BuildMenu item = menus[i]; if (item.RequiresPresenceOf != null) { bool foundIt = false; planet.Combat.DoForEntities(EntityRollupType.SpecialBuildMenuEnablers, delegate(GameEntity enabler) { if (enabler.TypeData != item.RequiresPresenceOf) { return(DelReturn.Continue); } foundIt = true; return(DelReturn.Break); }); if (!foundIt) { continue; } } bMenuSelectionItem newButtonController = new bMenuSelectionItem(entity.TypeData, i); Vector2 offset; offset.x = x * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); x++; } } elementAsType.ActuallyPutItemsBackInPoolThatAreStillCleared(); windowController.EntityChangedSinceLastButtonSetUpdate_Menu = false; windowController.MenuIndexChangedSinceLastButtonSetUpdate = true; } }
public FInt GetRaidTraversalDifficulty(WorldSide AISide, Planet planet) { FInt result = (FInt)ExternalConstants.Instance.Balance_StrengthPerCap / 20; // basic difficulty cost of travelling a hop result += planet.HumanTotalStrength; return(result); }
public FInt GetRaidTraversalDifficulty(WorldSide AISide, Planet planet) { FInt result = (FInt)ExternalConstants.Instance.Balance_StrengthPerCap / 20; // basic difficulty cost of travelling a hop result += planet.Combat.GetSideForWorldSide(AISide).DataByStance[SideStance.Hostile].TotalStrength; return(result); }
public ArcenEnumIndexedArray_AIBudgetType <FInt> GetSpendingRatios(WorldSide side) { ArcenEnumIndexedArray_AIBudgetType <FInt> result = new ArcenEnumIndexedArray_AIBudgetType <FInt>(); result[AIBudgetType.Reinforcement] = FInt.One; return(result); }
public (Vector2Int textureSize, Rect rect) GetTextureData(WorldSide side) { var sprite = GetSprite(side); var texture = sprite.texture; var textureSize = new Vector2Int(texture.width, texture.height); return(textureSize, sprite.rect); }
public override MouseHandlingResult HandleClick() { if (this.TypeToBuild == null) { return(MouseHandlingResult.PlayClickDeniedSound); } else { if (Window_InGameTechTypeIconMenu.Instance.IsOpen) { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide.GetCanResearch(this.TypeToBuild.TechPrereq, false, false) != ArcenRejectionReason.Unknown) { return(MouseHandlingResult.PlayClickDeniedSound); } GameCommand command = GameCommand.Create(GameCommandType.UnlockTech); command.RelatedSide = World_AIW2.Instance.GetLocalPlayerSide(); command.RelatedTech = this.TypeToBuild.TechPrereq; World_AIW2.Instance.QueueGameCommand(command, true); return(MouseHandlingResult.None); } else { if (this.TypeToBuild.MetalFlows[MetalFlowPurpose.SelfConstruction] != null) { Engine_AIW2.Instance.PlacingEntityType = this.TypeToBuild; } else { GameCommand command = GameCommand.Create(GameCommandType.AlterBuildQueue); command.RelatedEntityType = this.TypeToBuild; command.RelatedMagnitude = 1; if (Engine_AIW2.Instance.PresentationLayer.GetAreInputFlagsActive(ArcenInputFlags.Subtractive)) { command.RelatedMagnitude = -command.RelatedMagnitude; } Engine_AIW2.Instance.DoForSelected(SelectionCommandScope.CurrentPlanet_UnlessViewingGalaxy, delegate(GameEntity selected) { if (selected.TypeData != this.TypeDoingTheBuilding) { return(DelReturn.Continue); } command.RelatedEntityIDs.Add(selected.PrimaryKeyID); return(DelReturn.Continue); }); if (command.RelatedEntityIDs.Count > 0) { World_AIW2.Instance.QueueGameCommand(command, true); } } } } return(MouseHandlingResult.None); }
private ControlGroup GetControlGroup() { WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (this.ControlGroupIndex < 0 || this.ControlGroupIndex >= localSide.ControlGroups.Count) { return(null); } return(localSide.ControlGroups[this.ControlGroupIndex]); }
public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer) { WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (localSide == null) { return; } Buffer.Add("Science: ").Add(localSide.StoredScience.IntValue.ToString("#,##0")); }
public override void GetTextToShow(ArcenDoubleCharacterBuffer Buffer) { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } Buffer.Add("<sprite name=\"Fuel\">").Add(localSide.NetFuel.ToString("#,##0")); }
public override void HandleMouseover() { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } Window_AtMouseTooltipPanel.bPanel.Instance.SetText("Available Fuel. Fuel is a global resource required to power fleetships and starships.\nUsed/Total: (" + localSide.FuelConsumption.ToString() + "/" + localSide.FuelProduction + ")"); }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; Window_InGameRallyMenu windowController = (Window_InGameRallyMenu)Element.Window.Controller; if (windowController != null) { } //prevent compiler warning if (windowController.NeedRefresh) { windowController.NeedRefresh = false; elementAsType.ClearButtons(); int x = 0; for (int i = 0; i < localSide.ControlGroups.Count; i++) { ControlGroup controlGroup = localSide.ControlGroups[i]; if (controlGroup.EntityIDs.Count <= 0) { continue; } bItem newButtonController = new bItem(controlGroup); Vector2 offset; offset.x = x * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); x++; } { bClear newButtonController = new bClear(); Vector2 offset; offset.x = 9 * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); } elementAsType.ActuallyPutItemsBackInPoolThatAreStillCleared(); } }
private void Quad(WorldSide side, Vector3 leftBottom, Vector3 leftTop, Vector3 rightTop, Vector3 rightBottom) { var initialVerticesCount = _vertices.Count; Vertex(side, leftBottom, Corner.LeftBottom); Vertex(side, leftTop, Corner.LeftTop); Vertex(side, rightTop, Corner.RightTop); Vertex(side, rightBottom, Corner.RightBottom); Triangle(initialVerticesCount, initialVerticesCount + 1, initialVerticesCount + 2); Triangle(initialVerticesCount, initialVerticesCount + 2, initialVerticesCount + 3); }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; if (Window_InGameBuildTabMenu.Instance.EntityChangedSinceLastButtonSetUpdate_QueueControls) { elementAsType.ClearButtons(); GameEntity entity = World_AIW2.Instance.GetEntityByID(Window_InGameBuildTabMenu.Instance.EntityID); if (entity != null) { //float aspectRatioAdjustedButtonWidth = elementAsType.ButtonWidth; //float aspectRatioAdjustedButtonHeight = elementAsType.ButtonHeight; //if ( ArcenUI.Instance.PixelsPerPercent_X != ArcenUI.Instance.PixelsPerPercent_Y ) // aspectRatioAdjustedButtonWidth *= ArcenUI.Instance.PixelsPerPercent_Y / ArcenUI.Instance.PixelsPerPercent_X; float runningY = 0; { bTogglePause newButtonController = new bTogglePause(); Vector2 offset; offset.x = 0; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); runningY += size.y; } { bToggleLoop newButtonController = new bToggleLoop(); Vector2 offset; offset.x = 0; offset.y = runningY; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); runningY += size.y; } elementAsType.ActuallyPutItemsBackInPoolThatAreStillCleared(); Window_InGameBuildTabMenu.Instance.EntityChangedSinceLastButtonSetUpdate_QueueControls = false; Window_InGameBuildTabMenu.Instance.MenuIndexChangedSinceLastButtonSetUpdate = true; } } }
private Sprite GetSprite(WorldSide side) { foreach (var mapping in _mappings) { if (mapping.Side == side) { return(mapping.Sprite); } } return(_fallbackSprite); }