import {BaseAction} from "./BaseAction"; import {StorageCoordinates} from "../state/Coordinates"; import {AppAction} from "./AppAction"; export const TILE_PAINT = "TILE_PAINT" export interface TilePaintAction extends BaseAction { readonly type: typeof TILE_PAINT readonly at: StorageCoordinates } export function isTilePaintAction(action: AppAction): action is TilePaintAction { return action.type === TILE_PAINT } export const TILE_REMOVE = "TILE_REMOVE" export interface TileRemoveAction extends BaseAction { readonly type: typeof TILE_REMOVE readonly at: StorageCoordinates } export function isTileRemoveAction(action: AppAction): action is TileRemoveAction { return action.type === TILE_REMOVE } export function isTileAction(action: AppAction): action is TileAction { return isTilePaintAction(action) || isTileRemoveAction(action) } export type TileAction = TilePaintAction | TileRemoveAction