Skip to content

Commit

Permalink
/prowadz pokazywanie sciezki (aktualizowana co krok) (#986)
Browse files Browse the repository at this point in the history
  • Loading branch information
Delwing authored Jun 11, 2021
1 parent 475f563 commit 487a47c
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 14 deletions.
21 changes: 21 additions & 0 deletions Arkadia.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26689,6 +26689,27 @@
<packageName></packageName>
<regex>^/idz$</regex>
</Alias>
<Alias isActive="yes" isFolder="no">
<name>prowadz</name>
<script>alias_func_prowadz(matches[2])</script>
<command></command>
<packageName></packageName>
<regex>^/prowadz (\d+)$</regex>
</Alias>
<Alias isActive="yes" isFolder="no">
<name>prowadz skrot</name>
<script>alias_func_prowadz_shortcut(matches[2])</script>
<command></command>
<packageName></packageName>
<regex>^/prowadz (\w+)$</regex>
</Alias>
<Alias isActive="yes" isFolder="no">
<name>prowadz-</name>
<script>alias_func_prowadz_stop()</script>
<command></command>
<packageName></packageName>
<regex>/prowadz-</regex>
</Alias>
</AliasGroup>
</AliasPackage>
<ActionPackage />
Expand Down
3 changes: 3 additions & 0 deletions mapper/help.lua
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ function amap:print_help()
cecho("| <light_slate_blue>/idz<grey> - jesli weszlismy na lokacje z dwoma wyjsciam (wedlug mappera), |\n")
cecho("| to alias ten wykona kierunek aby podazac dalej. Dziala to na podstawie wyjsc |\n")
cecho("| wyjsc z mappera Mudletowego, a nie GMCP/Arkadiowej mapy. |\n")
cecho("| <light_slate_blue>/prowadz [id]<grey> - pokazuje na mapie sciezke do lokacji aktualizowana co krok. |\n")
cecho("| <light_slate_blue>/prowadz [nazwa_skrotu]<grey> - - pokazuje na mapie sciezke do skrotu. |\n")
cecho("| <light_slate_blue>/prowadz- <grey> - wylacza sciezke prowadzaca do lokacji |\n")
cecho("| |\n")
cecho("| ----------------------- |\n")
cecho("| <yellow>CHODZIK<grey> |\n")
Expand Down
59 changes: 59 additions & 0 deletions mapper/path.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
amap.path_display = amap.path_display or {
highlighter = Highlight:new({}, {255, 200, 150}, {150, 100, 255})
}

function amap.path_display:start(destination)
if not tonumber(destination) then
destination = amap.shortcuts:get_room_by_name(destination)
if not destination then
scripts:print_log("Podaj ID lub prawidlowa nazwe skrotu.")
return
end
end
self.destination = tonumber(destination)

if self.destination == amap.curr.id then
scripts:print_log("Jestes juz na tej lokacji.")
return
end

self:show_destination()
self.handler = scripts.event_register:force_register_event_handler(self.handler, "amapNewLocation", function() self:show_destination() end)
registerMapInfo("GPS", function() return self:map_info() end)
enableMapInfo("GPS")
if not getPath(amap.curr.id, self.destination) then
scripts:print_log("Aktualnie nie jestem w stanie znalezc sciezki do lokacji " .. destination)
end
end


function amap.path_display:stop()
self.highlighter:clear()
scripts.event_register:kill_event_handler(self.handler)
disableMapInfo("GPS")
killMapInfo("GPS")
end

function amap.path_display:show_destination()
if amap.curr.id == self.destination then
self:stop()
return
end
self.highlighter:clear()
if getPath(amap.curr.id, self.destination) then
self.highlighter:set_locations(speedWalkPath)
self.highlighter:on()
end
end

function amap.path_display:map_info()
return string.format("Sciezka do %d | Odleglosc: %s", self.destination, #speedWalkPath > 0 and #speedWalkPath or "?"), true
end

function alias_func_prowadz(id)
amap.path_display:start(id)
end

function alias_func_prowadz_stop()
amap.path_display:stop()
end
25 changes: 11 additions & 14 deletions mapper/walker_highlights.lua
Original file line number Diff line number Diff line change
@@ -1,28 +1,25 @@
amap.walker_highlights = amap.walker_highlights or {
highlighter = Highlight:new({}, {255, 200, 150}, {150, 100, 255}),
event_handlers = {}
}

function amap.walker_highlights:register_events()
table.insert(self.event_handlers, scripts.event_register:register_event_handler("amapWalkerStarted", function() self:highlight_current_path() end))
table.insert(self.event_handlers, scripts.event_register:register_event_handler("amapWalkerTerminated", function() self:clear_highlight() end))
table.insert(self.event_handlers, scripts.event_register:register_event_handler("amapWalkerFinished", function() self:clear_highlight() end))
self.handler_s = scripts.event_register:force_register_event_handler(self.handler_s, "amapWalkerStarted", function() self:start() end)
self.handler_t = scripts.event_register:force_register_event_handler(self.handler_t, "amapWalkerTerminated", function() self:finish() end)
self.handler_f = scripts.event_register:force_register_event_handler(self.handler_f, "amapWalkerFinished", function() self:finish() end)
end

function amap.walker_highlights:deregister_events()
for k,v in pairs(self.event_handlers) do
scripts.event_register:kill_event_handler(v)
end
scripts.event_register:kill_event_handler(self.handler_s)
scripts.event_register:kill_event_handler(self.handler_t)
scripts.event_register:kill_event_handler(self.handler_f)
end

function amap.walker_highlights:highlight_current_path()
self.highlighter:set_locations(speedWalkPath)
self.highlighter:on()
function amap.walker_highlights:start()
amap.path_display:start(speedWalkPath[#speedWalkPath])
end

function amap.walker_highlights:clear_highlight()
self.highlighter:clear()
function amap.walker_highlights:finish()
amap.path_display:stop()
end

amap.walker_highlights:register_events()

amap.walker_highlights:register_events()
1 change: 1 addition & 0 deletions scriptsList.lua
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ return {
"mapper/room",
"mapper/map",
"mapper/highlighter",
"mapper/path",
"mapper/walker",
"mapper/walk_cmd",
"mapper/walker_highlights",
Expand Down

0 comments on commit 487a47c

Please sign in to comment.