mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
Added resources router
This commit is contained in:
@@ -9,6 +9,7 @@ var atcRouter = require('./routes/api/atc');
|
||||
var indexRouter = require('./routes/index');
|
||||
var uikitRouter = require('./routes/uikit');
|
||||
var usersRouter = require('./routes/users');
|
||||
var resourcesRouter = require('./routes/resources');
|
||||
|
||||
var app = express();
|
||||
|
||||
@@ -22,6 +23,7 @@ app.use('/', indexRouter);
|
||||
app.use('/api/atc', atcRouter);
|
||||
app.use('/users', usersRouter);
|
||||
app.use('/uikit', uikitRouter);
|
||||
app.use('/resources', resourcesRouter);
|
||||
|
||||
app.set('view engine', 'ejs');
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
@import url("connectionstatuspanel.css");
|
||||
@import url("contextmenus.css");
|
||||
@import url("mouseinfopanel.css");
|
||||
@import url("units.css");
|
||||
@import url("/stylesheets/units.css");
|
||||
@import url("unitdatatable.css");
|
||||
@import url("unitcontrolpanel.css");
|
||||
@import url("unitinfopanel.css");
|
||||
|
||||
@@ -81,55 +81,34 @@
|
||||
/******************************
|
||||
Marker
|
||||
******************************/
|
||||
|
||||
[data-object|="unit"] .unit-marker {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
.unit-marker {
|
||||
position: absolute;
|
||||
transform-origin: center;
|
||||
z-index: 3;
|
||||
height: var(--unit-height);
|
||||
width: var(--unit-width);
|
||||
}
|
||||
|
||||
/* Air */
|
||||
[data-is-highlighted] .unit-marker {
|
||||
stroke: white;
|
||||
}
|
||||
|
||||
[data-is-selected] .unit-marker {
|
||||
}
|
||||
|
||||
[data-coalition="blue"] .unit-marker {
|
||||
}
|
||||
|
||||
[data-coalition="red"] .unit-marker {
|
||||
}
|
||||
|
||||
[data-coalition="neutral"] .unit-marker {
|
||||
|
||||
}
|
||||
|
||||
/* Aircraft */
|
||||
[data-object|="unit-aircraft"] .unit-marker {
|
||||
background-image: var(--unit-aircraft-marker-neutral-url);
|
||||
height: var(--unit-aircraft-marker-height);
|
||||
width: var(--unit-aircraft-marker-width);
|
||||
}
|
||||
|
||||
[data-object|="unit-aircraft"][data-is-highlighted] .unit-marker {
|
||||
background-image: var(--unit-aircraft-marker-neutral-hover-url);
|
||||
}
|
||||
|
||||
[data-object|="unit-aircraft"][data-is-selected] .unit-marker {
|
||||
background-image: var(--unit-aircraft-marker-neutral-selected-url);
|
||||
}
|
||||
|
||||
[data-object|="unit-aircraft"][data-coalition="blue"] .unit-marker {
|
||||
background-image: var(--unit-aircraft-marker-blue-url);
|
||||
}
|
||||
|
||||
[data-object|="unit-aircraft"][data-coalition="blue"][data-is-highlighted] .unit-marker {
|
||||
background-image: var(--unit-aircraft-marker-blue-hover-url);
|
||||
}
|
||||
|
||||
[data-object|="unit-aircraft"][data-coalition="blue"][data-is-selected] .unit-marker {
|
||||
background-image: var(--unit-aircraft-marker-blue-selected-url);
|
||||
}
|
||||
|
||||
|
||||
[data-object|="unit-aircraft"][data-coalition="red"] .unit-marker {
|
||||
background-image: var(--unit-aircraft-marker-red-url);
|
||||
}
|
||||
|
||||
[data-object|="unit-aircraft"][data-coalition="red"][data-is-highlighted] .unit-marker {
|
||||
background-image: var(--unit-aircraft-marker-red-hover-url);
|
||||
}
|
||||
|
||||
[data-object|="unit-aircraft"][data-coalition="red"][data-is-selected] .unit-marker {
|
||||
background-image: var(--unit-aircraft-marker-red-selected-url);
|
||||
|
||||
}
|
||||
|
||||
/* Ground vehicles (not SAMs) */
|
||||
@@ -561,7 +540,7 @@
|
||||
[data-object|="unit-aircraft"][data-is-dead] .unit-ammo,
|
||||
[data-object|="unit-aircraft"][data-is-dead]:hover .unit-fuel,
|
||||
[data-object|="unit-aircraft"][data-is-dead]:hover .unit-ammo {
|
||||
display: none !important;
|
||||
display: none;
|
||||
}
|
||||
|
||||
[data-object|="unit-aircraft"][ data-is-dead] .unit-summary>* {
|
||||
|
||||
4
client/public/themes/olympus/images/units/aircraft.svg
Normal file
4
client/public/themes/olympus/images/units/aircraft.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M40.4002 7.2002H9.6002C8.27471 7.2002 7.2002 8.27472 7.2002 9.6002V40.4002C7.2002 41.7257 8.27472 42.8002 9.6002 42.8002H40.4002C41.7257 42.8002 42.8002 41.7257 42.8002 40.4002V9.6002C42.8002 8.27471 41.7257 7.2002 40.4002 7.2002Z" fill="background-colour" stroke="none" stroke-width="2"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.0002 11.0002V39.0002H39.0002V11.0002H11.0002ZM9.6002 8.2002C8.827 8.2002 8.2002 8.827 8.2002 9.6002V40.4002C8.2002 41.1734 8.827 41.8002 9.6002 41.8002H40.4002C41.1734 41.8002 41.8002 41.1734 41.8002 40.4002V9.6002C41.8002 8.827 41.1734 8.2002 40.4002 8.2002H9.6002Z" fill="#2F2F2F"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 740 B |
@@ -1,226 +0,0 @@
|
||||
:root {
|
||||
|
||||
/** Colours **/
|
||||
|
||||
/*** Coalition: neutral **/
|
||||
--primary-neutral : #949ba7;
|
||||
--secondary-neutral-outline : #111111;
|
||||
--secondary-neutral-text : #111111;
|
||||
|
||||
/*** Coalition: blue **/
|
||||
--primary-blue : #247be2;
|
||||
--secondary-blue-outline : #082e44;
|
||||
--secondary-blue-text : #017DC1;
|
||||
|
||||
/*** Coalition: red **/
|
||||
--primary-red : #ff5858;
|
||||
--secondary-red-outline : #262222;
|
||||
--secondary-red-text : #D42121;
|
||||
|
||||
--accent-green : #8bff63;
|
||||
--accent-light-blue : #5ca7ff;
|
||||
--accent-light-red : #F5B6B6;
|
||||
|
||||
--background-grey : #3d4651;
|
||||
--background-slate-blue : #363c43;
|
||||
--background-offwhite : #f2f2f3;
|
||||
--background-steel : #202831;
|
||||
|
||||
--secondary-dark-steel : #181e25;
|
||||
--secondary-gunmetal-grey : #2f2f2f;
|
||||
--secondary-light-grey : #797e83;
|
||||
--secondary-yellow : #ffd46893;
|
||||
|
||||
--background-hover : #f2f2f333;
|
||||
|
||||
--nav-text : #ECECEC;
|
||||
|
||||
|
||||
--ol-select-secondary: #545F6C;
|
||||
|
||||
|
||||
/*** General border radii **/
|
||||
|
||||
--border-radius-xs : 2px;
|
||||
--border-radius-sm : 5px;
|
||||
--border-radius-md : 10px;
|
||||
--border-radius-lg : 15px;
|
||||
|
||||
|
||||
/*** Font stuff **/
|
||||
--font-weight-bolder : 600;
|
||||
|
||||
|
||||
|
||||
/*** Navbar ***/
|
||||
|
||||
--visibility-control-aircraft-visible-url: url( "/themes/olympus/images/visibility_aircraft_visible.svg" );
|
||||
--visibility-control-aircraft-hidden-url: url( "/themes/olympus/images/visibility_aircraft_hidden.svg" );
|
||||
|
||||
--visibility-control-groundunit-visible-url: url( "/themes/olympus/images/visibility_ground_visible.svg" );
|
||||
--visibility-control-groundunit-hidden-url: url( "/themes/olympus/images/visibility_ground_hidden.svg" );
|
||||
|
||||
--visibility-control-sam-visible-url: url( "/themes/olympus/images/visibility_sam_visible.svg" );
|
||||
--visibility-control-sam-hidden-url: url( "/themes/olympus/images/visibility_sam_hidden.svg" );
|
||||
|
||||
--visibility-control-navyunit-visible-url: url( "/themes/olympus/images/visibility_navyunit_visible.svg" );
|
||||
--visibility-control-navyunit-hidden-url: url( "/themes/olympus/images/visibility_navyunit_hidden.svg" );
|
||||
|
||||
--visibility-control-threat-visible-url: url( "/themes/olympus/images/visibility_threat_visible.svg" );
|
||||
--visibility-control-threat-hidden-url: url( "/themes/olympus/images/visibility_threat_hidden.svg" );
|
||||
|
||||
|
||||
|
||||
/*** Unit marker settings ***/
|
||||
|
||||
|
||||
/*** All markers **/
|
||||
--unit-border-radius: var( --border-radius-xs );
|
||||
--unit-font-size: 14px;
|
||||
--unit-font-weight: bolder;
|
||||
--unit-height: 32px;
|
||||
--unit-label-border-width: 2px;
|
||||
--unit-spotlight-fill: var( --secondary-yellow );
|
||||
--unit-spotlight-radius: 26px;
|
||||
--unit-stroke-width: 3px;
|
||||
--unit-width: 32px;
|
||||
|
||||
|
||||
/*** Air units ***/
|
||||
--unit-aircraft-ammo-gap: calc( 2px + var( --unit-stroke-width ) );
|
||||
--unit-aircraft-ammo-border-radius: 50%;
|
||||
--unit-aircraft-ammo-border-width: 2px;
|
||||
--unit-aircraft-ammo-radius: 2px;
|
||||
--unit-aircraft-ammo-spacing: 2px;
|
||||
--unit-aircraft-ammo-x:0px;
|
||||
--unit-aircraft-ammo-y:30px;
|
||||
--unit-aircraft-fuel-border-width: 2px;
|
||||
--unit-aircraft-fuel-height: 6px;
|
||||
--unit-aircraft-fuel-width: 36px;
|
||||
--unit-aircraft-fuel-x:0px;
|
||||
--unit-aircraft-fuel-y:22px;
|
||||
--unit-aircraft-height: 28px;
|
||||
--unit-aircraft-vvi-width: 4px;
|
||||
--unit-aircraft-width: var( --unit-aircraft-height );
|
||||
|
||||
--unit-aircraft-marker-height: 50px;
|
||||
--unit-aircraft-marker-width: 50px;
|
||||
|
||||
--unit-aircraft-marker-blue-url: url( "/themes/olympus/images/icon_aircraft_blue.svg" );
|
||||
--unit-aircraft-marker-blue-hover-url: url( "/themes/olympus/images/icon_aircraft_blue_hover.svg" );
|
||||
--unit-aircraft-marker-blue-selected-url: url( "/themes/olympus/images/icon_aircraft_blue_selected.svg" );
|
||||
--unit-aircraft-marker-blue-dead-url: url( "/themes/olympus/images/icon_death_blue.svg" );
|
||||
|
||||
--unit-aircraft-marker-neutral-url: url( "/themes/olympus/images/icon_aircraft_neutral.svg" );
|
||||
--unit-aircraft-marker-neutral-hover-url: url( "/themes/olympus/images/icon_aircraft_neutral_hover.svg" );
|
||||
--unit-aircraft-marker-neutral-selected-url: url( "/themes/olympus/images/icon_aircraft_neutral_selected.svg" );
|
||||
--unit-aircraft-marker-neutral-dead-url: url( "/themes/olympus/images/icon_death_neutral.svg" );
|
||||
|
||||
--unit-aircraft-marker-red-url: url( "/themes/olympus/images/icon_aircraft_red.svg" );
|
||||
--unit-aircraft-marker-red-hover-url: url( "/themes/olympus/images/icon_aircraft_red_hover.svg" );
|
||||
--unit-aircraft-marker-red-selected-url: url( "/themes/olympus/images/icon_aircraft_red_selected.svg" );
|
||||
--unit-aircraft-marker-red-dead-url: url( "/themes/olympus/images/icon_death_red.svg" );
|
||||
|
||||
|
||||
/*** Air units' states ***/
|
||||
|
||||
--unit-aircraft-state-height: 50px;
|
||||
--unit-aircraft-state-width: 50px;
|
||||
|
||||
--unit-aircraft-state-rtb: url( "/themes/olympus/images/state_rtb.svg" );
|
||||
--unit-aircraft-state-idle: url( "/themes/olympus/images/state_idle.svg" );
|
||||
--unit-aircraft-state-attack: url( "/themes/olympus/images/state_attack.svg" );
|
||||
--unit-aircraft-state-follow: url( "/themes/olympus/images/state_follow.svg" );
|
||||
--unit-aircraft-state-refuel: url( "/themes/olympus/images/state_refuel.svg" );
|
||||
--unit-aircraft-state-human: url( "/themes/olympus/images/state_human.svg" );
|
||||
--unit-aircraft-state-dcs: url( "/themes/olympus/images/state_dcs.svg" );
|
||||
|
||||
/*** Ground ***/
|
||||
--unit-groundunit-marker-height: 50px;
|
||||
--unit-groundunit-marker-width: 50px;
|
||||
|
||||
--unit-groundunit-marker-blue-url: url( "/themes/olympus/images/icon_ground_blue.svg" );
|
||||
--unit-groundunit-marker-blue-hover-url: url( "/themes/olympus/images/icon_ground_blue_hover.svg" );
|
||||
--unit-groundunit-marker-blue-selected-url: url( "/themes/olympus/images/icon_ground_blue_selected.svg" );
|
||||
|
||||
--unit-groundunit-marker-neutral-url: url( "/themes/olympus/images/icon_ground_neutral.svg" );
|
||||
--unit-groundunit-marker-neutral-hover-url: url( "/themes/olympus/images/icon_ground_neutral_hover.svg" );
|
||||
--unit-groundunit-marker-neutral-selected-url: url( "/themes/olympus/images/icon_ground_neutral_selected.svg" );
|
||||
|
||||
--unit-groundunit-marker-red-url: url( "/themes/olympus/images/icon_ground_red.svg" );
|
||||
--unit-groundunit-marker-red-hover-url: url( "/themes/olympus/images/icon_ground_red_hover.svg" );
|
||||
--unit-groundunit-marker-red-selected-url: url( "/themes/olympus/images/icon_ground_red_selected.svg" );
|
||||
|
||||
|
||||
/*** SAMs ***/
|
||||
--unit-sam-marker-height: 50px;
|
||||
--unit-sam-marker-width: 50px;
|
||||
|
||||
--unit-sam-marker-blue-url: url( "/themes/olympus/images/icon_aa_blue.svg" );
|
||||
--unit-sam-marker-blue-hover-url: url( "/themes/olympus/images/icon_aa_blue_hover.svg" );
|
||||
--unit-sam-marker-blue-selected-url: url( "/themes/olympus/images/icon_aa_blue_selected.svg" );
|
||||
|
||||
--unit-sam-marker-neutral-url: url( "/themes/olympus/images/icon_aa_neutral.svg" );
|
||||
--unit-sam-marker-neutral-hover-url: url( "/themes/olympus/images/icon_aa_neutral_hover.svg" );
|
||||
--unit-sam-marker-neutral-selected-url: url( "/themes/olympus/images/icon_aa_neutral_selected.svg" );
|
||||
|
||||
--unit-sam-marker-red-url: url( "/themes/olympus/images/icon_aa_red.svg" );
|
||||
--unit-sam-marker-red-hover-url: url( "/themes/olympus/images/icon_aa_red_hover.svg" );
|
||||
--unit-sam-marker-red-selected-url: url( "/themes/olympus/images/icon_aa_red_selected.svg" );
|
||||
|
||||
|
||||
/*** navyunit ***/
|
||||
--unit-navyunit-marker-height: 50px;
|
||||
--unit-navyunit-marker-width: 50px;
|
||||
|
||||
--unit-navyunit-marker-blue-url: url( "/themes/olympus/images/icon_ship_blue.svg" );
|
||||
--unit-navyunit-marker-blue-hover-url: url( "/themes/olympus/images/icon_ship_blue_hover.svg" );
|
||||
--unit-navyunit-marker-blue-selected-url: url( "/themes/olympus/images/icon_ship_blue_selected.svg" );
|
||||
|
||||
--unit-navyunit-marker-neutral-url: url( "/themes/olympus/images/icon_ship_neutral.svg" );
|
||||
--unit-navyunit-marker-neutral-hover-url: url( "/themes/olympus/images/icon_ship_neutral_hover.svg" );
|
||||
--unit-navyunit-marker-neutral-selected-url: url( "/themes/olympus/images/icon_ship_neutral_selected.svg" );
|
||||
|
||||
--unit-navyunit-marker-red-url: url( "/themes/olympus/images/icon_ship_red.svg" );
|
||||
--unit-navyunit-marker-red-hover-url: url( "/themes/olympus/images/icon_ship_red_hover.svg" );
|
||||
--unit-navyunit-marker-red-selected-url: url( "/themes/olympus/images/icon_ship_red_selected.svg" );
|
||||
|
||||
|
||||
/*** Building ***/
|
||||
--unit-building-marker-height: 50px;
|
||||
--unit-building-marker-width: 50px;
|
||||
|
||||
--unit-building-marker-blue-url: url( "/themes/olympus/images/icon_building_blue.svg" );
|
||||
--unit-building-marker-neutral-url: url( "/themes/olympus/images/icon_building_neutral.svg" );
|
||||
--unit-building-marker-red-url: url( "/themes/olympus/images/icon_building_red.svg" );
|
||||
|
||||
|
||||
/*** Weapons ***/
|
||||
--unit-missile-marker-height: 50px;
|
||||
--unit-missile-marker-width: 50px;
|
||||
|
||||
--unit-missile-marker-blue-url: url( "/themes/olympus/images/icon_missile_blue.svg" );
|
||||
--unit-missile-marker-neutral-url: url( "/themes/olympus/images/icon_missile_neutral.svg" );
|
||||
--unit-missile-marker-red-url: url( "/themes/olympus/images/icon_missile_red.svg" );
|
||||
|
||||
--unit-bomb-marker-height: 50px;
|
||||
--unit-bomb-marker-width: 50px;
|
||||
|
||||
--unit-bomb-marker-blue-url: url( "/themes/olympus/images/icon_bomb_blue.svg" );
|
||||
--unit-bomb-marker-neutral-url: url( "/themes/olympus/images/icon_bomb_neutral.svg" );
|
||||
--unit-bomb-marker-red-url: url( "/themes/olympus/images/icon_bomb_red.svg" );
|
||||
|
||||
|
||||
/*** Context menu ***/
|
||||
--spawn-aircraft-url: url( "/themes/olympus/images/spawn_aircraft.svg" );
|
||||
--spawn-groundunit-url: url( "/themes/olympus/images/spawn_ground.svg" );
|
||||
--spawn-smoke-url: url( "/themes/olympus/images/spawn_smoke.svg" );
|
||||
|
||||
/*** Airbase ***/
|
||||
--airbase-marker-height: 63px;
|
||||
--airbase-marker-width: 63px;
|
||||
|
||||
--airbase-marker-blue-url: url( "/themes/olympus/images/icon_airbase_blue.svg" );
|
||||
--airbase-marker-neutral-url: url( "/themes/olympus/images/icon_airbase_neutral.svg" );
|
||||
--airbase-marker-red-url: url( "/themes/olympus/images/icon_airbase_red.svg" );
|
||||
}
|
||||
199
client/public/themes/olympus/theme.css
Normal file
199
client/public/themes/olympus/theme.css
Normal file
@@ -0,0 +1,199 @@
|
||||
:root {
|
||||
|
||||
/** Colours **/
|
||||
|
||||
/*** Coalition: neutral **/
|
||||
--primary-neutral: #949ba7;
|
||||
--secondary-neutral-outline: #111111;
|
||||
--secondary-neutral-text: #111111;
|
||||
|
||||
/*** Coalition: blue **/
|
||||
--primary-blue: #247be2;
|
||||
--secondary-blue-outline: #082e44;
|
||||
--secondary-blue-text: #017DC1;
|
||||
|
||||
/*** Coalition: red **/
|
||||
--primary-red: #ff5858;
|
||||
--secondary-red-outline: #262222;
|
||||
--secondary-red-text: #D42121;
|
||||
|
||||
--accent-green: #8bff63;
|
||||
--accent-light-blue: #5ca7ff;
|
||||
--accent-light-red: #F5B6B6;
|
||||
|
||||
--background-grey: #3d4651;
|
||||
--background-slate-blue: #363c43;
|
||||
--background-offwhite: #f2f2f3;
|
||||
--background-steel: #202831;
|
||||
|
||||
--secondary-dark-steel: #181e25;
|
||||
--secondary-gunmetal-grey: #2f2f2f;
|
||||
--secondary-light-grey: #797e83;
|
||||
--secondary-yellow: #ffd46893;
|
||||
|
||||
--background-hover: #f2f2f333;
|
||||
|
||||
--nav-text: #ECECEC;
|
||||
|
||||
--ol-select-secondary: #545F6C;
|
||||
|
||||
/*** General border radii **/
|
||||
--border-radius-xs: 2px;
|
||||
--border-radius-sm: 5px;
|
||||
--border-radius-md: 10px;
|
||||
--border-radius-lg: 15px;
|
||||
|
||||
/*** Font stuff **/
|
||||
--font-weight-bolder: 600;
|
||||
|
||||
/*** Navbar ***/
|
||||
--visibility-control-aircraft-visible-url: url("/themes/olympus/images/visibility_aircraft_visible.svg");
|
||||
--visibility-control-aircraft-hidden-url: url("/themes/olympus/images/visibility_aircraft_hidden.svg");
|
||||
|
||||
--visibility-control-groundunit-visible-url: url("/themes/olympus/images/visibility_ground_visible.svg");
|
||||
--visibility-control-groundunit-hidden-url: url("/themes/olympus/images/visibility_ground_hidden.svg");
|
||||
|
||||
--visibility-control-sam-visible-url: url("/themes/olympus/images/visibility_sam_visible.svg");
|
||||
--visibility-control-sam-hidden-url: url("/themes/olympus/images/visibility_sam_hidden.svg");
|
||||
|
||||
--visibility-control-navyunit-visible-url: url("/themes/olympus/images/visibility_navyunit_visible.svg");
|
||||
--visibility-control-navyunit-hidden-url: url("/themes/olympus/images/visibility_navyunit_hidden.svg");
|
||||
|
||||
--visibility-control-threat-visible-url: url("/themes/olympus/images/visibility_threat_visible.svg");
|
||||
--visibility-control-threat-hidden-url: url("/themes/olympus/images/visibility_threat_hidden.svg");
|
||||
|
||||
/*** Unit marker settings ***/
|
||||
/*** All markers **/
|
||||
--unit-border-radius: var(--border-radius-xs);
|
||||
--unit-font-size: 14px;
|
||||
--unit-font-weight: bolder;
|
||||
--unit-label-border-width: 2px;
|
||||
--unit-spotlight-fill: var(--secondary-yellow);
|
||||
--unit-spotlight-radius: 26px;
|
||||
--unit-stroke-width: 3px;
|
||||
--unit-height: 50px;
|
||||
--unit-width: 50px;
|
||||
|
||||
/*** Air units ***/
|
||||
--unit-aircraft-ammo-gap: calc(2px + var(--unit-stroke-width));
|
||||
--unit-aircraft-ammo-border-radius: 50%;
|
||||
--unit-aircraft-ammo-border-width: 2px;
|
||||
--unit-aircraft-ammo-radius: 2px;
|
||||
--unit-aircraft-ammo-spacing: 2px;
|
||||
--unit-aircraft-ammo-x: 0px;
|
||||
--unit-aircraft-ammo-y: 30px;
|
||||
--unit-aircraft-fuel-border-width: 2px;
|
||||
--unit-aircraft-fuel-height: 6px;
|
||||
--unit-aircraft-fuel-width: 36px;
|
||||
--unit-aircraft-fuel-x: 0px;
|
||||
--unit-aircraft-fuel-y: 22px;
|
||||
--unit-aircraft-height: 28px;
|
||||
--unit-aircraft-vvi-width: 4px;
|
||||
--unit-aircraft-width: var(--unit-aircraft-height);
|
||||
|
||||
--unit-aircraft-marker-height: 50px;
|
||||
--unit-aircraft-marker-width: 50px;
|
||||
|
||||
--unit-aircraft-icon: url("/resources/theme/images/units/aircraft.svg");
|
||||
|
||||
/*** Air units' states ***/
|
||||
--unit-aircraft-state-height: 50px;
|
||||
--unit-aircraft-state-width: 50px;
|
||||
|
||||
--unit-aircraft-state-rtb: url("/themes/olympus/images/state_rtb.svg");
|
||||
--unit-aircraft-state-idle: url("/themes/olympus/images/state_idle.svg");
|
||||
--unit-aircraft-state-attack: url("/themes/olympus/images/state_attack.svg");
|
||||
--unit-aircraft-state-follow: url("/themes/olympus/images/state_follow.svg");
|
||||
--unit-aircraft-state-refuel: url("/themes/olympus/images/state_refuel.svg");
|
||||
--unit-aircraft-state-human: url("/themes/olympus/images/state_human.svg");
|
||||
--unit-aircraft-state-dcs: url("/themes/olympus/images/state_dcs.svg");
|
||||
|
||||
/*** Ground ***/
|
||||
--unit-groundunit-marker-height: 50px;
|
||||
--unit-groundunit-marker-width: 50px;
|
||||
|
||||
--unit-groundunit-marker-blue-url: url("/themes/olympus/images/icon_ground_blue.svg");
|
||||
--unit-groundunit-marker-blue-hover-url: url("/themes/olympus/images/icon_ground_blue_hover.svg");
|
||||
--unit-groundunit-marker-blue-selected-url: url("/themes/olympus/images/icon_ground_blue_selected.svg");
|
||||
|
||||
--unit-groundunit-marker-neutral-url: url("/themes/olympus/images/icon_ground_neutral.svg");
|
||||
--unit-groundunit-marker-neutral-hover-url: url("/themes/olympus/images/icon_ground_neutral_hover.svg");
|
||||
--unit-groundunit-marker-neutral-selected-url: url("/themes/olympus/images/icon_ground_neutral_selected.svg");
|
||||
|
||||
--unit-groundunit-marker-red-url: url("/themes/olympus/images/icon_ground_red.svg");
|
||||
--unit-groundunit-marker-red-hover-url: url("/themes/olympus/images/icon_ground_red_hover.svg");
|
||||
--unit-groundunit-marker-red-selected-url: url("/themes/olympus/images/icon_ground_red_selected.svg");
|
||||
|
||||
|
||||
/*** SAMs ***/
|
||||
--unit-sam-marker-height: 50px;
|
||||
--unit-sam-marker-width: 50px;
|
||||
|
||||
--unit-sam-marker-blue-url: url("/themes/olympus/images/icon_aa_blue.svg");
|
||||
--unit-sam-marker-blue-hover-url: url("/themes/olympus/images/icon_aa_blue_hover.svg");
|
||||
--unit-sam-marker-blue-selected-url: url("/themes/olympus/images/icon_aa_blue_selected.svg");
|
||||
|
||||
--unit-sam-marker-neutral-url: url("/themes/olympus/images/icon_aa_neutral.svg");
|
||||
--unit-sam-marker-neutral-hover-url: url("/themes/olympus/images/icon_aa_neutral_hover.svg");
|
||||
--unit-sam-marker-neutral-selected-url: url("/themes/olympus/images/icon_aa_neutral_selected.svg");
|
||||
|
||||
--unit-sam-marker-red-url: url("/themes/olympus/images/icon_aa_red.svg");
|
||||
--unit-sam-marker-red-hover-url: url("/themes/olympus/images/icon_aa_red_hover.svg");
|
||||
--unit-sam-marker-red-selected-url: url("/themes/olympus/images/icon_aa_red_selected.svg");
|
||||
|
||||
|
||||
/*** navyunit ***/
|
||||
--unit-navyunit-marker-height: 50px;
|
||||
--unit-navyunit-marker-width: 50px;
|
||||
|
||||
--unit-navyunit-marker-blue-url: url("/themes/olympus/images/icon_ship_blue.svg");
|
||||
--unit-navyunit-marker-blue-hover-url: url("/themes/olympus/images/icon_ship_blue_hover.svg");
|
||||
--unit-navyunit-marker-blue-selected-url: url("/themes/olympus/images/icon_ship_blue_selected.svg");
|
||||
|
||||
--unit-navyunit-marker-neutral-url: url("/themes/olympus/images/icon_ship_neutral.svg");
|
||||
--unit-navyunit-marker-neutral-hover-url: url("/themes/olympus/images/icon_ship_neutral_hover.svg");
|
||||
--unit-navyunit-marker-neutral-selected-url: url("/themes/olympus/images/icon_ship_neutral_selected.svg");
|
||||
|
||||
--unit-navyunit-marker-red-url: url("/themes/olympus/images/icon_ship_red.svg");
|
||||
--unit-navyunit-marker-red-hover-url: url("/themes/olympus/images/icon_ship_red_hover.svg");
|
||||
--unit-navyunit-marker-red-selected-url: url("/themes/olympus/images/icon_ship_red_selected.svg");
|
||||
|
||||
|
||||
/*** Building ***/
|
||||
--unit-building-marker-height: 50px;
|
||||
--unit-building-marker-width: 50px;
|
||||
|
||||
--unit-building-marker-blue-url: url("/themes/olympus/images/icon_building_blue.svg");
|
||||
--unit-building-marker-neutral-url: url("/themes/olympus/images/icon_building_neutral.svg");
|
||||
--unit-building-marker-red-url: url("/themes/olympus/images/icon_building_red.svg");
|
||||
|
||||
|
||||
/*** Weapons ***/
|
||||
--unit-missile-marker-height: 50px;
|
||||
--unit-missile-marker-width: 50px;
|
||||
|
||||
--unit-missile-marker-blue-url: url("/themes/olympus/images/icon_missile_blue.svg");
|
||||
--unit-missile-marker-neutral-url: url("/themes/olympus/images/icon_missile_neutral.svg");
|
||||
--unit-missile-marker-red-url: url("/themes/olympus/images/icon_missile_red.svg");
|
||||
|
||||
--unit-bomb-marker-height: 50px;
|
||||
--unit-bomb-marker-width: 50px;
|
||||
|
||||
--unit-bomb-marker-blue-url: url("/themes/olympus/images/icon_bomb_blue.svg");
|
||||
--unit-bomb-marker-neutral-url: url("/themes/olympus/images/icon_bomb_neutral.svg");
|
||||
--unit-bomb-marker-red-url: url("/themes/olympus/images/icon_bomb_red.svg");
|
||||
|
||||
|
||||
/*** Context menu ***/
|
||||
--spawn-aircraft-url: url("/themes/olympus/images/spawn_aircraft.svg");
|
||||
--spawn-groundunit-url: url("/themes/olympus/images/spawn_ground.svg");
|
||||
--spawn-smoke-url: url("/themes/olympus/images/spawn_smoke.svg");
|
||||
|
||||
/*** Airbase ***/
|
||||
--airbase-marker-height: 63px;
|
||||
--airbase-marker-width: 63px;
|
||||
|
||||
--airbase-marker-blue-url: url("/themes/olympus/images/icon_airbase_blue.svg");
|
||||
--airbase-marker-neutral-url: url("/themes/olympus/images/icon_airbase_neutral.svg");
|
||||
--airbase-marker-red-url: url("/themes/olympus/images/icon_airbase_red.svg");
|
||||
}
|
||||
31
client/routes/resources.js
Normal file
31
client/routes/resources.js
Normal file
@@ -0,0 +1,31 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const url = require('url');
|
||||
|
||||
var theme = "olympus";
|
||||
|
||||
router.get('/theme/*', function (req, res, next) {
|
||||
if (url.parse(req.url).pathname.slice(-4).toLowerCase() === ".svg")
|
||||
{
|
||||
const localPath = path.join(__dirname, '..', 'public', url.parse(req.url).pathname.replace("theme", "themes/" + theme));
|
||||
fs.readFile(localPath, function(err, data) {
|
||||
if (err) {
|
||||
res.sendStatus(404);
|
||||
} else {
|
||||
var svgString = data.toString('utf8');
|
||||
for (key in req.query)
|
||||
svgString = svgString.replaceAll(key, req.query[key]);
|
||||
|
||||
res.header('Content-Type', 'image/svg+xml');
|
||||
res.send(svgString);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
res.redirect(req.url.replace("theme", "themes/" + theme));
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
@@ -141,7 +141,7 @@ export class Unit extends Marker {
|
||||
/* Only alive units can be selected. Some units are not selectable (weapons) */
|
||||
if ((this.getBaseData().alive || !selected) && this.getSelectable() && this.getSelected() != selected) {
|
||||
this.#selected = selected;
|
||||
this.getElement()?.querySelector(`[data-object|="unit"]`)?.toggleAttribute("data-is-selected");
|
||||
this.getElement()?.querySelector(`[data-object|="unit"]`)?.toggleAttribute("data-is-selected", selected);
|
||||
if (selected)
|
||||
document.dispatchEvent(new CustomEvent("unitSelection", { detail: this }));
|
||||
else
|
||||
@@ -539,6 +539,15 @@ export class Unit extends Marker {
|
||||
|
||||
var element = this.getElement();
|
||||
if (element != null) {
|
||||
/* Set the element styling */
|
||||
const unitMarker = element.querySelector(".unit-marker") as HTMLElement;
|
||||
|
||||
const styles = getComputedStyle(document.documentElement);
|
||||
const primaryBlue = styles.getPropertyValue('--primary-blue');
|
||||
|
||||
if (unitMarker)
|
||||
unitMarker.style.backgroundImage = `url("/resources/theme/images/units/aircraft.svg?background-colour=${primaryBlue}")`;
|
||||
|
||||
/* Draw the velocity vector */
|
||||
element.querySelector(".unit-vvi")?.setAttribute("style", `height: ${15 + this.getFlightData().speed / 5}px;`);
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
<head>
|
||||
<title>Olympus client</title>
|
||||
<link rel="stylesheet" type="text/css" href="./themes/olympus/olympus.css" />
|
||||
<link rel="stylesheet" type="text/css" href="stylesheets/olympus.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/resources/theme/theme.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/stylesheets/olympus.css" />
|
||||
<link rel="stylesheet" href="stylesheets/leaflet.css">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
|
||||
Reference in New Issue
Block a user