Commit Graph

204 Commits

Author SHA1 Message Date
Dustin Carlino
db736ceab5 Collapse some of the module indirections in the game crate. 2020-11-23 17:58:32 -08:00
Dustin Carlino
e6d21d81e7 Add the city picker to the experiment, as a way to lift it to map_gui. 2020-11-23 17:58:32 -08:00
Dustin Carlino
ab2f6fefec Split the controls experiment into a separate binary, get it to draw a
map way more simply than the game
2020-11-23 17:58:32 -08:00
Dustin Carlino
558eb6f716 Extract DrawMap into a separate crate, along with everything else it
depends on.

The goal is to be able to split things like the OSM viewer, parking
mapper, and 15 min tool into separate crates from the game, while still
sharing lots of code.
2020-11-23 17:58:32 -08:00
Dustin Carlino
f7504bf4d1 Tease AgentCache out of DrawMap 2020-11-22 19:35:35 -08:00
Dustin Carlino
f656468580 widgetry refactor: store all keys currently held down, let anyone query 2020-11-22 13:24:08 -08:00
Dustin Carlino
e43f551af6 New query and debug viewer to get the full graph of agents waiting on others. #392 2020-11-20 14:19:19 -08:00
Dustin Carlino
32dea68f5d Measure how many simulation events actually result in something
changing. #368
2020-11-16 11:51:24 -08:00
Dustin Carlino
69699600ea Prototype filling in the gaps near one-way roads. Needs more filtering
out, but solid start. #230

Regenerate map data, since the Area object changed.
2020-11-12 14:21:08 -08:00
Dustin Carlino
c96f84341a Incorporate intersection corners in the around-the-block polygon. #230 2020-11-12 13:41:47 -08:00
Dustin Carlino
1b6af3dfb1 Prototype a debug mode tool to trace a polygon on the interior of any "loop" of roads. Aka, find the polygon if you "walk around the block." This can be used to fill in the blank space between dual carriageways. #230
Algorithm needs some work -- it doesn't trace along sidewalk corners,
and it fails for some starting lanes.
2020-11-12 12:53:41 -08:00
Dustin Carlino
e3b9c42506 Refactor: panel.replace() will set the same name on the new element 2020-11-10 11:49:55 -08:00
Dustin Carlino
ac6eff31ef Rename some maps to remove the now-redundant city. #326 2020-11-05 15:24:02 -08:00
Dustin Carlino
3d84defb71 Also organize screenshots by city. #326 2020-11-05 14:42:40 -08:00
Dustin Carlino
67530bec07 Future-proof file organization by changing map_name from a string to a
struct. Whatever choices we make next about naming cities hierarchially
or not can be managed in just one place. #326

This is a pretty huge change, but the compiler gives reasonable
confidence it's correct. More bugs are likely to crop up in the next
step, when filenames start being namespaced by the city too.
2020-11-04 17:26:32 -08:00
Dustin Carlino
0167b4be31 A tiny start to the great UI button refactor: make the "X" button
consistent. #331
2020-10-28 12:04:36 -07:00
Dustin Carlino
c2b6c917ae Generalize the State/Transition GUI structure, moving it into widgetry.
Nothing about it is specific to A/B Street, and other apps built with
widgetry could organize themselves as a stack of states. This is also a
first step towards sharing more common code between A/B Street and a
future OSM viewer.

Mostly mechanical change. Some more cleanup / documentation coming up
next.
2020-10-22 17:34:59 -07:00
Dustin Carlino
4a3ea8b5c7 Add a tool to export a road to streetmix. Untested, because still having trouble making manual API calls. 2020-10-22 16:29:42 -07:00
Dustin Carlino
81dae1e39c Slightly simplify some plumbing of variables through nested closures, by
remembering that FnOnce exists
2020-10-14 15:36:08 -05:00
Dustin Carlino
1906fb0913 Remove the GetDrawAgents indirection. Originally the UI could pull the
set of agents to draw either from the simulation or from this
"time-traveler" plugin, which would let you rewind sim time. That plugin
is long gone, and it never worked well, because much of the UI would use
the GetDrawAgents to select something, then query the live sim for lots
of details anyway. The plugin never served all of those calls, so the
results would be kind of out-of-sync anyway.

