Compare commits
10 Commits
7018a9f56e
...
081559f7cc
Author | SHA1 | Date | |
---|---|---|---|
|
081559f7cc | ||
|
3d7dd70f4d | ||
|
11907a61d6 | ||
|
5ad4600533 | ||
|
c9f3249db9 | ||
|
8958af230b | ||
|
20358c5a4f | ||
|
401a04ed40 | ||
|
0c232db32f | ||
|
1abf547018 |
BIN
.cdb-screen1.jpg
Before Width: | Height: | Size: 60 KiB |
BIN
.cdb-screen1.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
.cdb-screen2.jpg
Before Width: | Height: | Size: 106 KiB |
BIN
.cdb-screen2.webp
Normal file
After Width: | Height: | Size: 32 KiB |
@ -30,8 +30,8 @@ return {
|
|||||||
repo = "https://gitlab.com/sztest/autotrek",
|
repo = "https://gitlab.com/sztest/autotrek",
|
||||||
long_description = readtext('README.md'),
|
long_description = readtext('README.md'),
|
||||||
screenshots = {
|
screenshots = {
|
||||||
readbinary('.cdb-screen1.jpg'),
|
readbinary('.cdb-screen1.webp'),
|
||||||
readbinary('.cdb-screen2.jpg'),
|
readbinary('.cdb-screen2.webp'),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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).
|
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
|
### 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.
|
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.
|
||||||
|
93
init.lua
@ -66,6 +66,7 @@ do
|
|||||||
minetest.register_on_leaveplayer(function(player)
|
minetest.register_on_leaveplayer(function(player)
|
||||||
hudstate[player:get_player_name()] = nil
|
hudstate[player:get_player_name()] = nil
|
||||||
end)
|
end)
|
||||||
|
local hud_elem_type = minetest.features.hud_def_type_field and "type" or "hud_elem_type"
|
||||||
hudset = function(player, pos, opacity)
|
hudset = function(player, pos, opacity)
|
||||||
local pname = player:get_player_name()
|
local pname = player:get_player_name()
|
||||||
local state = hudstate[pname]
|
local state = hudstate[pname]
|
||||||
@ -77,7 +78,7 @@ do
|
|||||||
local img = "autotrek_hud.png^[opacity:" .. (opacity or 255)
|
local img = "autotrek_hud.png^[opacity:" .. (opacity or 255)
|
||||||
if not state.id then
|
if not state.id then
|
||||||
state.id = player:hud_add({
|
state.id = player:hud_add({
|
||||||
hud_elem_type = "image_waypoint",
|
[hud_elem_type] = "image_waypoint",
|
||||||
world_pos = pos,
|
world_pos = pos,
|
||||||
text = img,
|
text = img,
|
||||||
scale = {x = 0.5, y = 0.5},
|
scale = {x = 0.5, y = 0.5},
|
||||||
@ -108,19 +109,33 @@ end
|
|||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
-- PARTICLE EFFECTS
|
-- PARTICLE EFFECTS
|
||||||
|
|
||||||
local function particles(pname, vpos, vel)
|
local oldparticles = {}
|
||||||
local pos = vector.add(vpos, vel)
|
|
||||||
minetest.add_particlespawner({
|
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,
|
amount = 20,
|
||||||
time = 2,
|
time = 2,
|
||||||
size = 1/8,
|
size = 1/8,
|
||||||
expirationtime = 2,
|
expirationtime = 1,
|
||||||
texture = "autotrek_particle.png",
|
texture = "autotrek_particle.png",
|
||||||
playername = pname,
|
playername = pname,
|
||||||
|
attached = player,
|
||||||
glow = 14,
|
glow = 14,
|
||||||
minpos = vector.add(pos, vector.new(-1, -1, -1)),
|
minpos = vector.new(-1, height - 1, 0),
|
||||||
maxpos = vector.add(pos, vector.new(1, 1, 1)),
|
maxpos = vector.new(1, height + 1, speed),
|
||||||
acceleration = vector.multiply(vel, 0.5),
|
acceleration = vector.new(0, 0, -speed),
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -195,7 +210,14 @@ end
|
|||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
-- PATH CORRECTION
|
-- 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
|
-- If the player's yaw is not exact enough, then
|
||||||
-- snap it to the exact direction. We have to
|
-- snap it to the exact direction. We have to
|
||||||
-- allow for some floating point rounding error here
|
-- allow for some floating point rounding error here
|
||||||
@ -206,6 +228,17 @@ local function pathcorrect(player, ppos, bestv)
|
|||||||
player:set_look_horizontal(nh)
|
player:set_look_horizontal(nh)
|
||||||
end
|
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
|
-- Compute how far away from the grid centerline
|
||||||
-- the player's path is and nudge them back into
|
-- the player's path is and nudge them back into
|
||||||
-- alignment with the exact centers of nodes.
|
-- alignment with the exact centers of nodes.
|
||||||
@ -215,20 +248,28 @@ local function pathcorrect(player, ppos, bestv)
|
|||||||
offs = offs / spacing
|
offs = offs / spacing
|
||||||
offs = offs - math_floor(offs)
|
offs = offs - math_floor(offs)
|
||||||
if offs > griderr and offs < 0.5 then
|
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
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
-- AUTOTREK STATE MACHINE
|
-- AUTOTREK STATE MACHINE
|
||||||
|
|
||||||
local allowkeys = {
|
local disallowkeys = {
|
||||||
up = true,
|
left = true,
|
||||||
jump = true,
|
right = true,
|
||||||
|
down = true,
|
||||||
|
dig = true,
|
||||||
|
place = true,
|
||||||
|
LMB = true,
|
||||||
|
RMB = true,
|
||||||
sneak = true,
|
sneak = true,
|
||||||
aux1 = true,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local pdata = {}
|
local pdata = {}
|
||||||
@ -245,8 +286,8 @@ local function checkplayer(player, dtime)
|
|||||||
-- seconds, otherwise deactivate
|
-- seconds, otherwise deactivate
|
||||||
local ctl = player:get_player_control()
|
local ctl = player:get_player_control()
|
||||||
local fwd = ctl.up
|
local fwd = ctl.up
|
||||||
for k, v in pairs(ctl) do
|
for k in pairs(disallowkeys) do
|
||||||
if v and not allowkeys[k] then
|
if ctl[k] then
|
||||||
fwd = false
|
fwd = false
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@ -257,9 +298,13 @@ local function checkplayer(player, dtime)
|
|||||||
while next(data) do
|
while next(data) do
|
||||||
data[next(data)] = nil
|
data[next(data)] = nil
|
||||||
end
|
end
|
||||||
|
particles(player, pname, 0)
|
||||||
|
return hudset(player)
|
||||||
|
end
|
||||||
|
if data.runtime < walktime then
|
||||||
|
particles(player, pname, 0)
|
||||||
return hudset(player)
|
return hudset(player)
|
||||||
end
|
end
|
||||||
if data.runtime < walktime then return hudset(player) end
|
|
||||||
|
|
||||||
-- Figure out which of the [semi-]cardinal directions
|
-- Figure out which of the [semi-]cardinal directions
|
||||||
-- is closest to the one the player is looking at, and
|
-- 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 ppos = player:get_pos()
|
||||||
local vpos = vector.offset(ppos, 0, player:get_properties().eye_height, 0)
|
local vpos = vector.offset(ppos, 0, player:get_properties().eye_height, 0)
|
||||||
hudset(player, vector.add(vpos, vector.multiply(bestv, huddist)),
|
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
|
-- The player must lock on close enough to the
|
||||||
-- exact direction for a little while to activate
|
-- exact direction for a little while to activate
|
||||||
@ -295,7 +340,7 @@ local function checkplayer(player, dtime)
|
|||||||
-- Draw particles.
|
-- Draw particles.
|
||||||
data.fxtime = (data.fxtime or 0) - dtime
|
data.fxtime = (data.fxtime or 0) - dtime
|
||||||
if data.fxtime <= 0 then
|
if data.fxtime <= 0 then
|
||||||
particles(pname, vpos, player:get_velocity())
|
particles(player, pname)
|
||||||
data.fxtime = 1
|
data.fxtime = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -311,7 +356,13 @@ local function checkplayer(player, dtime)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Apply path correction if no turns.
|
-- 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
|
end
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
74
src/hud.svg
@ -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 |
BIN
src/icon.png
Before Width: | Height: | Size: 2.1 KiB |
172
src/icon.svg
@ -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 |
Before Width: | Height: | Size: 491 B After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 187 B After Width: | Height: | Size: 193 B |
127
textures/src/hud.svg
Normal 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 |