#![warn(missing_docs)]
#![cfg_attr(not(feature = "window"), allow(dead_code))]
mod actions;
mod alloc_count;
mod assets;
mod attach;
mod audio;
mod camera;
#[cfg(any(feature = "physics", feature = "physics3d"))]
mod collision;
mod color;
mod control;
mod ctx;
mod ecs;
#[cfg(feature = "inspector")]
mod editor;
mod events;
mod flow;
mod game;
#[cfg(feature = "gamepad")]
mod gamepad;
mod hot_reload;
mod input;
pub use actions::{Action, ActionMap, Axis2Binding, AxisBinding, ButtonBinding, InputEvent};
#[cfg(feature = "inspector")]
mod inspector;
mod logs;
#[cfg(feature = "navmesh")]
mod nav3d;
mod net;
#[cfg(feature = "navmesh")]
pub use nav3d::{NavAgent3D, NavBakeError, NavBakeSettings, NavMesh3D, NavObstacle3D, NavSource, step_navmesh3d};
mod perf_report;
#[cfg(feature = "physics")]
mod physics;
#[cfg(feature = "physics3d")]
mod physics3d;
mod profiler;
#[cfg(any(all(target_arch = "wasm32", feature = "window"), test))]
mod query;
mod random;
mod reflect;
mod render;
mod scene;
mod scope;
mod sheet;
mod spatial;
mod stream;
mod text;
mod texture;
#[cfg(feature = "3d")]
mod three;
mod tilemap;
mod time;
mod ui;
#[cfg(all(target_arch = "wasm32", feature = "window"))]
mod web;
pub use alloc_count::{AllocCounts, CountingAllocator, alloc_counts, note_allocation};
pub use attach::{Attached, follow_attachments};
pub use audio::{AudioBus, AudioEffects, Playing, Sound, SoundParams};
#[cfg(feature = "3d")]
pub use audio::{AudioListener3D, AudioRolloff, AudioSettings3D, AudioSource3D};
pub use camera::{Camera2D, Rect, camera_controls};
#[cfg(any(feature = "physics", feature = "physics3d"))]
pub use collision::{BodyKind, CollisionStarted, CollisionStopped};
pub use color::Color;
pub use ctx::{Ctx, SystemTiming, Turns};
pub use ecs::{Sprite, Transform2D, draw_sprites};
pub use events::Events;
#[doc(hidden)]
pub use flow::RawFlowView;
pub use flow::{FlowField, NavGrid};
pub use game::{Game, SetupResult};
pub use input::{Gamepad, GamepadAxis, GamepadButton, GamepadStick, Key, MAX_GAMEPADS, MouseButton};
pub use net::{
Authority, AuthorityCheck, ClockSync, Interest, InterestChange, InterestChangeKind, InterestConfig, InterestEntity,
InterestEntry, InterestTier, InterestViewer, Interpolate, LatestWins, MAX_INTEREST_TIERS, Pose, SnapshotBuffer,
SnapshotConfig, SnapshotPush, SnapshotSample, SnapshotState, SnapshotStream, UpdateStamp, seq_diff, seq_newer,
};
pub use net::{
Desync, Lane, MAX_INPUT_BYTES, MAX_MESSAGE_BYTES, MAX_PLAYERS, MessageEvent, MessageStats, Net, NetMessages,
NetState, NetStats, PeerId,
};
#[cfg(feature = "3d")]
pub use net::{NetPose, apply_net_poses};
#[cfg(feature = "steam")]
pub use net::{SteamLobby, SteamLobbyVisibility, steam_lobby_from_args, steam_wait_for_invite};
pub use perf_report::{
AllocReport, Budget, BudgetViolation, Contributor, FrameTimes, PassReport, PerfReport, PerfWarning, Regression,
RenderReport, ScopeReport, SystemReport, WarningKind, WorstFrame,
};
#[cfg(feature = "physics")]
pub use physics::{Collider, MAX_POLYGON_POINTS, Physics, RayHit, RigidBody, Shape, Velocity, step_physics};
#[cfg(feature = "physics3d")]
pub use physics3d::{
Character3D, Collider3D, ColliderFocus, CollisionGroups, CollisionMesh, CollisionMeshData, ContactModifier3D,
ContactPair3D, FrictionCurve, Hit3D, Joint3D, JointAxis3D, JointDrive3D, JointMotion3D, PHYSICS3D_HZ, Physics3D,
QueryFilter3D, Ragdoll3D, RagdollBone, RigidBody3D, Shape3D, TerrainCollider, Vehicle3D, Velocity3D, Wheel3D,
interpolate_physics3d, step_physics3d,
};
pub use profiler::{FrameStats, GpuPass};
pub use random::{DEFAULT_SEED, Random, Rng};
pub use reflect::{Field, FieldType, ReflectError, WorldReflect};
pub use render::RenderStats;
pub use scope::{ProfileScope, ScopeGuard, ScopeTiming, scope_named};
pub use sheet::{Animation, SpriteSheet, animate_sprites};
#[doc(hidden)]
pub use spatial::RawGridView;
pub use spatial::{GridEntry, SPATIAL_SORT_EVERY, SpatialGrid, rebuild_spatial_grid, spatial_key};
#[cfg(feature = "steam")]
pub use steamworks;
#[cfg(feature = "3d")]
pub use stream::CellStreamer;
pub use stream::Job;
pub use taffy as ui_layout;
pub use text::{Font, TextParams};
pub use texture::{DrawParams, Texture, TextureFilter};
#[cfg(feature = "3d")]
pub use three::{
AmbientOcclusion, AnimationClip, AnimationCondition, AnimationEvent, AnimationGraph, AnimationLayer,
AnimationParameter, AnimationState, AnimationTrack, AnimationTransition, Animator, AntiAliasing, AttachToJoint,
Blend, Camera3D, Compute, ComputePass, Decal3D, Effect, FarTerrain, GlobalIllumination, GpuBuffer, GraphicsQuality,
Heightfield, InstanceBatch, InstanceBatchOptions, Interpolation, Joint, JointAnimation, JointMask,
LIGHT_SHADOW_ATLAS_SIZE, LIGHT_SHADOW_SIZE, LayerBlend, Lighting, Line3D, LodGroup, LodLevel, LodPick, LodRenderer,
LodSettings, LodShadow, MAX_DECALS, MAX_DECALS_PER_CLUSTER, MAX_GI_PROBES, MAX_GI_PROBES_PER_FRAME,
MAX_LIGHT_SHADOW_VIEWS, MAX_RENDER_SCALE, MIN_RENDER_SCALE, Material, MaterialDesc, Mesh, MeshCost, MeshData,
Model, MorphAnimation, MorphFrame, MorphTarget, MorphWeights, Motion, MotionChild, ParticleBlend3D, ParticleCurve,
ParticleEmitter3D, ParticleGradient, ParticleSettings3D, ParticleShape3D, ParticleSpace3D, PointLight3D, Post,
QualityLevel, ReceivesDecals, ReflectionProbe3D, RootMotion, ScreenEffect, Shader, ShadowMesh, Skeleton, SkinOf,
Sky, SpotLight3D, TERRAIN_LAYERS, TERRAIN_LODS, TargetCamera, TerrainMaterialDesc, TerrainTile, TerrainTileData,
Text3D, TextAlign3D, TextureArray, TextureKind, Tonemap, Trail3D, Transform3D, look_at_joint, two_bone_ik,
};
pub use tilemap::{TileMap, draw_tilemaps};
#[cfg(feature = "3d")]
pub use ui::UiPanel3D;
pub use ui::{Ui, UiEvent, UiId, UiInput, UiPaint, UiStyle, UiTextAlign, UiWidget};
pub use ponko_ecs::{Commands, Component, ComponentId, Entity, Query, World};
pub use ponko_ecs as ecs_core;
#[cfg(feature = "3d")]
pub use glam::{Mat4, Vec4, vec4};
pub use glam::{Quat, Vec3, vec3};
pub use glam::{UVec2, uvec2};
pub use glam::{Vec2, vec2};
pub use serde_json::{self, Value, json};
pub use web_time::Instant;