add hints for available navigation edges in player ui

This commit is contained in:
Mike Blumenkrantz 2015-01-06 13:37:12 -05:00
parent 71d8718ea0
commit caa9ae0997
3 changed files with 83 additions and 10 deletions

9
README
View File

@ -22,10 +22,13 @@ Optional Module Dependencies:
Controls: Controls:
The UI of EMPC is based on mouse movements and event areas. The UI of EMPC is based on mouse movements and event areas.
Moving the mouse to the an area of the application window Moving the mouse to an area of the application window
will trigger a change in the view state. Unless the current view will trigger a change in the view state. Unless the current view
has been keyboard toggled using a global hotkey, it will automatically has been mouse-hold toggled or keyboard toggled using a global
hide after HIDE_TIMEOUT seconds. hotkey, it will automatically hide after HIDE_TIMEOUT seconds.
Hints for available navigation appear when the view changes:
* blue indicates a new view is available in a direction
* red indicates the previous view is available in a direction
Mouse bindings for the player view and event area sizes can Mouse bindings for the player view and event area sizes can
be changed using the defines at the top of empc.edc. be changed using the defines at the top of empc.edc.

1
TODO
View File

@ -1,6 +1,5 @@
EMPC EMPC
* visual indicators * visual indicators
* training wheels
* database updating * database updating
* get less shitty arrow images for bgselector * get less shitty arrow images for bgselector
* downloading indicator * downloading indicator

View File

@ -96,6 +96,12 @@ collections {
set_int(timer_lock, 0); set_int(timer_lock, 0);
run_program(get_program_id("playlist_overlay_signal")); run_program(get_program_id("playlist_overlay_signal"));
} }
public playlist_visible_hints() {
run_program(get_program_id("top_hint_active"));
run_program(get_program_id("left_hint_inactive"));
if (!get_int(controls_visible))
run_program(get_program_id("bottom_hint_active"));
}
} }
parts { parts {
rect { "base"; nomouse; rect { "base"; nomouse;
@ -706,6 +712,12 @@ collections {
color: 0 0 0 0; color: 0 0 0 0;
rel1.relative: 1 0; rel1.relative: 1 0;
} }
desc { "hint_activate"; inherit: "default";
color: 52 153 255 100;
}
desc { "hint_deactivate"; inherit: "default";
color: 154 25 25 100;
}
} }
rect { "left_events"; repeat_events: 1; rect { "left_events"; repeat_events: 1;
clip: "bgchooser_active_clip"; clip: "bgchooser_active_clip";
@ -717,6 +729,12 @@ collections {
color: 0 0 0 0; color: 0 0 0 0;
rel2.relative: 0 1; rel2.relative: 0 1;
} }
desc { "hint_activate"; inherit: "default";
color: 52 153 255 100;
}
desc { "hint_deactivate"; inherit: "default";
color: 154 25 25 100;
}
} }
rect { "bottom_events"; repeat_events: 1; rect { "bottom_events"; repeat_events: 1;
clip: "bgchooser_active_clip"; clip: "bgchooser_active_clip";
@ -728,6 +746,12 @@ collections {
color: 0 0 0 0; color: 0 0 0 0;
rel1.relative: 0 1; rel1.relative: 0 1;
} }
desc { "hint_activate"; inherit: "default";
color: 52 153 255 100;
}
desc { "hint_deactivate"; inherit: "default";
color: 154 25 25 100;
}
} }
rect { "top_events"; repeat_events: 1; rect { "top_events"; repeat_events: 1;
clip: "bgchooser_active_clip"; clip: "bgchooser_active_clip";
@ -739,7 +763,38 @@ collections {
color: 0 0 0 0; color: 0 0 0 0;
rel2.relative: 1 0; rel2.relative: 1 0;
} }
desc { "hint_activate"; inherit: "default";
color: 52 153 255 100;
}
desc { "hint_deactivate"; inherit: "default";
color: 154 25 25 100;
}
} }
#define HINT_PROGRAM(SIDE) \
program { SIDE"_hint_active"; \
action: STATE_SET "hint_activate"; \
target: SIDE"_events"; \
transition: SIN 0.5; \
sequence { \
action: STATE_SET "default"; \
target: SIDE"_events"; \
transition: SIN 0.5; \
} \
} \
program { SIDE"_hint_inactive"; \
action: STATE_SET "hint_deactivate"; \
target: SIDE"_events"; \
transition: SIN 0.5; \
sequence { \
action: STATE_SET "default"; \
target: SIDE"_events"; \
transition: SIN 0.5; \
} \
}
HINT_PROGRAM("top")
HINT_PROGRAM("bottom")
HINT_PROGRAM("left")
HINT_PROGRAM("right")
alias: EMPC_LOGIN_TEXT_HEADER "login_panel:empc.text"; alias: EMPC_LOGIN_TEXT_HEADER "login_panel:empc.text";
alias: EMPC_LOGIN_SWALLOW_HOST "login_panel:swallow.host"; alias: EMPC_LOGIN_SWALLOW_HOST "login_panel:swallow.host";
alias: EMPC_LOGIN_SWALLOW_PORT "login_panel:swallow.port"; alias: EMPC_LOGIN_SWALLOW_PORT "login_panel:swallow.port";
@ -858,7 +913,10 @@ collections {
after: "playlist_show_done"; after: "playlist_show_done";
} }
program { "playlist_show_done"; program { "playlist_show_done";
action: SIGNAL_EMIT "empc,playlist,visible" "empc"; script {
emit("empc,playlist,visible", "empc");
playlist_visible_hints();
}
} }
program { "playlist_hide"; program { "playlist_hide";
filter: EMPC_SWALLOW_PLAYLIST "visible"; filter: EMPC_SWALLOW_PLAYLIST "visible";
@ -874,7 +932,12 @@ collections {
after: "playlist_hide_done"; after: "playlist_hide_done";
} }
program { "playlist_hide_done"; program { "playlist_hide_done";
action: SIGNAL_EMIT "empc,playlist,hidden" "empc"; script {
emit("empc,playlist,hidden", "empc");
run_program(get_program_id("right_hint_active"));
if (!get_int(controls_visible))
run_program(get_program_id("bottom_hint_active"));
}
} }
program { signal: "mouse,in"; source: "left_events"; program { signal: "mouse,in"; source: "left_events";
script { script {
@ -979,8 +1042,12 @@ collections {
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
target: EMPC_SWALLOW_FILESYSTEM; target: EMPC_SWALLOW_FILESYSTEM;
transition: LINEAR 0.2 CURRENT; transition: LINEAR 0.2 CURRENT;
sequence { after: "filesystem_show_done";
action: SIGNAL_EMIT "empc,filesystem,visible" "empc"; }
program { "filesystem_show_done";
script {
emit("empc,filesystem,visible", "empc");
run_program(get_program_id("bottom_hint_inactive"));
} }
} }
program { "filesystem_hide"; program { "filesystem_hide";
@ -994,8 +1061,12 @@ collections {
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
target: EMPC_SWALLOW_FILESYSTEM; target: EMPC_SWALLOW_FILESYSTEM;
transition: LINEAR 0.2 CURRENT; transition: LINEAR 0.2 CURRENT;
sequence { after: "filesystem_hide_done";
action: SIGNAL_EMIT "empc,filesystem,hidden" "empc"; }
program { "filesystem_hide_done";
script {
emit("empc,filesystem,hidden", "empc");
playlist_visible_hints();
} }
} }
program { signal: "empc,key,down"; source: "empc"; program { signal: "empc,key,down"; source: "empc";