add dashboard indicator light for rotation stabiliser
This commit is contained in:
parent
d1a906b487
commit
e07ad4d236
BIN
assets/sprites/dashboard_rotation_stabiliser.png
Normal file
BIN
assets/sprites/dashboard_rotation_stabiliser.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
28
src/hud.rs
28
src/hud.rs
|
@ -92,6 +92,8 @@ impl Plugin for HudPlugin {
|
|||
enum Dashboard {
|
||||
Leak,
|
||||
Flashlight,
|
||||
RotationStabiliser,
|
||||
CruiseControl,
|
||||
}
|
||||
|
||||
#[derive(Component, Debug, Copy, Clone)]
|
||||
|
@ -433,6 +435,8 @@ pub fn setup(
|
|||
// Car-Dashboard-Style icons
|
||||
let dashboard_icon_size = 64.0;
|
||||
let flashlight_visibility = bool2vis(visibility == Visibility::Visible && settings.flashlight_active);
|
||||
let rotation_stabiliser_visibility = bool2vis(visibility == Visibility::Visible && !settings.rotation_stabilizer_active);
|
||||
let cruise_control_visibility = bool2vis(visibility == Visibility::Visible && settings.cruise_control_active);
|
||||
let style_dashboard = Style {
|
||||
width: Val::Px(dashboard_icon_size),
|
||||
height: Val::Px(dashboard_icon_size),
|
||||
|
@ -472,6 +476,24 @@ pub fn setup(
|
|||
},
|
||||
Dashboard::Leak,
|
||||
));
|
||||
builder.spawn((
|
||||
ImageBundle {
|
||||
image: UiImage::new(asset_server.load("sprites/dashboard_rotation_stabiliser.png")),
|
||||
style: style_dashboard.clone(),
|
||||
visibility: rotation_stabiliser_visibility,
|
||||
..Default::default()
|
||||
},
|
||||
Dashboard::RotationStabiliser,
|
||||
));
|
||||
builder.spawn((
|
||||
ImageBundle {
|
||||
image: UiImage::new(asset_server.load("sprites/dashboard_cruise_control.png")),
|
||||
style: style_dashboard.clone(),
|
||||
visibility: cruise_control_visibility,
|
||||
..Default::default()
|
||||
},
|
||||
Dashboard::CruiseControl,
|
||||
));
|
||||
});
|
||||
|
||||
// Add Speedometer
|
||||
|
@ -634,6 +656,12 @@ fn update_dashboard(
|
|||
Dashboard::Leak => {
|
||||
suit.integrity < 0.5
|
||||
}
|
||||
Dashboard::RotationStabiliser => {
|
||||
!settings.rotation_stabilizer_active
|
||||
}
|
||||
Dashboard::CruiseControl => {
|
||||
settings.cruise_control_active
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
133
src/svg/dashboard_rotation_stabiliser.svg
Normal file
133
src/svg/dashboard_rotation_stabiliser.svg
Normal file
|
@ -0,0 +1,133 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="256"
|
||||
height="256"
|
||||
viewBox="0 0 67.733334 67.733334"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
|
||||
sodipodi:docname="dashboard_rotation_stabiliser.svg"
|
||||
xml:space="preserve"
|
||||
inkscape:export-filename="../../assets/sprites/dashboard_rotation_stabiliser.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
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="namedview1"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#252525"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#000000"
|
||||
inkscape:document-units="px"
|
||||
inkscape:zoom="1.6542969"
|
||||
inkscape:cx="211.87249"
|
||||
inkscape:cy="197.9693"
|
||||
inkscape:window-width="2880"
|
||||
inkscape:window-height="1673"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="92"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g227"
|
||||
showgrid="true"
|
||||
inkscape:export-bgcolor="#00000000"><inkscape:grid
|
||||
id="grid1"
|
||||
units="px"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="0.26458334"
|
||||
spacingy="0.26458334"
|
||||
empcolor="#0099e5"
|
||||
empopacity="0.30196078"
|
||||
color="#0099e5"
|
||||
opacity="0.14901961"
|
||||
empspacing="8"
|
||||
dotted="false"
|
||||
gridanglex="30"
|
||||
gridanglez="30"
|
||||
visible="true" /></sodipodi:namedview><defs
|
||||
id="defs1"><marker
|
||||
style="overflow:visible"
|
||||
id="ConcaveTriangle"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Concave triangle arrow"
|
||||
markerWidth="0.5"
|
||||
markerHeight="0.5"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid"><path
|
||||
transform="scale(0.7)"
|
||||
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
|
||||
id="path7" /></marker><filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter1"
|
||||
inkscape:label="bloom"
|
||||
x="-0.1605499"
|
||||
y="-0.1605499"
|
||||
width="1.3210998"
|
||||
height="1.3210998"><feConvolveMatrix
|
||||
order="1 1"
|
||||
kernelMatrix="1.0000000 "
|
||||
id="feConvolveMatrix1"
|
||||
result="result1"
|
||||
bias="0.090000000000000024"
|
||||
preserveAlpha="true"
|
||||
edgeMode="none"
|
||||
divisor="0" /><feGaussianBlur
|
||||
stdDeviation="2"
|
||||
id="feGaussianBlur1"
|
||||
in="SourceGraphic" /><feComposite
|
||||
id="feComposite1"
|
||||
operator="arithmetic"
|
||||
k1="1"
|
||||
k2="0.99999999999999922"
|
||||
k3="1"
|
||||
k4="0"
|
||||
in2="result1" /></filter></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g227"
|
||||
style="filter:url(#filter1)"><circle
|
||||
style="fill:none;stroke:#007e43;stroke-width:2.64583336;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1"
|
||||
cx="33.848091"
|
||||
cy="33.848091"
|
||||
r="19.068579"
|
||||
inkscape:label="circle" /><path
|
||||
style="fill:none;stroke:#007e43;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#ConcaveTriangle)"
|
||||
id="circle2"
|
||||
inkscape:label="circle"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="33.848091"
|
||||
sodipodi:cy="33.848091"
|
||||
sodipodi:rx="25.4"
|
||||
sodipodi:ry="25.4"
|
||||
sodipodi:start="2.6179939"
|
||||
sodipodi:end="3.8397244"
|
||||
sodipodi:open="true"
|
||||
sodipodi:arc-type="arc"
|
||||
d="M 11.851046,46.54809 A 25.4,25.4 0 0 1 14.390563,17.521285" /><path
|
||||
style="fill:none;stroke:#007e43;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#ConcaveTriangle)"
|
||||
id="path2"
|
||||
inkscape:label="circle"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="33.848091"
|
||||
sodipodi:cy="33.848091"
|
||||
sodipodi:rx="25.4"
|
||||
sodipodi:ry="25.4"
|
||||
sodipodi:start="5.7595865"
|
||||
sodipodi:end="0.6981317"
|
||||
sodipodi:open="true"
|
||||
sodipodi:arc-type="arc"
|
||||
d="M 55.845136,21.148091 A 25.4,25.4 0 0 1 53.30562,50.174896" /></g></g></svg>
|
After Width: | Height: | Size: 4.6 KiB |
|
@ -89,6 +89,7 @@ pub struct Settings {
|
|||
pub is_zooming: bool,
|
||||
pub third_person: bool,
|
||||
pub rotation_stabilizer_active: bool,
|
||||
pub cruise_control_active: bool,
|
||||
pub shadows_sun: bool,
|
||||
pub shadows_pointlights: bool,
|
||||
pub shadowmap_resolution: usize,
|
||||
|
@ -215,6 +216,7 @@ impl Default for Settings {
|
|||
is_zooming: false,
|
||||
third_person: true,
|
||||
rotation_stabilizer_active: true,
|
||||
cruise_control_active: true,
|
||||
shadows_sun: true,
|
||||
shadows_pointlights: false,
|
||||
shadowmap_resolution: 2048,
|
||||
|
|
Loading…
Reference in a new issue