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