There are some parts of the UI that need to temporarily not draw agents.
Use the same suspended_sim trick that edit mode does.
2020-10-12 11:52:05 -05:00
Dustin Carlino
3feb9d6dbe Make the proposals picker use the new map loading mechanism 2020-10-09 15:57:20 -07:00
Dustin Carlino
03eac377d6 Convert ScreenshotTest away from app.switch_map 2020-10-09 15:07:35 -07:00
Dustin Carlino
f258c50595 Organize import blocks using https://github.com/dabreegster/organize_rust_imports 2020-10-05 20:29:22 -07:00
Dustin Carlino
27d94945c6 Manually move mod block after the use block, to match what CLion does. 2020-10-05 20:29:22 -07:00
Dustin Carlino
8e49aac42f Make traffic seitan close roads that agents are about to use, causing a
crash. And start to figure out the debugging story.
2020-10-05 08:49:16 -07:00
Dustin Carlino
98d26d8979 Refactor calls to calculate_current_selection 2020-10-03 16:37:56 -07:00
Dustin Carlino
49f4d3e3dc
Add a tool to see where people blocked on a traffic signal are trying to go (#354) 2020-09-29 15:22:05 -07:00
Dustin Carlino
84891f8b96 Some map fixes to prepare for alleyways:
- Temporarily workaround snap_cycleways crash in Xi'an
- Fix interpretation of blank turn restrictions. https://www.openstreetmap.org/way/739621435 was missing a right turn, which was causing vehicles to do this crazy loop to go from Madison EB to Lake Wash SB.
- Ignore turn restrictions when they don't match the number of lanes. https://www.openstreetmap.org/way/428090702 and similar need some updating.

Regenerate all data, but give up on lakeslice running fully. Going to
sacrifice that one for a bit to get new roads imported.
2020-09-27 11:21:35 -07:00
Dustin Carlino
83ff6db16c Improve the signal demand dash with keys to change hour. And slightly
refactor styled keys in text.
2020-09-19 10:18:23 -07:00
Dustin Carlino
d9e50a7e38 Use .into() for specifying keys to widgetry more ergonomically. #253 2020-09-18 09:26:14 -07:00
Dustin Carlino
ec28132286 Implement Yuwen's split jump to time/delay UI [rebuild] 2020-09-14 10:28:25 -07:00
Dustin Carlino
d8011a90f4 Handle live edits by just aborting any current trips that cross an
edited road or closed intersection. #312

Along the way, refactor more context plumbing in DrivingSimState.
2020-09-09 15:03:14 -07:00
Dustin Carlino
5c6e781016 Collapse a few more of the Transitions 2020-09-07 10:49:20 -07:00
Dustin Carlino
38ba8d55f3 Produce proper lanes for left-hand driving by intervening at the LaneSpec layer for #311. Since London looks reasonable, opt it into the screenshot tests 2020-09-04 10:01:06 -07:00
Dustin Carlino
de6a12e472 After much deliberation, rename Composite -> Panel (#253) 2020-08-27 12:12:44 -07:00
Dustin Carlino
2935d2379b Mechanical rename of ezgui -> widgetry, a much better name to enchant the Rust community. #253 [rebuild] 2020-08-27 10:37:04 -07:00
Dustin Carlino
8c1686c25f Add a tool to screenshot all of the maps currently under diff testing. This tiny bit of automation saves me some manual labor. 2020-08-26 09:41:03 -07:00
Dustin Carlino
aa3bd5073b Make some new methods on Road to handle child lanes from left-to-right,
not split by direction. Update many callers, and lock down the
visibility of the old methods.

Tested a few maps manually to make sure there's no behavioral diff. Only
problem right now is the z-order of adjacent lanes covering up half of
the white stripe sometimes. Have some ideas to fix that later, and not
_super_ important in the meantime.
2020-08-25 12:08:54 -07:00
Dustin Carlino
b41b52d7bd fix crash in debug mode when opening info panels 2020-08-24 09:01:27 -07:00
Dustin Carlino
66151e8aa4 Dump route goldenfiles during the smoke-test, so that it's run when all
data is regenerated. (Ideally screenshots would also be automated, but
that's a little trickier.)

_NOW_ regenerate all data! The only diff anywhere is the binary map
format, so there's confidence the last few commits haven't changed
anything.
2020-08-22 10:53:05 -07:00
Dustin Carlino
0749a2ac7b start keeping goldenfiles for bus routes, similar to the screenshot diff test. this will make it much easier to finish up bus matching without accidentally regressing somewhere 2020-08-10 16:03:04 -07:00
Dustin Carlino
b881fa605b convert the last caller away from wizard... 2020-08-07 13:52:27 -07:00
Dustin Carlino
f61881f6fa move more UIs away from wizards. editing signal offset broke, because
the perma format doesn't encode offset yet
2020-08-07 13:33:58 -07:00
Dustin Carlino
480156c7c6 convert more Wizards to ChooseSomethings 2020-08-06 10:21:01 -07:00
Dustin Carlino
e68df0ed1a and make tool_panel normal, ending the strange reign of WrappedComposite 2020-08-04 12:34:58 -07:00
Dustin Carlino
225abcd112 clean up old UserInput APIs from long, long ago 2020-08-04 12:00:07 -07:00
Dustin Carlino
5fe3cc5f8a slowly whittle down public surface of ezgui
- stop referencing Prerender when easy
- default_font_size hasn't been used since the great typography refactor

some of this harms the usability of map_editor, but that's fine, because
the UX is awful anyway, and nobody should be using this except for me
very occasionally. long-term fate of it is to go away.
2020-08-04 11:36:47 -07:00
Dustin Carlino
a9998a0735 tool to find huge intersections, usually where lane count is way off 2020-08-03 18:12:18 -07:00
Dustin Carlino
f0ecd914b5 emit Outcome::Changed for dropdowns, checkboxes, spinners. simplify client code 2020-08-03 14:27:44 -07:00
Dustin Carlino
41f4cfff6d tool-assisted refactor of ezgui Outcome 2020-08-03 13:42:59 -07:00
Michael Kirk
3879753cd2
revert some switches back to checkboxes (#252)
* revert some switches back to checkboxes

partial revert of 90bb4ac0

In many ways switches and checkboxes seem interchangeable, but in certain
contexts one may be more appropriate.

For an overview that I mostly agree with:
https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8
2020-07-28 13:58:20 -07:00
Dustin Carlino
328cbcd1f1 stop melting my laptop when generating scenarios 2020-07-23 09:15:25 -07:00
Dustin Carlino
f1ef02b907 store Tags in map_model objects, to reap its benefits anywhere in the codebase. serialization format doesnt change! 2020-07-23 07:43:50 -07:00
Dustin Carlino
4f8f659dfb widget replacement keeps margins from the old 2020-07-19 11:28:12 -07:00
Dustin Carlino
ccf213ded9 fix pioneer square station snapping. rust-geo's FindClosest has a bug.
>_<
2020-07-16 13:22:05 -07:00
Dustin Carlino
98b9115f88 better tool to explore degenerate roads 2020-07-14 21:02:33 -07:00
Dustin Carlino
b68e233125 trying to handle gridlock near tiny roads for #114. treat the entire
sequence as one thing to lock -- don't start it until it's clear, and
prevent new conflicting turns once started. disable block-the-box
protection inside.

I'm not sure this is helping at all yet. maybe it's just more complex.
2020-07-13 12:30:24 -07:00
Dustin Carlino
187c8ad4c5 consider again the possibility of merging some degenerate roads 2020-07-07 21:39:42 -07:00
Dustin Carlino
4aaa41dd13 zip screenshots in dropbox, because managing individual files keeps crashing the daemon 2020-07-07 16:31:52 -07:00
Dustin Carlino
3eb8db3f75 interpret OSM center lines as the physical center of the road (excluding
sidewalks), not as the divider between the two directions. this
dramatically changes geometry everywhere for the better.

thanks to
https://wiki.openstreetmap.org/wiki/Proposed_features/placement for
clear explanations. will be looking next at interpreting this tag.

also temporarily removing screenshots, because uploading individual
files and waiting for dropbox to sync isn't sustainable
2020-07-07 15:52:51 -07:00
Dustin Carlino
c3858b9cdd mark construction lanes appropriately. this broke when adapting to the new tagging on the west seattle bridge, but there are some roads tagged this way in krakow.
(not regenerating all the maps yet, expecting to do more work on this
today)
2020-07-06 07:43:42 -07:00
Dustin Carlino
f02fa8bddd add a tool to export roads to https://github.com/d-wasserman/shared-row 2020-07-04 11:29:45 -07:00
Dustin Carlino
4f507ef96a refactor Composite style 2020-07-03 13:01:54 -07:00
Dustin Carlino
8b006c037d slim down sidewalk corners, at the repeated urging of julian 2020-07-02 17:12:08 -07:00
Javed Nissar
1f58cbf16d
Refactor event update loop (#59)
* Refactor event update loop to enable multiple game update types

* Implement pan event to improve panning with cursor at edge of screen and
fixed formatting
2020-07-01 17:47:30 -07:00
Dustin Carlino
1422643973 finish the ezgui layout refactor. most things are way more consistent now, and with less code 2020-07-01 15:39:04 -07:00
Dustin Carlino
834f060462 yet more layout refactor 2020-07-01 15:31:52 -07:00
Dustin Carlino
2881341b63 make parking lots hideable. dont snap parking and sidewalk hints to
light rail. not regenerating all the maps again yet to avoid some churn
2020-06-26 17:02:14 -07:00
Dustin Carlino
b3a480b4c1 clean up old trip positions from Sim. implement the all-route debugger
in a more straightforward way
2020-06-25 09:20:54 -07:00
Dustin Carlino
eedf80bfef tiny tweaks from final testing:
- cutscene wording
- elide traffic tab on parking lanes
- dont crash when traffic signal data needs fixing, just warn more
loudly. this lets lanes near some signals actually be modified
2020-06-21 11:38:34 -07:00
Dustin Carlino
c66564dd9d try out a new style for road labels 2020-06-19 20:12:25 -07:00
Dustin Carlino
5a9fb4ceef starting work on a brute-force traffic signal heuristic. organizing
existing code better.
2020-06-19 13:07:42 -07:00
Dustin Carlino
287d56efd9 generalizing the old gridlock checker. removing unused savestate_every
support. reimpl it later using the callbacks if needed.
2020-06-09 14:29:35 -07:00
Dustin Carlino
2445bddeb9 prepping to work on sim step 2020-06-09 12:39:31 -07:00
Dustin Carlino
957ee65fc9 starting to place markers for story map. cleaning up inconsistent order
of (app, ctx)
2020-06-04 11:00:19 -07:00
Dustin Carlino
a3724e4b4d boilerplate for a story map editor. also make close buttons consistent 2020-06-03 21:52:54 -07:00
Dustin Carlino
47e6a6b76a clean up old design notes 2020-05-24 11:07:29 -07:00
Dustin Carlino
2d69392e9c move the kml debugging to a separate mode 2020-05-16 11:58:55 -07:00
Dustin Carlino
3145326207 start a tool to understand popular destinations. remove dot map,
superceded by live population map
2020-05-12 12:54:35 -07:00
Dustin Carlino
7f867fda70 trim down map file size a bit by not storing building OSM tags, which
weren't useful anyway. 873MB for all maps down to 786MB. huge_seattle
343MB to 305MB
2020-05-08 14:46:36 -07:00
Dustin Carlino
c0b5ead639 display the blocked_by graph in debug mode 2020-04-29 12:34:09 -07:00
Dustin Carlino
a104088ccd pt2: rest of sim layer, which forces the UI changes too 2020-04-15 15:48:16 -07:00
Dustin Carlino
fadae3aa85 improve checkbox API, use it for colored minimap checkboxes 2020-04-06 11:12:23 -07:00
Dustin Carlino
b09c7d2726 moved rest of colors over 2020-04-04 14:15:34 -07:00
Dustin Carlino
4d8ab45750 slowly moving string colors to the struct 2020-04-04 10:59:51 -07:00
Dustin Carlino
fd80a7f2a9 starting the grand colorscheme refactor (there really are lots of grand
refactors lately). plumbing and replacing constants / floating methods
2020-04-04 10:16:18 -07:00
Dustin Carlino
ef90c6935c use the locate header button to follow/unfollow people 2020-04-01 15:50:11 -07:00
Dustin Carlino
3900494b2e add back some form of the follow/unfollow control 2020-03-30 10:15:53 -07:00
Dustin Carlino
12c0809b23 converting the spawner over, one of the most complex 2020-03-28 17:48:50 -07:00
Dustin Carlino
56544d6b14 working on debug mode 2020-03-28 17:09:36 -07:00
Dustin Carlino
6172fa5215 prototyping a different way of specifying contextual actions 2020-03-28 14:55:54 -07:00
Dustin Carlino
69dab9e27d typography overhaul... [rebuild] 2020-03-26 15:42:37 -07:00
Dustin Carlino
9d3adfbe40 try the dot map as a debug-only overlay. slow and weird, but getting
somewhere.
2020-03-21 13:10:50 -07:00
Dustin Carlino
7edb8a6190 rename Widget -> WidgetImpl, ManagedWidget -> Widget 2020-03-20 23:41:07 -07:00
Dustin Carlino
7592a36fe4 tool-assisted refactor of the last 2 WrappedComposite button helpers 2020-03-20 15:22:45 -07:00
Dustin Carlino
87e605a119 prototype a live dot map in debug mode 2020-03-18 19:17:54 -07:00
Dustin Carlino
eda0237ea7 improve debug mode UI -- menu style, use checkboxes. simplify and speed
up all route viz
2020-03-18 14:41:34 -07:00
Dustin Carlino
fedacfe202 reduce verbosity of constructing text widgets [rebuild] 2020-03-13 23:06:52 -07:00
Dustin Carlino
da6abc019b overhaul one of the oldest things ever, the almighty turn cycler 2020-03-08 11:27:00 -07:00
Dustin Carlino
b3917bf17b mechanical rename of UI -> App 2020-03-02 09:51:20 -08:00