Files
OpenRA/mods/ts/chrome/ingame-player.yaml
RoosterDragon 5a8f91aa21 Add a hierarchical path finder to improve pathfinding performance.
Replaces the existing bi-directional search between points used by the pathfinder with a guided hierarchical search. The old search was a standard A* search with a heuristic of advancing in straight line towards the target. This heuristic performs well if a mostly direct path to the target exists, it performs poorly it the path has to navigate around blockages in the terrain. The hierarchical path finder maintains a simplified, abstract graph. When a path search is performed it uses this abstract graph to inform the heuristic. Instead of moving blindly towards the target, it will instead steer around major obstacles, almost as if it had been provided a map which ensures it can move in roughly the right direction. This allows it to explore less of the area overall, improving performance.

When a path needs to steer around terrain on the map, the hierarchical path finder is able to greatly improve on the previous performance. When a path is able to proceed in a straight line, no performance benefit will be seen. If the path needs to steer around actors on the map instead of terrain (e.g. trees, buildings, units) then the same poor pathfinding performance as before will be observed.
2022-08-03 23:12:42 +02:00

634 lines
18 KiB
YAML

Container@PLAYER_WIDGETS:
Logic: LoadIngameChatLogic
Children:
Container@CHAT_ROOT:
LogicKeyListener@DEPTHPREVIEW_KEYHANDLER:
Logic: DepthPreviewHotkeysLogic
ToggleDepthPreviewKey: ToggleDepthPreview
IncreaseDepthPreviewContrastKey: IncreaseDepthPreviewContrast
DecreaseDepthPreviewContrastKey: DecreaseDepthPreviewContrast
IncreaseDepthPreviewOffsetKey: IncreaseDepthPreviewOffset
DecreaseDepthPreviewOffsetKey: DecreaseDepthPreviewOffset
LogicKeyListener@PLAYER_KEYHANDLER:
Logic: RemoveFromControlGroupHotkeyLogic
RemoveFromControlGroupKey: RemoveFromControlGroup
ControlGroups@CONTROLGROUPS:
SelectGroupKeyPrefix: ControlGroupSelect
CreateGroupKeyPrefix: ControlGroupCreate
AddToGroupKeyPrefix: ControlGroupAddTo
CombineWithGroupKeyPrefix: ControlGroupCombineWith
JumpToGroupKeyPrefix: ControlGroupJumpTo
LogicTicker@SIDEBAR_TICKER:
Container@SUPPORT_POWERS:
Logic: SupportPowerBinLogic
X: 10
Y: 10
Children:
SupportPowers@SUPPORT_PALETTE:
IconSize: 64, 48
IconSpriteOffset: -1, -1
TooltipContainer: TOOLTIP_CONTAINER
ReadyText: READY
HoldText: ON HOLD
ClockPalette: iconclock
HotkeyPrefix: SupportPower
HotkeyCount: 6
Image@COMMAND_BAR_BACKGROUND:
Logic: AddFactionSuffixLogic
X: 5
Y: WINDOW_BOTTOM - HEIGHT - 5
Width: 449
Height: 51
ImageCollection: sidebar
ImageName: background-commandbar
ClickThrough: False
Container@COMMAND_BAR:
Logic: CommandBarLogic
HighlightOnButtonPress: True
X: 19
Y: WINDOW_BOTTOM - HEIGHT - 20
Width: 275
Height: 26
Children:
LogicKeyListener@MODIFIER_OVERRIDES:
Button@ATTACK_MOVE:
Width: 35
Height: 32
VisualHeight: 0
Background:
Key: AttackMove
DisableKeySound: true
TooltipText: Attack Move
TooltipDesc: Selected units will move to the desired location\nand attack any enemies they encounter en route.\n\nHold {(Ctrl)} while targeting to order an Assault Move\nthat attacks any units or structures encountered en route.\n\nLeft-click icon then right-click on target location.
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_WITH_DESC_HIGHLIGHT_TOOLTIP
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 5
Y: 3
ImageCollection: command-icons
ImageName: attack-move
Button@FORCE_MOVE:
X: 35
Width: 35
Height: 32
VisualHeight: 0
Background:
DisableKeySound: true
TooltipText: Force Move
TooltipDesc: Selected units will move to the desired location\n - Default activity for the target is suppressed\n - Vehicles will attempt to crush enemies at the target location\n - Deployed units will undeploy and move to the target location\n - Helicopters will land at the target location\n\nLeft-click icon then right-click on target.\nHold {(Alt)} to activate temporarily while commanding units.
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_WITH_DESC_HIGHLIGHT_TOOLTIP
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 5
Y: 3
ImageCollection: command-icons
ImageName: force-move
Button@FORCE_ATTACK:
X: 70
Width: 35
Height: 32
VisualHeight: 0
Background:
DisableKeySound: true
TooltipText: Force Attack
TooltipDesc: Selected units will attack the targeted unit or location\n - Default activity for the target is suppressed\n - Allows targeting of own or ally forces\n - Long-range artillery units will always target the\n location, ignoring units and buildings\n\nLeft-click icon then right-click on target.\nHold {(Ctrl)} to activate temporarily while commanding units.
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_WITH_DESC_HIGHLIGHT_TOOLTIP
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 5
Y: 3
ImageCollection: command-icons
ImageName: force-attack
Button@GUARD:
X: 105
Width: 35
Height: 32
VisualHeight: 0
Background:
Key: Guard
DisableKeySound: true
TooltipText: Guard
TooltipDesc: Selected units will follow the targeted unit.\n\nLeft-click icon then right-click on target unit.
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 5
Y: 3
ImageCollection: command-icons
ImageName: guard
Button@DEPLOY:
X: 140
Width: 35
Height: 32
VisualHeight: 0
Background:
Key: Deploy
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Deploy
TooltipDesc: Selected units will perform their default deploy activity\n - MCVs will unpack into a Construction Yard\n - Construction Yards will re-pack into a MCV\n - Transports will unload their passengers\n - Tick Tanks, Artillery, Juggernauts,\n and Mobile Sensor arrays will deploy\n - Aircraft will return to base\n\nActs immediately on selected units.
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 5
Y: 3
ImageCollection: command-icons
ImageName: deploy
Button@SCATTER:
X: 175
Width: 35
Height: 32
VisualHeight: 0
Background:
Key: Scatter
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Scatter
TooltipDesc: Selected units will stop their current activity\nand move to a nearby location.\n\nActs immediately on selected units.
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 5
Y: 3
ImageCollection: command-icons
ImageName: scatter
Button@STOP:
X: 210
Width: 35
Height: 32
VisualHeight: 0
Background:
Key: Stop
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Stop
TooltipDesc: Selected units will stop their current activity.\n\nActs immediately on selected units.
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 5
Y: 3
ImageCollection: command-icons
ImageName: stop
Button@QUEUE_ORDERS:
X: 245
Width: 35
Height: 32
VisualHeight: 0
Background:
DisableKeySound: true
TooltipText: Waypoint Mode
TooltipDesc: Use Waypoint Mode to give multiple linking commands\nto the selected units. Units will execute the commands\nimmediately upon receiving them.\n\nLeft-click icon then give commands in the game world.\nHold {(Shift)} to activate temporarily while commanding units.
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_WITH_DESC_HIGHLIGHT_TOOLTIP
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 5
Y: 3
ImageCollection: command-icons
ImageName: queue-orders
Container@STANCE_BAR:
Logic: StanceSelectorLogic
X: 306
Y: WINDOW_BOTTOM - HEIGHT - 20
Width: 138
Height: 26
Children:
Button@STANCE_ATTACKANYTHING:
Width: 28
Height: 32
VisualHeight: 0
Background:
Key: StanceAttackAnything
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Attack Anything Stance
TooltipDesc: Set the selected units to Attack Anything stance:\n - Units will attack enemy units and structures on sight\n - Units will pursue attackers across the battlefield
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 4
Y: 5
ImageCollection: stance-icons
ImageName: attack-anything
Button@STANCE_DEFEND:
X: 28
Width: 28
Height: 32
VisualHeight: 0
Background:
Key: StanceDefend
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Defend Stance
TooltipDesc: Set the selected units to Defend stance:\n - Units will attack enemy units on sight\n - Units will not move or pursue enemies
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 4
Y: 5
ImageCollection: stance-icons
ImageName: defend
Button@STANCE_RETURNFIRE:
X: 56
Width: 28
Height: 32
VisualHeight: 0
Background:
Key: StanceReturnFire
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Return Fire Stance
TooltipDesc: Set the selected units to Return Fire stance:\n - Units will retaliate against enemies that attack them\n - Units will not move or pursue enemies
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 4
Y: 5
ImageCollection: stance-icons
ImageName: return-fire
Button@STANCE_HOLDFIRE:
X: 84
Width: 28
Height: 32
VisualHeight: 0
Background:
Key: StanceHoldFire
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Hold Fire Stance
TooltipDesc: Set the selected units to Hold Fire stance:\n - Units will not fire upon enemies\n - Units will not move or pursue enemies
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 4
Y: 5
ImageCollection: stance-icons
ImageName: hold-fire
Container@MUTE_INDICATOR:
Logic: MuteIndicatorLogic
X: WINDOW_RIGHT - WIDTH - 245
Y: 5
Width: 200
Height: 25
Children:
Image@ICON:
X: PARENT_RIGHT - WIDTH
Y: 1
Width: 24
Height: 24
ImageCollection: sidebar-bits
ImageName: indicator-muted
Label@LABEL:
Width: PARENT_RIGHT - 30
Height: 25
Align: Right
Text: Audio Muted
Contrast: true
Image@SIDEBAR_BACKGROUND_TOP:
Logic: AddFactionSuffixLogic
X: WINDOW_RIGHT - 235
Y: 0
Width: 235
Height: 260
ImageCollection: sidebar
ImageName: background-top
ClickThrough: false
Children:
Container@TOP_BUTTONS:
Logic: MenuButtonsChromeLogic
X: 0
Y: 21
Children:
Button@REPAIR_BUTTON:
Logic: RepairOrderButtonLogic, AddFactionSuffixLogic
X: 43
Width: 30
Height: 31
Background: sidebar-button
Key: Repair
TooltipText: Repair
TooltipContainer: TOOLTIP_CONTAINER
VisualHeight: 0
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 0
Y: 0
ImageCollection: order-icons
Button@SELL_BUTTON:
Logic: SellOrderButtonLogic, AddFactionSuffixLogic
X: 73
Width: 30
Height: 31
Background: sidebar-button
Key: Sell
TooltipText: Sell
TooltipContainer: TOOLTIP_CONTAINER
VisualHeight: 0
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 0
Y: 0
ImageCollection: order-icons
Button@BEACON_BUTTON:
Logic: BeaconOrderButtonLogic, AddFactionSuffixLogic
X: 103
Width: 30
Height: 31
Background: sidebar-button
Key: PlaceBeacon
TooltipText: Place Beacon
TooltipContainer: TOOLTIP_CONTAINER
VisualHeight: 0
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 0
Y: 0
ImageCollection: order-icons
Button@POWER_BUTTON:
Logic: PowerdownOrderButtonLogic, AddFactionSuffixLogic
X: 133
Width: 30
Height: 31
Background: sidebar-button
Key: PowerDown
TooltipText: Power Down
TooltipContainer: TOOLTIP_CONTAINER
VisualHeight: 0
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 0
Y: 0
ImageCollection: order-icons
MenuButton@OPTIONS_BUTTON:
Logic: AddFactionSuffixLogic
Key: escape
X: 193
Width: 30
Height: 31
Background: sidebar-button
TooltipText: Options
TooltipContainer: TOOLTIP_CONTAINER
DisableWorldSounds: true
VisualHeight: 0
Children:
Image@ICON:
Logic: AddFactionSuffixLogic
X: 0
Y: 0
ImageCollection: order-icons
ImageName: options
Container@RADAR:
Logic: IngameRadarDisplayLogic
Children:
LogicTicker@RADAR_TICKER:
Image@INSIGNIA:
Logic: AddFactionSuffixLogic
X: 37
Y: 85
ImageCollection: radar
ImageName: insignia
ColorBlock@RADAR_FADETOBLACK:
X: 16
Y: 64
Width: 206
Height: 161
Radar@RADAR_MINIMAP:
WorldInteractionController: INTERACTION_CONTROLLER
X: 16
Y: 64
Width: 206
Height: 161
SoundUp: RadarUp
SoundDown: RadarDown
VideoPlayer@PLAYER:
X: 16
Y: 64
Width: 206
Height: 161
Skippable: false
Label@GAME_TIMER:
Logic: GameTimerLogic
X: 10
Y: 1
Width: PARENT_RIGHT
Height: 22
Align: Center
Font: TinyBold
LabelWithTooltip@CASH:
Logic: IngameCashCounterLogic
X: 31
Y: 0
Width: 50
Height: 22
Font: Bold
Text: {0}
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: SIMPLE_TOOLTIP
Children:
Image@CASH_ICON:
X: 0 - 17
Y: 3
ImageCollection: cash-icons
ImageName: cash-normal
LabelWithTooltip@POWER:
Logic: IngamePowerCounterLogic
X: PARENT_RIGHT - WIDTH - 30
Y: 0
Width: 50
Height: 22
Align: Right
Font: Bold
Text: {0}
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: SIMPLE_TOOLTIP
Children:
Image@POWER_ICON:
X: PARENT_RIGHT + 0
Y: 3
ImageCollection: power-icons
ImageName: power-normal
Container@SIDEBAR_PRODUCTION:
Logic: ClassicProductionLogic
X: WINDOW_RIGHT - 235
Y: 260
Width: 235
Height: 250
Children:
Container@PALETTE_BACKGROUND:
Children:
Image@ROW_TEMPLATE:
Logic: AddFactionSuffixLogic
Width: 235
Height: 52
ClickThrough: false
ImageCollection: sidebar
ImageName: background-iconrow
Image@BOTTOM_CAP:
Logic: AddFactionSuffixLogic
Width: 235
Height: 26
ClickThrough: false
ImageCollection: sidebar
ImageName: background-bottom
LogicTicker@PRODUCTION_TICKER:
ProductionPalette@PRODUCTION_PALETTE:
X: 24
Y: 1
TooltipContainer: TOOLTIP_CONTAINER
ReadyText: READY
HoldText: ON HOLD
ClockPalette: iconclock
NotBuildableAnimation: darken
NotBuildablePalette: chromewithshadow
IconSize: 64, 48
IconMargin: 3, 4
IconSpriteOffset: 0, 0
MinimumRows: 4
MaximumRows: 6
HotkeyPrefix: Production
HotkeyCount: 24
SelectProductionBuildingHotkey: SelectProductionBuilding
Container@PRODUCTION_TYPES:
X: 0
Y: 0 - 32
Width: 235
Height: 311
Children:
ProductionTypeButton@BUILDING:
Logic: AddFactionSuffixLogic
X: 41
Y: 1
Width: 30
Height: 31
VisualHeight: 0
Background: sidebar-button
TooltipText: Buildings
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Building
Key: ProductionTypeBuilding
Children:
Image@ICON:
X: 7
Y: 7
ImageCollection: production-icons
ProductionTypeButton@DEFENSE:
Logic: AddFactionSuffixLogic
X: 72
Y: 1
Width: 30
Height: 31
VisualHeight: 0
Background: sidebar-button
TooltipText: Support
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Defense
Key: ProductionTypeDefense
Children:
Image@ICON:
X: 7
Y: 7
ImageCollection: production-icons
ProductionTypeButton@INFANTRY:
Logic: AddFactionSuffixLogic
X: 103
Y: 1
Width: 30
Height: 31
VisualHeight: 0
Background: sidebar-button
TooltipText: Infantry
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Infantry
Key: ProductionTypeInfantry
Children:
Image@ICON:
X: 6
Y: 7
ImageCollection: production-icons
ProductionTypeButton@VEHICLE:
Logic: AddFactionSuffixLogic
X: 134
Y: 1
Width: 30
Height: 31
VisualHeight: 0
Background: sidebar-button
TooltipText: Vehicles
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Vehicle
Key: ProductionTypeVehicle
Children:
Image@ICON:
X: 7
Y: 7
ImageCollection: production-icons
ProductionTypeButton@AIRCRAFT:
Logic: AddFactionSuffixLogic
X: 165
Y: 1
Width: 30
Height: 31
VisualHeight: 0
Background: sidebar-button
TooltipText: Aircraft
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Air
Key: ProductionTypeAircraft
Children:
Image@ICON:
X: 7
Y: 7
ImageCollection: production-icons
Button@SCROLL_UP_BUTTON:
Logic: AddFactionSuffixLogic
X: 74
Y: PARENT_BOTTOM + 36
Width: 34
Height: 27
VisualHeight: 0
Background: scrollup-buttons
TooltipText: Scroll up
TooltipContainer: TOOLTIP_CONTAINER
Button@SCROLL_DOWN_BUTTON:
Logic: AddFactionSuffixLogic
X: 141
Y: PARENT_BOTTOM + 36
Width: 34
Height: 27
VisualHeight: 0
Background: scrolldown-buttons
TooltipText: Scroll down
TooltipContainer: TOOLTIP_CONTAINER
Container@HPF_OVERLAY:
Logic: HierarchicalPathFinderOverlayLogic
X: WINDOW_RIGHT - WIDTH - 245
Y: 40
Width: 150
Height: 25
Children:
DropDownButton@HPF_OVERLAY_LOCOMOTOR:
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Text: Select Locomotor
Font: Regular