SYMBOL INDEX (1131 symbols across 73 files) FILE: client/benches/surface_extraction.rs function extract (line 12) | fn extract(bench: &mut Bencher) { constant DIMENSION (line 71) | const DIMENSION: u32 = 16; constant BATCH_SIZE (line 72) | const BATCH_SIZE: u32 = 16; FILE: client/shaders/common.h function uniform (line 7) | uniform Common { FILE: client/shaders/surface-extraction/surface.h type Surface (line 5) | struct Surface { function uvec3 (line 13) | uvec3 get_pos(Surface s) { function uint (line 25) | uint get_axis(Surface s) { function uint (line 29) | uint get_mat(Surface s) { function get_occlusion (line 33) | float get_occlusion(Surface s, uvec2 texcoords) { function Surface (line 37) | Surface surface(uvec3 pos, uint axis, bool reverse, uint mat, uvec4 occl... FILE: client/src/config.rs type Config (line 13) | pub struct Config { method load (line 23) | pub fn load(dirs: &directories::ProjectDirs) -> Self { method find_asset (line 91) | pub fn find_asset(&self, path: &Path) -> Option { type RawConfig (line 106) | struct RawConfig { FILE: client/src/graphics/base.rs type Base (line 16) | pub struct Base { method new (line 60) | pub fn new( method save_pipeline_cache (line 298) | pub fn save_pipeline_cache(&self) { method set_name (line 319) | pub unsafe fn set_name(&self, object: T, name: &CStr) { method headless (line 334) | pub fn headless() -> Self { method drop (line 46) | fn drop(&mut self) { constant COLOR_FORMAT (line 341) | pub const COLOR_FORMAT: vk::Format = vk::Format::B8G8R8A8_SRGB; FILE: client/src/graphics/core.rs type Core (line 14) | pub struct Core { method new (line 39) | pub fn new(exts: &[*const c_char]) -> Self { method drop (line 28) | fn drop(&mut self) { function messenger_callback (line 126) | unsafe extern "system" fn messenger_callback( FILE: client/src/graphics/draw.rs type Draw (line 15) | pub struct Draw { method new (line 63) | pub fn new(gfx: Arc, cfg: Arc) -> Self { method configure (line 233) | pub fn configure(&mut self, cfg: &SimConfig) { method wait (line 250) | pub unsafe fn wait(&mut self) { method image_acquired (line 268) | pub fn image_acquired(&self) -> vk::Semaphore { method draw (line 281) | pub unsafe fn draw( method wait_idle (line 570) | pub fn wait_idle(&self) { constant PIPELINE_DEPTH (line 59) | const PIPELINE_DEPTH: u32 = 2; constant TIMESTAMPS_PER_FRAME (line 60) | const TIMESTAMPS_PER_FRAME: u32 = 3; method drop (line 581) | fn drop(&mut self) { type State (line 610) | struct State { type Uniforms (line 642) | struct Uniforms { FILE: client/src/graphics/fog.rs constant VERT (line 7) | const VERT: &[u32] = include_glsl!("shaders/fullscreen.vert"); constant FRAG (line 8) | const FRAG: &[u32] = include_glsl!("shaders/fog.frag"); type Fog (line 10) | pub struct Fog { method new (line 16) | pub fn new(gfx: &Base) -> Self { method draw (line 126) | pub unsafe fn draw( method destroy (line 146) | pub unsafe fn destroy(&mut self, device: &Device) { function density (line 156) | pub fn density(distance: f32, transmission: f32, exponent: f32) -> f32 { FILE: client/src/graphics/frustum.rs type Frustum (line 4) | pub struct Frustum { method from_vfov (line 13) | pub fn from_vfov(vfov: f32, aspect_ratio: f32) -> Self { method projection (line 28) | pub fn projection(&self, znear: f32) -> na::Projective3 { method planes (line 51) | pub fn planes(&self) -> FrustumPlanes { type FrustumPlanes (line 74) | pub struct FrustumPlanes { method contain (line 82) | pub fn contain(&self, point: &MPoint, radius: f32) -> bool { function planes_sanity (line 100) | fn planes_sanity() { FILE: client/src/graphics/gltf_mesh.rs type GlbFile (line 20) | pub struct GlbFile { method load (line 33) | async fn load(self, ctx: &LoadCtx) -> Result { type Output (line 25) | type Output = GltfScene; method load (line 27) | fn load(self, ctx: &LoadCtx) -> LoadFuture<'_, Self::Output> { type GltfScene (line 69) | pub struct GltfScene(pub Vec); method cleanup (line 72) | unsafe fn cleanup(self, gfx: &Base) { function load_node (line 81) | fn load_node<'a>( function load_mesh (line 110) | async fn load_mesh( function load_primitive (line 123) | async fn load_primitive( type Geometry (line 205) | struct Geometry { function load_geom (line 211) | async fn load_geom( function load_material (line 375) | async fn load_material( function load_solid_color (line 516) | async fn load_solid_color(ctx: &LoadCtx, rgba: [f32; 4]) -> Result Self { method toggle_gui (line 17) | pub fn toggle_gui(&mut self) { method run (line 23) | pub fn run(&self, sim: &Sim) { FILE: client/src/graphics/meshes.rs constant VERT (line 11) | const VERT: &[u32] = include_glsl!("shaders/mesh.vert"); constant FRAG (line 12) | const FRAG: &[u32] = include_glsl!("shaders/mesh.frag"); type Meshes (line 14) | pub struct Meshes { method new (line 21) | pub fn new(gfx: &Base, ds_layout: vk::DescriptorSetLayout) -> Self { method draw (line 166) | pub unsafe fn draw( method destroy (line 207) | pub unsafe fn destroy(&mut self, device: &Device) { type Vertex (line 216) | pub struct Vertex { type Mesh (line 223) | pub struct Mesh { method cleanup (line 235) | unsafe fn cleanup(mut self, gfx: &Base) { FILE: client/src/graphics/mod.rs function as_bytes (line 31) | unsafe fn as_bytes(x: &T) -> &[u8] { type VkDrawIndirectCommand (line 37) | pub struct VkDrawIndirectCommand { FILE: client/src/graphics/png_array.rs type PngArray (line 15) | pub struct PngArray { type Output (line 21) | type Output = DedicatedImage; method load (line 23) | fn load(self, handle: &LoadCtx) -> LoadFuture<'_, Self::Output> { FILE: client/src/graphics/tests.rs function init_base (line 5) | fn init_base() { FILE: client/src/graphics/voxels/mod.rs type Voxels (line 28) | pub struct Voxels { method new (line 39) | pub fn new( method prepare (line 81) | pub unsafe fn prepare( method draw (line 206) | pub unsafe fn draw( method destroy (line 233) | pub unsafe fn destroy(&mut self, device: &Device) { type Frame (line 243) | pub struct Frame { method destroy (line 251) | pub unsafe fn destroy(&mut self, device: &Device) { method new (line 259) | pub fn new(gfx: &Base, ctx: &Voxels) -> Self { constant MAX_CHUNKS (line 269) | const MAX_CHUNKS: u32 = 8192; type SurfaceState (line 271) | struct SurfaceState { FILE: client/src/graphics/voxels/surface.rs constant VERT (line 9) | const VERT: &[u32] = include_glsl!("shaders/voxels.vert"); constant FRAG (line 10) | const FRAG: &[u32] = include_glsl!("shaders/voxels.frag"); type Surface (line 12) | pub struct Surface { method new (line 23) | pub fn new(gfx: &Base, loader: &mut Loader, buffer: &DrawBuffer) -> Se... method bind (line 247) | pub unsafe fn bind( method draw (line 315) | pub unsafe fn draw( method destroy (line 333) | pub unsafe fn destroy(&mut self, device: &Device) { type Frame (line 346) | pub struct Frame { method new (line 351) | pub fn new(gfx: &Base, count: u32) -> Self { method transforms_mut (line 364) | pub fn transforms_mut(&mut self) -> &mut [na::Matrix4] { method destroy (line 370) | pub unsafe fn destroy(&mut self, device: &Device) { constant TRANSFORM_SIZE (line 378) | pub const TRANSFORM_SIZE: vk::DeviceSize = 64; FILE: client/src/graphics/voxels/surface_extraction.rs constant EXTRACT (line 11) | const EXTRACT: &[u32] = include_glsl!("shaders/surface-extraction/extrac... type SurfaceExtraction (line 14) | pub struct SurfaceExtraction { method new (line 22) | pub fn new(gfx: &Base) -> Self { method destroy (line 148) | pub unsafe fn destroy(&mut self, device: &Device) { type ScratchBuffer (line 159) | pub struct ScratchBuffer { method new (line 177) | pub fn new(gfx: &Base, ctx: &SurfaceExtraction, concurrency: u32, dime... method alloc (line 295) | pub fn alloc(&mut self) -> Option { method free (line 299) | pub fn free(&mut self, index: u32) { method storage (line 308) | pub fn storage(&mut self, index: u32) -> &mut [Material] { method extract (line 314) | pub unsafe fn extract( method destroy (line 518) | pub unsafe fn destroy(&mut self, device: &Device) { type ExtractTask (line 531) | pub struct ExtractTask { function dispatch_sizes (line 539) | fn dispatch_sizes(dimension: u32) -> na::Vector3 { type Params (line 556) | struct Params { type DrawBuffer (line 561) | pub struct DrawBuffer { method new (line 572) | pub fn new(gfx: &Base, count: u32, dimension: u32) -> Self { method face_buffer (line 620) | pub fn face_buffer(&self) -> vk::Buffer { method indirect_buffer (line 625) | pub fn indirect_buffer(&self) -> vk::Buffer { method face_offset (line 630) | pub fn face_offset(&self, chunk: u32) -> vk::DeviceSize { method indirect_offset (line 636) | pub fn indirect_offset(&self, chunk: u32) -> vk::DeviceSize { method dimension (line 642) | pub fn dimension(&self) -> u32 { method destroy (line 646) | pub unsafe fn destroy(&mut self, device: &Device) { constant INDIRECT_SIZE (line 655) | const INDIRECT_SIZE: vk::DeviceSize = 16; constant FACE_SIZE (line 657) | const FACE_SIZE: vk::DeviceSize = 8; constant WORKGROUP_SIZE (line 659) | const WORKGROUP_SIZE: [u32; 3] = [4, 4, 4]; function round_up (line 661) | fn round_up(value: vk::DeviceSize, alignment: vk::DeviceSize) -> vk::Dev... FILE: client/src/graphics/voxels/tests.rs type SurfaceExtractionTest (line 11) | struct SurfaceExtractionTest { method new (line 23) | pub fn new() -> Self { method run (line 74) | fn run(&mut self) { method drop (line 123) | fn drop(&mut self) { constant DIMENSION (line 135) | const DIMENSION: usize = 2; type Surface (line 139) | struct Surface { function surface_extraction (line 151) | fn surface_extraction() { FILE: client/src/graphics/window.rs type EarlyWindow (line 23) | pub struct EarlyWindow { method new (line 29) | pub fn new(event_loop: &ActiveEventLoop) -> Self { method required_extensions (line 43) | pub fn required_extensions(&self) -> &'static [*const c_char] { type Window (line 49) | pub struct Window { method new (line 68) | pub fn new( method supports (line 105) | pub fn supports(&self, physical: vk::PhysicalDevice, queue_family_inde... method init_rendering (line 113) | pub fn init_rendering(&mut self, gfx: Arc) { method handle_device_event (line 124) | pub fn handle_device_event(&mut self, event: DeviceEvent) { method handle_event (line 140) | pub fn handle_event(&mut self, event: WindowEvent, event_loop: &Active... method handle_net (line 293) | fn handle_net(&mut self, msg: server::Message) { method draw (line 320) | fn draw(&mut self) { function number_key_to_index (line 388) | fn number_key_to_index(key: KeyCode) -> Option { method drop (line 405) | fn drop(&mut self) { type SwapchainMgr (line 414) | struct SwapchainMgr { method new (line 421) | fn new(window: &Window, gfx: Arc, fallback_size: PhysicalSize Result<(... method queue_present (line 499) | unsafe fn queue_present(&self, index: u32) -> Result { type SwapchainState (line 513) | struct SwapchainState { method new (line 522) | unsafe fn new( method drop (line 684) | fn drop(&mut self) { type Frame (line 699) | struct Frame { type InputState (line 713) | struct InputState { method movement (line 727) | fn movement(&self) -> na::Vector3 { method roll (line 735) | fn roll(&self) -> f32 { FILE: client/src/lahar_deprecated/condition.rs type Condition (line 4) | pub struct Condition { method new (line 10) | pub fn new() -> Self { method register (line 22) | pub fn register(&mut self, cx: &mut Context, state: &mut State) { method notify (line 31) | pub fn notify(&mut self) { type State (line 43) | pub struct State(Option); FILE: client/src/lahar_deprecated/ring_alloc.rs type RingAlloc (line 4) | pub struct RingAlloc { method new (line 17) | pub fn new() -> Self { method alloc (line 28) | pub fn alloc(&mut self, capacity: usize, size: usize) -> Option<(usize... method free (line 70) | pub fn free(&mut self, id: Id) { type Id (line 80) | pub struct Id(u64); function sanity (line 87) | fn sanity() { FILE: client/src/lahar_deprecated/staging.rs type StagingBuffer (line 17) | pub struct StagingBuffer { method new (line 29) | pub fn new( method buffer (line 52) | pub fn buffer(&self) -> vk::Buffer { method capacity (line 57) | pub fn capacity(&self) -> usize { method alloc (line 65) | pub fn alloc(&self, size: usize) -> impl Future { function offset (line 114) | pub fn offset(&self) -> vk::DeviceSize { function size (line 119) | pub fn size(&self) -> vk::DeviceSize { type Target (line 125) | type Target = [u8]; method deref (line 127) | fn deref(&self) -> &[u8] { method deref_mut (line 133) | fn deref_mut(&mut self) -> &mut [u8] { method drop (line 139) | fn drop(&mut self) { FILE: client/src/lahar_deprecated/transfer.rs type TransferHandle (line 16) | pub struct TransferHandle { method run (line 21) | pub unsafe fn run( type TransferContext (line 34) | pub struct TransferContext { type ShutDown (line 45) | pub struct ShutDown; method fmt (line 48) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type Message (line 56) | struct Message { type Reactor (line 61) | pub struct Reactor { method new (line 76) | pub unsafe fn new( method poll (line 116) | pub fn poll(&mut self) -> Result<(), Disconnected> { method run_for (line 120) | pub fn run_for(&mut self, timeout: Duration) -> Result<(), Disconnecte... method queue (line 165) | fn queue(&mut self) -> Result<(), Disconnected> { method prepare (line 178) | fn prepare(&mut self, send: oneshot::Sender<()>) -> vk::CommandBuffer { method flush (line 218) | fn flush(&mut self) { method drop (line 261) | fn drop(&mut self) { type Batch (line 282) | struct Batch { type Disconnected (line 289) | pub struct Disconnected; FILE: client/src/loader.rs type Cleanup (line 25) | pub trait Cleanup { method cleanup (line 26) | unsafe fn cleanup(self, gfx: &Base); method cleanup (line 30) | unsafe fn cleanup(mut self, gfx: &Base) { type Loadable (line 37) | pub trait Loadable: Send + 'static { method load (line 39) | fn load(self, ctx: &LoadCtx) -> LoadFuture<'_, Self::Output>; type LoadFuture (line 42) | pub type LoadFuture<'a, T> = type Loader (line 45) | pub struct Loader { method new (line 55) | pub fn new(cfg: Arc, gfx: Arc) -> Self { method load (line 121) | pub fn load(&mut self, description: &'static str, x: L) -... method make_queue (line 157) | pub fn make_queue(&mut self, capacity: usize) -> WorkQueu... method drive (line 195) | pub fn drive(&mut self) { method get (line 202) | pub fn get(&self, handle: Asset) -> Option<&T> { method ctx (line 210) | pub fn ctx(&self) -> &LoadCtx { method drop (line 216) | fn drop(&mut self) { type Shared (line 223) | struct Shared { type Message (line 228) | struct Message { type LoadCtx (line 234) | pub struct LoadCtx { method load (line 245) | async fn load(&self, x: T) -> Result { method drop (line 251) | fn drop(&mut self) { type AnyTable (line 261) | trait AnyTable: Downcast { method finish (line 262) | fn finish(&mut self, index: u32, value: Box); method cleanup (line 263) | fn cleanup(self: Box, gfx: &Base); method finish (line 285) | fn finish(&mut self, index: u32, value: Box) { method cleanup (line 289) | fn cleanup(self: Box, gfx: &Base) { type Table (line 268) | struct Table { function new (line 273) | fn new() -> Self { function alloc (line 277) | fn alloc(&mut self) -> u32 { type Asset (line 299) | pub struct Asset { method clone (line 306) | fn clone(&self) -> Self { type WorkQueue (line 319) | pub struct WorkQueue { function load (line 329) | pub fn load(&mut self, x: T) -> Result<(), T> { function poll (line 345) | pub fn poll(&mut self) -> Option { method drop (line 353) | fn drop(&mut self) { FILE: client/src/local_character_controller.rs type LocalCharacterController (line 3) | pub struct LocalCharacterController { method new (line 16) | pub fn new() -> Self { method oriented_position (line 25) | pub fn oriented_position(&self) -> Position { method orientation (line 32) | pub fn orientation(&self) -> na::UnitQuaternion { method update_position (line 38) | pub fn update_position( method look_free (line 56) | pub fn look_free(&mut self, delta_yaw: f32, delta_pitch: f32, delta_ro... method look_level (line 65) | pub fn look_level(&mut self, delta_yaw: f32, delta_pitch: f32) { method align_to_gravity (line 103) | pub fn align_to_gravity(&mut self) { method horizontal_orientation (line 128) | pub fn horizontal_orientation(&mut self) -> na::UnitQuaternion { method renormalize_orientation (line 143) | pub fn renormalize_orientation(&mut self) { function assert_aligned_to_gravity (line 154) | fn assert_aligned_to_gravity(subject: &LocalCharacterController) { function assert_yaw_and_pitch_correct (line 164) | fn assert_yaw_and_pitch_correct( function look_level_and_horizontal_orientation_examples (line 177) | fn look_level_and_horizontal_orientation_examples() { function align_to_gravity_examples (line 229) | fn align_to_gravity_examples() { function update_position_example (line 285) | fn update_position_example() { FILE: client/src/main.rs function main (line 15) | fn main() { type App (line 80) | struct App { method resumed (line 89) | fn resumed(&mut self, event_loop: &ActiveEventLoop) { method suspended (line 117) | fn suspended(&mut self, _event_loop: &ActiveEventLoop) { method window_event (line 121) | fn window_event( method device_event (line 133) | fn device_event( method about_to_wait (line 145) | fn about_to_wait(&mut self, _event_loop: &ActiveEventLoop) { method exiting (line 152) | fn exiting(&mut self, _event_loop: &ActiveEventLoop) { FILE: client/src/metrics.rs function init (line 10) | pub fn init() -> Arc { type Recorder (line 18) | pub struct Recorder { method report (line 23) | pub fn report(&self) { type ArcRecorder (line 44) | struct ArcRecorder(Arc); method describe_counter (line 47) | fn describe_counter( method describe_gauge (line 56) | fn describe_gauge( method describe_histogram (line 65) | fn describe_histogram( method register_counter (line 74) | fn register_counter( method register_gauge (line 82) | fn register_gauge( method register_histogram (line 90) | fn register_histogram( type Handle (line 102) | struct Handle { method record (line 108) | fn record(&self, value: f64) { function is_ready_for_profiling (line 135) | fn is_ready_for_profiling() -> bool { function declare_ready_for_profiling (line 140) | pub fn declare_ready_for_profiling() { FILE: client/src/net.rs function spawn (line 15) | pub fn spawn(cfg: Arc) -> server::Handle { function run (line 30) | async fn run( function inner (line 56) | async fn inner( function handle_outgoing (line 99) | async fn handle_outgoing( function handle_unordered (line 112) | async fn handle_unordered(incoming: mpsc::UnboundedSender, conn... type AcceptAnyCert (line 138) | struct AcceptAnyCert; method verify_server_cert (line 141) | fn verify_server_cert( method verify_tls12_signature (line 152) | fn verify_tls12_signature( method verify_tls13_signature (line 162) | fn verify_tls13_signature( method supported_verify_schemes (line 178) | fn supported_verify_schemes(&self) -> Vec { FILE: client/src/prediction.rs type PredictedMotion (line 16) | pub struct PredictedMotion { method new (line 25) | pub fn new(initial_position: Position) -> Self { method push (line 37) | pub fn push(&mut self, cfg: &SimConfig, graph: &Graph, input: &Charact... method reconcile (line 53) | pub fn reconcile( method predicted_position (line 87) | pub fn predicted_position(&self) -> &Position { method predicted_velocity (line 91) | pub fn predicted_velocity(&self) -> &na::Vector3 { method predicted_on_ground (line 95) | pub fn predicted_on_ground(&self) -> &bool { function pos (line 106) | fn pos() -> Position { function wraparound (line 114) | fn wraparound() { FILE: client/src/sim.rs constant MATERIAL_PALETTE (line 26) | const MATERIAL_PALETTE: [Material; 10] = [ type Sim (line 40) | pub struct Sim { method new (line 85) | pub fn new( method look (line 123) | pub fn look(&mut self, delta_yaw: f32, delta_pitch: f32, delta_roll: f... method set_movement_input (line 133) | pub fn set_movement_input(&mut self, mut raw_movement_input: na::Vecto... method toggle_no_clip (line 145) | pub fn toggle_no_clip(&mut self) { method set_jump_held (line 152) | pub fn set_jump_held(&mut self, jump_held: bool) { method set_jump_pressed_true (line 157) | pub fn set_jump_pressed_true(&mut self) { method set_place_block_pressed_true (line 161) | pub fn set_place_block_pressed_true(&mut self) { method looking_at (line 166) | pub fn looking_at(&self) -> Option { method select_material (line 183) | pub fn select_material(&mut self, idx: usize) { method next_material (line 188) | pub fn next_material(&mut self) { method prev_material (line 193) | pub fn prev_material(&mut self) { method pick_material (line 199) | pub fn pick_material(&mut self) { method selected_material (line 211) | pub fn selected_material(&self) -> Material { method get_any_inventory_entity_matching_material (line 216) | pub fn get_any_inventory_entity_matching_material( method count_inventory_entities_matching_material (line 236) | pub fn count_inventory_entities_matching_material(&self, material: Mat... method set_break_block_pressed_true (line 257) | pub fn set_break_block_pressed_true(&mut self) { method cfg (line 261) | pub fn cfg(&self) -> &SimConfig { method step (line 265) | pub fn step(&mut self, dt: Duration, net: &mut server::Handle) { method handle_net (line 322) | pub fn handle_net(&mut self, msg: server::Message) { method update_position (line 346) | fn update_position(&mut self, id: EntityId, new_pos: &Position) { method update_character_state (line 362) | fn update_character_state(&mut self, id: EntityId, new_character_state... method reconcile_prediction (line 376) | fn reconcile_prediction(&mut self, latest_input: u16) { method handle_spawns (line 406) | fn handle_spawns(&mut self, msg: proto::Spawns) { method spawn (line 459) | fn spawn( method send_input (line 499) | fn send_input(&mut self, net: &mut server::Handle) { method update_view_position (line 523) | fn update_view_position(&mut self) { method view (line 561) | pub fn view(&self) -> Position { method destroy (line 571) | fn destroy(&mut self, entity: Entity) { method destroy_idless (line 581) | fn destroy_idless(&mut self, entity: Entity) { method get_local_character_block_update (line 591) | fn get_local_character_block_update(&self) -> Option { FILE: client/src/worldgen_driver.rs type WorldgenDriver (line 15) | pub struct WorldgenDriver { method new (line 24) | pub fn new(chunk_load_parallelism: usize) -> Self { method drive (line 32) | pub fn drive(&mut self, view: Position, chunk_generation_distance: f32... method add_chunk_to_graph (line 84) | pub fn add_chunk_to_graph( method apply_block_update (line 100) | pub fn apply_block_update(&mut self, graph: &mut Graph, block_update: ... method apply_voxel_data (line 110) | pub fn apply_voxel_data( type ChunkDesc (line 124) | struct ChunkDesc { type LoadedChunk (line 129) | struct LoadedChunk { type WorkQueue (line 135) | struct WorkQueue { method new (line 144) | pub fn new(chunk_load_parallelism: usize) -> Self { method load (line 174) | pub fn load(&mut self, x: ChunkDesc) -> bool { method poll (line 187) | pub fn poll(&mut self) -> Option { FILE: common/benches/bench.rs function build_graph (line 12) | fn build_graph(c: &mut Criterion) { FILE: common/src/character_controller/collision.rs function check_collision (line 14) | pub fn check_collision( type CollisionContext (line 77) | pub struct CollisionContext<'a> { type CollisionCheckingResult (line 82) | pub struct CollisionCheckingResult { method stationary (line 97) | pub fn stationary() -> CollisionCheckingResult { type Collision (line 106) | pub struct Collision { FILE: common/src/character_controller/mod.rs function run_character_step (line 22) | pub fn run_character_step( function run_standard_character_step (line 58) | fn run_standard_character_step( function run_no_clip_character_step (line 115) | fn run_no_clip_character_step( function get_ground_normal (line 128) | fn get_ground_normal( function is_ground (line 168) | fn is_ground(ctx: &CharacterControllerContext, normal: &na::UnitVector3<... function apply_ground_controls (line 174) | fn apply_ground_controls( function apply_air_controls (line 210) | fn apply_air_controls(ctx: &CharacterControllerContext, velocity: &mut n... function apply_velocity (line 216) | fn apply_velocity( function handle_collision (line 274) | fn handle_collision( type CharacterControllerContext (line 327) | struct CharacterControllerContext<'a> { FILE: common/src/character_controller/vector_bounds.rs type BoundedVectors (line 11) | pub struct BoundedVectors { method new (line 26) | pub fn new(displacement: na::Vector3, velocity: Option &na::Vector3 { method scale_displacement (line 43) | pub fn scale_displacement(&mut self, scale_factor: f32) { method velocity (line 48) | pub fn velocity(&self) -> Option<&na::Vector3> { method bounds (line 53) | pub fn bounds(&self) -> &[VectorBound] { method add_bound (line 60) | pub fn add_bound(&mut self, new_bound: VectorBound) { method add_temp_bound (line 68) | pub fn add_temp_bound(&mut self, new_bound: VectorBound) { method clear_temp_bounds (line 74) | pub fn clear_temp_bounds(&mut self) { method apply_bound (line 79) | fn apply_bound(&mut self, new_bound: &VectorBound) { type VectorBound (line 143) | pub struct VectorBound { method new (line 160) | pub fn new( method constrain_vector (line 174) | fn constrain_vector(&self, subject: &mut na::Vector3, error_margi... method check_vector (line 186) | fn check_vector(&self, subject: &na::Vector3, error_margin: f32) ... method get_self_constrained_with_bound (line 208) | fn get_self_constrained_with_bound(&self, bound: &VectorBound) -> Opti... function vector_bound_group_example (line 232) | fn vector_bound_group_example() { function constrain_vector_example (line 277) | fn constrain_vector_example() { function get_self_constrained_with_bound_example (line 299) | fn get_self_constrained_with_bound_example() { function assert_bounds_achieved (line 332) | fn assert_bounds_achieved(bounds: &BoundedVectors) { function assert_collinear (line 338) | fn assert_collinear(v0: na::Vector3, v1: na::Vector3, epsilon:... function unit_vector (line 347) | fn unit_vector(x: f32, y: f32, z: f32) -> na::UnitVector3 { FILE: common/src/chunk_collision.rs type ChunkCastHit (line 9) | pub struct ChunkCastHit { function chunk_sphere_cast (line 23) | pub fn chunk_sphere_cast( function find_face_collision (line 75) | fn find_face_collision( function find_edge_collision (line 154) | fn find_edge_collision( function find_vertex_collision (line 227) | fn find_vertex_collision( function voxel_is_solid (line 300) | fn voxel_is_solid(voxel_data: &VoxelData, layout: &ChunkLayout, coords: ... type TestSphereCastContext (line 314) | struct TestSphereCastContext { method new (line 321) | fn new(collider_radius: f32) -> Self { method set_voxel (line 337) | fn set_voxel(&mut self, coords: [u8; 3], material: Material) { function cast_with_test_ray (line 348) | fn cast_with_test_ray( function chunk_sphere_cast_wrapper (line 382) | fn chunk_sphere_cast_wrapper( function find_face_collision_wrapper (line 396) | fn find_face_collision_wrapper( function find_edge_collision_wrapper (line 419) | fn find_edge_collision_wrapper( function find_vertex_collision_wrapper (line 442) | fn find_vertex_collision_wrapper( function test_face_collision (line 463) | fn test_face_collision( function test_edge_collision (line 477) | fn test_edge_collision( function test_vertex_collision (line 491) | fn test_vertex_collision(ctx: &TestSphereCastContext, ray: &Ray, tanh_di... function assert_hits_exist_and_eq (line 502) | fn assert_hits_exist_and_eq(hit0: &Option, hit1: &Option Self { method set_voxel (line 166) | fn set_voxel(&mut self, coords: [u8; 3], material: Material) { function cast_with_test_ray (line 177) | fn cast_with_test_ray( function chunk_ray_cast_wrapper (line 211) | fn chunk_ray_cast_wrapper( function test_face_collision (line 219) | fn test_face_collision( function chunk_ray_cast_examples (line 237) | fn chunk_ray_cast_examples() { function face_collisions_one_sided (line 296) | fn face_collisions_one_sided() { FILE: common/src/chunks.rs type Chunks (line 10) | pub struct Chunks { type Output (line 15) | type Output = T; function index (line 16) | fn index(&self, v: Vertex) -> &T { function index_mut (line 22) | fn index_mut(&mut self, v: Vertex) -> &mut T { FILE: common/src/codec.rs function send (line 4) | pub async fn send(stream: &mut quinn::SendStream,... function recv (line 16) | pub async fn recv(stream: &mut quinn::RecvStream) -... function send_whole (line 35) | pub async fn send_whole( function recv_whole (line 45) | pub async fn recv_whole( FILE: common/src/collision_math.rs type Ray (line 6) | pub struct Ray { method new (line 14) | pub fn new(position: MPoint, direction: MDirection) -> Ray { method ray_point (line 23) | pub fn ray_point(&self, tanh_distance: f32) -> MVector { method solve_sphere_plane_intersection (line 29) | pub fn solve_sphere_plane_intersection( method solve_sphere_line_intersection (line 46) | pub fn solve_sphere_line_intersection( method solve_sphere_point_intersection (line 66) | pub fn solve_sphere_point_intersection( method solve_point_plane_intersection (line 89) | pub fn solve_point_plane_intersection(&self, plane_normal: &MDirection... type Output (line 103) | type Output = Ray; function mul (line 106) | fn mul(self, rhs: &Ray) -> Self::Output { function solve_quadratic (line 120) | fn solve_quadratic(constant_term: f32, half_linear_term: f32, quadratic_... function solve_sphere_plane_intersection_example (line 159) | fn solve_sphere_plane_intersection_example() { function solve_sphere_plane_intersection_direct_hit (line 178) | fn solve_sphere_plane_intersection_direct_hit() { function solve_sphere_plane_intersection_miss (line 192) | fn solve_sphere_plane_intersection_miss() { function solve_sphere_plane_intersection_margin (line 204) | fn solve_sphere_plane_intersection_margin() { function solve_sphere_line_intersection_example (line 217) | fn solve_sphere_line_intersection_example() { function solve_sphere_line_intersection_direct_hit (line 241) | fn solve_sphere_line_intersection_direct_hit() { function solve_sphere_line_intersection_miss (line 259) | fn solve_sphere_line_intersection_miss() { function solve_sphere_line_intersection_margin (line 272) | fn solve_sphere_line_intersection_margin() { function solve_sphere_line_intersection_precision (line 286) | fn solve_sphere_line_intersection_precision() { function solve_sphere_point_intersection_example (line 308) | fn solve_sphere_point_intersection_example() { function solve_sphere_point_intersection_direct_hit (line 338) | fn solve_sphere_point_intersection_direct_hit() { function solve_sphere_point_intersection_miss (line 359) | fn solve_sphere_point_intersection_miss() { function solve_sphere_point_intersection_margin (line 378) | fn solve_sphere_point_intersection_margin() { function foo (line 398) | fn foo() { function solve_quadratic_example (line 413) | fn solve_quadratic_example() { FILE: common/src/cursor.rs type Cursor (line 9) | pub struct Cursor { method from_vertex (line 18) | pub fn from_vertex(node: NodeId, vertex: Vertex) -> Self { method step (line 24) | pub fn step(self, graph: &Graph, dir: Dir) -> Option { method canonicalize (line 53) | pub fn canonicalize(self, graph: &Graph) -> Option { type Dir (line 62) | pub enum Dir { method iter (line 71) | pub fn iter() -> impl ExactSizeIterator + Clone { method vector (line 77) | pub fn vector(self) -> na::Vector3 { type Output (line 92) | type Output = Self; method neg (line 93) | fn neg(self) -> Self::Output { function neighbor_sanity (line 138) | fn neighbor_sanity() { function cursor_identities (line 149) | fn cursor_identities() { FILE: common/src/dodeca.rs type Side (line 21) | pub enum Side { constant VALUES (line 40) | pub const VALUES: [Self; 12] = [ method iter (line 55) | pub fn iter() -> impl ExactSizeIterator { method adjacent_to (line 63) | pub fn adjacent_to(self, other: Side) -> bool { method normal (line 69) | pub fn normal(self) -> &'static MDirection { method normal_f64 (line 75) | pub fn normal_f64(self) -> &'static MDirection { method reflection (line 82) | pub fn reflection(self) -> &'static MIsometry { method reflection_f64 (line 89) | pub fn reflection_f64(self) -> &'static MIsometry { method is_facing (line 95) | pub fn is_facing(self, p: &MPoint) -> bool { constant SIDE_COUNT (line 37) | pub const SIDE_COUNT: usize = Side::VALUES.len(); type Vertex (line 117) | pub enum Vertex { constant VALUES (line 144) | pub const VALUES: [Self; 20] = [ method iter (line 167) | pub fn iter() -> impl ExactSizeIterator { method from_sides (line 173) | pub fn from_sides(sides: [Side; 3]) -> Option { method canonical_sides (line 182) | pub fn canonical_sides(self) -> [Side; 3] { method adjacent_vertices (line 200) | pub fn adjacent_vertices(self) -> [Vertex; 3] { method chunk_axis_permutations (line 212) | pub fn chunk_axis_permutations(self) -> &'static [ChunkAxisPermutation... method dual_vertices (line 219) | pub fn dual_vertices( method chunk_to_node (line 240) | pub fn chunk_to_node(self) -> na::Matrix4 { method chunk_to_node_f64 (line 246) | pub fn chunk_to_node_f64(self) -> na::Matrix4 { method node_to_chunk (line 252) | pub fn node_to_chunk(self) -> na::Matrix4 { method node_to_chunk_f64 (line 258) | pub fn node_to_chunk_f64(self) -> na::Matrix4 { method dual_to_node (line 264) | pub fn dual_to_node(self) -> &'static MIsometry { method dual_to_node_f64 (line 269) | pub fn dual_to_node_f64(self) -> &'static MIsometry { method node_to_dual (line 274) | pub fn node_to_dual(self) -> &'static MIsometry { method node_to_dual_f64 (line 279) | pub fn node_to_dual_f64(self) -> &'static MIsometry { method dual_to_chunk_factor (line 286) | pub fn dual_to_chunk_factor() -> f32 { method dual_to_chunk_factor_f64 (line 293) | pub fn dual_to_chunk_factor_f64() -> f64 { method chunk_to_dual_factor (line 300) | pub fn chunk_to_dual_factor() -> f32 { method chunk_to_dual_factor_f64 (line 307) | pub fn chunk_to_dual_factor_f64() -> f64 { method chunk_bounding_sphere_center (line 313) | pub fn chunk_bounding_sphere_center(self) -> &'static MPoint { method chunk_bounding_sphere_center_f64 (line 319) | pub fn chunk_bounding_sphere_center_f64(self) -> &'static MPoint { method parity (line 324) | pub fn parity(self) -> bool { constant VERTEX_COUNT (line 141) | pub const VERTEX_COUNT: usize = Vertex::VALUES.len(); constant BOUNDING_SPHERE_RADIUS_F64 (line 329) | pub const BOUNDING_SPHERE_RADIUS_F64: f64 = 1.2264568712514068; constant BOUNDING_SPHERE_RADIUS (line 330) | pub const BOUNDING_SPHERE_RADIUS: f32 = BOUNDING_SPHERE_RADIUS_F64 as f32; constant CHUNK_BOUNDING_SPHERE_RADIUS_F64 (line 332) | pub const CHUNK_BOUNDING_SPHERE_RADIUS_F64: f64 = BOUNDING_SPHERE_RADIUS... constant CHUNK_BOUNDING_SPHERE_RADIUS (line 333) | pub const CHUNK_BOUNDING_SPHERE_RADIUS: f32 = CHUNK_BOUNDING_SPHERE_RADI... function vertex_sides_consistent (line 578) | fn vertex_sides_consistent() { function sides_to_vertex (line 595) | fn sides_to_vertex() { function adjacent_chunk_axis_permutations (line 608) | fn adjacent_chunk_axis_permutations() { function side_is_facing (line 659) | fn side_is_facing() { function radius (line 667) | fn radius() { function chunk_bounding_sphere (line 683) | fn chunk_bounding_sphere() { function chunk_to_node (line 699) | fn chunk_to_node() { function node_to_chunk (line 712) | fn node_to_chunk() { FILE: common/src/graph.rs type Graph (line 16) | pub struct Graph { method new (line 22) | pub fn new(dimension: u8) -> Self { method layout (line 32) | pub fn layout(&self) -> &ChunkLayout { method len (line 38) | pub fn len(&self) -> u32 { method contains (line 43) | pub fn contains(&self, node: NodeId) -> bool { method canonicalize (line 50) | pub fn canonicalize(&self, mut chunk: ChunkId) -> Option { method parents (line 63) | pub fn parents(&self, node: NodeId) -> impl ExactSizeIterator Option { method depth (line 90) | pub fn depth(&self, node: NodeId) -> u32 { method normalize_transform (line 96) | pub fn normalize_transform( method primary_parent_side (line 123) | pub fn primary_parent_side(&self, node: NodeId) -> Option { method tree (line 132) | pub fn tree(&self) -> TreeIter<'_> { method ensure_neighbor (line 138) | pub fn ensure_neighbor(&mut self, node: NodeId, side: Side) -> NodeId { method is_parent_side (line 145) | fn is_parent_side(&self, node: NodeId, side: Side) -> bool { method insert_child (line 152) | pub fn insert_child(&mut self, node: NodeId, side: Side) -> NodeId { method hash_of (line 178) | pub fn hash_of(&self, node: NodeId) -> u128 { method from_hash (line 183) | pub fn from_hash(&self, hash: u128) -> NodeId { method populate_parents_of_subject (line 190) | fn populate_parents_of_subject( method link_neighbors (line 229) | fn link_neighbors(&mut self, a: NodeId, b: NodeId, side: Side) { type Output (line 240) | type Output = Node; method index (line 243) | fn index(&self, node_id: NodeId) -> &Node { method index_mut (line 250) | fn index_mut(&mut self, node_id: NodeId) -> &mut Node { type NodeId (line 263) | pub struct NodeId(u128); constant ROOT (line 266) | pub const ROOT: Self = Self(0); type NodeContainer (line 269) | struct NodeContainer { method new (line 278) | fn new(primary_parent_side: Option, depth: u32) -> Self { type TreeIter (line 289) | pub struct TreeIter<'a> { function new (line 296) | fn new(graph: &'a Graph) -> Self { function next_node (line 310) | fn next_node(&mut self) -> Option<&NodeContainer> { type Item (line 326) | type Item = (Side, NodeId); method next (line 328) | fn next(&mut self) -> Option { function parent_child_relationships (line 343) | fn parent_child_relationships() { function children_have_common_neighbor (line 363) | fn children_have_common_neighbor() { function normalize_transform (line 390) | fn normalize_transform() { function rebuild_from_tree (line 406) | fn rebuild_from_tree() { function hash_consistency (line 421) | fn hash_consistency() { FILE: common/src/graph_collision.rs function sphere_cast (line 20) | pub fn sphere_cast( type OutOfBounds (line 68) | pub struct OutOfBounds; type GraphCastHit (line 72) | pub struct GraphCastHit { type VoxelLocation (line 102) | struct VoxelLocation<'a> { function new (line 114) | fn new(node_path: &[Side], vertex: Vertex, coords: [u8; 3]) -> VoxelLoca... type SphereCastExampleTestCase (line 123) | struct SphereCastExampleTestCase<'a> { function execute (line 148) | fn execute(self) { function populate_voxel (line 235) | fn populate_voxel(graph: &mut Graph, dimension: u8, voxel_location: &Vox... function get_voxel_chunk (line 258) | fn get_voxel_chunk(graph: &Graph, voxel_location: &VoxelLocation) -> Chu... function sphere_cast_examples (line 273) | fn sphere_cast_examples() { function sphere_cast_near_unloaded_chunk (line 402) | fn sphere_cast_near_unloaded_chunk() { FILE: common/src/graph_entities.rs type GraphEntities (line 7) | pub struct GraphEntities { method new (line 12) | pub fn new() -> Self { method get (line 18) | pub fn get(&self, node: NodeId) -> &[Entity] { method insert (line 22) | pub fn insert(&mut self, node: NodeId, entity: Entity) { method remove (line 28) | pub fn remove(&mut self, node: NodeId, entity: Entity) { FILE: common/src/graph_ray_casting.rs function ray_cast (line 20) | pub fn ray_cast( type OutOfBounds (line 67) | pub struct OutOfBounds; type GraphCastHit (line 71) | pub struct GraphCastHit { FILE: common/src/lib.rs method fmt (line 43) | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { method sample (line 49) | fn sample(&self, rng: &mut R) -> EntityId { type Step (line 54) | pub type Step = i32; function defer (line 56) | pub fn defer(f: F) -> Defer { type Defer (line 60) | pub struct Defer(Option); function new (line 63) | pub fn new(f: F) -> Self { function invoke (line 67) | pub fn invoke(self) {} function cancel (line 69) | pub fn cancel(mut self) { method drop (line 75) | fn drop(&mut self) { function sanitize_motion_input (line 83) | pub fn sanitize_motion_input(v: na::Vector3) -> na::Vector3 { function tracing_guard (line 90) | pub fn tracing_guard() -> tracing::dispatcher::DefaultGuard { function init_tracing (line 95) | pub fn init_tracing() { function tracing_subscriber (line 100) | fn tracing_subscriber() -> impl tracing::Subscriber { type Anonymize (line 115) | pub trait Anonymize { method anonymize (line 117) | fn anonymize(&self) -> Self::Output; type Output (line 121) | type Output = std::path::PathBuf; method anonymize (line 123) | fn anonymize(&self) -> Self::Output { FILE: common/src/margins.rs function fix_margins (line 13) | pub fn fix_margins( function all_voxels_at_face (line 84) | fn all_voxels_at_face( function initialize_margins (line 109) | pub fn initialize_margins(dimension: u8, voxels: &mut VoxelData) { function reconcile_margin_voxels (line 139) | pub fn reconcile_margin_voxels( function neighbor_axis_permutation (line 217) | fn neighbor_axis_permutation(vertex: Vertex, direction: ChunkDirection) ... type CoordsWithMargins (line 226) | struct CoordsWithMargins(pub [u8; 3]); method to_index (line 230) | pub fn to_index(self, chunk_size: u8) -> usize { method margin_coord (line 238) | pub fn margin_coord(chunk_size: u8, sign: CoordSign) -> u8 { method boundary_coord (line 246) | pub fn boundary_coord(chunk_size: u8, sign: CoordSign) -> u8 { method from (line 256) | fn from(value: Coords) -> Self { type Output (line 262) | type Output = u8; method index (line 265) | fn index(&self, coord_axis: CoordAxis) -> &u8 { method index_mut (line 272) | fn index_mut(&mut self, coord_axis: CoordAxis) -> &mut u8 { type Output (line 278) | type Output = CoordsWithMargins; method mul (line 280) | fn mul(self, rhs: CoordsWithMargins) -> Self::Output { function test_fix_margins (line 296) | fn test_fix_margins() { function test_initialize_margins (line 344) | fn test_initialize_margins() { function test_reconcile_margin_voxels (line 361) | fn test_reconcile_margin_voxels() { FILE: common/src/math.rs type MVector (line 46) | pub struct MVector(na::Vector4); function normalized_point (line 56) | pub fn normalized_point(&self) -> MPoint { function normalized_direction (line 76) | pub fn normalized_direction(&self) -> MDirection { function mip (line 93) | pub fn mip(&self, other: &impl AsRef>) -> N { function minkowski_outer_product (line 101) | fn minkowski_outer_product(self, other: &Self) -> na::Matrix4 { function cast (line 107) | pub fn cast>(self) -> MVector { function zero (line 113) | pub fn zero() -> Self { function origin (line 119) | pub fn origin() -> Self { function x (line 125) | pub fn x() -> Self { function y (line 131) | pub fn y() -> Self { function z (line 137) | pub fn z() -> Self { function w (line 143) | pub fn w() -> Self { function new (line 149) | pub fn new(x: N, y: N, z: N, w: N) -> Self { function xyz (line 158) | pub fn xyz(self) -> na::Vector3 { type Output (line 164) | type Output = N; function index (line 166) | fn index(&self, i: usize) -> &Self::Output { function index_mut (line 173) | fn index_mut(&mut self, i: usize) -> &mut Self::Output { function from (line 180) | fn from(value: na::Vector4) -> Self { function from (line 190) | fn from(value: MVector) -> na::Vector4 { type Target (line 196) | type Target = na::coordinates::XYZW; function deref (line 198) | fn deref(&self) -> &Self::Target { function deref_mut (line 205) | fn deref_mut(&mut self) -> &mut Self::Target { function as_ref (line 212) | fn as_ref(&self) -> &MVector { type Output (line 218) | type Output = MVector; function add (line 220) | fn add(self, other: MVector) -> Self::Output { type Output (line 226) | type Output = MVector; function add (line 228) | fn add(self, other: &MVector) -> Self::Output { type Output (line 234) | type Output = MVector; function add (line 236) | fn add(self, other: MVector) -> Self::Output { type Output (line 242) | type Output = MVector; function add (line 244) | fn add(self, other: &MVector) -> Self::Output { function add_assign (line 251) | fn add_assign(&mut self, other: MVector) { function add_assign (line 258) | fn add_assign(&mut self, other: &MVector) { type Output (line 264) | type Output = MVector; function sub (line 266) | fn sub(self, other: MVector) -> Self::Output { type Output (line 272) | type Output = MVector; function sub (line 274) | fn sub(self, other: &MVector) -> Self::Output { type Output (line 280) | type Output = MVector; function sub (line 282) | fn sub(self, other: MVector) -> Self::Output { type Output (line 288) | type Output = MVector; function sub (line 290) | fn sub(self, other: &MVector) -> Self::Output { function sub_assign (line 297) | fn sub_assign(&mut self, other: MVector) { function sub_assign (line 304) | fn sub_assign(&mut self, other: &MVector) { type Output (line 310) | type Output = MVector; function neg (line 312) | fn neg(self) -> Self::Output { type Output (line 318) | type Output = MVector; function neg (line 320) | fn neg(self) -> Self::Output { type Output (line 326) | type Output = MVector; function mul (line 328) | fn mul(self, rhs: N) -> Self::Output { type Output (line 334) | type Output = MVector; function mul (line 336) | fn mul(self, rhs: N) -> Self::Output { function mul_assign (line 343) | fn mul_assign(&mut self, rhs: N) { type Output (line 349) | type Output = MVector; function div (line 351) | fn div(self, rhs: N) -> Self::Output { type Output (line 357) | type Output = MVector; function div (line 359) | fn div(self, rhs: N) -> Self::Output { function div_assign (line 366) | fn div_assign(&mut self, rhs: N) { type MPoint (line 376) | pub struct MPoint(MVector); function midpoint (line 380) | pub fn midpoint(&self, other: &Self) -> MPoint { function distance (line 387) | pub fn distance(&self, other: &Self) -> N { function mip (line 400) | pub fn mip(&self, other: &impl AsRef>) -> N { function origin (line 406) | pub fn origin() -> Self { function w (line 412) | pub fn w() -> Self { function new_unchecked (line 419) | pub fn new_unchecked(x: N, y: N, z: N, w: N) -> Self { function cast (line 425) | pub fn cast>(self) -> MPoint { function from (line 432) | fn from(value: MPoint) -> MVector { function from (line 442) | fn from(value: MPoint) -> na::Vector4 { type Target (line 448) | type Target = na::coordinates::XYZW; function deref (line 450) | fn deref(&self) -> &Self::Target { function as_ref (line 458) | fn as_ref(&self) -> &MVector { type MDirection (line 468) | pub struct MDirection(MVector); function x (line 473) | pub fn x() -> Self { function y (line 479) | pub fn y() -> Self { function z (line 485) | pub fn z() -> Self { function mip (line 494) | pub fn mip(&self, other: &impl AsRef>) -> N { function new_unchecked (line 501) | pub fn new_unchecked(x: N, y: N, z: N, w: N) -> Self { function cast (line 507) | pub fn cast>(self) -> MDirection { function from (line 517) | fn from(value: MDirection) -> na::Vector4 { function from (line 524) | fn from(value: MDirection) -> MVector { function from (line 531) | fn from(value: na::UnitVector3) -> Self { type Target (line 537) | type Target = na::coordinates::XYZW; function deref (line 539) | fn deref(&self) -> &Self::Target { function as_ref (line 547) | fn as_ref(&self) -> &MVector { type Output (line 553) | type Output = MDirection; function neg (line 555) | fn neg(self) -> Self::Output { type Output (line 561) | type Output = MDirection; function neg (line 563) | fn neg(self) -> Self::Output { type MIsometry (line 581) | pub struct MIsometry(na::Matrix4); function row (line 586) | pub fn row(&self, i: usize) -> na::MatrixView1x4<'_, N, na::U1, na::U4> { function identity (line 592) | pub fn identity() -> Self { function reflection (line 598) | pub fn reflection(normal: &MDirection) -> Self { function translation (line 612) | pub fn translation(a: &MPoint, b: &MPoint) -> MIsometry { function translation_along (line 656) | pub fn translation_along(v: &na::Vector3) -> MIsometry { function from_columns_unchecked (line 683) | pub fn from_columns_unchecked( function from_column_slice_unchecked (line 699) | pub fn from_column_slice_unchecked(data: &[N]) -> Self { function inverse (line 710) | pub fn inverse(&self) -> Self { function parity (line 722) | pub fn parity(&self) -> bool { function renormalized (line 734) | pub fn renormalized(&self) -> MIsometry { function cast (line 771) | pub fn cast>(self) -> MIsometry { type Output (line 777) | type Output = N; function index (line 779) | fn index(&self, ij: (usize, usize)) -> &Self::Output { function from (line 786) | fn from(value: na::UnitQuaternion) -> Self { function from (line 793) | fn from(value: na::Rotation3) -> Self { function from (line 802) | fn from(value: MIsometry) -> na::Matrix4 { type Target (line 808) | type Target = na::coordinates::M4x4; function deref (line 810) | fn deref(&self) -> &Self::Target { function as_ref (line 817) | fn as_ref(&self) -> &[[N; 4]; 4] { type Output (line 823) | type Output = MIsometry; function mul (line 825) | fn mul(self, rhs: MIsometry) -> Self::Output { type Output (line 831) | type Output = MIsometry; function mul (line 833) | fn mul(self, rhs: &MIsometry) -> Self::Output { type Output (line 839) | type Output = MIsometry; function mul (line 841) | fn mul(self, rhs: MIsometry) -> Self::Output { type Output (line 847) | type Output = MIsometry; function mul (line 849) | fn mul(self, rhs: &MIsometry) -> Self::Output { function mul_assign (line 856) | fn mul_assign(&mut self, rhs: MIsometry) { function mul_assign (line 863) | fn mul_assign(&mut self, rhs: &MIsometry) { type Output (line 869) | type Output = MVector; function mul (line 871) | fn mul(self, rhs: MVector) -> Self::Output { type Output (line 877) | type Output = MVector; function mul (line 879) | fn mul(self, rhs: &MVector) -> Self::Output { type Output (line 885) | type Output = MVector; function mul (line 887) | fn mul(self, rhs: MVector) -> Self::Output { type Output (line 893) | type Output = MVector; function mul (line 895) | fn mul(self, rhs: &MVector) -> Self::Output { type Output (line 901) | type Output = MPoint; function mul (line 903) | fn mul(self, rhs: MPoint) -> Self::Output { type Output (line 909) | type Output = MPoint; function mul (line 911) | fn mul(self, rhs: &MPoint) -> Self::Output { type Output (line 917) | type Output = MPoint; function mul (line 919) | fn mul(self, rhs: MPoint) -> Self::Output { type Output (line 925) | type Output = MPoint; function mul (line 927) | fn mul(self, rhs: &MPoint) -> Self::Output { type Output (line 933) | type Output = MDirection; function mul (line 935) | fn mul(self, rhs: MDirection) -> Self::Output { type Output (line 941) | type Output = MDirection; function mul (line 943) | fn mul(self, rhs: &MDirection) -> Self::Output { type Output (line 949) | type Output = MDirection; function mul (line 951) | fn mul(self, rhs: MDirection) -> Self::Output { type Output (line 957) | type Output = MDirection; function mul (line 959) | fn mul(self, rhs: &MDirection) -> Self::Output { function sqr (line 966) | pub fn sqr(x: N) -> N { function project_to_plane (line 976) | pub fn project_to_plane( function rotation_between_axis (line 989) | pub fn rotation_between_axis( type PermuteXYZ (line 1000) | pub trait PermuteXYZ { method tuv_to_xyz (line 1016) | fn tuv_to_xyz(self, t_axis: usize) -> Self; method tuv_to_xyz (line 1020) | fn tuv_to_xyz(mut self, t_axis: usize) -> Self { method tuv_to_xyz (line 1028) | fn tuv_to_xyz(self, t_axis: usize) -> Self { method tuv_to_xyz (line 1034) | fn tuv_to_xyz(self, t_axis: usize) -> Self { type Epsilon (line 1045) | type Epsilon = N; function default_epsilon (line 1048) | fn default_epsilon() -> Self::Epsilon { function abs_diff_eq (line 1053) | fn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool { type Epsilon (line 1059) | type Epsilon = N; function default_epsilon (line 1062) | fn default_epsilon() -> Self::Epsilon { function abs_diff_eq (line 1067) | fn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool { function reflect_example (line 1074) | fn reflect_example() { function translate_example (line 1091) | fn translate_example() { function translate_identity (line 1110) | fn translate_identity() { function translate_equivalence (line 1124) | fn translate_equivalence() { function translate_distance (line 1137) | fn translate_distance() { function distance_example (line 1144) | fn distance_example() { function distance_commutative (line 1152) | fn distance_commutative() { function midpoint_distance (line 1159) | fn midpoint_distance() { function renormalize_translation (line 1168) | fn renormalize_translation() { function renormalize_reflection (line 1178) | fn renormalize_reflection() { function renormalize_normalizes_matrix (line 1189) | fn renormalize_normalizes_matrix() { function project_to_plane_example (line 1214) | fn project_to_plane_example() { function rotation_between_axis_example (line 1226) | fn rotation_between_axis_example() { FILE: common/src/node.rs type ChunkId (line 18) | pub struct ChunkId { method new (line 24) | pub fn new(node: NodeId, vertex: Vertex) -> Self { method partial_node_state (line 32) | pub fn partial_node_state(&self, node_id: NodeId) -> &PartialNodeState { method ensure_partial_node_state (line 38) | pub fn ensure_partial_node_state(&mut self, node_id: NodeId) { method node_state (line 53) | pub fn node_state(&self, node_id: NodeId) -> &NodeState { method ensure_node_state (line 59) | pub fn ensure_node_state(&mut self, node_id: NodeId) { method get_relative_up (line 75) | pub fn get_relative_up(&self, position: &Position) -> Option Option<... method update_block (line 182) | pub fn update_block(&mut self, block_update: &BlockUpdate) -> bool { type Output (line 215) | type Output = Chunk; method index (line 218) | fn index(&self, chunk: ChunkId) -> &Chunk { method index_mut (line 225) | fn index_mut(&mut self, chunk: ChunkId) -> &mut Chunk { type Node (line 234) | pub struct Node { type Chunk (line 246) | pub enum Chunk { type VoxelData (line 281) | pub enum VoxelData { method data_mut (line 295) | pub fn data_mut(&mut self, dimension: u8) -> &mut [Material] { method get (line 305) | pub fn get(&self, index: usize) -> Material { method is_solid (line 312) | pub fn is_solid(&self) -> bool { method deserialize (line 321) | pub fn deserialize(serialized: &SerializedVoxelData, dimension: u8) ->... method serialize (line 346) | pub fn serialize(&self, dimension: u8) -> SerializedVoxelData { type ChunkLayout (line 367) | pub struct ChunkLayout { method new (line 373) | pub fn new(dimension: u8) -> Self { method dimension (line 382) | pub fn dimension(&self) -> u8 { method dual_to_grid_factor (line 388) | pub fn dual_to_grid_factor(&self) -> f32 { method dual_to_voxel (line 395) | pub fn dual_to_voxel(&self, dual_coord: f32) -> Option { method grid_to_dual (line 408) | pub fn grid_to_dual(&self, grid_coord: u8) -> f32 { method neighboring_voxels (line 414) | pub fn neighboring_voxels(&self, grid_coord: u8) -> impl Iterator impl Iterator<... method grid_planes (line 486) | pub fn grid_planes(&self, axis: usize) -> impl Iterator + u... function voxel_aabb_coverage (line 503) | fn voxel_aabb_coverage() { FILE: common/src/peer_traverser.rs function expect_peer_nodes (line 13) | pub fn expect_peer_nodes(graph: &Graph, base_node: NodeId) -> Vec Vec Vec NodeId { method peer_to_shared (line 93) | pub fn peer_to_shared(&self) -> impl ExactSizeIterator + ... method base_to_shared (line 99) | pub fn base_to_shared(&self) -> impl ExactSizeIterator + ... type GraphRef (line 165) | trait GraphRef: AsRef { method depth (line 166) | fn depth(&self, node: NodeId) -> u32; method neighbor (line 167) | fn neighbor(&mut self, node: NodeId, side: Side) -> NodeId; method parents (line 168) | fn parents(&self, node: NodeId) -> impl ExactSizeIterator Option { method depth (line 193) | fn depth(&self, node: NodeId) -> u32 { method neighbor (line 197) | fn neighbor(&mut self, node: NodeId, side: Side) -> NodeId { method parents (line 201) | fn parents(&self, node: NodeId) -> impl ExactSizeIterator u32 { method neighbor (line 216) | fn neighbor(&mut self, node: NodeId, side: Side) -> NodeId { method parents (line 220) | fn parents(&self, node: NodeId) -> impl ExactSizeIterator { function as_ref (line 187) | fn as_ref(&self) -> &Graph { type ExpandingGraphRef (line 207) | struct ExpandingGraphRef<'a> { function as_ref (line 226) | fn as_ref(&self) -> &Graph { function node_from_path (line 238) | fn node_from_path( function peer_traverser_example (line 251) | fn peer_traverser_example() { function peer_definition_holds (line 308) | fn peer_definition_holds() { FILE: common/src/proto.rs type ClientHello (line 9) | pub struct ClientHello { type ServerHello (line 14) | pub struct ServerHello { type Position (line 20) | pub struct Position { method origin (line 26) | pub fn origin() -> Self { type StateDelta (line 35) | pub struct StateDelta { type CharacterState (line 44) | pub struct CharacterState { type Spawns (line 51) | pub struct Spawns { type Command (line 63) | pub struct Command { type CharacterInput (line 70) | pub struct CharacterInput { type BlockUpdate (line 79) | pub struct BlockUpdate { type SerializedVoxelData (line 87) | pub struct SerializedVoxelData { type Component (line 93) | pub enum Component { type FreshNode (line 101) | pub struct FreshNode { type Character (line 108) | pub struct Character { type Inventory (line 114) | pub struct Inventory { constant CONNECTION_LOST (line 121) | pub const CONNECTION_LOST: VarInt = VarInt::from_u32(0); constant STREAM_ERROR (line 122) | pub const STREAM_ERROR: VarInt = VarInt::from_u32(1); constant BAD_CLIENT_COMMAND (line 123) | pub const BAD_CLIENT_COMMAND: VarInt = VarInt::from_u32(2); constant NAME_CONFLICT (line 124) | pub const NAME_CONFLICT: VarInt = VarInt::from_u32(3); constant CLIENT_CLOSED_CONNECTION (line 125) | pub const CLIENT_CLOSED_CONNECTION: VarInt = VarInt::from_u32(4); FILE: common/src/sim_config.rs type SimConfigRaw (line 10) | pub struct SimConfigRaw { type SimConfig (line 40) | pub struct SimConfig { method from_raw (line 61) | pub fn from_raw(x: &SimConfigRaw) -> Self { function meters_to_absolute (line 82) | fn meters_to_absolute(chunk_size: u8, voxel_size: f32) -> f32 { type CharacterConfigRaw (line 94) | pub struct CharacterConfigRaw { type CharacterConfig (line 124) | pub struct CharacterConfig { method from_raw (line 152) | pub fn from_raw(x: &CharacterConfigRaw, meters_to_absolute: f32) -> Se... FILE: common/src/traversal.rs function ensure_nearby (line 15) | pub fn ensure_nearby(graph: &mut Graph, start: &Position, distance: f32) { function nearby_nodes (line 47) | pub fn nearby_nodes( type RayTraverser (line 100) | pub struct RayTraverser<'a> { function new (line 115) | pub fn new(graph: &'a Graph, position: Position, ray: &'a Ray, radius: f... function next (line 151) | pub fn next(&mut self, tanh_distance: f32) -> Option<(Option, M... function traversal_functions_example (line 238) | fn traversal_functions_example() { FILE: common/src/voxel_math.rs type CoordAxis (line 9) | pub enum CoordAxis { method iter (line 22) | pub fn iter() -> impl ExactSizeIterator { method other_axes (line 27) | pub fn other_axes(self) -> [Self; 2] { type Error (line 37) | type Error = CoordAxisOutOfBounds; method try_from (line 39) | fn try_from(value: usize) -> Result { type CoordAxisOutOfBounds (line 18) | pub struct CoordAxisOutOfBounds; type CoordSign (line 53) | pub enum CoordSign { method iter (line 60) | pub fn iter() -> impl ExactSizeIterator { type Output (line 66) | type Output = CoordSign; method mul (line 68) | fn mul(self, rhs: Self) -> Self::Output { method mul_assign (line 77) | fn mul_assign(&mut self, rhs: Self) { type Coords (line 84) | pub struct Coords(pub [u8; 3]); method to_index (line 88) | pub fn to_index(self, chunk_size: u8) -> usize { method boundary_coord (line 96) | pub fn boundary_coord(chunk_size: u8, sign: CoordSign) -> u8 { type Output (line 105) | type Output = u8; method index (line 108) | fn index(&self, coord_axis: CoordAxis) -> &u8 { method index_mut (line 115) | fn index_mut(&mut self, coord_axis: CoordAxis) -> &mut u8 { type ChunkDirection (line 122) | pub struct ChunkDirection { constant PLUS_X (line 128) | pub const PLUS_X: Self = ChunkDirection { constant PLUS_Y (line 132) | pub const PLUS_Y: Self = ChunkDirection { constant PLUS_Z (line 136) | pub const PLUS_Z: Self = ChunkDirection { constant MINUS_X (line 140) | pub const MINUS_X: Self = ChunkDirection { constant MINUS_Y (line 144) | pub const MINUS_Y: Self = ChunkDirection { constant MINUS_Z (line 148) | pub const MINUS_Z: Self = ChunkDirection { method iter (line 153) | pub fn iter() -> impl ExactSizeIterator { type ChunkAxisPermutation (line 171) | pub struct ChunkAxisPermutation { constant IDENTITY (line 176) | pub const IDENTITY: Self = ChunkAxisPermutation { method from_permutation (line 183) | pub fn from_permutation(from: [Side; 3], to: [Side; 3]) -> Self { type Output (line 200) | type Output = CoordAxis; method index (line 202) | fn index(&self, index: CoordAxis) -> &Self::Output { type Output (line 208) | type Output = Coords; method mul (line 210) | fn mul(self, rhs: Coords) -> Self::Output { type Output (line 220) | type Output = ChunkDirection; method mul (line 222) | fn mul(self, rhs: ChunkDirection) -> Self::Output { function coords_to_vector3 (line 236) | fn coords_to_vector3(coords: Coords) -> na::Vector3 { function coord_axis_to_vector3 (line 244) | fn coord_axis_to_vector3(coord_axis: CoordAxis) -> na::Vector3 { function chunk_direction_to_vector3 (line 250) | fn chunk_direction_to_vector3(chunk_direction: ChunkDirection) -> na::Ve... function chunk_axis_permutation_to_matrix3 (line 256) | fn chunk_axis_permutation_to_matrix3( function get_all_permutations (line 263) | fn get_all_permutations() -> Vec<(usize, usize, usize)> { function test_chunk_axis_permutation (line 282) | fn test_chunk_axis_permutation() { FILE: common/src/world.rs type Material (line 7) | pub enum Material { constant COUNT (line 52) | pub const COUNT: usize = 40; constant VALUES (line 54) | pub const VALUES: [Self; Self::COUNT] = [ type Error (line 110) | type Error = MaterialOutOfBounds; method try_from (line 112) | fn try_from(value: u16) -> Result { type MaterialOutOfBounds (line 99) | pub struct MaterialOutOfBounds; method fmt (line 102) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function u16_to_material_consistency_check (line 125) | fn u16_to_material_consistency_check() { FILE: common/src/worldgen/horosphere.rs constant HOROSPHERES_ENABLED (line 20) | const HOROSPHERES_ENABLED: bool = true; constant HOROSPHERE_SEED (line 23) | const HOROSPHERE_SEED: u64 = 6046133366614030452; type HorosphereNode (line 30) | pub struct HorosphereNode { method new (line 52) | pub fn new(graph: &Graph, node_id: NodeId) -> Option { method create_from_parents (line 64) | fn create_from_parents(graph: &Graph, node_id: NodeId) -> Option Option bool { method propagate (line 143) | fn propagate(&self, side: Side) -> Option { method average_with (line 157) | fn average_with(&mut self, other: HorosphereNode, other_weight: f32) { method is_fresh (line 171) | fn is_fresh(&self, node_id: NodeId) -> bool { method has_priority (line 177) | fn has_priority(&self, other: &HorosphereNode, node_id: NodeId) -> bool { method should_generate (line 186) | pub fn should_generate(&self, graph: &Graph, node_id: NodeId) -> bool { function is_horosphere_valid (line 217) | fn is_horosphere_valid(graph: &Graph, node_id: NodeId, horosphere: &Horo... constant MAX_OWNED_HOROSPHERE_W (line 225) | const MAX_OWNED_HOROSPHERE_W: f32 = 5.9047837; type HorosphereChunk (line 228) | pub struct HorosphereChunk { method new (line 235) | pub fn new(horosphere_node: &HorosphereNode, vertex: Vertex) -> Self { method generate (line 242) | pub fn generate(&self, voxels: &mut VoxelData, chunk_size: u8) { type Horosphere (line 265) | pub struct Horosphere { method contains_point (line 291) | pub fn contains_point(&self, point: &MPoint) -> bool { method is_inside_half_space (line 296) | pub fn is_inside_half_space(&self, normal: &MDirection) -> bool { method intersects_half_space (line 301) | pub fn intersects_half_space(&self, normal: &MDirection) -> bool { method renormalize (line 307) | pub fn renormalize(&mut self) { method new_random (line 313) | pub fn new_random(rng: &mut Pcg64Mcg, max_w: f32) -> Self { type Output (line 338) | type Output = Horosphere; function mul (line 340) | fn mul(self, rhs: Horosphere) -> Self::Output { type NodeBoundedRegion (line 349) | struct NodeBoundedRegion { method unbounded (line 357) | fn unbounded() -> Self { method node_and_descendents (line 362) | fn node_and_descendents(graph: &Graph, node_id: NodeId) -> Self { method intersect (line 371) | fn intersect(self, other: NodeBoundedRegion) -> NodeBoundedRegion { method neighbor (line 381) | fn neighbor(self, neighbor_side: Side) -> NodeBoundedRegion { method contains_node (line 403) | fn contains_node(self, path: impl Iterator) -> bool { method is_bounded_by (line 415) | fn is_bounded_by(self, side: Side) -> bool { method add_bound (line 420) | fn add_bound(&mut self, side: Side) { function test_max_owned_horosphere_w (line 432) | fn test_max_owned_horosphere_w() { function node_bounded_region_intersect_example (line 458) | fn node_bounded_region_intersect_example() { function node_bounded_region_neighbor_example (line 478) | fn node_bounded_region_neighbor_example() { function node_bounded_region_node_and_descendents_example (line 502) | fn node_bounded_region_node_and_descendents_example() { function node_bounded_region_contains_node_example (line 517) | fn node_bounded_region_contains_node_example() { FILE: common/src/worldgen/mod.rs type NodeStateKind (line 21) | enum NodeStateKind { constant ROOT (line 30) | const ROOT: Self = Land; method child (line 33) | fn child(self, side: Side) -> Self { type NodeStateRoad (line 45) | enum NodeStateRoad { constant ROOT (line 56) | const ROOT: Self = West; method child (line 59) | fn child(self, side: Side) -> Self { type PartialNodeState (line 72) | pub struct PartialNodeState { method new (line 79) | pub fn new(graph: &Graph, node: NodeId) -> Self { type NodeState (line 90) | pub struct NodeState { method new (line 98) | pub fn new(graph: &Graph, node: NodeId) -> Self { method up_direction (line 155) | pub fn up_direction(&self) -> MVector { type ParentInfo (line 161) | struct ParentInfo<'a> { type VoxelCoords (line 167) | struct VoxelCoords { method new (line 173) | fn new(dimension: u8) -> Self { type Item (line 182) | type Item = (u8, u8, u8); method next (line 184) | fn next(&mut self) -> Option { type ChunkParams (line 203) | pub struct ChunkParams { method new (line 224) | pub fn new(graph: &mut Graph, chunk: ChunkId) -> Self { method chunk (line 245) | pub fn chunk(&self) -> Vertex { method generate_voxels (line 250) | pub fn generate_voxels(&self) -> VoxelData { method generate_terrain (line 276) | fn generate_terrain(&self, voxels: &mut VoxelData, rng: &mut Pcg64Mcg) { method generate_road (line 356) | fn generate_road(&self, voxels: &mut VoxelData) { method generate_road_support (line 386) | fn generate_road_support(&self, voxels: &mut VoxelData) { method trussing_at (line 417) | fn trussing_at(&self, coords: na::Vector3) -> bool { method generate_trees (line 441) | fn generate_trees(&self, voxels: &mut VoxelData, rng: &mut Pcg64Mcg) { method voxel_neighbors (line 488) | fn voxel_neighbors(&self, coords: na::Vector3, voxels: &VoxelData)... method neighbor (line 499) | fn neighbor( constant TERRAIN_SMOOTHNESS (line 526) | const TERRAIN_SMOOTHNESS: f32 = 10.0; type NeighborData (line 528) | struct NeighborData { type EnviroFactors (line 534) | struct EnviroFactors { method varied_from (line 541) | fn varied_from(parent: Self, spice: u64) -> Self { method continue_from (line 553) | fn continue_from(a: Self, b: Self, ab: Self) -> Self { function from (line 563) | fn from(envirofactors: EnviroFactors) -> Self { type ChunkIncidentEnviroFactors (line 572) | struct ChunkIncidentEnviroFactors { function chunk_incident_enviro_factors (line 583) | fn chunk_incident_enviro_factors(graph: &mut Graph, chunk: ChunkId) -> C... function trilerp (line 610) | fn trilerp( function serp (line 632) | fn serp(v0: N, v1: N, t: N, threshold: N) -> N { function terracing_diff (line 648) | fn terracing_diff(elev_raw: f32, block: f32, scale: f32, strength: f32, ... function voxel_center (line 656) | fn voxel_center(dimension: u8, voxel: na::Vector3) -> na::Vector3) -> usize { function hash (line 668) | fn hash(a: u64, b: u64) -> u64 { constant CHUNK_SIZE (line 680) | const CHUNK_SIZE: u8 = 12; function chunk_indexing_origin (line 683) | fn chunk_indexing_origin() { function chunk_indexing_absolute (line 692) | fn chunk_indexing_absolute() { function check_chunk_incident_max_elevations (line 738) | fn check_chunk_incident_max_elevations() { function check_trilerp (line 781) | fn check_trilerp() { function check_voxel_iterable (line 875) | fn check_voxel_iterable() { FILE: common/src/worldgen/plane.rs type Plane (line 12) | pub struct Plane { method from (line 19) | fn from(side: Side) -> Self { method from (line 25) | fn from(normal: MDirection) -> Self { method from (line 35) | fn from(x: na::UnitVector3) -> Self { method scaled_normal (line 72) | pub fn scaled_normal(&self) -> &MVector { method distance_to (line 77) | pub fn distance_to(&self, point: &MPoint) -> f32 { method distance_to_chunk (line 87) | pub fn distance_to_chunk(&self, chunk: Vertex, coord: &na::Vector3 Self { type Output (line 41) | type Output = Self; method neg (line 42) | fn neg(self) -> Self { type Output (line 51) | type Output = Plane; method mul (line 53) | fn mul(self, rhs: Plane) -> Plane { type Output (line 59) | type Output = Plane; function mul (line 60) | fn mul(self, rhs: Plane) -> Plane { function distance_sanity (line 119) | fn distance_sanity() { function check_surface_flipped (line 140) | fn check_surface_flipped() { function check_surface_on_plane (line 150) | fn check_surface_on_plane() { function check_elevation_consistency (line 162) | fn check_elevation_consistency() { function large_distances (line 199) | fn large_distances() { FILE: common/src/worldgen/terraingen.rs constant GENERAL_HIGH (line 3) | const GENERAL_HIGH: [VoronoiInfo; 113] = [ constant GENERAL_MED (line 119) | const GENERAL_MED: [VoronoiInfo; 113] = [ constant GENERAL_LOW (line 235) | const GENERAL_LOW: [VoronoiInfo; 113] = [ constant GENERAL_DEEP (line 351) | const GENERAL_DEEP: [VoronoiInfo; 113] = [ constant SURFACE_HIGH (line 467) | const SURFACE_HIGH: [VoronoiInfo; 113] = [ constant SURFACE_MED (line 583) | const SURFACE_MED: [VoronoiInfo; 113] = [ constant SURFACE_LOW (line 699) | const SURFACE_LOW: [VoronoiInfo; 113] = [ constant SURFACE_DEEP (line 815) | const SURFACE_DEEP: [VoronoiInfo; 113] = [ constant TERRAIN_SURFACE_THICKNESS (line 931) | const TERRAIN_SURFACE_THICKNESS: f32 = 0.2; type VoronoiInfo (line 933) | pub struct VoronoiInfo { method new (line 938) | pub const fn new(mat: Material, rain: f32, temp: f32) -> VoronoiInfo { method terraingen_voronoi (line 955) | pub fn terraingen_voronoi(elev: f32, rain: f32, temp: f32, dist: f32) ... FILE: save/benches/bench.rs function save (line 8) | fn save(c: &mut Criterion) { FILE: save/gen-protos/src/main.rs function main (line 3) | fn main() -> Result<()> { FILE: save/src/lib.rs type Save (line 11) | pub struct Save { method open (line 17) | pub fn open(path: &Path, default_chunk_size: u8) -> Result &Meta { method read (line 51) | pub fn read(&self) -> Result { method write (line 62) | pub fn write(&self) -> Result { function init_meta_table (line 68) | fn init_meta_table(db: &Database, value: &Meta) -> Result<(), DbError> { function dctx (line 85) | fn dctx() -> zstd::DCtx<'static> { type Reader (line 92) | pub struct Reader { method get_voxel_node (line 101) | pub fn get_voxel_node(&mut self, node_id: u128) -> Result Result Result Result, GetError> { method get_all_entity_node_ids (line 144) | pub fn get_all_entity_node_ids(&self) -> Result, GetError> { function decompress (line 152) | fn decompress( type WriterGuard (line 174) | pub struct WriterGuard { method get (line 179) | pub fn get(&mut self) -> Result, DbError> { method commit (line 199) | pub fn commit(self) -> Result<(), DbError> { function cctx (line 205) | fn cctx() -> zstd::CCtx<'static> { type Writer (line 214) | pub struct Writer<'guard> { function put_voxel_node (line 224) | pub fn put_voxel_node(&mut self, node_id: u128, state: &VoxelNode) -> Re... function put_entity_node (line 230) | pub fn put_entity_node(&mut self, node_id: u128, state: &EntityNode) -> ... function put_character (line 236) | pub fn put_character(&mut self, name: &str, character: &Character) -> Re... function prepare (line 249) | fn prepare( constant META_TABLE (line 264) | const META_TABLE: TableDefinition<&[u8], &[u8]> = TableDefinition::new("... constant VOXEL_NODE_TABLE (line 265) | const VOXEL_NODE_TABLE: TableDefinition = TableDefinition::... constant ENTITY_NODE_TABLE (line 266) | const ENTITY_NODE_TABLE: TableDefinition = TableDefinition:... constant CHARACTERS_BY_NAME_TABLE (line 267) | const CHARACTERS_BY_NAME_TABLE: TableDefinition<&str, &[u8]> = type OpenError (line 271) | pub enum OpenError { method from (line 283) | fn from(x: redb::Error) -> Self { type GetError (line 289) | pub enum GetError { method from (line 299) | fn from(x: redb::Error) -> Self { method from (line 305) | fn from(x: redb::StorageError) -> Self { type DbError (line 312) | pub struct DbError(Box); method from (line 315) | fn from(x: redb::Error) -> Self { method from (line 321) | fn from(x: redb::StorageError) -> Self { method from (line 327) | fn from(x: redb::CommitError) -> Self { method from (line 333) | fn from(x: redb::TableError) -> Self { FILE: save/src/protos.rs type Meta (line 3) | pub struct Meta { type Character (line 9) | pub struct Character { type EntityNode (line 15) | pub struct EntityNode { type VoxelNode (line 22) | pub struct VoxelNode { type Chunk (line 28) | pub struct Chunk { type ComponentType (line 38) | pub enum ComponentType { method as_str_name (line 53) | pub fn as_str_name(&self) -> &'static str { method from_str_name (line 62) | pub fn from_str_name(value: &str) -> ::core::option::Option { FILE: save/tests/heavy.rs function write (line 8) | fn write() { FILE: save/tests/tests.rs function persist_meta (line 6) | fn persist_meta() { function persist_node (line 16) | fn persist_node() { function persist_character (line 39) | fn persist_character() { FILE: server/src/config.rs type Config (line 14) | pub struct Config { method load (line 25) | pub fn load(path: &Path) -> Result { method default (line 35) | fn default() -> Self { FILE: server/src/input_queue.rs type InputQueue (line 23) | pub struct InputQueue { method new (line 30) | pub fn new() -> Self { method push (line 37) | pub fn push(&mut self, input: Command, now: Instant) { method pop (line 49) | pub fn pop(&mut self, now: Instant, delay: Duration) -> Option { FILE: server/src/lib.rs type NetParams (line 25) | pub struct NetParams { type Server (line 31) | pub struct Server { method new (line 45) | pub fn new(net: Option, mut cfg: SimConfig, save: Save) -> ... method connect (line 81) | pub fn connect(&mut self, hello: proto::ClientHello, mut backend: Hand... method run (line 135) | pub async fn run(mut self) { method handle_incoming (line 148) | fn handle_incoming(&self) -> mpsc::Receiver { method on_step (line 172) | fn on_step(&mut self) { method on_client_event (line 227) | fn on_client_event(&mut self, client_id: ClientId, event: ClientEvent) { method cleanup_client (line 250) | fn cleanup_client(&mut self, client: ClientId) { method on_connect (line 256) | fn on_connect(&mut self, connection: quinn::Connection) { method on_client (line 273) | fn on_client(&mut self, connection: quinn::Connection, hello: proto::C... constant MAX_CLIENT_MSG_SIZE (line 318) | const MAX_CLIENT_MSG_SIZE: usize = 1 << 16; function drive_recv (line 320) | async fn drive_recv( function drive_send (line 352) | async fn drive_send( function drive_send_unordered (line 373) | async fn drive_send_unordered( type Client (line 388) | struct Client { type ClientEvent (line 398) | enum ClientEvent { type Unordered (line 403) | type Unordered = proto::StateDelta; type Ordered (line 405) | type Ordered = Arc; type Handle (line 408) | pub struct Handle { method loopback (line 414) | pub fn loopback() -> (Self, HandleBackend) { type HandleBackend (line 430) | pub struct HandleBackend { type Message (line 436) | pub enum Message { FILE: server/src/main.rs function main (line 15) | fn main() { function run (line 26) | pub async fn run() -> Result<()> { FILE: server/src/postcard_helpers.rs function serialize (line 6) | pub fn serialize(value: &T, vec: &mut Vec<... type ExtendVec (line 10) | struct ExtendVec<'a>(&'a mut Vec); type Output (line 13) | type Output = (); function try_push (line 15) | fn try_push(&mut self, data: u8) -> Result<()> { function finalize (line 20) | fn finalize(self) -> Result<()> { function try_extend (line 24) | fn try_extend(&mut self, data: &[u8]) -> Result<()> { type SaveEntity (line 31) | pub struct SaveEntity { FILE: server/src/sim.rs type Sim (line 32) | pub struct Sim { method new (line 53) | pub fn new(cfg: Arc, save: &save::Save) -> Self { method save (line 81) | pub fn save(&mut self, save: &mut save::Save) -> Result<(), save::DbEr... method load_all_entities (line 121) | fn load_all_entities(&mut self, save: &save::Save) -> anyhow::Result<(... method load_entity (line 136) | fn load_entity( method load_component (line 161) | fn load_component( method load_all_voxels (line 236) | fn load_all_voxels(&mut self, save: &save::Save) -> anyhow::Result<()> { method snapshot_node (line 259) | fn snapshot_node(&self, node: NodeId) -> save::EntityNode { method snapshot_voxel_node (line 315) | fn snapshot_voxel_node(&self, node: NodeId) -> save::VoxelNode { method activate_or_spawn_character (line 335) | pub fn activate_or_spawn_character( method deactivate_character (line 384) | pub fn deactivate_character(&mut self, entity: Entity) { method spawn (line 409) | fn spawn(&mut self, bundle: impl DynamicBundle) -> (EntityId, Entity) { method command (line 434) | pub fn command( method destroy (line 446) | pub fn destroy(&mut self, entity: Entity) { method snapshot (line 459) | pub fn snapshot(&self) -> Spawns { method step (line 498) | pub fn step(&mut self) -> (Option, StateDelta) { method update_entity_node_ids (line 599) | fn update_entity_node_ids(&mut self) { method new_id (line 643) | fn new_id(&mut self) -> EntityId { method add_to_inventory (line 653) | fn add_to_inventory(&mut self, inventory_id: EntityId, entity_id: Enti... method remove_from_inventory (line 666) | fn remove_from_inventory(&mut self, inventory_id: EntityId, entity_id:... method attempt_block_update (line 683) | fn attempt_block_update(&mut self, subject: EntityId, block_update: Bl... function dump_entity (line 732) | fn dump_entity(world: &hecs::World, entity: Entity) -> Vec { type InactiveCharacter (line 754) | struct InactiveCharacter(pub Character); type AccumulatedChanges (line 758) | struct AccumulatedChanges { method is_empty (line 781) | fn is_empty(&self) -> bool { method into_spawns (line 791) | fn into_spawns(self, step: Step, world: &hecs::World, graph: &Graph) -...