Compare commits

..

10 Commits

Author SHA1 Message Date
Aaron Suen
081559f7cc Switch around loops to be a bit more efficient 2024-10-11 18:03:13 -04:00
Aaron Suen
3d7dd70f4d Switch input allow list to disallow list
MT keeps adding new inputs like zoom and now analog movement input.
We need to assume that newly added inputs don't block autotrek from
working, rather than blocking it, or else some additions like the
analog inputs prevent it from ever working.
2024-10-11 18:01:18 -04:00
Aaron Suen
11907a61d6 HUD tweaks 2024-09-19 22:05:39 -04:00
Aaron Suen
5ad4600533 Fix up particle effects 2024-09-19 21:41:48 -04:00
Aaron Suen
c9f3249db9 Fix wrong folder nesting 2024-09-19 21:23:48 -04:00
Aaron Suen
8958af230b Image filters and optimization 2024-08-22 06:49:05 -04:00
Aaron Suen
20358c5a4f 5.9.0 hud_elem_type compat 2024-08-15 07:48:34 -04:00
Aaron Suen
401a04ed40 CDB webp conversion 2024-07-27 12:09:49 -04:00
Aaron Suen
0c232db32f Warning about diagonal paths bumping off course 2023-11-28 22:30:14 -05:00
Aaron Suen
1abf547018 Add automatic swim/climb upward 2023-11-28 22:25:52 -05:00
13 changed files with 205 additions and 269 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

BIN
.cdb-screen1.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

BIN
.cdb-screen2.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -30,8 +30,8 @@ return {
repo = "https://gitlab.com/sztest/autotrek",
long_description = readtext('README.md'),
screenshots = {
readbinary('.cdb-screen1.jpg'),
readbinary('.cdb-screen2.jpg'),
readbinary('.cdb-screen1.webp'),
readbinary('.cdb-screen2.webp'),
}
}

View File

@ -8,6 +8,10 @@ AutoTrek supports the **4 cardinal directions** (North, South, East, West) and t
Pick one of the supported directions and **walk continuously forward** for a few seconds. You will see a HUD appear with the AutoTrek icon. If you **point directly at this HUD** for a second or so, you will "lock in" your travel direction, and AutoTrek will make fine adjustments to your direction and position to keep you centered on your path (terrain allowing).
While locked in to a travel direction, players will automatically **swim/climb upward** as necessary to stay afloat and clear simple obstacles such as shores.
Beware that when traveling diagonally, the player may experience "friction" against the edges of nodes that can push them off course, and the course correction may not always be enough to put the player back on the original path; they can end up on a path alongside the original. You should carefully plan and modify diagonal paths for best reliability.
### Automatic Turns
When a player is "locked in" to a travel direction, certain structures, when detected, will cause the player to turn automatically and lock in another path 90 or 45 degrees from the previous one.

View File

