Module game_logic::model::world_object [−][src]
Structs
+Module world_object
Module game_logic::model::world_object [−][src]
Structs
Defines a collider in object space.
Definition of an object. Only one of these should exist per object, and they will be GPU instanced.
Used to reference an object in the world definition
diff --git a/rustdoc/game_logic/model/world_object/struct.WorldObjectRef.html b/rustdoc/game_logic/model/world_object/struct.WorldObjectRef.html index 20387d93..7d8d0bfd 100644 --- a/rustdoc/game_logic/model/world_object/struct.WorldObjectRef.html +++ b/rustdoc/game_logic/model/world_object/struct.WorldObjectRef.html @@ -1,16 +1,18 @@Struct game_logic::model::world_object::WorldObjectRef [−][src]
pub struct WorldObjectRef {
+ Struct WorldObjectRef
Struct game_logic::model::world_object::WorldObjectRef [−][src]
pub struct WorldObjectRef {
pub kind: String,
pub name: String,
- pub position: Vector2<f32>,
- pub rotation_radians: f32,
+ pub variant: Option<String>,
+ position: Vector2<f32>,
+ pub rotation_degrees: f32,
}
Expand description
Used to reference an object in the world definition
Fields
kind: String
Object type
name: String
Object name
+variant: Option<String>
Variant name
position: Vector2<f32>
Object position (tile-space not pixel-space). 1,1 being up and to the right
-rotation_radians: f32
Object rotation, positive is clockwise
-Trait Implementations
Returns a copy of the value. Read more
+rotation_degrees: f32
Object rotation, positive is clockwise
+Implementations
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
diff --git a/rustdoc/game_logic/model/world_object_package/index.html b/rustdoc/game_logic/model/world_object_package/index.html
index 4e641241..62c42fd6 100644
--- a/rustdoc/game_logic/model/world_object_package/index.html
+++ b/rustdoc/game_logic/model/world_object_package/index.html
@@ -1,6 +1,6 @@
game_logic::model::world_object_package - Rust
Module game_logic::model::world_object_package [−][src]
Structs
+ Module world_object_package
Module game_logic::model::world_object_package [−][src]
Structs
A simply interface for the madness
Enums
diff --git a/rustdoc/game_logic/model/world_object_package/struct.WorldObjectPackage.html b/rustdoc/game_logic/model/world_object_package/struct.WorldObjectPackage.html
index 8f6a8a10..b877fbfe 100644
--- a/rustdoc/game_logic/model/world_object_package/struct.WorldObjectPackage.html
+++ b/rustdoc/game_logic/model/world_object_package/struct.WorldObjectPackage.html
@@ -16,7 +16,7 @@
bottom_animated_textures: HashMap<String, AnimatedTexture>
Bottom animated textures
top_animated_textures: HashMap<String, AnimatedTexture>
Top animated textures
world_space_colliders: Vec<ObjectCollider>
A list of colliders in the world. We pre-solve these to make comput happy :)
-Implementations
pub fn load(
raylib_handle: &mut RaylibHandle,
thread: &RaylibThread,
map_objects_file_path: &str
) -> Result<Self, WorldObjectPackageLoadError>
Trait Implementations
Formats the value using the given formatter. Read more
+Implementations
pub fn load(
raylib_handle: &mut RaylibHandle,
thread: &RaylibThread,
map_objects_file_path: &str
) -> Result<Self, WorldObjectPackageLoadError>
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for WorldObjectPackage
impl Send for WorldObjectPackage
impl Sync for WorldObjectPackage
impl Unpin for WorldObjectPackage
impl UnwindSafe for WorldObjectPackage
Blanket Implementations
Mutably borrows from an owned value. Read more
diff --git a/rustdoc/game_logic/rendering/utilities/map_render/index.html b/rustdoc/game_logic/rendering/utilities/map_render/index.html
index acca4ab3..619695cb 100644
--- a/rustdoc/game_logic/rendering/utilities/map_render/index.html
+++ b/rustdoc/game_logic/rendering/utilities/map_render/index.html
@@ -1,6 +1,6 @@
game_logic::rendering::utilities::map_render - Rust
Module game_logic::rendering::utilities::map_render [−][src]
Structs
+ Module map_render
Module game_logic::rendering::utilities::map_render [−][src]
Structs
Enums
Possible errors generated by the map loading process
diff --git a/rustdoc/game_logic/rendering/utilities/map_render/struct.MapRenderer.html b/rustdoc/game_logic/rendering/utilities/map_render/struct.MapRenderer.html
index 2537132d..7abff292 100644
--- a/rustdoc/game_logic/rendering/utilities/map_render/struct.MapRenderer.html
+++ b/rustdoc/game_logic/rendering/utilities/map_render/struct.MapRenderer.html
@@ -4,9 +4,9 @@
map: Map,
tile_textures: HashMap<PathBuf, Texture2D>,
world_objects: WorldObjectPackage,
-}Fields
map: Map
tile_textures: HashMap<PathBuf, Texture2D>
world_objects: WorldObjectPackage
Implementations
Construct a new MapRenderer.
+}Fields
map: Map
tile_textures: HashMap<PathBuf, Texture2D>
world_objects: WorldObjectPackage
Implementations
Construct a new MapRenderer.
Gets the map size
-pub fn render_map(
&mut self,
draw_handle: &mut RaylibMode2D<'_, RaylibDrawHandle<'_>>,
camera: &Camera2D,
show_debug_grid: bool,
player_position: Vector2<f32>
)
Get the list of world colliders
+pub fn render_map(
&mut self,
draw_handle: &mut RaylibMode2D<'_, RaylibDrawHandle<'_>>,
camera: &Camera2D,
show_debug_grid: bool,
player_position: Vector2<f32>
)
Get the list of world colliders
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for MapRenderer
impl Send for MapRenderer
impl Sync for MapRenderer
impl Unpin for MapRenderer
impl UnwindSafe for MapRenderer
Blanket Implementations
Immutably borrows from an owned value. Read more
diff --git a/rustdoc/search-index.js b/rustdoc/search-index.js
index 195a1cce..deb38a07 100644
--- a/rustdoc/search-index.js
+++ b/rustdoc/search-index.js
@@ -1,4 +1,4 @@
var searchIndex = JSON.parse('{\
-"game_logic":{"doc":"This file is the main entry point for the game logic.","t":[0,0,0,5,0,0,0,0,0,0,0,0,0,0,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,4,13,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,12,12,3,11,11,11,11,11,11,12,11,11,11,11,5,12,11,11,11,11,11,11,13,13,13,4,11,11,11,11,11,11,11,11,11,5,5,5,11,11,11,11,11,11,11,12,12,12,5,5,17,6,3,11,11,11,11,11,11,12,11,0,11,11,12,0,12,11,11,11,11,12,11,13,13,13,4,3,13,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,13,4,13,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,0,0,0,3,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,3,6,3,3,3,6,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,13,13,3,4,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,12,12,0,0,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,3,3,12,12,12,12,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,13,13,13,13,13,13,4,13,4,4,13,4,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,5,0,0,3,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,3,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,0,0,3,4,3,3,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,13,4,3,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,3,12,11,11,11,11,11,11,11,0,12,12,11,0,11,12,12,12,0,11,11,11,11,11,13,13,13,13,3,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,11,11,12,11,11,11,11,11,12,12,11,11,12,11,12,11,11,11,11,11,11,11,11,12,12,3,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,12],"n":["asset_manager","coord_convert","discord","entrypoint","global_resource_package","model","persistent","project_constants","rendering","scenes","datastore","json","sprite_types","texture","InternalData","borrow","borrow_mut","from","from_subset","get","get","into","is_in_subset","iter","iter","to_subset","to_subset_unchecked","try_from","try_into","type_id","AssetNotFound","InternalJsonLoadError","JsonError","borrow","borrow_mut","fmt","fmt","from","from","from_subset","into","is_in_subset","load_json_structure","source","to_string","to_subset","to_subset_unchecked","try_from","try_into","type_id","0","0","KnownSpriteType","borrow","borrow_mut","clone","clone_into","deserialize","fmt","friendly_name","from","from_subset","into","is_in_subset","load_known_sprite_types","short_name","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","AssetNotFound","Generic","Io","ResourceLoadError","borrow","borrow_mut","fmt","fmt","from","from","from_subset","into","is_in_subset","load_music_from_internal_data","load_sound_from_internal_data","load_texture_from_internal_data","source","to_string","to_subset","to_subset_unchecked","try_from","try_into","type_id","0","0","0","game_to_tiled","tiled_to_game","DISCORD_CONNECT_TIMEOUT_SECONDS","DiscordChannel","DiscordRpcThreadHandle","begin_thread_non_blocking","borrow","borrow_mut","from","from_subset","get_channel","internal_client","into","ipc","is_in_subset","new","rx_chan","signal","state","to_subset","to_subset_unchecked","try_from","try_into","tx_chan","type_id","AwaitConnection","Connection","ConnectionTimeout","DiscordError","DiscordRpcClient","Sdk","borrow","borrow","borrow_mut","borrow_mut","clear_rich_presence","discord","fmt","fmt","from","from","from","from","from","from_subset","from_subset","into","into","is_in_subset","is_in_subset","new","set_rich_presence","source","to_string","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","user","wheel","0","0","0","BeginGameTimer","ChangeAssets","ChangeDetails","ClearGameTimeRemaining","DiscordRpcSignal","EndGameTimer","SetGameTimeRemainingTimestamp","StatefulDiscordRpcSignalHandler","apply","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","fmt","fmt","from","from","from_subset","from_subset","game_assets","game_details","game_end_timer","game_party_status","game_start_timer","into","into","is_in_subset","is_in_subset","to_owned","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","0","0","details","party_status","GlobalResources","borrow","borrow_mut","button_click_sound","fmt","from","from_subset","into","is_in_subset","load","to_subset","to_subset_unchecked","try_from","try_into","type_id","player","world_object","world_object_package","Player","borrow","borrow_mut","clone","clone_into","fmt","from","from_subset","into","is_in_subset","new","position","size","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","velocity","ObjectCollider","ObjectSpaceObjectCollider","PossiblyAnimatedTexture","WorldObject","WorldObjectRef","WorldSpaceObjectCollider","animated","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bottom_texture","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","deserialize","file_path","fmt","fmt","fmt","fmt","footprint","friction","from","from","from","from","from_subset","from_subset","from_subset","from_subset","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","kind","name","name","physics_colliders","position","position","rotation_radians","size","temperature","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","top_texture","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","visualization_radius","JsonError","ResourceError","WorldObjectPackage","WorldObjectPackageLoadError","borrow","borrow","borrow_mut","borrow_mut","bottom_animated_textures","bottom_static_textures","fmt","fmt","fmt","from","from","from","from","from_subset","from_subset","into","into","is_in_subset","is_in_subset","load","object_definitions","object_references","source","to_string","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","top_animated_textures","top_static_textures","try_from","try_from","try_into","try_into","type_id","type_id","world_space_colliders","0","0","save_state","settings","GameSaveState","borrow","borrow_mut","clone","clone_into","default","deserialize","fmt","from","from_subset","get_save_location","into","is_in_subset","load_or_create","save","serialize","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","PersistentGameSettings","borrow","borrow_mut","clone","clone_into","default","deserialize","fmt","from","from_subset","get_save_location","into","is_in_subset","load_or_create","save","serialize","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","volume","DiscordConstants","PlayerConstants","ProjectConstants","acceleration","app_id","artwork","base_window_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deceleration","deserialize","deserialize","deserialize","discord","fmt","fmt","fmt","from","from","from","from_subset","from_subset","from_subset","game_name","into","into","into","is_in_subset","is_in_subset","is_in_subset","max_velocity","player","start_size","strings","target_fps","tile_size","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","core_renderer_sm","event_loop","screens","utilities","FromFinishLoading","FromFinishPreload","FromForceSmFailure","FromInit","FromInit","Loading","LoadingState","Preload","PreloadState","RenderBackendStates","RenderGame","RenderGameState","SmFailed","SmFailedState","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","eq","eq","eq","eq","eq","finish_loading","finish_preload","fmt","fmt","fmt","fmt","fmt","force_sm_failure","force_sm_failure","force_sm_failure","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","from_subset","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","ne","preload","sm_failed","to_owned","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","0","0","0","0","handle_graphics_blocking","loading_screen","sm_failure_screen","LoadingScreen","borrow","borrow_mut","from","from_subset","has_updated_discord_status","into","is_in_subset","new","render","resources","to_subset","to_subset_unchecked","try_from","try_into","type_id","SmFailureScreen","borrow","borrow_mut","fmt","from","from_subset","has_updated_discord_status","into","is_in_subset","new","render","to_subset","to_subset_unchecked","try_from","try_into","type_id","anim_texture","map_render","AnimatedTexture","AnimatedTextureLoadError","AnimatedTextureMetadata","FrameTextureDescriptor","InvalidSpriteType","KnownSpriteTypesLoadError","MetadataLoadError","TextureLoadError","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","fmt","fmt","fmt","fmt","fmt","fps","frames","from","from","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","get_current_frame_index","height","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","new","render_automatic","render_frame_by_index","reset_animation","sheet_height","sheet_width","size","source","start_time","texture","texture_metadata","texture_source_rects","to_owned","to_owned","to_string","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","width","x","y","0","0","0","0","AssetNotFound","MapRenderError","MapRenderer","ProgramDataTileCache","TiledError","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","from","from","from","from","from_subset","from_subset","from_subset","get_map_size","get_or_try_insert_tileset_with","get_tileset","get_world_colliders","internal_loader","into","into","into","is_in_subset","is_in_subset","is_in_subset","map","new","new","render_map","sample_friction_at","sample_temperature_at","source","tile_textures","tilesets","to_string","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","world_objects","0","0","SceneRenderDelegate","audio_subsystem","borrow","borrow_mut","drop","from","from_subset","into","is_in_subset","main_menu","menu_control_signal","needs_exit","on_game_start","player_interaction","process_ingame_frame","scene_main_menu","scene_playable","scene_test_fox","test_fox","to_subset","to_subset_unchecked","try_from","try_into","type_id","DoCredits","DoLeaderboard","DoMainMenu","DoOptions","MainMenu","MenuStateSignal","QuitGame","StartGame","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","from","from","from_subset","from_subset","has_updated_discord_rpc","into","into","is_in_subset","is_in_subset","new","render_credits_frame","render_leaderboard_frame","render_main_menu_frame","render_options_frame","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","volume_percentage","PlayableScene","borrow","borrow_mut","camera","draw_ui","draw_world","fmt","from","from_subset","game_soundtrack","has_updated_discord_rpc","into","is_in_subset","last_update","new","player","render_frame","to_subset","to_subset_unchecked","try_from","try_into","type_id","update_camera","update_physics","world_colliders","world_map","TestFoxScene","borrow","borrow_mut","camera","fmt","fox_animation","from","from_subset","into","is_in_subset","new","render_frame","to_subset","to_subset_unchecked","try_from","try_into","type_id","world_map"],"q":["game_logic","","","","","","","","","","game_logic::asset_manager","","","","game_logic::asset_manager::datastore","","","","","","","","","","","","","","","","game_logic::asset_manager::json","","","","","","","","","","","","","","","","","","","","game_logic::asset_manager::json::InternalJsonLoadError","","game_logic::asset_manager::sprite_types","","","","","","","","","","","","","","","","","","","","game_logic::asset_manager::texture","","","","","","","","","","","","","","","","","","","","","","","game_logic::asset_manager::texture::ResourceLoadError","","","game_logic::coord_convert","","game_logic::discord","","","","","","","","","","","","","","","","","","","","","","","game_logic::discord::ipc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::discord::ipc::DiscordError","","","game_logic::discord::signal","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::discord::signal::DiscordRpcSignal","","","","game_logic::global_resource_package","","","","","","","","","","","","","","","game_logic::model","","","game_logic::model::player","","","","","","","","","","","","","","","","","","","","game_logic::model::world_object","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::model::world_object_package","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::model::world_object_package::WorldObjectPackageLoadError","","game_logic::persistent","","game_logic::persistent::save_state","","","","","","","","","","","","","","","","","","","","","","game_logic::persistent::settings","","","","","","","","","","","","","","","","","","","","","","","game_logic::project_constants","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::rendering","","","","game_logic::rendering::core_renderer_sm","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::rendering::core_renderer_sm::RenderBackendStates","","","","game_logic::rendering::event_loop","game_logic::rendering::screens","","game_logic::rendering::screens::loading_screen","","","","","","","","","","","","","","","","game_logic::rendering::screens::sm_failure_screen","","","","","","","","","","","","","","","","game_logic::rendering::utilities","","game_logic::rendering::utilities::anim_texture","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError","","","","game_logic::rendering::utilities::map_render","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::rendering::utilities::map_render::MapRenderError","","game_logic::scenes","","","","","","","","","","","","","","","","","","","","","","","","game_logic::scenes::main_menu","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::scenes::player_interaction","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::scenes::test_fox","","","","","","","","","","","","","","","","",""],"d":["Embedded asset management.","","Interfacing with Discord","This is the game logic entrypoint. Despite being async, …","Global resources","","This module contains the datastructure backing persistent …","The rust side of the dist/project-constants.json
file","This module contains lower level rendering logic.","The render code for various scenes","Access to the game’s embedded files.","Utilities for loading JSON from the embedded filesystem.","","Code for loading textures from RAM to VRAM","This structure is dynamically packed with the contents of …","","","","","Get an embedded file and its metadata.","","","","","Iterates over the file paths in the folder.","","","","","","The JSON data was not found in the internal data store","Possible errors generated when deserializing JSON data …","An error occurred with the JSON data itself","","","","","","","","","","Load an embedded JSON file","","","","","","","","","","The structure backing the dist/known-sprite-types.json
file","","","","","","","Sprite long name","","","","","Loads a list of all known sprite types from the …","Sprite short name (used in filenames)","","","","","","","","","","","","","","","","","","","","","","Loads an embedded texture into VRAM.","","","","","","","","","","","Converts from the game coordinate system to the tiled …","Converts from the tiled coordinate system to the game …","How long to wait before we give up on connecting to …","A cross-thread communication channel for sending Discord …","","Run the inner communication task in an async context","","","","","Get access to the inter-thread channel for communicating …","","","Discord Rich Presence utilities","","Construct a new DiscordRpcThreadHandle
","","This file contains a system for signaling Discord RPC …","","","","","","","","","","","","The client wrapper for Discord RPC","","","","","","Clears the user rich presence","","","","","","","","","","","","","","","Creates a new DiscordRpcClient
","Sets the user rich presence","","","","","","","","","","","","","","","","","","Signal to begin a game timer (Discord will display …","Signal to change the graphical assets in the info card","Signal to set the details in the info card","Signal to clear the game remaining timer","Definitions of signals that can be sent to the Discord RPC …","Signal to end a game timer","Signal to begin a countdown timer (Discord will display …","A struct that can keep track of incoming signals and their …","Apply a signal to generate a new activity","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","What the player is doing, eg. “Exploring the Wilds of …","The user’s currenty party status, eg. “Playing Solo”.","Global resource package","","","","","","","","","Load the resources (blocking)","","","","","","","","","","","","","","","","","","","Construct a new player.","","","","","","","","","","Defines a collider in object space.","","","Definition of an object. Only one of these should exist …","Used to reference an object in the world definition","","Signal if the texture is animated or static","","","","","","","","","The object’s bottom texture","","","","","","","","","","","","","Relative file path from dist
to the texture","","","","","colliders describing the object’s footprint","Friction","","","","","","","","","","","","","","","","","Object type","Object name. Must match the name of the texture","Object name","Colliders for physics","Position, relative to the object’s center (north east is …","Object position (tile-space not pixel-space). 1,1 being up …","Object rotation, positive is clockwise","Possible sizing","Temperature","","","","","","","","","","","","","The object’s top texture","","","","","","","","","","","","","A “sphere of influence” for the object. This is used …","","","A simply interface for the madness","","","","","","Bottom animated textures","Bottom static textures","","","","","","","","","","","","","","","The object definitions","The object references","","","","","","","Top animated textures","Top static textures","","","","","","","A list of colliders in the world. We pre-solve these to …","","","","","Game save state.","","","","","","","","","","Returns the optimal path for storing settings data.","","","Loads the savestate from disk.","Saves the savestate to disk.","","","","","","","","Settings for the game.","","","","","","","","","","Returns the optimal path for storing settings data.","","","Loads the settings from disk.","Saves the settings to disk.","","","","","","","","","Constants relating to Discord","Constants relating to the Player","This structure is filled with the contents of …","Acceleration, tiles per second per second","The Discord application ID","Artwork name mapping","The window size to use on launch","","","","","","","Deceleration, tiles per second per second","","","","The Discord constants","","","","","","","","","","The name of the game","","","","","","","Maximum velocity, tiles per second","The Player constants","Starting size of player in tiles","Strings","The target framerate of the game","The size of the game tiles","","","","","","","","","","","","","","","","This module contains state machine definitions for the …","The Event Loop module","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Will begin rendering graphics. Returns when the window …","Handles loading the global resources and playing an intro …","","","","","","","","","","Construct a new LoadingScreen
","","","","","","","","","","","","","","","","","Construct a new SmFailureScreen
","","","","","","","This module handles the code for rendering …","","","Possible errors to be thrown during the animation texture …","Definition for the metadata structure attached to each …","Definition for the structure describing a frame’s size …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the current frame index","","","","","","","","","","","Construct a new AnimatedTexture
","Render the animation based on timestamp","Render a single frame to the screen","Clear the internal tracker for when the animation started","","","","","The animation start timestamp","The whole internal spritesheet","The metadata describing the spritesheet","a list of source rects to reduce memory allocation needs …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Possible errors generated by the map loading process","","","","","","","","","","","","","","","","","","","","","Gets the map size","","Load the tileset. First attempts to pull from an in-RAM …","Get the list of world colliders","","","","","","","","","","Construct a new MapRenderer.","","","","","","","","","","","","","","","","","","","","","","","","","","Delegate for handling rendering. This is a struct to allow …","","","","If you need anything to happen when the game closes, stick …","","","","","This scene encompasses the main menu system","","","This is called when the game first loads","This scene encompasses all of the game where the player …","This is called every frame once the game has started.","","","","This “scene” is used only for testing animation and …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct a new MainMenu
","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct a new PlayableScene
","","Handler for each frame","","","","","","","","","","","","","","","","","","","","Construct a new TestFoxScene
","Handler for each frame","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,3,4,0,5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,6,6,6,0,6,6,6,6,6,6,6,6,6,0,0,0,6,6,6,6,6,6,6,7,8,9,0,0,0,0,0,10,10,10,10,10,10,10,10,0,10,10,10,0,10,10,10,10,10,10,10,11,11,11,0,0,11,12,11,12,11,12,12,11,11,12,11,11,11,11,12,11,12,11,12,11,12,12,11,11,12,11,12,11,12,11,12,11,12,11,12,12,13,14,15,16,16,16,16,0,16,16,0,17,16,17,16,17,16,17,16,17,17,16,17,16,17,16,17,17,17,17,17,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,18,19,20,20,0,21,21,21,21,21,21,21,21,21,21,21,21,21,21,0,0,0,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,0,0,0,0,0,23,23,24,25,26,23,24,25,26,25,23,24,25,26,23,24,25,26,23,24,25,26,23,23,24,25,26,25,25,23,24,25,26,23,24,25,26,23,24,25,26,23,24,25,26,26,25,26,25,24,26,26,24,25,23,24,25,26,23,24,25,26,23,24,25,26,25,23,24,25,26,23,24,25,26,23,24,25,26,25,27,27,0,0,27,28,27,28,28,28,27,27,28,27,27,27,28,27,28,27,28,27,28,28,28,28,27,27,27,28,27,28,28,28,27,28,27,28,27,28,28,29,30,0,0,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,33,34,34,35,34,33,35,34,33,35,33,34,33,35,35,34,33,35,34,33,35,34,33,35,35,34,33,35,34,33,35,33,35,33,34,35,35,34,33,35,34,33,35,34,33,35,34,33,35,34,33,35,0,0,0,0,36,37,38,39,38,40,0,40,0,0,40,0,40,0,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,37,39,39,37,36,38,40,39,37,36,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,40,40,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,41,42,43,44,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,0,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,0,0,0,0,0,0,47,47,47,47,47,48,49,50,47,48,49,50,48,49,48,49,48,49,47,47,48,49,50,49,49,47,47,47,47,48,49,50,47,48,49,50,50,48,47,48,48,49,50,47,48,49,50,50,50,50,50,49,49,50,47,50,50,50,50,48,49,47,47,48,49,50,47,48,49,50,47,48,49,50,47,48,49,50,47,48,49,50,48,48,48,51,52,53,54,55,0,0,0,55,55,56,57,55,56,57,55,55,56,57,55,55,56,57,55,56,57,57,56,56,57,56,55,56,57,55,56,57,57,56,57,57,57,57,55,57,56,55,55,56,57,55,56,57,55,56,57,55,56,57,55,56,57,57,58,59,0,60,60,60,60,60,60,60,60,0,60,60,60,0,60,60,60,60,0,60,60,60,60,60,61,61,61,61,0,0,61,61,61,62,61,62,61,61,61,62,61,62,61,62,62,61,62,61,62,62,62,62,62,62,61,61,62,61,62,61,62,61,62,61,62,62,0,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64],"f":[null,null,null,[[["bool",15]]],null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[["str",15]],["option",4,[["embeddedfile",3]]]],[[["str",15]],["option",4,[["embeddedfile",3]]]],[[]],[[],["bool",15]],[[],["filenames",4]],[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,[[]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["error",3]]],[[]],[[]],[[]],[[],["bool",15]],[[["str",15]],["result",4,[["deserializeowned",8],["internaljsonloaderror",4]]]],[[],["option",4,[["error",8]]]],[[],["string",3]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,[[]],[[]],[[],["knownspritetype",3]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[],["bool",15]],[[],["result",4,[["vec",3,[["knownspritetype",3]]],["error",3]]]],null,[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,[[]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["error",3]]],[[]],[[]],[[]],[[],["bool",15]],[[["raylibthread",3],["str",15]],["result",4,[["music",3],["resourceloaderror",4]]]],[[["str",15]],["result",4,[["sound",3],["resourceloaderror",4]]]],[[["raylibhandle",3],["raylibthread",3],["str",15]],["result",4,[["texture2d",3],["resourceloaderror",4]]]],[[],["option",4,[["error",8]]]],[[],["string",3]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,[[["vector2",6,[["f32",15]]]],["vector2",6,[["f32",15]]]],[[["vector2",6,[["f32",15]]]],["vector2",6,[["f32",15]]]],null,null,null,[[],["joinhandle",3]],[[]],[[]],[[]],[[]],[[],["sender",3,[["discordrpcsignal",4]]]],null,[[]],null,[[],["bool",15]],[[["i64",15]]],null,null,null,[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],null,[[],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[["error",4]]],[[]],[[["recverror",3]]],[[["elapsed",3]]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[["i64",15],["subscriptions",3]]],[[["activitybuilder",3]]],[[],["option",4,[["error",8]]]],[[],["string",3]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["discordrpcsignal",4]],["activitybuilder",3]],[[]],[[]],[[]],[[]],[[],["discordrpcsignal",4]],[[],["statefuldiscordrpcsignalhandler",3]],[[]],[[]],[[],["statefuldiscordrpcsignalhandler",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,[[]],[[]],null,[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,[[]],[[]],[[],["player",3]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[],["bool",15]],[[["vector2",6,[["f32",15]]]]],null,null,[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["possiblyanimatedtexture",3]],[[],["objectcollider",3]],[[],["worldobject",3]],[[],["worldobjectref",3]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,[[]],[[]],[[]],[[]],null,null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["internaljsonloaderror",4]]],[[["resourceloaderror",4]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3],["str",15]],["result",4,[["worldobjectpackageloaderror",4]]]],null,null,[[],["option",4,[["error",8]]]],[[],["string",3]],[[],["option",4]],[[],["option",4]],[[]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[],["gamesavestate",3]],[[]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],[[]],[[]],[[],["pathbuf",3]],[[]],[[],["bool",15]],[[["bool",15]],["result",4,[["error",3]]]],[[],["result",4,[["error",3]]]],[[],["result",4]],[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],[[]],[[],["persistentgamesettings",3]],[[]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],[[]],[[]],[[],["pathbuf",3]],[[]],[[],["bool",15]],[[["bool",15]],["result",4,[["error",3]]]],[[],["result",4,[["error",3]]]],[[],["result",4]],[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,null,null,null,null,null,[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["preloadstate",4]],[[],["loadingstate",4]],[[],["rendergamestate",4]],[[],["smfailedstate",4]],[[],["renderbackendstates",4]],[[]],[[]],[[]],[[]],[[]],[[["preloadstate",4]],["bool",15]],[[["loadingstate",4]],["bool",15]],[[["rendergamestate",4]],["bool",15]],[[["smfailedstate",4]],["bool",15]],[[["renderbackendstates",4]],["bool",15]],[[],["renderbackendstates",4]],[[],["renderbackendstates",4]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[],["renderbackendstates",4]],[[],["renderbackendstates",4]],[[],["renderbackendstates",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["renderbackendstates",4]],["bool",15]],[[],["renderbackendstates",4]],[[],["renderbackendstates",4]],[[]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,[[["u32",15],["projectconstants",3],["sender",3,[["discordrpcsignal",4]]],["persistentgamesettings",3],["gamesavestate",3]]],null,null,null,[[]],[[]],[[]],[[]],null,[[]],[[],["bool",15]],[[]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["projectconstants",3]]],null,[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[],["bool",15]],[[]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["projectconstants",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["frametexturedescriptor",3]],[[],["animatedtexturemetadata",3]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],null,null,[[]],[[["resourceloaderror",4]]],[[["error",3]]],[[["internaljsonloaderror",4]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["option",4,[["usize",15]]]],null,[[]],[[]],[[],["rectangle",3]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3],["str",15],["str",15]],["result",4,[["animatedtextureloaderror",4]]]],[[["raylibmode2d",3],["vector2",6,[["f32",15]]],["option",4,[["vector2",6,[["f32",15]]]]],["option",4,[["vector2",6,[["f32",15]]]]],["option",4,[["f32",15]]],["option",4,[["color",3]]]]],[[["raylibmode2d",3],["usize",15],["vector2",6,[["f32",15]]],["option",4,[["vector2",6,[["f32",15]]]]],["option",4,[["vector2",6,[["f32",15]]]]],["option",4,[["f32",15]]],["option",4,[["color",3]]]]],[[]],null,null,[[],["vector2",6,[["f32",15]]]],[[],["option",4,[["error",8]]]],null,null,null,null,[[]],[[]],[[],["string",3]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[["error",4]]],[[]],[[]],[[]],[[]],[[]],[[],["vector2",6,[["f32",15]]]],[[["resourcepathbuf",6]],["result",4,[["arc",3,[["tileset",3]]]]]],[[],["option",4,[["arc",3,[["tileset",3]]]]]],[[],["vec",3,[["objectcollider",3]]]],null,[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,[[]],[[["str",15],["str",15],["raylibhandle",3],["raylibthread",3]],["result",4,[["maprendererror",4]]]],[[["raylibmode2d",3],["camera2d",3],["bool",15],["vector2",6,[["f32",15]]]]],[[["vector2",6,[["f32",15]]]],["option",4,[["f32",15]]]],[[["vector2",6,[["f32",15]]]],["option",4,[["f32",15]]]],[[],["option",4,[["error",8]]]],null,null,[[],["string",3]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],null,null,null,[[["raylibhandle",3],["raylibthread",3],["projectconstants",3],["raylibaudio",3],["persistentgamesettings",3],["gamesavestate",3]]],null,[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["persistentgamesettings",3],["gamesavestate",3]]],null,null,null,null,[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["menustatesignal",4]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3],["projectconstants",3],["persistentgamesettings",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["raylibaudio",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["raylibaudio",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["raylibaudio",3],["persistentgamesettings",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3]]],[[]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[]],[[]],null,[[["raylibdrawhandle",3],["projectconstants",3]]],[[["raylibdrawhandle",3],["projectconstants",3]]],[[["formatter",3]],["result",6]],[[]],[[]],null,null,[[]],[[],["bool",15]],null,[[["raylibhandle",3],["raylibthread",3],["projectconstants",3]]],null,[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["raylibaudio",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["raylibhandle",3]]],[[["raylibhandle",3],["projectconstants",3]]],null,null,null,[[]],[[]],null,[[["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null],"p":[[3,"InternalData"],[4,"InternalJsonLoadError"],[13,"JsonError"],[13,"AssetNotFound"],[3,"KnownSpriteType"],[4,"ResourceLoadError"],[13,"Io"],[13,"AssetNotFound"],[13,"Generic"],[3,"DiscordRpcThreadHandle"],[4,"DiscordError"],[3,"DiscordRpcClient"],[13,"Sdk"],[13,"AwaitConnection"],[13,"ConnectionTimeout"],[4,"DiscordRpcSignal"],[3,"StatefulDiscordRpcSignalHandler"],[13,"SetGameTimeRemainingTimestamp"],[13,"ChangeAssets"],[13,"ChangeDetails"],[3,"GlobalResources"],[3,"Player"],[3,"PossiblyAnimatedTexture"],[3,"ObjectCollider"],[3,"WorldObject"],[3,"WorldObjectRef"],[4,"WorldObjectPackageLoadError"],[3,"WorldObjectPackage"],[13,"JsonError"],[13,"ResourceError"],[3,"GameSaveState"],[3,"PersistentGameSettings"],[3,"PlayerConstants"],[3,"DiscordConstants"],[3,"ProjectConstants"],[4,"RenderGameState"],[4,"LoadingState"],[4,"SmFailedState"],[4,"PreloadState"],[4,"RenderBackendStates"],[13,"Preload"],[13,"Loading"],[13,"RenderGame"],[13,"SmFailed"],[3,"LoadingScreen"],[3,"SmFailureScreen"],[4,"AnimatedTextureLoadError"],[3,"FrameTextureDescriptor"],[3,"AnimatedTextureMetadata"],[3,"AnimatedTexture"],[13,"MetadataLoadError"],[13,"KnownSpriteTypesLoadError"],[13,"InvalidSpriteType"],[13,"TextureLoadError"],[4,"MapRenderError"],[3,"ProgramDataTileCache"],[3,"MapRenderer"],[13,"AssetNotFound"],[13,"TiledError"],[3,"SceneRenderDelegate"],[4,"MenuStateSignal"],[3,"MainMenu"],[3,"PlayableScene"],[3,"TestFoxScene"]]}\
+"game_logic":{"doc":"This file is the main entry point for the game logic.","t":[0,0,0,5,0,0,0,0,0,0,0,0,0,0,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,4,13,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,12,12,3,11,11,11,11,11,11,12,11,11,11,11,5,12,11,11,11,11,11,11,13,13,13,4,11,11,11,11,11,11,11,11,11,5,5,5,11,11,11,11,11,11,11,12,12,12,5,5,17,6,3,11,11,11,11,11,11,12,11,0,11,11,12,0,12,11,11,11,11,12,11,13,13,13,4,3,13,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,13,4,13,13,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,0,0,0,3,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,3,6,3,3,3,6,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,13,13,3,4,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,12,12,0,0,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,3,3,12,12,12,12,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,13,13,13,13,13,13,4,13,4,4,13,4,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,5,0,0,3,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,3,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,0,0,3,4,3,3,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,13,4,3,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,3,12,11,11,11,11,11,11,11,0,12,12,11,0,11,12,12,12,0,11,11,11,11,11,13,13,13,13,3,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,11,11,12,11,11,11,11,11,12,12,11,11,12,11,12,11,11,11,11,11,11,11,11,12,12,3,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,12],"n":["asset_manager","coord_convert","discord","entrypoint","global_resource_package","model","persistent","project_constants","rendering","scenes","datastore","json","sprite_types","texture","InternalData","borrow","borrow_mut","from","from_subset","get","get","into","is_in_subset","iter","iter","to_subset","to_subset_unchecked","try_from","try_into","type_id","AssetNotFound","InternalJsonLoadError","JsonError","borrow","borrow_mut","fmt","fmt","from","from","from_subset","into","is_in_subset","load_json_structure","source","to_string","to_subset","to_subset_unchecked","try_from","try_into","type_id","0","0","KnownSpriteType","borrow","borrow_mut","clone","clone_into","deserialize","fmt","friendly_name","from","from_subset","into","is_in_subset","load_known_sprite_types","short_name","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","AssetNotFound","Generic","Io","ResourceLoadError","borrow","borrow_mut","fmt","fmt","from","from","from_subset","into","is_in_subset","load_music_from_internal_data","load_sound_from_internal_data","load_texture_from_internal_data","source","to_string","to_subset","to_subset_unchecked","try_from","try_into","type_id","0","0","0","game_to_tiled","tiled_to_game","DISCORD_CONNECT_TIMEOUT_SECONDS","DiscordChannel","DiscordRpcThreadHandle","begin_thread_non_blocking","borrow","borrow_mut","from","from_subset","get_channel","internal_client","into","ipc","is_in_subset","new","rx_chan","signal","state","to_subset","to_subset_unchecked","try_from","try_into","tx_chan","type_id","AwaitConnection","Connection","ConnectionTimeout","DiscordError","DiscordRpcClient","Sdk","borrow","borrow","borrow_mut","borrow_mut","clear_rich_presence","discord","fmt","fmt","from","from","from","from","from","from_subset","from_subset","into","into","is_in_subset","is_in_subset","new","set_rich_presence","source","to_string","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","user","wheel","0","0","0","BeginGameTimer","ChangeAssets","ChangeDetails","ClearGameTimeRemaining","DiscordRpcSignal","EndGameTimer","SetGameTimeRemainingTimestamp","StatefulDiscordRpcSignalHandler","apply","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","fmt","fmt","from","from","from_subset","from_subset","game_assets","game_details","game_end_timer","game_party_status","game_start_timer","into","into","is_in_subset","is_in_subset","to_owned","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","0","0","details","party_status","GlobalResources","borrow","borrow_mut","button_click_sound","fmt","from","from_subset","into","is_in_subset","load","to_subset","to_subset_unchecked","try_from","try_into","type_id","player","world_object","world_object_package","Player","borrow","borrow_mut","clone","clone_into","fmt","from","from_subset","into","is_in_subset","new","position","size","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","velocity","ObjectCollider","ObjectSpaceObjectCollider","PossiblyAnimatedTexture","WorldObject","WorldObjectRef","WorldSpaceObjectCollider","animated","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bottom_texture","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","deserialize","file_path","fmt","fmt","fmt","fmt","footprint","friction","from","from","from","from","from_subset","from_subset","from_subset","from_subset","get_tile_space_position","get_world_space_position","into","into","into","into","into_key","is_in_subset","is_in_subset","is_in_subset","is_in_subset","kind","name","name","physics_colliders","position","position","rotation_degrees","size","temperature","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","top_texture","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","variant","visualization_radius","JsonError","ResourceError","WorldObjectPackage","WorldObjectPackageLoadError","borrow","borrow","borrow_mut","borrow_mut","bottom_animated_textures","bottom_static_textures","fmt","fmt","fmt","from","from","from","from","from_subset","from_subset","into","into","is_in_subset","is_in_subset","load","object_definitions","object_references","source","to_string","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","top_animated_textures","top_static_textures","try_from","try_from","try_into","try_into","type_id","type_id","world_space_colliders","0","0","save_state","settings","GameSaveState","borrow","borrow_mut","clone","clone_into","default","deserialize","fmt","from","from_subset","get_save_location","into","is_in_subset","load_or_create","save","serialize","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","PersistentGameSettings","borrow","borrow_mut","clone","clone_into","default","deserialize","fmt","from","from_subset","get_save_location","into","is_in_subset","load_or_create","save","serialize","to_owned","to_subset","to_subset_unchecked","try_from","try_into","type_id","volume","DiscordConstants","PlayerConstants","ProjectConstants","acceleration","app_id","artwork","base_window_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deceleration","deserialize","deserialize","deserialize","discord","fmt","fmt","fmt","from","from","from","from_subset","from_subset","from_subset","game_name","into","into","into","is_in_subset","is_in_subset","is_in_subset","max_velocity","player","start_size","strings","target_fps","tile_size","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","core_renderer_sm","event_loop","screens","utilities","FromFinishLoading","FromFinishPreload","FromForceSmFailure","FromInit","FromInit","Loading","LoadingState","Preload","PreloadState","RenderBackendStates","RenderGame","RenderGameState","SmFailed","SmFailedState","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","eq","eq","eq","eq","eq","finish_loading","finish_preload","fmt","fmt","fmt","fmt","fmt","force_sm_failure","force_sm_failure","force_sm_failure","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","from_subset","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","ne","preload","sm_failed","to_owned","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","0","0","0","0","handle_graphics_blocking","loading_screen","sm_failure_screen","LoadingScreen","borrow","borrow_mut","from","from_subset","has_updated_discord_status","into","is_in_subset","new","render","resources","to_subset","to_subset_unchecked","try_from","try_into","type_id","SmFailureScreen","borrow","borrow_mut","fmt","from","from_subset","has_updated_discord_status","into","is_in_subset","new","render","to_subset","to_subset_unchecked","try_from","try_into","type_id","anim_texture","map_render","AnimatedTexture","AnimatedTextureLoadError","AnimatedTextureMetadata","FrameTextureDescriptor","InvalidSpriteType","KnownSpriteTypesLoadError","MetadataLoadError","TextureLoadError","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","fmt","fmt","fmt","fmt","fmt","fps","frames","from","from","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","get_current_frame_index","height","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","new","render_automatic","render_frame_by_index","reset_animation","sheet_height","sheet_width","size","source","start_time","texture","texture_metadata","texture_source_rects","to_owned","to_owned","to_string","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","width","x","y","0","0","0","0","AssetNotFound","MapRenderError","MapRenderer","ProgramDataTileCache","TiledError","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","from","from","from","from","from_subset","from_subset","from_subset","get_map_size","get_or_try_insert_tileset_with","get_tileset","get_world_colliders","internal_loader","into","into","into","is_in_subset","is_in_subset","is_in_subset","map","new","new","render_map","sample_friction_at","sample_temperature_at","source","tile_textures","tilesets","to_string","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","world_objects","0","0","SceneRenderDelegate","audio_subsystem","borrow","borrow_mut","drop","from","from_subset","into","is_in_subset","main_menu","menu_control_signal","needs_exit","on_game_start","player_interaction","process_ingame_frame","scene_main_menu","scene_playable","scene_test_fox","test_fox","to_subset","to_subset_unchecked","try_from","try_into","type_id","DoCredits","DoLeaderboard","DoMainMenu","DoOptions","MainMenu","MenuStateSignal","QuitGame","StartGame","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","from","from","from_subset","from_subset","has_updated_discord_rpc","into","into","is_in_subset","is_in_subset","new","render_credits_frame","render_leaderboard_frame","render_main_menu_frame","render_options_frame","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","volume_percentage","PlayableScene","borrow","borrow_mut","camera","draw_ui","draw_world","fmt","from","from_subset","game_soundtrack","has_updated_discord_rpc","into","is_in_subset","last_update","new","player","render_frame","to_subset","to_subset_unchecked","try_from","try_into","type_id","update_camera","update_physics","world_colliders","world_map","TestFoxScene","borrow","borrow_mut","camera","fmt","fox_animation","from","from_subset","into","is_in_subset","new","render_frame","to_subset","to_subset_unchecked","try_from","try_into","type_id","world_map"],"q":["game_logic","","","","","","","","","","game_logic::asset_manager","","","","game_logic::asset_manager::datastore","","","","","","","","","","","","","","","","game_logic::asset_manager::json","","","","","","","","","","","","","","","","","","","","game_logic::asset_manager::json::InternalJsonLoadError","","game_logic::asset_manager::sprite_types","","","","","","","","","","","","","","","","","","","","game_logic::asset_manager::texture","","","","","","","","","","","","","","","","","","","","","","","game_logic::asset_manager::texture::ResourceLoadError","","","game_logic::coord_convert","","game_logic::discord","","","","","","","","","","","","","","","","","","","","","","","game_logic::discord::ipc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::discord::ipc::DiscordError","","","game_logic::discord::signal","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::discord::signal::DiscordRpcSignal","","","","game_logic::global_resource_package","","","","","","","","","","","","","","","game_logic::model","","","game_logic::model::player","","","","","","","","","","","","","","","","","","","","game_logic::model::world_object","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::model::world_object_package","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::model::world_object_package::WorldObjectPackageLoadError","","game_logic::persistent","","game_logic::persistent::save_state","","","","","","","","","","","","","","","","","","","","","","game_logic::persistent::settings","","","","","","","","","","","","","","","","","","","","","","","game_logic::project_constants","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::rendering","","","","game_logic::rendering::core_renderer_sm","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::rendering::core_renderer_sm::RenderBackendStates","","","","game_logic::rendering::event_loop","game_logic::rendering::screens","","game_logic::rendering::screens::loading_screen","","","","","","","","","","","","","","","","game_logic::rendering::screens::sm_failure_screen","","","","","","","","","","","","","","","","game_logic::rendering::utilities","","game_logic::rendering::utilities::anim_texture","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError","","","","game_logic::rendering::utilities::map_render","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::rendering::utilities::map_render::MapRenderError","","game_logic::scenes","","","","","","","","","","","","","","","","","","","","","","","","game_logic::scenes::main_menu","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::scenes::player_interaction","","","","","","","","","","","","","","","","","","","","","","","","","","game_logic::scenes::test_fox","","","","","","","","","","","","","","","","",""],"d":["Embedded asset management.","","Interfacing with Discord","This is the game logic entrypoint. Despite being async, …","Global resources","","This module contains the datastructure backing persistent …","The rust side of the dist/project-constants.json
file","This module contains lower level rendering logic.","The render code for various scenes","Access to the game’s embedded files.","Utilities for loading JSON from the embedded filesystem.","","Code for loading textures from RAM to VRAM","This structure is dynamically packed with the contents of …","","","","","","Get an embedded file and its metadata.","","","","Iterates over the file paths in the folder.","","","","","","The JSON data was not found in the internal data store","Possible errors generated when deserializing JSON data …","An error occurred with the JSON data itself","","","","","","","","","","Load an embedded JSON file","","","","","","","","","","The structure backing the dist/known-sprite-types.json
file","","","","","","","Sprite long name","","","","","Loads a list of all known sprite types from the …","Sprite short name (used in filenames)","","","","","","","","","","","","","","","","","","","","","","Loads an embedded texture into VRAM.","","","","","","","","","","","Converts from the game coordinate system to the tiled …","Converts from the tiled coordinate system to the game …","How long to wait before we give up on connecting to …","A cross-thread communication channel for sending Discord …","","Run the inner communication task in an async context","","","","","Get access to the inter-thread channel for communicating …","","","Discord Rich Presence utilities","","Construct a new DiscordRpcThreadHandle
","","This file contains a system for signaling Discord RPC …","","","","","","","","","","","","The client wrapper for Discord RPC","","","","","","Clears the user rich presence","","","","","","","","","","","","","","","Creates a new DiscordRpcClient
","Sets the user rich presence","","","","","","","","","","","","","","","","","","Signal to begin a game timer (Discord will display …","Signal to change the graphical assets in the info card","Signal to set the details in the info card","Signal to clear the game remaining timer","Definitions of signals that can be sent to the Discord RPC …","Signal to end a game timer","Signal to begin a countdown timer (Discord will display …","A struct that can keep track of incoming signals and their …","Apply a signal to generate a new activity","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","What the player is doing, eg. “Exploring the Wilds of …","The user’s currenty party status, eg. “Playing Solo”.","Global resource package","","","","","","","","","Load the resources (blocking)","","","","","","","","","","","","","","","","","","","Construct a new player.","","","","","","","","","","Defines a collider in object space.","","","Definition of an object. Only one of these should exist …","Used to reference an object in the world definition","","Signal if the texture is animated or static","","","","","","","","","The object’s bottom texture","","","","","","","","","","","","","Relative file path from dist
to the texture","","","","","colliders describing the object’s footprint","Friction","","","","","","","","","","","","","","","","","","","","Object type","Object name. Must match the name of the texture","Object name","Colliders for physics","Position, relative to the object’s center (north east is …","Object position (tile-space not pixel-space). 1,1 being up …","Object rotation, positive is clockwise","Possible sizing","Temperature","","","","","","","","","","","","","The object’s top texture","","","","","","","","","","","","","Variant name","A “sphere of influence” for the object. This is used …","","","A simply interface for the madness","","","","","","Bottom animated textures","Bottom static textures","","","","","","","","","","","","","","","The object definitions","The object references","","","","","","","Top animated textures","Top static textures","","","","","","","A list of colliders in the world. We pre-solve these to …","","","","","Game save state.","","","","","","","","","","Returns the optimal path for storing settings data.","","","Loads the savestate from disk.","Saves the savestate to disk.","","","","","","","","Settings for the game.","","","","","","","","","","Returns the optimal path for storing settings data.","","","Loads the settings from disk.","Saves the settings to disk.","","","","","","","","","Constants relating to Discord","Constants relating to the Player","This structure is filled with the contents of …","Acceleration, tiles per second per second","The Discord application ID","Artwork name mapping","The window size to use on launch","","","","","","","Deceleration, tiles per second per second","","","","The Discord constants","","","","","","","","","","The name of the game","","","","","","","Maximum velocity, tiles per second","The Player constants","Starting size of player in tiles","Strings","The target framerate of the game","The size of the game tiles","","","","","","","","","","","","","","","","This module contains state machine definitions for the …","The Event Loop module","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Will begin rendering graphics. Returns when the window …","Handles loading the global resources and playing an intro …","","","","","","","","","","Construct a new LoadingScreen
","","","","","","","","","","","","","","","","","Construct a new SmFailureScreen
","","","","","","","This module handles the code for rendering …","","","Possible errors to be thrown during the animation texture …","Definition for the metadata structure attached to each …","Definition for the structure describing a frame’s size …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the current frame index","","","","","","","","","","","Construct a new AnimatedTexture
","Render the animation based on timestamp","Render a single frame to the screen","Clear the internal tracker for when the animation started","","","","","The animation start timestamp","The whole internal spritesheet","The metadata describing the spritesheet","a list of source rects to reduce memory allocation needs …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Possible errors generated by the map loading process","","","","","","","","","","","","","","","","","","","","","Gets the map size","","Load the tileset. First attempts to pull from an in-RAM …","Get the list of world colliders","","","","","","","","","","Construct a new MapRenderer.","","","","","","","","","","","","","","","","","","","","","","","","","","Delegate for handling rendering. This is a struct to allow …","","","","If you need anything to happen when the game closes, stick …","","","","","This scene encompasses the main menu system","","","This is called when the game first loads","This scene encompasses all of the game where the player …","This is called every frame once the game has started.","","","","This “scene” is used only for testing animation and …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct a new MainMenu
","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct a new PlayableScene
","","Handler for each frame","","","","","","","","","","","","","","","","","","","","Construct a new TestFoxScene
","Handler for each frame","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,3,4,0,5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,6,6,6,0,6,6,6,6,6,6,6,6,6,0,0,0,6,6,6,6,6,6,6,7,8,9,0,0,0,0,0,10,10,10,10,10,10,10,10,0,10,10,10,0,10,10,10,10,10,10,10,11,11,11,0,0,11,12,11,12,11,12,12,11,11,12,11,11,11,11,12,11,12,11,12,11,12,12,11,11,12,11,12,11,12,11,12,11,12,11,12,12,13,14,15,16,16,16,16,0,16,16,0,17,16,17,16,17,16,17,16,17,17,16,17,16,17,16,17,17,17,17,17,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,18,19,20,20,0,21,21,21,21,21,21,21,21,21,21,21,21,21,21,0,0,0,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,0,0,0,0,0,23,23,24,25,26,23,24,25,26,25,23,24,25,26,23,24,25,26,23,24,25,26,23,23,24,25,26,25,25,23,24,25,26,23,24,25,26,26,26,23,24,25,26,26,23,24,25,26,26,25,26,25,24,26,26,24,25,23,24,25,26,23,24,25,26,23,24,25,26,25,23,24,25,26,23,24,25,26,23,24,25,26,26,25,27,27,0,0,27,28,27,28,28,28,27,27,28,27,27,27,28,27,28,27,28,27,28,28,28,28,27,27,27,28,27,28,28,28,27,28,27,28,27,28,28,29,30,0,0,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,33,34,34,35,34,33,35,34,33,35,33,34,33,35,35,34,33,35,34,33,35,34,33,35,35,34,33,35,34,33,35,33,35,33,34,35,35,34,33,35,34,33,35,34,33,35,34,33,35,34,33,35,0,0,0,0,36,37,38,39,38,40,0,40,0,0,40,0,40,0,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,37,39,39,37,36,38,40,39,37,36,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,40,40,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,39,37,36,38,40,41,42,43,44,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,0,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,0,0,0,0,0,0,47,47,47,47,47,48,49,50,47,48,49,50,48,49,48,49,48,49,47,47,48,49,50,49,49,47,47,47,47,48,49,50,47,48,49,50,50,48,47,48,48,49,50,47,48,49,50,50,50,50,50,49,49,50,47,50,50,50,50,48,49,47,47,48,49,50,47,48,49,50,47,48,49,50,47,48,49,50,47,48,49,50,48,48,48,51,52,53,54,55,0,0,0,55,55,56,57,55,56,57,55,55,56,57,55,55,56,57,55,56,57,57,56,56,57,56,55,56,57,55,56,57,57,56,57,57,57,57,55,57,56,55,55,56,57,55,56,57,55,56,57,55,56,57,55,56,57,57,58,59,0,60,60,60,60,60,60,60,60,0,60,60,60,0,60,60,60,60,0,60,60,60,60,60,61,61,61,61,0,0,61,61,61,62,61,62,61,61,61,62,61,62,61,62,62,61,62,61,62,62,62,62,62,62,61,61,62,61,62,61,62,61,62,61,62,62,0,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64],"f":[null,null,null,[[["bool",15]]],null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[["str",15]],["option",4,[["embeddedfile",3]]]],[[["str",15]],["option",4,[["embeddedfile",3]]]],[[]],[[],["bool",15]],[[],["filenames",4]],[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,[[]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["error",3]]],[[]],[[]],[[]],[[],["bool",15]],[[["str",15]],["result",4,[["deserializeowned",8],["internaljsonloaderror",4]]]],[[],["option",4,[["error",8]]]],[[],["string",3]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,[[]],[[]],[[],["knownspritetype",3]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[],["bool",15]],[[],["result",4,[["vec",3,[["knownspritetype",3]]],["error",3]]]],null,[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,[[]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["error",3]]],[[]],[[]],[[]],[[],["bool",15]],[[["raylibthread",3],["str",15]],["result",4,[["music",3],["resourceloaderror",4]]]],[[["str",15]],["result",4,[["sound",3],["resourceloaderror",4]]]],[[["raylibhandle",3],["raylibthread",3],["str",15]],["result",4,[["texture2d",3],["resourceloaderror",4]]]],[[],["option",4,[["error",8]]]],[[],["string",3]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,[[["vector2",6,[["f32",15]]]],["vector2",6,[["f32",15]]]],[[["vector2",6,[["f32",15]]]],["vector2",6,[["f32",15]]]],null,null,null,[[],["joinhandle",3]],[[]],[[]],[[]],[[]],[[],["sender",3,[["discordrpcsignal",4]]]],null,[[]],null,[[],["bool",15]],[[["i64",15]]],null,null,null,[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],null,[[],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[["elapsed",3]]],[[["recverror",3]]],[[["error",4]]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[["i64",15],["subscriptions",3]]],[[["activitybuilder",3]]],[[],["option",4,[["error",8]]]],[[],["string",3]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["discordrpcsignal",4]],["activitybuilder",3]],[[]],[[]],[[]],[[]],[[],["discordrpcsignal",4]],[[],["statefuldiscordrpcsignalhandler",3]],[[]],[[]],[[],["statefuldiscordrpcsignalhandler",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,[[]],[[]],null,[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,[[]],[[]],[[],["player",3]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[],["bool",15]],[[["vector2",6,[["f32",15]]]]],null,null,[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["possiblyanimatedtexture",3]],[[],["objectcollider",3]],[[],["worldobject",3]],[[],["worldobjectref",3]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["vector2",6,[["f32",15]]]],[[],["vector2",6,[["f32",15]]]],[[]],[[]],[[]],[[]],[[],["string",3]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],null,null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["resourceloaderror",4]]],[[]],[[["internaljsonloaderror",4]]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3],["str",15]],["result",4,[["worldobjectpackageloaderror",4]]]],null,null,[[],["option",4,[["error",8]]]],[[],["string",3]],[[],["option",4]],[[],["option",4]],[[]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[],["gamesavestate",3]],[[]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],[[]],[[]],[[],["pathbuf",3]],[[]],[[],["bool",15]],[[["bool",15]],["result",4,[["error",3]]]],[[],["result",4,[["error",3]]]],[[],["result",4]],[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],[[]],[[],["persistentgamesettings",3]],[[]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],[[]],[[]],[[],["pathbuf",3]],[[]],[[],["bool",15]],[[["bool",15]],["result",4,[["error",3]]]],[[],["result",4,[["error",3]]]],[[],["result",4]],[[]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,null,null,null,null,null,[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["preloadstate",4]],[[],["loadingstate",4]],[[],["rendergamestate",4]],[[],["smfailedstate",4]],[[],["renderbackendstates",4]],[[]],[[]],[[]],[[]],[[]],[[["preloadstate",4]],["bool",15]],[[["loadingstate",4]],["bool",15]],[[["rendergamestate",4]],["bool",15]],[[["smfailedstate",4]],["bool",15]],[[["renderbackendstates",4]],["bool",15]],[[],["renderbackendstates",4]],[[],["renderbackendstates",4]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[],["renderbackendstates",4]],[[],["renderbackendstates",4]],[[],["renderbackendstates",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["renderbackendstates",4]],["bool",15]],[[],["renderbackendstates",4]],[[],["renderbackendstates",4]],[[]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,[[["u32",15],["projectconstants",3],["sender",3,[["discordrpcsignal",4]]],["persistentgamesettings",3],["gamesavestate",3]]],null,null,null,[[]],[[]],[[]],[[]],null,[[]],[[],["bool",15]],[[]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["projectconstants",3]]],null,[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[],["bool",15]],[[]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["projectconstants",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["frametexturedescriptor",3]],[[],["animatedtexturemetadata",3]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],null,null,[[["resourceloaderror",4]]],[[]],[[["error",3]]],[[["internaljsonloaderror",4]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["option",4,[["usize",15]]]],null,[[]],[[],["rectangle",3]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3],["str",15],["str",15]],["result",4,[["animatedtextureloaderror",4]]]],[[["raylibmode2d",3],["vector2",6,[["f32",15]]],["option",4,[["vector2",6,[["f32",15]]]]],["option",4,[["vector2",6,[["f32",15]]]]],["option",4,[["f32",15]]],["option",4,[["color",3]]]]],[[["raylibmode2d",3],["usize",15],["vector2",6,[["f32",15]]],["option",4,[["vector2",6,[["f32",15]]]]],["option",4,[["vector2",6,[["f32",15]]]]],["option",4,[["f32",15]]],["option",4,[["color",3]]]]],[[]],null,null,[[],["vector2",6,[["f32",15]]]],[[],["option",4,[["error",8]]]],null,null,null,null,[[]],[[]],[[],["string",3]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["error",4]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["vector2",6,[["f32",15]]]],[[["resourcepathbuf",6]],["result",4,[["arc",3,[["tileset",3]]]]]],[[],["option",4,[["arc",3,[["tileset",3]]]]]],[[],["vec",3,[["objectcollider",3]]]],null,[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,[[]],[[["str",15],["str",15],["raylibhandle",3],["raylibthread",3]],["result",4,[["maprendererror",4]]]],[[["raylibmode2d",3],["camera2d",3],["bool",15],["vector2",6,[["f32",15]]]]],[[["vector2",6,[["f32",15]]]],["option",4,[["f32",15]]]],[[["vector2",6,[["f32",15]]]],["option",4,[["f32",15]]]],[[],["option",4,[["error",8]]]],null,null,[[],["string",3]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],null,null,null,[[["raylibhandle",3],["raylibthread",3],["projectconstants",3],["raylibaudio",3],["persistentgamesettings",3],["gamesavestate",3]]],null,[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["persistentgamesettings",3],["gamesavestate",3]]],null,null,null,null,[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["menustatesignal",4]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3],["projectconstants",3],["persistentgamesettings",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["raylibaudio",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["raylibaudio",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["raylibaudio",3],["persistentgamesettings",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3]]],[[]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[]],[[]],null,[[["raylibdrawhandle",3],["projectconstants",3]]],[[["raylibdrawhandle",3],["projectconstants",3]]],[[["formatter",3]],["result",6]],[[]],[[]],null,null,[[]],[[],["bool",15]],null,[[["raylibhandle",3],["raylibthread",3],["projectconstants",3]]],null,[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3],["raylibaudio",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["raylibhandle",3]]],[[["raylibhandle",3],["projectconstants",3]]],null,null,null,[[]],[[]],null,[[["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null],"p":[[3,"InternalData"],[4,"InternalJsonLoadError"],[13,"JsonError"],[13,"AssetNotFound"],[3,"KnownSpriteType"],[4,"ResourceLoadError"],[13,"Io"],[13,"AssetNotFound"],[13,"Generic"],[3,"DiscordRpcThreadHandle"],[4,"DiscordError"],[3,"DiscordRpcClient"],[13,"Sdk"],[13,"AwaitConnection"],[13,"ConnectionTimeout"],[4,"DiscordRpcSignal"],[3,"StatefulDiscordRpcSignalHandler"],[13,"SetGameTimeRemainingTimestamp"],[13,"ChangeAssets"],[13,"ChangeDetails"],[3,"GlobalResources"],[3,"Player"],[3,"PossiblyAnimatedTexture"],[3,"ObjectCollider"],[3,"WorldObject"],[3,"WorldObjectRef"],[4,"WorldObjectPackageLoadError"],[3,"WorldObjectPackage"],[13,"JsonError"],[13,"ResourceError"],[3,"GameSaveState"],[3,"PersistentGameSettings"],[3,"PlayerConstants"],[3,"DiscordConstants"],[3,"ProjectConstants"],[4,"RenderGameState"],[4,"LoadingState"],[4,"SmFailedState"],[4,"PreloadState"],[4,"RenderBackendStates"],[13,"Preload"],[13,"Loading"],[13,"RenderGame"],[13,"SmFailed"],[3,"LoadingScreen"],[3,"SmFailureScreen"],[4,"AnimatedTextureLoadError"],[3,"FrameTextureDescriptor"],[3,"AnimatedTextureMetadata"],[3,"AnimatedTexture"],[13,"MetadataLoadError"],[13,"KnownSpriteTypesLoadError"],[13,"InvalidSpriteType"],[13,"TextureLoadError"],[4,"MapRenderError"],[3,"ProgramDataTileCache"],[3,"MapRenderer"],[13,"AssetNotFound"],[13,"TiledError"],[3,"SceneRenderDelegate"],[4,"MenuStateSignal"],[3,"MainMenu"],[3,"PlayableScene"],[3,"TestFoxScene"]]}\
}');
if (window.initSearch) {window.initSearch(searchIndex)};
\ No newline at end of file
diff --git a/rustdoc/src/game_logic/model/world_object.rs.html b/rustdoc/src/game_logic/model/world_object.rs.html
index 10be5724..507866b9 100644
--- a/rustdoc/src/game_logic/model/world_object.rs.html
+++ b/rustdoc/src/game_logic/model/world_object.rs.html
@@ -67,6 +67,23 @@
65
66
67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
use std::collections::HashMap;
use nalgebra as na;
@@ -127,13 +144,30 @@
pub kind: String,
/// Object name
pub name: String,
+ /// Variant name
+ pub variant: Option<String>,
/// Object position (tile-space *not* pixel-space). 1,1 being up and to the right
- pub position: na::Vector2<f32>,
+ position: na::Vector2<f32>,
/// Object rotation, positive is clockwise
- pub rotation_radians: f32,
+ pub rotation_degrees: f32,
}
-
+impl WorldObjectRef {
+ pub fn into_key(&self) -> String {
+ format!(
+ "{}:{}:{}",
+ self.kind,
+ self.name,
+ self.variant.as_ref().unwrap_or(&"default".to_string())
+ )
+ }
+ pub fn get_world_space_position(&self)-> na::Vector2<f32> {
+ self.position * 128.0
+ }
+ pub fn get_tile_space_position(&self)-> na::Vector2<f32> {
+ self.position
+ }
+}
\ No newline at end of file
diff --git a/rustdoc/src/game_logic/model/world_object_package.rs.html b/rustdoc/src/game_logic/model/world_object_package.rs.html
index c4c64077..1f5c0acd 100644
--- a/rustdoc/src/game_logic/model/world_object_package.rs.html
+++ b/rustdoc/src/game_logic/model/world_object_package.rs.html
@@ -130,6 +130,9 @@
128
129
130
+131
+132
+133
use std::collections::HashMap;
use raylib::{texture::Texture2D, RaylibHandle, RaylibThread};
@@ -186,12 +189,15 @@
let mut world_space_colliders: Vec<WorldSpaceObjectCollider> = Vec::new();
for reference in &object_references {
// If this is a new object, load it.
- let object_key = format!("{}:{}", reference.kind, reference.name);
+ let object_key = reference.into_key();
if !object_definitions.contains_key(object_key.as_str()) {
// Construct the file path from the data we know about the reference
let path = format!(
- "assets/{}/{}/{}.json",
- reference.kind, reference.name, reference.name
+ "assets/{}/{}/{}{}.json",
+ reference.kind,
+ reference.name,
+ reference.name,
+ reference.variant.as_ref().unwrap_or(&String::new())
);
// Attempt to load the object definition
@@ -232,7 +238,7 @@
// Keep track of all the colliders in the world
for collider in &object_definition.physics_colliders {
// Get the object's position
- let object_position = reference.position;
+ let object_position = reference.get_world_space_position();
// Convert the collider's position to world space
let world_space_collider = WorldSpaceObjectCollider {
diff --git a/rustdoc/src/game_logic/rendering/utilities/map_render.rs.html b/rustdoc/src/game_logic/rendering/utilities/map_render.rs.html
index 082944d6..6070cb1f 100644
--- a/rustdoc/src/game_logic/rendering/utilities/map_render.rs.html
+++ b/rustdoc/src/game_logic/rendering/utilities/map_render.rs.html
@@ -548,11 +548,13 @@
546
547
548
+549
+550
use std::{collections::HashMap, path::PathBuf, sync::Arc};
use crate::{
asset_manager::{load_texture_from_internal_data, InternalData},
- model::{world_object_package::WorldObjectPackage, world_object::WorldSpaceObjectCollider},
+ model::{world_object::WorldSpaceObjectCollider, world_object_package::WorldObjectPackage},
};
use nalgebra as na;
use raylib::{
@@ -698,11 +700,11 @@
// If there is an object here, let it override the output
for obj_ref in &self.world_objects.object_references {
- if obj_ref.position.x == tile_position.x as f32
- && obj_ref.position.y == tile_position.y as f32
+ if obj_ref.get_world_space_position().x == tile_position.x as f32
+ && obj_ref.get_world_space_position().y == tile_position.y as f32
{
// Get access to the actual object definition
- let object_key = format!("{}:{}", obj_ref.kind, obj_ref.name);
+ let object_key = obj_ref.into_key();
let obj_def = self
.world_objects
.object_definitions
@@ -753,11 +755,11 @@
// If there is an object here, let it override the output
for obj_ref in &self.world_objects.object_references {
- if obj_ref.position.x == tile_position.x as f32
- && obj_ref.position.y == tile_position.y as f32
+ if obj_ref.get_world_space_position().x == tile_position.x as f32
+ && obj_ref.get_world_space_position().y == tile_position.y as f32
{
// Get access to the actual object definition
- let object_key = format!("{}:{}", obj_ref.kind, obj_ref.name);
+ let object_key = obj_ref.into_key();
let obj_def = self
.world_objects
.object_definitions
@@ -814,6 +816,10 @@
Vector2::new(screen_width as f32, screen_height as f32),
camera,
);
+ let player_position = na::Vector2::new(
+ player_position.x,
+ player_position.y * -1.0,
+ );
// Handle each layer from the bottom up
for layer in self.map.layers() {
@@ -869,12 +875,12 @@
// Check if there is an object at this tile
for obj_ref in &self.world_objects.object_references {
- if obj_ref.position.x == sampler_x as f32
- && obj_ref.position.y == sampler_y as f32
+ if obj_ref.get_tile_space_position().x == sampler_x as f32
+ && obj_ref.get_tile_space_position().y == sampler_y as f32
{
// Get access to the actual object definition
- let object_key =
- format!("{}:{}", obj_ref.kind, obj_ref.name);
+ let object_key = obj_ref.into_key();
+ // debug!("Found object: {}", object_key);
let obj_def = self
.world_objects
.object_definitions
@@ -890,10 +896,10 @@
.unwrap();
tex.render_automatic(
draw_handle,
- obj_ref.position - (tex.size() / 2.0),
+ obj_ref.get_world_space_position() - (tex.size() / 2.0),
None,
Some(tex.size() / 2.0),
- Some(obj_ref.rotation_radians.to_degrees()),
+ Some(obj_ref.rotation_degrees),
None,
);
} else {
@@ -902,7 +908,7 @@
.bottom_static_textures
.get_mut(&object_key)
.unwrap();
- let p: Vector2 = obj_ref.position.into();
+ let p: Vector2 = obj_ref.get_world_space_position().into();
let r1 = Rectangle {
x: 0.0,
y: 0.0,
@@ -924,7 +930,7 @@
tex.width as f32 / 2.0,
tex.height as f32 / 2.0,
),
- obj_ref.rotation_radians.to_degrees(),
+ obj_ref.rotation_degrees,
Color::WHITE,
);
}
@@ -937,7 +943,7 @@
obj_def.visualization_radius
{
let player_dist_to_object =
- (obj_ref.position - player_position).norm();
+ (obj_ref.get_world_space_position() - player_position).norm();
// debug!(
// "Player dist to object: {}",
// player_dist_to_object
@@ -955,10 +961,10 @@
.unwrap();
tex.render_automatic(
draw_handle,
- obj_ref.position - (tex.size() / 2.0),
+ obj_ref.get_world_space_position() - (tex.size() / 2.0),
None,
Some(tex.size() / 2.0),
- Some(obj_ref.rotation_radians.to_degrees()),
+ Some(obj_ref.rotation_degrees),
Some(tint),
);
} else {
@@ -967,7 +973,7 @@
.top_static_textures
.get_mut(&object_key)
.unwrap();
- let p: Vector2 = obj_ref.position.into();
+ let p: Vector2 = obj_ref.get_world_space_position().into();
let r1 = Rectangle {
x: 0.0,
y: 0.0,
@@ -989,7 +995,7 @@
tex.width as f32 / 2.0,
tex.height as f32 / 2.0,
),
- obj_ref.rotation_radians.to_degrees(),
+ obj_ref.rotation_degrees,
tint,
);
}
@@ -1050,7 +1056,7 @@
// }
// // Get the object definition
- // let object_key = format!("{}:{}", obj_ref.kind, obj_ref.name);
+ // let object_key = obj_ref.into_key();
// let obj_def = self
// .world_objects
// .object_definitions
@@ -1093,8 +1099,6 @@
// // If we got here, the player is not in a collision zone
// player_velocity
// }
-
-
}