Skip to content

Commit

Permalink
Get rid of shuffle button
Browse files Browse the repository at this point in the history
  • Loading branch information
jcreedcmu committed Feb 5, 2024
1 parent 255b901 commit 0e9909c
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 30 deletions.
8 changes: 5 additions & 3 deletions src/core/low-actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ function reduceMouseDownInHand(state: GameState, wp: WidgetPoint & { t: 'hand' }
if (tool == 'dynamite') return { t: 'mouseDownIntent', intent: dynamiteIntent, wp };
else if (tool == 'bomb') return { t: 'mouseDownIntent', intent: bombIntent, wp };
else {
if (button == 2)
return { t: 'shuffle' };

const hoverTile = wp.indexValid && index >= 0 && index < tiles.length;
if (hoverTile) {
return { t: 'startDragHandTile', index, wp };
Expand Down Expand Up @@ -94,7 +97,7 @@ function reducePauseButton(state: CoreState): CoreState {
return produce(state, s => { s.slowState.paused = { pauseTime_in_clock: Date.now() }; });
}

function reduceShuffleButton(state: CoreState): CoreState {
function reduceShuffle(state: CoreState): CoreState {
const hs = get_hand_tiles(state);
let randomOrder = getRandomOrder(hs.length);
let retries = 0;
Expand All @@ -120,7 +123,6 @@ function reduceMouseDown(state: GameState, wp: WidgetPoint, button: number, mods
case 'hand': return reduceMouseDownInHand(state, wp, button, mods);
case 'toolbar': return reduceMouseDownInToolbar(state, wp, button, mods);
case 'pauseButton': return { t: 'vacuousDownAnd', wp, action: { t: 'pause' } };
case 'shuffleButton': return { t: 'vacuousDownAnd', wp, action: { t: 'shuffle' } };
case 'nowhere': return { t: 'vacuousDown', wp };
}
}
Expand Down Expand Up @@ -411,7 +413,7 @@ function resolveGameLowAction(state: GameState, action: GameLowAction): GameStat
}
}
case 'vacuousDown': return vacuous_down(state, action.wp);
case 'shuffle': return withCoreState(state, reduceShuffleButton);
case 'shuffle': return withCoreState(state, reduceShuffle);
case 'pause': return withCoreState(state, reducePauseButton);
case 'multiple': return resolveGameLowActions(state, action.actions);
case 'deselect': return withCoreState(state, deselect);
Expand Down
2 changes: 2 additions & 0 deletions src/ui/instructions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,8 @@ export function Instructions(props: { dispatch: Dispatch, page: number }): JSX.E
<tr><td><span className="keycap">`</span> or <span className="keycap">/</span></td><td>Flip orientation of dragged tile group</td></tr>
<tr><td><span className="keycap">space</span></td><td>Draw Tile</td></tr>
<tr><td>mouse wheel</td><td>Zoom in/out</td></tr>
<tr><td>right mouse button</td><td>Pan</td></tr>
<tr><td>right mouse button in hand</td><td>Shuffle</td></tr>
<tr><td>(starting from tile) <span className="keycap">Alt</span>&nbsp;drag</td><td>Swap tiles</td></tr>
<tr><td><span className="keycap">Shift</span>&nbsp;drag</td><td>Add to selection</td></tr>
<tr><td><span className="keycap">Ctrl</span>&nbsp;drag</td><td>Subtract from selection</td></tr>
Expand Down
11 changes: 1 addition & 10 deletions src/ui/render.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import { drawAnimation } from './drawAnimation';
import { drawBonus } from './drawBonus';
import { CanvasInfo } from './use-canvas';
import { cell_in_canvas, drawBubble, pan_canvas_from_world_of_state } from './view-helpers';
import { GLOBAL_BORDER, PANIC_THICK, canvas_bds_in_canvas, canvas_from_hand, canvas_from_toolbar, effective_toolbar_bds_in_canvas, getWidgetPoint, hand_bds_in_canvas, inner_hand_bds_in_canvas, panic_bds_in_canvas, pause_button_bds_in_canvas, score_bds_in_canvas, shuffle_button_bds_in_canvas, spacer1_bds_in_canvas, spacer2_bds_in_canvas, toolbar_bds_in_canvas, world_bds_in_canvas } from './widget-helpers';
import { GLOBAL_BORDER, PANIC_THICK, canvas_bds_in_canvas, canvas_from_hand, canvas_from_toolbar, effective_toolbar_bds_in_canvas, getWidgetPoint, hand_bds_in_canvas, inner_hand_bds_in_canvas, panic_bds_in_canvas, pause_button_bds_in_canvas, score_bds_in_canvas, spacer1_bds_in_canvas, spacer2_bds_in_canvas, toolbar_bds_in_canvas, world_bds_in_canvas } from './widget-helpers';

const INTERFACE_RADIUS = 2 * GLOBAL_BORDER;
const PANIC_RADIUS = Math.min(INTERFACE_RADIUS, PANIC_THICK / 2);
Expand Down Expand Up @@ -339,14 +339,6 @@ export function rawPaint(ci: CanvasInfo, state: GameState, glEnabled: boolean) {
}
}

function drawShuffleButton() {
d.textAlign = 'center';
d.textBaseline = 'middle';
if (cs.slowState.winState.t != 'lost') {
fillText(d, '🔀', midpointOfRect(shuffle_button_bds_in_canvas), 'white', '36px sans-serif');
}
}

function drawHand(illegalDrag: boolean) {
// const handBackgroundColor = illegalDrag ? backgroundRed : backgroundGray;
// fillRect(d, hand_bds_in_canvas, handBackgroundColor);
Expand Down Expand Up @@ -498,7 +490,6 @@ export function rawPaint(ci: CanvasInfo, state: GameState, glEnabled: boolean) {
fillText(d, 'YOU LOST', mp, 'rgba(128,0,0,1)', '96px serif');
}
else {
drawShuffleButton();
drawAnimations(now_in_game(cs.game_from_clock), glEnabled);
}
if (cs.slowState.winState.t == 'won') {
Expand Down
17 changes: 0 additions & 17 deletions src/ui/widget-helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ const SPACER_WIDTH = 5;
export const canvas_bds_in_canvas: Rect = { p: { x: 0, y: 0 }, sz: { x: 1024, y: 768 } };
export const DEFAULT_TILE_SCALE = 48;

const SHUFFLE_WIDTH = DEFAULT_TILE_SCALE + 2 * HAND_VERT_PADDING + 2 * HAND_VERT_MARGIN + PANIC_THICK + GLOBAL_BORDER;

const pauseButton = packVert(
nameRect('pause', fixedRect(vdiag(DEFAULT_TILE_SCALE + 2 * HAND_VERT_PADDING - HAND_VERT_MARGIN))),
fixedRect({ x: 0, y: HAND_VERT_MARGIN }),
Expand Down Expand Up @@ -104,14 +102,6 @@ export function effective_toolbar_bds_in_canvas(state: CoreState): Rect {

export const pause_button_bds_in_canvas: Rect = rects['pause'];

export const shuffle_button_bds_in_canvas: Rect = {
p: {
x: canvas_bds_in_canvas.sz.x - SHUFFLE_WIDTH,
y: canvas_bds_in_canvas.sz.y - 1.9 * BAR_WIDTH - 10,
},
sz: { x: SHUFFLE_WIDTH, y: BAR_WIDTH }
};

export function canvas_from_hand(): SE2 {
return {
scale: { x: DEFAULT_TILE_SCALE, y: DEFAULT_TILE_SCALE },
Expand Down Expand Up @@ -150,7 +140,6 @@ export type WidgetPoint =
| DragWidgetPoint
| { t: 'toolbar', p_in_local: Point, p_in_canvas: Point, local_from_canvas: SE2, tool: Tool }
| { t: 'pauseButton', p_in_canvas: Point }
| { t: 'shuffleButton', p_in_canvas: Point }
| { t: 'nowhere', p_in_canvas: Point } // outside canvas bounds
;

Expand All @@ -161,12 +150,6 @@ export function getWidgetPoint(state: CoreState, p_in_canvas: Point): WidgetPoin
p_in_canvas,
};
}
if (pointInRect(p_in_canvas, shuffle_button_bds_in_canvas) && state.slowState.winState.t != 'lost') {
return {
t: 'shuffleButton',
p_in_canvas,
};
}
else if (pointInRect(p_in_canvas, effective_toolbar_bds_in_canvas(state))) {
const toolbar_from_canvas = inverse(canvas_from_toolbar());
const p_in_local = apply(toolbar_from_canvas, p_in_canvas);
Expand Down

0 comments on commit 0e9909c

Please sign in to comment.