From fcfa94ba26cb70bf4645993dbd605a780e3cb2c5 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Sun, 21 Jun 2026 11:07:09 +0900 Subject: [PATCH 1/6] Update koKR.lua 8.24 Update koKR.lua --- Locales/koKR.lua | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/Locales/koKR.lua b/Locales/koKR.lua index 021e0234..5743bfd0 100644 --- a/Locales/koKR.lua +++ b/Locales/koKR.lua @@ -142,6 +142,7 @@ L["Classic WoW Glow"] = "고전 WoW 반짝임" L["Clean (Flat)"] = "단순 (평면)" L["Clean Opacity"] = "클린 투명도" L["Click elements to scroll to and highlight their options"] = "요소를 클릭하면 해당 옵션으로 이동하고 강조 표시합니다" +L["Click any new feature to go directly to the setting"] = "새로운 기능을 클릭하면 해당 설정으로 바로 이동합니다" L["Close"] = "닫기" L["Colors"] = "색상" L["Consumables"] = "소모품" @@ -264,6 +265,7 @@ L["Hunter"] = "사냥꾼" L["Icon"] = "아이콘" L["Icon Settings"] = "아이콘 설정" L["Icon Zoom"] = "아이콘 확대" +L["Import, export, and switch EllesmereUI profiles and presets."] = "EllesmereUI 프로필 및 프리셋을 가져오거나 내보내고 전환합니다." L["Important"] = "중요" L["indicators"] = "표시기" L["Insanity"] = "광기" @@ -436,6 +438,7 @@ L["Classic WoW"] = "고전 와우" L["Default Blizz Frames"] = "블리자드 기본 프레임" L["Hide Empty Groups"] = "빈 그룹 숨김" L["Only available with Custom fill color"] = "사용자 지정 채움 색상에서만 사용 가능" +L["Profiles & Presets"] = "프로필 및 프리셋" L["Backing Opacity"] = "배경 불투명도" L["Strong"] = "강함" L["Suppress Lua Errors"] = "Lua 오류 숨김" @@ -1359,6 +1362,8 @@ L["Custom Proc Glow"] = "사용자 지정 발동 반짝임" L["Highlight Type"] = "강조 유형" L["Pushed Type"] = "누름 유형" L["Shift Modifier"] = "쉬프트 보조키" +L["Friendly Target"] = "아군 대상" +L["Hostile Target"] = "적 대상" L["Solid Color"] = "단색" -- add 액션바 툴팁 (ActionBars Tooltip) L["Toggling action bar visibility is only available out of combat"] = "행동 단축바 표시 전환은 전투 중에는 사용할 수 없습니다" @@ -1422,6 +1427,10 @@ L["Mouse Button %d"] = "마우스 단추 %d" L["Adjusts the size of friendly player names shown in Name Only mode. Default is 15."] = "이름만 표시(Name Only) 모드에서 표시되는 아군 플레이어 이름의 크기를 조절합니다. 기본값은 15입니다." L["Friendly Name Size"] = "아군 이름 크기" L["Name Distance"] = "이름 간격" +L["Hide Enemy Name While Casting"] = "시전 중 적 이름 숨김" +L["Focus Letter"] = "주시 글자" +L["Experimental: Cast Lockout as CC Icon"] = "실험적: 시전 차단을 군중 제어 아이콘으로" +L["Line of Sight Opacity"] = "시야 차단 불투명도" L["(one per slot)"] = "(슬롯당 하나)" L["(Percent)"] = "(퍼센트)" L["Arrow Scale"] = "화살표 비율" @@ -1489,6 +1498,7 @@ L["Friendly Names Not Clickable"] = "아군 이름 클릭 불가" L["Make friendly player and NPC nameplates click-through so their names never block your mouse or cause accidental friendly targeting.\n\nUse this when friendly names get in the way of clicking the world or the enemy nameplates behind them."] = "아군 플레이어·NPC 이름표를 클릭 통과시켜, 이름이 마우스를 가리거나 실수로 아군을 대상 지정하지 않게 합니다.\n\n아군 이름이 월드 클릭이나 뒤의 적 이름표 클릭을 방해할 때 사용하세요." L["Winged"] = "날개" -- add 이름표 드롭다운 (Nameplates Dropdown) +L["Hover Texture"] = "마우스오버 텍스처" L["Aura Duration"] = "오라 지속시간" L["Disabled when Enemy Name is centered on the health bar due to overlapping text"] = "적 이름이 생명력 바 중앙에 배치되면 글자가 겹치므로 비활성화됩니다" L["Dispel Glow Style"] = "해제 반짝임 모양" @@ -1543,6 +1553,8 @@ L["Top Text"] = "상단 글자" L["Vibrant"] = "강렬" L["Wide Stripes"] = "넓은 줄무늬" -- add 이름표 툴팁 (Nameplates Tooltip) +L["Uses the Hover Effect color and opacity. Set to None for the flat hover highlight."] = "마우스오버 효과의 색상과 불투명도를 사용합니다. 평면 마우스오버 강조는 '없음'으로 설정하세요." +L["Hide the enemy name text while that nameplate's cast bar is visible."] = "해당 이름표의 시전 바가 보이는 동안 적 이름 글자를 숨깁니다." L["Adjusts the vertical spacing between stacked nameplates. 100% = default, lower = tighter, higher = more spread."] = "겹침 이름표 사이의 세로 간격을 조정합니다. 100%는 기본값이며, 낮을수록 촘촘하고 높을수록 넓어집니다." L["Colors enemy nameplates for quest mobs you still need to kill."] = "아직 처치해야 하는 퀘스트 몹의 적 이름표 색상을 변경합니다." L["Controls the highlight shown over a nameplate when you mouse over it. Set to 0 to disable."] = "이름표에 마우스를 올렸을 때 표시되는 강조 효과를 조절합니다. 0으로 설정하면 비활성화됩니다." @@ -1700,6 +1712,8 @@ L["Portrait Mode"] = "초상화 모드" L["This option requires a dropdown selection other than Above Health Bar"] = "생명력 막대 위 외의 항목을 선택해야 합니다" L["Value | %"] = "수치 | %" -- add 유닛프레임 툴팁 (UnitFrames Tooltip) +L["Force boss debuffs into a single large column matched to the frame height."] = "우두머리 약화 효과를 프레임 높이에 맞춘 하나의 큰 세로줄로 강제 표시합니다." +L["Force boss buffs into a single large column matched to the frame height."] = "우두머리 강화 효과를 프레임 높이에 맞춘 하나의 큰 세로줄로 강제 표시합니다." L["Apply Absorb Style to all Frames"] = "흡수 스타일 모든 프레임에 적용" L["Apply Art Style to all Frames"] = "아트 스타일 모든 프레임에 적용" L["Apply Bar Background to all Frames"] = "바 배경을 모든 프레임에 적용" @@ -1777,6 +1791,9 @@ L["Shows only the Buffs/Debuffs you apply"] = "내가 적용한 강화/약화 L["Shows only the spells Blizzard flags as Important"] = "블리자드가 중요로 표시한 주문만 보임" L["Shows the raid target marker icon on boss frames."] = "우두머리 프레임에 공격대 징표 아이콘을 표시합니다." L["Simple Debuff Display"] = "단순 약화 효과 표시" +L["Simple Buff Display"] = "단순 강화 효과 표시" +L["Simple Debuff Position"] = "단순 약화 효과 위치" +L["Simple Buff Position"] = "단순 강화 효과 위치" L["This option is only available for formats that display a percentage."] = "이 옵션은 백분율을 표시하는 형식에서만 사용할 수 있습니다." L["This option is only available when Portrait Mode is Detached."] = "이 옵션은 초상화 모드가 분리됨일 때만 사용 가능합니다." L["This option requires a Class Icon other than None."] = "이 옵션은 직업 아이콘이 없음 이외로 설정되어야 합니다." @@ -1799,6 +1816,7 @@ L["Stack Direction"] = "중첩 방향" L["Stack Position"] = "중첩 위치" L["Simple Text Size"] = "단순 글자 크기" L["Debuff Text Size"] = "약화 효과 글자 크기" +L["Buff Text Size"] = "강화 효과 글자 크기" L["Debuff Extras"] = "약화 효과 추가 기능" L["Buffs and Debuffs"] = "강화 및 약화 효과" L["Blizzard Aura Frames"] = "블리자드 강화/약화 효과" @@ -1948,6 +1966,8 @@ L["Macros"] = "매크로" L["Marker Offset"] = "징표 위치" L["Max Buffs"] = "최대 강화 효과" L["Max Characters (0=off)"] = "최대 글자 수 (0=비활성화)" +L["Max Health Style"] = "최대 생명력 스타일" +L["Max Health Opacity"] = "최대 생명력 불투명도" L["Merge Groups"] = "그룹 병합" L["Middle Click"] = "가운데 클릭" L["Mistweaver Monk"] = "운무 수도사" @@ -1975,6 +1995,7 @@ L["Overlay Preview"] = "오버레이 미리보기" L["Party Frames"] = "파티 프레임" L["Percent (No Sign)"] = "백분율 (기호 없음)" L["Percent | Number"] = "백분율 | 숫자" +L["Per Row"] = "줄당 개수" L["Placement"] = "배치 위치" L["Position Offset"] = "위치 조정" L["Power Height"] = "자원 높이" @@ -1987,8 +2008,10 @@ L["Preset"] = "프리셋" L["Press a key, click, or scroll..."] = "키, 클릭, 스크롤을 입력..." L["Prioritize Class"] = "직업 우선" L["Private Aura Offset"] = "비공개 오라 위치" +L["Private Dispel Overlay Position"] = "해제 가능 비공개 오라 위치" L["Quickbind"] = "빠른 바인딩" L["Quickbind: hover a spell, press a key"] = "빠른 바인딩: 주문에 마우스를 올리고 키를 누르세요" +L["Right Mouse Camera Unlock"] = "마우스 오른쪽 버튼 카메라 잠금 해제" L["Raid Debuffs Only"] = "공격대 약화 효과만" L["Ravynne"] = "레이븐" L["Real Preview"] = "실제 미리보기" @@ -2059,6 +2082,7 @@ L["Void Shield"] = "공허의 보호막" L["Wheel Down"] = "휠 아래로" L["Wheel Up"] = "휠 위로" L["Wild Growth"] = "급속 성장" +L["Wrap Direction"] = "줄 바꿈 방향" L["Zulkhar"] = "줄카르" -- add 레이드프레임 드롭다운 (RaidFrames Dropdown) L["Abilities"] = "능력" @@ -2082,6 +2106,8 @@ L["Health Bar Texture"] = "생명력 바 텍스처" L["Health Text Position"] = "생명력 글자 위치" L["Hover Borders"] = "마우스오버 테두리" L["Leader Icon"] = "공대장 아이콘" +L["Max Health Stripes"] = "최대 생명력 줄무늬" +L["Max Health Rendering"] = "최대 생명력 표시 방식" L["Marker Position"] = "징표 위치" L["Name Position"] = "이름 위치" L["Overlay"] = "오버레이" @@ -2105,6 +2131,7 @@ L["When Present"] = "있을 때" L[" frame size"] = " 프레임 크기" L[" preview"] = " 미리보기" L[" size"] = " 크기" +L["Allows free camera movement while holding and dragging right mouse button over raid frames. Right-click tap still opens the unit menu."] = "공격대 프레임 위에서 마우스 오른쪽 버튼을 누른 채 드래그하는 동안 카메라를 자유롭게 움직일 수 있도록 허용합니다. 마우스 오른쪽 버튼을 짧게 클릭하면 기존처럼 개체 메뉴가 열립니다." L["Animate power bars"] = "자원 바 애니메이션" L["Automatically duplicates the raid's tanks into the Extra Frames group. Shares the 5-frame cap with hotkey picks."] = "공격대의 방어 전담을 추가 프레임 그룹에 자동으로 복제합니다. 단축키로 지정한 인원과 5프레임 한도를 공유합니다." L["Bleed"] = "출혈" @@ -2166,6 +2193,7 @@ L["Toggle All Indicators"] = "모든 표시기 켜기/끄기" L["Tooltip Options"] = "툴팁 옵션" L["When Healing"] = "힐러일 때 표시" L["When you are solo, center the player frame on the party frame instead of anchoring it at the top."] = "솔로일 때 플레이어 프레임을 파티 프레임 맨 위에 붙이지 않고 가운데에 배치합니다." +L["When you are solo, center the player frame on the party frame instead of anchoring it at the top."] = "솔로일 때 플레이어 프레임을 파티 프레임 맨 위에 붙이지 않고 가운데에 배치합니다." L["Widens or narrows the boss frames relative to the raid frame size."] = "우두머리 프레임을 공격대 프레임 크기 기준으로 넓히거나 좁힙니다." L["Widens or narrows the extra frames relative to the raid frame size."] = "추가 프레임을 공격대 프레임 크기 기준으로 넓히거나 좁힙니다." -- add 레이드프레임 팝업 (RaidFrames Popup) @@ -2232,6 +2260,7 @@ L["Hidden (CD Ready)"] = "숨김 (사용 준비됨)" L["Hidden (On CD)"] = "숨김 (대기시간 중)" L["Hidden CDs"] = "숨긴 재사용 대기시간" L["Hide Active State"] = "활성 상태 숨김" +L["Hide When Inactive"] = "비활성화 시 숨기기" L["Hide Rotation Helper"] = "로테이션 도우미 숨김" L["Horizontal Gradient"] = "가로 그라데이션" L["Icon Scale"] = "아이콘 배율" @@ -2326,6 +2355,7 @@ L["Hide the brief GCD swipe that flashes when you cast any spell. The actual abi L["How many icons to show on the top row. The rest go on the bottom row."] = "상단 행에 표시할 아이콘 수. 나머지는 하단 행으로 이동합니다." L["Item Count"] = "아이템 수량" L["Max Stacks"] = "최대 중첩" +L["Only show this bar while the tracked buff/cooldown is active. Turn off to keep an empty bar on screen at all times."] = "추적 중인 버프나 재사용 대기시간이 활성화되어 있을 때만 이 바를 표시합니다. 설정을 끄면 항상 화면에 빈 바가 유지됩니다." L["Show a glow on icons when the remaining duration is in the pandemic window (last 30%)"] = "남은 지속시간이 팬데믹 구간(마지막 30%)일 때 아이콘에 반짝임을 표시합니다" L["Show a glow on the bar when the remaining duration is in the pandemic window (last 30%)"] = "남은 지속시간이 팬데믹 구간(마지막 30%)일 때 바에 반짝임을 표시합니다" L["Show equipped trinkets even if they don't have an on-use effect."] = "사용 효과가 없어도 장착한 장신구를 표시합니다." @@ -2879,7 +2909,7 @@ L["Rested Indicator"] = "휴식 표시기" L["Scale of the /keys popup window."] = "/keys 팝업 창의 크기 비율." L["Show Coordinates on Map"] = "지도에 좌표 표시" L["Show gear tiles for items already at their maximum item level."] = "이미 최대 아이템 레벨인 장비 타일을 표시합니다." -L["Show how many crests you can still earn before hitting the season cap (cap minus earned so far)."] = "시즌 한도에 도달하기까지 더 얻을 수 있는 문장 수를 표시합니다 (한도 − 현재 획득)." +L["Show how many crests you can still earn before hitting the season cap (cap minus earned so far)."] = "시즌 한도에 도달하기까지 더 얻을 수 있는 문장 수를 표시합니다 (한도 - 현재 획득)." L["Show Tertiary Stats"] = "3차 스탯 표시" L["Show the seasonal Earned / Cap column in the crest table."] = "문장 표에 시즌 획득/한도 열을 표시합니다." L["Shows a popup with party and guild keystones when typing /keys."] = "/keys 입력 시 파티·길드 쐐기돌 팝업을 표시합니다." @@ -3000,6 +3030,7 @@ L["Upgrade Track"] = "강화 단계" L["Upgrades"] = "강화" L["Versatility"] = "유연성" -- add 블리자드스킨 툴팁 (BlizzardSkin Tooltip) +L["Add diminishing-returns detail (adjusted rating, wasted rating, and current penalty bracket) to the Secondary and Tertiary stat tooltips."] = "보조 및 3차 능력치 툴팁에 점감 효과 상세 정보(조정된 능력치, 낭비된 능력치, 현재 페널티 구간)를 추가합니다." L["Appends the spell or item ID to tooltips. The same setting as Global Settings > Developer."] = "툴팁에 주문 또는 아이템 ID를 추가합니다. 전역 설정 > 개발자와 동일한 설정입니다." L["Applies EllesmereUI theme styling to the character sheet window."] = "캐릭터 시트 창에 EllesmereUI 테마 스타일을 적용합니다." L["Applies EllesmereUI theme styling to the inspect sheet window."] = "확인 시트 창에 EllesmereUI 테마 스타일을 적용합니다." @@ -3041,6 +3072,7 @@ L["Reskins the LFG/dungeon queue accept popup with the EUI dark style and adds a L["Scales the font size of reskinned Blizzard tooltips, menus, and popups."] = "다시 디자인된 기본 UI 툴팁, 메뉴, 팝업의 글꼴 크기를 조정합니다." L["Second Wind"] = "재기" L["Show Detailed Tooltips"] = "상세 툴팁 표시" +L["Show Diminishing Returns"] = "점감 효과 표시" L["Show Item Text"] = "아이템 글자 보이기" L["Show Player Titles in Tooltips"] = "툴팁에 플레이어 칭호 표시" L["Shows a countdown bar below the queue accept popup indicating how long you have to accept."] = "대기열 수락 팝업 아래에 수락 가능한 시간을 보여주는 카운트다운 바를 표시합니다." @@ -3069,11 +3101,12 @@ L["Inspect Sheet theme setting requires a UI reload to fully apply."] = "확인 L["Reskin setting requires a UI reload to fully apply."] = "다시 디자인 설정은 UI를 리로드해야 완전히 적용됩니다." -- add 블리자드스킨 포맷 (BlizzardSkin Format) L[" ... and %d more"] = " ... 외 %d개 더" -L["%s %.2f%% (%d rating)"] = "%s %.2f%% (%d 등급)" +L["%s %.2f%% (%d rating)"] = "%s %.2f%% (%d)" L["%s (iLvl %d) - %s"] = "%s (아이템 레벨 %d) - %s" L["|T%s:16|t %s (iLvl %d)"] = "|T%s:16|t %s (아이템 레벨 %d)" +L["Adjusted Rating: %s"] = "조정된 능력치: %s" L["Attack Speed %.2f"] = "공격 속도 %.2f" -L["Avoidance %.2f%% (%d rating)"] = "회피 %.2f%% (%d 등급)" +L["Avoidance %.2f%% (%d rating)"] = "회피 %.2f%% (%d)" L["Conquest %d"] = "정복 점수 %d" L["Delete equipment set '%s'?"] = "'%s' 장비 세트 삭제?" L["Heals for %.2f%% of damage and healing done."] = "입힌 피해 및 치유량의 %.2f%%만큼 생명력을 회복합니다." @@ -3085,13 +3118,16 @@ L["Increases movement speed by %.2f%%."] = "이동 속도가 %.2f%% 증가합니 L["Increases the effectiveness of your Mastery by %.2f%%."] = "특화 효과가 %.2f%% 증가합니다." L["Increases your chance to critically hit by %.2f%%."] = "치명타 적중 확률이 %.2f%% 증가합니다." L["M+ Score: %s%d|r"] = "신화+ 점수: %s%d|r" -- COLOR_CAP: %s가 |cffXXXXXX 전체 캡처 - 키에 |cff 리터럴 넣으면 영구 미스 +L["Next %d%% Penalty At: %s (+%s)"] = "다음 %d%% 페널티 기준: %s (+%s)" L["PvP iLvl: %s%d|r"] = "PvP 아이템 레벨: %s%d|r" L["PvP iLvl: |cff00cc66%d|r"] = "PvP 아이템 레벨: |cff00cc66%d|r" +L["Penalty Percentage: %s"] = "페널티 비율: %s" L["Reduces damage taken from area attacks by %.2f%%."] = "광역 공격으로 받는 피해가 %.2f%% 감소합니다." L["Show % and Raw"] = "% 및 원시값 표시" L["Spell Power %d"] = "주문력 %d" L["Stagger Effect %.2f%%"] = "시간차 효과 %.2f%%" L["Versatility %.2f%% (%d rating)"] = "유연성 %.2f%% (%d 등급)" +L["Wasted Rating: %s"] = "낭비된 능력치: %s" L["You have %d better item%s in inventory"] = "가방에 더 좋은 아이템이 %d개%.0s 있습니다" -- == add 친구목록 (Friends) ======================================================= @@ -3185,6 +3221,7 @@ L["%d left"] = "%d개 남음" L["Enemy Forces % Options"] = "적 병력 % 옵션" -- == add 퀘스트추적기 (QuestTracker) ================================================ +L["Allow Quest Tracker to be Moved Offscreen"] = "추적창기 창을 화면 밖으로 이동할 수 있도록 허용" L["Auto Accept Quests"] = "퀘스트 자동 수락" L["Auto Accept Settings"] = "자동 수락 설정" L["Auto Turn In Quests"] = "퀘스트 자동 완료" @@ -3192,6 +3229,7 @@ L["Auto Turn In Settings"] = "자동 완료 설정" L["Blizzard tracker skin, visibility rules, auto-accept/turn-in, quest-item hotkey."] = "블리자드 추적기 스킨, 표시 규칙, 자동 수락/완료, 퀘스트 아이템 단축키." L["Completed Color"] = "완료 색상" L["Focused Color"] = "집중 색상" +L["Force Quest Tracker on Screen"] = "추척기 창 화면 안 고정" L["Hold Shift to Skip"] = "쉬프트 누른 채로 건너뛰기" L["Objective Font Size"] = "목표 글꼴 크기" L["Prevent Multi Quest Accept"] = "다중 퀘스트 수락 방지" From 58212a7fdeaac2670aab895b92b24871e932feb4 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Mon, 22 Jun 2026 15:23:40 +0900 Subject: [PATCH 2/6] Update EllesmereUIActionBars.toc --- EllesmereUIActionBars/EllesmereUIActionBars.toc | 1 + 1 file changed, 1 insertion(+) diff --git a/EllesmereUIActionBars/EllesmereUIActionBars.toc b/EllesmereUIActionBars/EllesmereUIActionBars.toc index 7a2fad71..881e69eb 100644 --- a/EllesmereUIActionBars/EllesmereUIActionBars.toc +++ b/EllesmereUIActionBars/EllesmereUIActionBars.toc @@ -11,6 +11,7 @@ # Main Luas EllesmereUIActionBars.lua +EllesmereUIVehicleLeave.lua EUI_ActionBars_Flyout.lua # Options From 43332aa9abcdc26da75ef38bfa153f4cbdda70fa Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Mon, 22 Jun 2026 15:26:43 +0900 Subject: [PATCH 3/6] Update EllesmereUIActionBars.lua --- EllesmereUIActionBars/EllesmereUIActionBars.lua | 5 ----- 1 file changed, 5 deletions(-) diff --git a/EllesmereUIActionBars/EllesmereUIActionBars.lua b/EllesmereUIActionBars/EllesmereUIActionBars.lua index ecc105b5..04bd3efc 100644 --- a/EllesmereUIActionBars/EllesmereUIActionBars.lua +++ b/EllesmereUIActionBars/EllesmereUIActionBars.lua @@ -8101,11 +8101,6 @@ function EAB:FinishSetup() end end RestoreBarPositions() - local vBtn = MainMenuBarVehicleLeaveButton - if vBtn and barFrames["MainBar"] then - vBtn:ClearAllPoints() - vBtn:SetPoint("BOTTOM", barFrames["MainBar"], "TOPRIGHT", -15, 2) - end else -- Combat reload: non-protected setup only; secure handler does the rest. -- Stock bar disposal (including ActionBarParent) already happened at From 51af5193ce529676db8fe285a29b0be4931bbbac Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Mon, 22 Jun 2026 15:27:12 +0900 Subject: [PATCH 4/6] Add files via upload --- .../EllesmereUIVehicleLeave.lua | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 EllesmereUIActionBars/EllesmereUIVehicleLeave.lua diff --git a/EllesmereUIActionBars/EllesmereUIVehicleLeave.lua b/EllesmereUIActionBars/EllesmereUIVehicleLeave.lua new file mode 100644 index 00000000..4c384260 --- /dev/null +++ b/EllesmereUIActionBars/EllesmereUIVehicleLeave.lua @@ -0,0 +1,93 @@ +-- VehicleLeave.lua -- vehicle exit button: movable + resizable via Unlock Mode, +-- reusing the original Blizzard art cropped square with a 1px border. Kept in its +-- own file so its locals don't count against the main chunk's 200-local budget. +-- Taint-safe: only methods are called on the secure button (no field writes). +local EAB = EllesmereUI and EllesmereUI.Lite and EllesmereUI.Lite.GetAddon("EllesmereUIActionBars", true) +local btn = MainMenuBarVehicleLeaveButton +if not (EAB and btn) then return end + +local KEY, CROP, MIN, MAX = "VehicleLeave", 0.2, 0.5, 3.0 +local DEFAULT = { point = "BOTTOM", relPoint = "BOTTOM", x = 0, y = 180 } +local native = btn:GetWidth(); if not native or native <= 0 then native = 36 end +local bordered, unlockShow + +local function db() return EAB.db and EAB.db.profile end +local function size() local p = db(); return (p and p.vehicleLeaveSize) or native end + +-- Apply position, size and restyle (all guarded out of combat). +local function apply() + if InCombatLockdown() then return end + local p = db() + local pos = (p and p.barPositions and p.barPositions[KEY]) or DEFAULT + btn:ClearAllPoints() + btn:SetPoint(pos.point, UIParent, pos.relPoint or pos.point, pos.x or 0, pos.y or 0) + pcall(btn.SetSize, btn, size(), size()) + for _, t in ipairs({ btn:GetNormalTexture(), btn:GetPushedTexture() }) do + if t then pcall(function() t:SetTexCoord(CROP, 1 - CROP, CROP, 1 - CROP); t:SetAllPoints(btn) end) end + end + if not bordered and EllesmereUI.PP and EllesmereUI.PP.CreateBorder then + pcall(EllesmereUI.PP.CreateBorder, btn, 0, 0, 0, 1, 1, "OVERLAY", 1); bordered = true + end +end + +local function setSize(v) + v = tonumber(v); local p = db(); if not (v and p) then return end + p.vehicleLeaveSize = math.max(native * MIN, math.min(native * MAX, v)) + if not InCombatLockdown() then pcall(btn.SetSize, btn, size(), size()) end +end + +-- Force-show while unlocking (so it can be dragged off-vehicle); else restore +-- the main file's Blizzard-owned visibility. +local function show(force) + unlockShow = force + if force then btn:Show(); return end + if not (InCombatLockdown() and EllesmereUI.InProtectedInstance and EllesmereUI.InProtectedInstance()) then + btn:SetShown((CanExitVehicle and CanExitVehicle()) or false) + end + apply() +end + +local function register() + local MK = EllesmereUI.MakeUnlockElement + if not (MK and EllesmereUI.RegisterUnlockElements) then return end + EllesmereUI:RegisterUnlockElements({ MK({ + key = KEY, label = "Vehicle Exit Button", group = "Action Bars", order = 280, + linkedDimensions = true, + getFrame = function() return btn end, + getSize = function() return size(), size() end, + setWidth = function(_, w) setSize(w) end, + setHeight = function(_, h) setSize(h) end, + savePos = function(_, point, relPoint, x, y) + local p = db() + if p and point then p.barPositions[KEY] = { point = point, relPoint = relPoint or point, x = x, y = y } end + if not EllesmereUI._unlockActive then apply() end + end, + loadPos = function() + local p = db(); local s = p and p.barPositions and p.barPositions[KEY] + return s and { point = s.point, relPoint = s.relPoint or s.point, x = s.x, y = s.y } or nil + end, + clearPos = function() local p = db(); if p then p.barPositions[KEY] = nil end end, + applyPos = apply, + }) }, "EllesmereUIActionBars") +end + +local f = CreateFrame("Frame") +f:RegisterEvent("PLAYER_LOGIN") +f:RegisterEvent("PLAYER_ENTERING_WORLD") +f:RegisterEvent("PLAYER_REGEN_ENABLED") +f:RegisterEvent("UNIT_ENTERED_VEHICLE") +f:SetScript("OnEvent", function(_, e, unit) + if e == "PLAYER_LOGIN" then + register() + if _G._EAB_UnlockModeOpen then -- post-hook the main file's unlock notifiers + hooksecurefunc("_EAB_UnlockModeOpen", function() show(true) end) + hooksecurefunc("_EAB_UnlockModeClose", function() show(false) end) + end + elseif e == "UNIT_ENTERED_VEHICLE" then + if unit == "player" and C_Timer then C_Timer.After(0.05, apply) end -- Blizzard reset the art + elseif C_Timer then + C_Timer.After(0.3, apply) -- after setup / after combat + else + apply() + end +end) From a85c6a73bc9f70df9a0cfcca8649bcab72f0105a Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Mon, 22 Jun 2026 15:41:27 +0900 Subject: [PATCH 5/6] Update EllesmereUIActionBars.lua --- EllesmereUIActionBars/EllesmereUIActionBars.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/EllesmereUIActionBars/EllesmereUIActionBars.lua b/EllesmereUIActionBars/EllesmereUIActionBars.lua index 04bd3efc..e7a3a6c9 100644 --- a/EllesmereUIActionBars/EllesmereUIActionBars.lua +++ b/EllesmereUIActionBars/EllesmereUIActionBars.lua @@ -8101,6 +8101,9 @@ function EAB:FinishSetup() end end RestoreBarPositions() + -- Vehicle exit button position/size/restyle + unlock-mode mover live + -- in EllesmereUIVehicleLeave.lua (separate file, so locals don't count + -- against this chunk's 200-local limit). else -- Combat reload: non-protected setup only; secure handler does the rest. -- Stock bar disposal (including ActionBarParent) already happened at From 2b65993d6b0d1f8aa17ba3813ca0d2a845103515 Mon Sep 17 00:00:00 2001 From: labrie75 <82786635+labrie75@users.noreply.github.com> Date: Mon, 22 Jun 2026 15:44:40 +0900 Subject: [PATCH 6/6] Update EllesmereUIVehicleLeave.lua