@ -66,6 +66,7 @@ do
minetest.register_on_leaveplayer(function(player)
hudstate[player:get_player_name()] = nil
end)
local hud_elem_type = minetest.features.hud_def_type_field and "type" or "hud_elem_type"
hudset = function(player, pos, opacity)
local pname = player:get_player_name()
local state = hudstate[pname]
@ -77,7 +78,7 @@ do
local img = "autotrek_hud.png^[opacity:" .. (opacity or 255)
if not state.id then
state.id = player:hud_add({
hud_elem_type = "image_waypoint",
[hud_elem_type] = "image_waypoint",
world_pos = pos,
text = img,
scale = {x = 0.5, y = 0.5},
@ -108,19 +109,33 @@ end
------------------------------------------------------------------------
-- PARTICLE EFFECTS
local function particles(pname, vpos, vel)
local pos = vector.add(vpos, vel)
minetest.add_particlespawner({
local oldparticles = {}
local function particles(player, pname, speed)
pname = pname or player:get_player_name()
speed = speed or vector.length(player:get_velocity())
local old = oldparticles[pname]
if old then
minetest.delete_particlespawner(old, pname)
oldparticles[pname] = nil
end
if speed < 2 then return end
local height = player:get_properties().eye_height
oldparticles[pname] = minetest.add_particlespawner({
amount = 20,
time = 2,
size = 1/8,
expirationtime = 2,
expirationtime = 1,
texture = "autotrek_particle.png",
playername = pname,
attached = player,
glow = 14,
minpos = vector.add(pos, vector.new(-1, -1, -1)),
maxpos = vector.add(pos, vector.new(1, 1, 1)),
acceleration = vector.multiply(vel, 0.5),
minpos = vector.new(-1, height - 1, 0),
maxpos = vector.new(1, height + 1, speed),
acceleration = vector.new(0, 0, -speed),
})
end
@ -195,7 +210,14 @@ end
------------------------------------------------------------------------
-- PATH CORRECTION
local function pathcorrect(player, ppos, bestv)
local function isswimmable(pos)
local node = minetest.get_node(pos)
local def = minetest.registered_nodes[node.name] or {}
return def.climbable or def.liquid_move_physics or def.liquidtype ~= "none"
end
local vzero = vector.new(0, 0, 0)
local function pathcorrect(player, ppos, bestv, swimcheck)
-- If the player's yaw is not exact enough, then
-- snap it to the exact direction. We have to
-- allow for some floating point rounding error here
@ -206,6 +228,17 @@ local function pathcorrect(player, ppos, bestv)
player:set_look_horizontal(nh)
end
-- Determine if the player needs to or climb up: either
-- they are sinking too far into a sinkable/swimmable
-- node, or they're in one and the node in front of them
-- is one they'd have to climb out for.
local addvel = vzero
if swimcheck and isswimmable(ppos)
and (isswimmable(vector.offset(ppos, 0, 1, 0))
or issolid(vector.add(ppos, bestv))) then
addvel = vector.new(0, 10, 0)
end
-- Compute how far away from the grid centerline
-- the player's path is and nudge them back into
-- alignment with the exact centers of nodes.
@ -215,20 +248,28 @@ local function pathcorrect(player, ppos, bestv)
offs = offs / spacing
offs = offs - math_floor(offs)
if offs > griderr and offs < 0.5 then
player:add_velocity(vector.multiply(across, -gridforce))
addvel = vector.add(addvel, vector.multiply(across, -gridforce))
elseif offs >= 0.5 and offs < 1 - griderr then
player:add_velocity(vector.multiply(across, gridforce))
addvel = vector.add(addvel, vector.multiply(across, gridforce))
end
if addvel ~= vzero and not vector.equals(addvel, vzero) then
player:add_velocity(addvel)
end
end
------------------------------------------------------------------------
-- AUTOTREK STATE MACHINE
local allowkeys = {
up = true,
jump = true,
local disallowkeys = {
left = true,
right = true,
down = true,
dig = true,
place = true,
LMB = true,
RMB = true,
sneak = true,
aux1 = true,
}
local pdata = {}
@ -245,8 +286,8 @@ local function checkplayer(player, dtime)
-- seconds, otherwise deactivate
local ctl = player:get_player_control()
local fwd = ctl.up
for k, v in pairs(ctl) do
if v and not allowkeys[k] then
for k in pairs(disallowkeys) do
if ctl[k] then
fwd = false
break
end
@ -257,9 +298,13 @@ local function checkplayer(player, dtime)
while next(data) do
data[next(data)] = nil
end
particles(player, pname, 0)
return hudset(player)
end
if data.runtime < walktime then
particles(player, pname, 0)
return hudset(player)
end
if data.runtime < walktime then return hudset(player) end
-- Figure out which of the [semi-]cardinal directions
-- is closest to the one the player is looking at, and
@ -279,7 +324,7 @@ local function checkplayer(player, dtime)
local ppos = player:get_pos()
local vpos = vector.offset(ppos, 0, player:get_properties().eye_height, 0)
hudset(player, vector.add(vpos, vector.multiply(bestv, huddist)),
bestd < lockmin and 32 or 192)
bestd < lockmin and 24 or 192)
-- The player must lock on close enough to the
-- exact direction for a little while to activate
@ -295,7 +340,7 @@ local function checkplayer(player, dtime)
-- Draw particles.
data.fxtime = (data.fxtime or 0) - dtime
if data.fxtime <= 0 then
particles(pname, vpos, player:get_velocity())
particles(player, pname)
data.fxtime = 1
end
@ -311,7 +356,13 @@ local function checkplayer(player, dtime)
end
-- Apply path correction if no turns.
return pathcorrect(player, ppos, bestv)
local swimcheck
data.swimtime = (data.swimtime or 0) - dtime
if data.swimtime <= 0 then
swimcheck = true
data.swimtime = 1
end
return pathcorrect(player, ppos, bestv, swimcheck)
end
------------------------------------------------------------------------

View File

@ -1,74 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="55.098507mm"
height="62.478344mm"
viewBox="0 0 55.098507 62.478344"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="hud.svg"
inkscape:export-filename="../textures/autotrek_hud.png"
inkscape:export-xdpi="600.024"
inkscape:export-ydpi="600.024"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.1893044"
inkscape:cx="137.0549"
inkscape:cy="211.88856"
inkscape:window-width="1366"
inkscape:window-height="723"
inkscape:window-x="0"
inkscape:window-y="21"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-58.203284,-74.833742)">
<path
id="path234"
style="opacity:1;fill:none;stroke:#ffffff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:transform-center-y="-1.7810815e-06"
d="m 59.203284,82.953206 13.34817,7.706569 v 30.826275 l -13.34817,7.70657"
sodipodi:nodetypes="cccc" />
<path
id="path234-3"
style="opacity:1;fill:none;stroke:#ffffff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:transform-center-y="-1.7810815e-06"
d="m 112.30179,82.953205 -13.348172,7.706569 v 30.826286 l 13.348172,7.70657"
sodipodi:nodetypes="cccc" />
<g
id="g3538">
<path
id="path234-3-6"
style="opacity:1;fill:none;stroke:#ffffff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:transform-center-y="-1.7810815e-06"
d="M 85.752534,74.833742 V 89.676167"
sodipodi:nodetypes="cc" />
<path
id="path234-3-6-5"
style="opacity:1;fill:none;stroke:#ffffff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:transform-center-y="-1.7810815e-06"
d="m 85.752534,122.46966 v 14.84243"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,172 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="81.183311mm"
height="81.349937mm"
viewBox="0 0 81.183312 81.349936"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="autotrek_hud.svg"
inkscape:export-filename="/home/warr/snap/minetest/current/mods/autotrek/textures/autotrek_hud.png"
inkscape:export-xdpi="15.02"
inkscape:export-ydpi="15.02">
<defs
id="defs2">
<marker
inkscape:stockid="Arrow2Send"
orient="auto"
refY="0"
refX="0"
id="Arrow2Send"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path850"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-0.3,0,0,-0.3,0.69,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="TriangleOutL"
orient="auto"
refY="0"
refX="0"
id="TriangleOutL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path959"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(0.8)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path838"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path820"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Send"
orient="auto"
refY="0"
refX="0"
id="Arrow2Send-3"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path850-6"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Send"
orient="auto"
refY="0"
refX="0"
id="Arrow2Send-3-5"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path850-6-3"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="191.51479"
inkscape:cy="140.68536"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:pagecheckerboard="true"
inkscape:window-width="1366"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="21"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-52.767063,-88.879319)">
<path
inkscape:connector-curvature="0"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.52777767;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 113.61792,129.55487 c 0.99446,1.38558 1.65397,2.9313 1.97973,4.52582 -7.22968,0.91869 -12.69542,3.1777 -16.528709,7.4321 -5.277418,5.85718 -6.857462,14.61782 -6.857462,26.83609 H 97.8778 c 0,-11.70368 1.677342,-18.91122 5.40019,-23.04304 2.54678,-2.82655 6.33487,-4.62218 12.04371,-5.47512 -0.36893,1.19278 -0.93561,2.33624 -1.70378,3.38016 l 10.78539,-3.96565 c 0.0418,-6e-5 0.0805,-0.002 0.12248,-0.002 v -0.0439 l 7.66103,-2.81688 z"
id="path815-7" />
<path
inkscape:connector-curvature="0"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.52777767;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 73.098993,129.72606 -10.794172,3.96978 c -0.03835,-5e-5 -0.07475,-0.002 -0.113173,-0.002 v 0.0429 l -7.661031,2.8174 18.568376,6.82801 c -0.765728,-1.06689 -1.331656,-2.22906 -1.701189,-3.43493 5.706835,0.85309 9.493697,2.64898 12.040092,5.47512 3.722846,4.13181 5.402255,11.33935 5.402255,23.04303 h 5.666321 c 0,-12.21827 -1.58211,-20.97891 -6.859531,-26.83609 -3.833921,-4.2551 -9.299872,-6.51422 -16.530773,-7.43262 0.323993,-1.58501 0.983147,-3.11252 1.982825,-4.47104 z"
id="path815-7-5" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.92110443;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 93.330048,90.83929 -6.386703,24.52548 c 1.159108,-1.1747 2.43833,-1.99478 3.762512,-2.46325 v 55.20059 h 5.3001 v -55.20469 c 1.31353,0.46701 2.575233,1.28743 3.710794,2.46735 l -3.710794,-14.24993 v -0.15835 h -0.04109 z"
id="path815"
inkscape:connector-curvature="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 B

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 B

After

Width:  |  Height:  |  Size: 193 B

127
textures/src/hud.svg Normal file
View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="74.204941mm"
height="74.204941mm"
viewBox="0 0 74.204941 74.204941"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="hud.svg"
inkscape:export-filename="../autotrek_hud.png"
inkscape:export-xdpi="600.024"
inkscape:export-ydpi="600.024"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.1893044"
inkscape:cx="142.09987"
inkscape:cy="155.55311"
inkscape:window-width="1366"
inkscape:window-height="723"
inkscape:window-x="0"
inkscape:window-y="21"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient1082">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.69701636"
id="stop1078" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="0.86410475"
id="stop1080" />
</linearGradient>
<filter
style="color-interpolation-filters:sRGB"
id="filter1092"
inkscape:label="shadow"
x="-0.085389339"
y="-0.054294029"
width="1.1707787"
height="1.1085881">
<feGaussianBlur
stdDeviation="2"
id="feGaussianBlur1096"
in="SourceAlpha"
result="result1" />
<feMerge
id="feMerge1098">
<feMergeNode
inkscape:collect="always"
id="feMergeNode1100"
in="result1" />
<feMergeNode
inkscape:collect="always"
id="feMergeNode1102"
in="SourceGraphic" />
</feMerge>
</filter>
<mask
maskUnits="userSpaceOnUse"
id="mask1229">
<circle
style="fill:url(#radialGradient1233);fill-opacity:1;stroke:none;stroke-width:9.99998;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke markers fill;stop-color:#000000"
id="circle1231"
cx="85.752533"
cy="106.07291"
r="37.10247" />
</mask>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1082"
id="radialGradient1233"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0311782,0,0,1.0311782,-2.6736104,-3.3071593)"
cx="85.752541"
cy="106.07291"
fx="85.752541"
fy="106.07291"
r="40.980656" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-48.650063,-68.970436)">
<g
id="g499"
style="filter:url(#filter1092)"
mask="url(#mask1229)">
<path
id="path234-3"
style="opacity:1;fill:none;stroke:#ffffff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:transform-center-y="-1.7810815e-06"
d="M 120.50387,75.810638 98.953618,90.659774 V 121.48606 L 120.50387,136.3352 M 51.001201,75.81064 72.551454,90.659775 v 30.826275 l -21.550253,14.84913"
sodipodi:nodetypes="cccccccc" />
<g
id="g3538">
<path
id="path234-3-6-5"
style="opacity:1;fill:none;stroke:#ffffff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:transform-center-y="-1.7810815e-06"
d="m 85.752534,124.58633 v 25.69034 m 0,-88.407511 V 87.5595"
sodipodi:nodetypes="cccc" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB