import {Entity} from "../utils/entity"; import {Region} from "./region"; import {RNG} from "../utils/rng"; export type Part = { id: string; sides: number; alignments?: string[]; side: number; alignment?: string; region: Entity; position: number[]; } export function flip(part: Entity) { part.produce(draft => { draft.side = (draft.side + 1) % draft.sides; }); } export function flipTo(part: Entity, side: number) { part.produce(draft => { draft.side = side; }); } export function roll(part: Entity, rng: RNG) { part.produce(draft => { draft.side = rng.nextInt(draft.sides); }); }