remove duplicate color definitions and don't allow them

This commit is contained in:
Dustin Carlino 2018-12-12 17:23:27 -08:00
parent a5befc83fe
commit 4b7a424b1f
7 changed files with 13 additions and 16 deletions

View File

@ -10,7 +10,8 @@ def run():
for f in files: for f in files:
if f.endswith('.rs') and f != 'colors.rs': if f.endswith('.rs') and f != 'colors.rs':
for k, v in read_file(os.path.join(path, f)): for k, v in read_file(os.path.join(path, f)):
# TODO Check for double-definitions if k in mapping:
raise ValueError('Color {} defined twice'.format(k))
mapping[k] = v mapping[k] = v
with open('src/init_colors.rs', 'w') as f: with open('src/init_colors.rs', 'w') as f:

View File

@ -38,6 +38,10 @@ impl ColorScheme {
self.map[name] self.map[name]
} }
pub fn get(&self, name: &str) -> Color {
self.map[name]
}
// Just for the color picker plugin, that's why the funky return value // Just for the color picker plugin, that's why the funky return value
pub fn color_names(&self) -> Vec<(String, ())> { pub fn color_names(&self) -> Vec<(String, ())> {
let mut names: Vec<(String, ())> = self.map.keys().map(|n| (n.clone(), ())).collect(); let mut names: Vec<(String, ())> = self.map.keys().map(|n| (n.clone(), ())).collect();

View File

@ -126,7 +126,7 @@ impl Plugin for DrawNeighborhoodState {
} }
for pt in &pts { for pt in &pts {
g.draw_circle( g.draw_circle(
ctx.cs.get_def("neighborhood point", Color::RED), ctx.cs.get("neighborhood point"),
&Circle::new(*pt, POINT_RADIUS), &Circle::new(*pt, POINT_RADIUS),
); );
} }

View File

@ -3,7 +3,7 @@ use crate::plugins::{
choose_intersection, choose_neighborhood, choose_origin_destination, input_tick, choose_intersection, choose_neighborhood, choose_origin_destination, input_tick,
input_weighted_usize, load_scenario, Plugin, PluginCtx, input_weighted_usize, load_scenario, Plugin, PluginCtx,
}; };
use ezgui::{Color, GfxCtx, LogScroller, Wizard, WrappedWizard}; use ezgui::{GfxCtx, LogScroller, Wizard, WrappedWizard};
use map_model::Map; use map_model::Map;
use piston::input::Key; use piston::input::Key;
use sim::{BorderSpawnOverTime, Neighborhood, Scenario, SeedParkedCars, SpawnOverTime}; use sim::{BorderSpawnOverTime, Neighborhood, Scenario, SeedParkedCars, SpawnOverTime};
@ -78,11 +78,7 @@ impl Plugin for ScenarioManager {
} }
ScenarioManager::EditScenario(_, wizard) => { ScenarioManager::EditScenario(_, wizard) => {
if let Some(neighborhood) = wizard.current_menu_choice::<Neighborhood>() { if let Some(neighborhood) = wizard.current_menu_choice::<Neighborhood>() {
g.draw_polygon( g.draw_polygon(ctx.cs.get("neighborhood polygon"), &neighborhood.polygon);
ctx.cs
.get_def("neighborhood polygon", Color::rgba(0, 0, 255, 0.6)),
&neighborhood.polygon,
);
} }
wizard.draw(g, ctx.canvas); wizard.draw(g, ctx.canvas);
} }

View File

@ -1,6 +1,6 @@
use crate::objects::Ctx; use crate::objects::Ctx;
use crate::plugins::{Plugin, PluginCtx}; use crate::plugins::{Plugin, PluginCtx};
use ezgui::{Color, GfxCtx}; use ezgui::GfxCtx;
use geom::Line; use geom::Line;
use map_model::LANE_THICKNESS; use map_model::LANE_THICKNESS;
use piston::input::Key; use piston::input::Key;
@ -46,11 +46,7 @@ impl Plugin for DiffAllState {
fn draw(&self, g: &mut GfxCtx, ctx: &Ctx) { fn draw(&self, g: &mut GfxCtx, ctx: &Ctx) {
for line in &self.lines { for line in &self.lines {
g.draw_line( g.draw_line(ctx.cs.get("diff agents line"), LANE_THICKNESS, line);
ctx.cs.get_def("diff agents line", Color::YELLOW),
LANE_THICKNESS,
line,
);
} }
} }
} }

View File

@ -80,7 +80,7 @@ impl Plugin for ShowRouteState {
State::DebugAllRoutes(_, traces) => { State::DebugAllRoutes(_, traces) => {
for t in traces { for t in traces {
g.draw_polygon( g.draw_polygon(
ctx.cs.get_def("route", Color::rgba(255, 0, 0, 0.8)), ctx.cs.get("route"),
&t.make_polygons_blindly(LANE_THICKNESS), &t.make_polygons_blindly(LANE_THICKNESS),
); );
} }

View File

@ -183,7 +183,7 @@ pub fn draw_signal_cycle(
for crosswalk in &draw_map.get_i(cycle.parent).crosswalks { for crosswalk in &draw_map.get_i(cycle.parent).crosswalks {
if !hide_crosswalks.contains(&crosswalk.id1) { if !hide_crosswalks.contains(&crosswalk.id1) {
crosswalk.draw(g, cs.get_def("crosswalk", Color::WHITE)); crosswalk.draw(g, cs.get("crosswalk"));
} }
} }
for t in &cycle.priority_turns { for t in &cycle.priority_turns {