/// import * as t from 'io-ts'; import { EntityMap } from '../entity_map'; import { Component } from '../component'; import { Angle } from '../datatypes/angle'; import { Position } from '../datatypes/position'; import { Vector } from '../datatypes/vector'; import { Plugin } from '../plugin'; import { System } from '../system'; import { Time } from './time_plugin'; export declare enum MovementType { INERTIAL = 0, INERTIALESS = 1, STATIONARY = 2 } export declare const MovementPhysics: t.TypeC<{ maxVelocity: t.NumberC; turnRate: t.NumberC; acceleration: t.NumberC; movementType: t.UnionC<[t.LiteralC, t.LiteralC, t.LiteralC]>; }>; export declare type MovementPhysics = t.TypeOf; export declare const MovementPhysicsComponent: Component<{ maxVelocity: number; turnRate: number; acceleration: number; movementType: MovementType; }>; export declare const MovementState: t.IntersectionC<[t.TypeC<{ position: t.Type; velocity: t.Type; rotation: t.Type; turning: t.NumberC; turnBack: t.BooleanC; accelerating: t.NumberC; }>, t.PartialC<{ turnTo: t.UnionC<[t.Type, t.StringC, t.NullC]>; targetSpeed: t.NumberC; }>]>; export declare type MovementState = t.TypeOf; export declare const MovementStateComponent: Component<{ position: Position; velocity: Vector; rotation: Angle; turning: number; turnBack: boolean; accelerating: number; } & { turnTo?: string | Angle | null | undefined; targetSpeed?: number | undefined; }>; export declare const MovementSystem: System, Component<{ maxVelocity: number; turnRate: number; acceleration: number; movementType: MovementType; }>, import("nova_ecs/resource").Resource