Module game_logic::project_constants [−][src]
Expand description
The rust side of the dist/project-constants.json
file
Module project_constants
Module game_logic::project_constants [−][src]
Expand description
The rust side of the dist/project-constants.json
file
Overview
This file contains a structure defining all data we want to load from the project constants file. Feel free to add anything you’d like here, just make sure the relavant data is also written in the JSON file so the game doesn’t crash. diff --git a/rustdoc/game_logic/project_constants/struct.PlayerConstants.html b/rustdoc/game_logic/project_constants/struct.PlayerConstants.html index 3c106227..0860fa1a 100644 --- a/rustdoc/game_logic/project_constants/struct.PlayerConstants.html +++ b/rustdoc/game_logic/project_constants/struct.PlayerConstants.html @@ -1,13 +1,15 @@
Struct game_logic::project_constants::PlayerConstants [−][src]
pub struct PlayerConstants {
+ Struct PlayerConstants
Struct game_logic::project_constants::PlayerConstants [−][src]
pub struct PlayerConstants {
pub max_velocity: u32,
pub acceleration: u32,
pub deceleration: u32,
+ pub start_size: f32,
}
Expand description
Constants relating to the Player
Fields
max_velocity: u32
Maximum velocity, tiles per second
acceleration: u32
Acceleration, tiles per second per second
deceleration: u32
Deceleration, tiles per second per second
+start_size: f32
Starting size of player in tiles
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
Auto Trait Implementations
impl RefUnwindSafe for PlayerConstants
impl Send for PlayerConstants
impl Sync for PlayerConstants
impl Unpin for PlayerConstants
impl UnwindSafe for PlayerConstants
Blanket Implementations
Gets the TypeId
of self
. Read more
diff --git a/rustdoc/game_logic/project_constants/struct.ProjectConstants.html b/rustdoc/game_logic/project_constants/struct.ProjectConstants.html
index 2aa942ca..32dcc966 100644
--- a/rustdoc/game_logic/project_constants/struct.ProjectConstants.html
+++ b/rustdoc/game_logic/project_constants/struct.ProjectConstants.html
@@ -1,6 +1,6 @@
ProjectConstants in game_logic::project_constants - Rust
Struct game_logic::project_constants::ProjectConstants [−][src]
pub struct ProjectConstants {
+ Struct ProjectConstants
Struct game_logic::project_constants::ProjectConstants [−][src]
pub struct ProjectConstants {
pub game_name: String,
pub base_window_size: (u32, u32),
pub discord: DiscordConstants,
@@ -14,8 +14,8 @@
player: PlayerConstants
The Player constants
target_fps: u32
The target framerate of the game
tile_size: u32
The size of the game tiles
-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
+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
Auto Trait Implementations
impl RefUnwindSafe for ProjectConstants
impl Send for ProjectConstants
impl Sync for ProjectConstants
impl Unpin for ProjectConstants
impl UnwindSafe for ProjectConstants
Blanket Implementations
Mutably borrows from an owned value. Read more
diff --git a/rustdoc/game_logic/scenes/player_interaction/index.html b/rustdoc/game_logic/scenes/player_interaction/index.html
index 8f0d1fc9..3b2bebe4 100644
--- a/rustdoc/game_logic/scenes/player_interaction/index.html
+++ b/rustdoc/game_logic/scenes/player_interaction/index.html
@@ -1,6 +1,6 @@
game_logic::scenes::player_interaction - Rust
Module game_logic::scenes::player_interaction [−][src]
Expand description
This scene encompasses all of the game where the player can walk around.
+ Module player_interaction
Module game_logic::scenes::player_interaction [−][src]
Expand description
This scene encompasses all of the game where the player can walk around.
Structs
\ No newline at end of file
diff --git a/rustdoc/game_logic/scenes/player_interaction/struct.PlayableScene.html b/rustdoc/game_logic/scenes/player_interaction/struct.PlayableScene.html
index 6c44e707..e74431aa 100644
--- a/rustdoc/game_logic/scenes/player_interaction/struct.PlayableScene.html
+++ b/rustdoc/game_logic/scenes/player_interaction/struct.PlayableScene.html
@@ -1,14 +1,14 @@
PlayableScene in game_logic::scenes::player_interaction - Rust
Struct game_logic::scenes::player_interaction::PlayableScene [−][src]
pub struct PlayableScene {
+ Struct PlayableScene
Struct game_logic::scenes::player_interaction::PlayableScene [−][src]
pub struct PlayableScene {
has_updated_discord_rpc: bool,
player: Player,
world_map: MapRenderer,
camera: Camera2D,
last_update: SystemTime,
-}
Fields
has_updated_discord_rpc: bool
player: Player
world_map: MapRenderer
camera: Camera2D
last_update: SystemTime
Implementations
pub fn new(
raylib_handle: &mut RaylibHandle,
thread: &RaylibThread,
constants: &ProjectConstants
) -> Self
Construct a new PlayableScene
-pub async fn render_frame(
&mut self,
raylib: &mut RaylibHandle,
rl_thread: &RaylibThread,
discord: &Sender<DiscordRpcSignal>,
global_resources: &GlobalResources,
constants: &ProjectConstants
)
Handler for each frame
-Trait Implementations
Formats the value using the given formatter. Read more
+}Fields
has_updated_discord_rpc: bool
player: Player
world_map: MapRenderer
camera: Camera2D
last_update: SystemTime
Implementations
pub fn new(
raylib_handle: &mut RaylibHandle,
thread: &RaylibThread,
constants: &ProjectConstants
) -> Self
Construct a new PlayableScene
+pub async fn render_frame(
&mut self,
raylib: &mut RaylibHandle,
rl_thread: &RaylibThread,
discord: &Sender<DiscordRpcSignal>,
global_resources: &GlobalResources,
constants: &ProjectConstants
)
Handler for each frame
+Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for PlayableScene
impl Send for PlayableScene
impl Sync for PlayableScene
impl Unpin for PlayableScene
impl UnwindSafe for PlayableScene
Blanket Implementations
Mutably borrows from an owned value. Read more
diff --git a/rustdoc/search-index.js b/rustdoc/search-index.js
index 15abf59a..0c74cd03 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,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,11,11,11,11,11,11,11,11,11,11,11,0,3,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,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,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,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,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,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,3,11,11,11,11,11,11,11,0,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,3,11,11,12,11,11,11,12,11,11,12,11,12,11,11,11,11,11,11,11,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_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","fmt","from","from_subset","into","is_in_subset","load","to_subset","to_subset_unchecked","try_from","try_into","type_id","player","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","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","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","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","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_or_try_insert_tileset_with","get_tileset","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","0","0","SceneRenderDelegate","borrow","borrow_mut","drop","from","from_subset","into","is_in_subset","main_menu","menu_control_signal","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","PlayableScene","borrow","borrow_mut","camera","fmt","from","from_subset","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_physics","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::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.","","","","","","","","","","","","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","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","","","","","","","","","","","","","","","","","","","","","","Load the tileset. First attempts to pull from an in-RAM …","","","","","","","","","","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,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,0,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,0,0,0,25,26,26,27,26,25,27,26,25,27,25,26,25,27,27,26,25,27,26,25,27,26,25,27,27,26,25,27,26,25,27,25,27,26,27,27,26,25,27,26,25,27,26,25,27,26,25,27,26,25,27,0,0,0,0,28,29,30,31,30,32,0,32,0,0,32,0,32,0,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,29,31,31,29,28,30,32,31,29,28,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,32,32,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,33,34,35,36,0,0,0,0,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,0,0,0,0,0,0,39,39,39,39,39,40,41,42,39,40,41,42,40,41,40,41,40,41,39,39,40,41,42,41,41,39,39,39,39,40,41,42,39,40,41,42,42,40,39,40,40,41,42,39,40,41,42,42,42,42,42,41,41,39,42,42,42,42,40,41,39,39,40,41,42,39,40,41,42,39,40,41,42,39,40,41,42,39,40,41,42,40,40,40,43,44,45,46,47,0,0,0,47,47,48,49,47,48,49,47,47,48,49,47,47,48,49,47,48,49,48,48,48,47,48,49,47,48,49,49,48,49,49,49,49,47,49,48,47,47,48,49,47,48,49,47,48,49,47,48,49,47,48,49,50,51,0,52,52,52,52,52,52,52,0,52,52,0,52,52,52,52,0,52,52,52,52,52,53,53,53,53,0,0,53,53,53,54,53,54,53,53,53,54,53,54,53,54,54,53,54,53,54,54,54,54,54,54,53,53,54,53,54,53,54,53,54,53,54,0,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,0,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56],"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]],[[["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]]],[[["elapsed",3]]],[[]],[[["recverror",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,[[]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],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,[[]],[[]],[[],["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,[[],["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,[[],["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]]]]],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,[[["internaljsonloaderror",4]]],[[]],[[["resourceloaderror",4]]],[[["error",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["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]]]],[[["raylibdrawhandle",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]]]]],[[["raylibdrawhandle",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,[[],["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]]],[[]],[[]],[[]],[[]],[[]],[[]],[[["resourcepathbuf",6]],["result",4,[["arc",3,[["tileset",3]]]]]],[[],["option",4,[["arc",3,[["tileset",3]]]]]],null,[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,[[]],[[["str",15],["raylibhandle",3],["raylibthread",3]],["result",4,[["maprendererror",4]]]],[[["raylibmode2d",3],["camera2d",3],["bool",15]]],[[["vector2",6,[["f32",15]]]],["f32",15]],[[["vector2",6,[["f32",15]]]],["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,[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],null,null,[[["raylibhandle",3],["raylibthread",3],["projectconstants",3]]],null,[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",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]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",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,[[["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[],["bool",15]],null,[[["raylibhandle",3],["raylibthread",3],["projectconstants",3]]],null,[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["raylibhandle",3],["projectconstants",3]]],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,"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,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,11,11,11,11,11,11,11,11,11,11,11,0,3,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,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,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,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,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,3,11,11,11,11,11,11,11,0,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,3,11,11,12,11,11,11,11,11,12,11,11,12,11,12,11,11,11,11,11,11,11,11,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_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","fmt","from","from_subset","into","is_in_subset","load","to_subset","to_subset_unchecked","try_from","try_into","type_id","player","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","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","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","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_or_try_insert_tileset_with","get_tileset","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","0","0","SceneRenderDelegate","borrow","borrow_mut","drop","from","from_subset","into","is_in_subset","main_menu","menu_control_signal","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","PlayableScene","borrow","borrow_mut","camera","draw_ui","draw_world","fmt","from","from_subset","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_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::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.","","","","","","","","","","","","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","","","","","","","","","","","","","","","","","","","","","","Load the tileset. First attempts to pull from an in-RAM …","","","","","","","","","","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,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,0,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,0,0,0,25,26,26,27,26,25,27,26,25,27,25,26,25,27,27,26,25,27,26,25,27,26,25,27,27,26,25,27,26,25,27,25,27,25,26,27,27,26,25,27,26,25,27,26,25,27,26,25,27,26,25,27,0,0,0,0,28,29,30,31,30,32,0,32,0,0,32,0,32,0,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,29,31,31,29,28,30,32,31,29,28,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,32,32,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,31,29,28,30,32,33,34,35,36,0,0,0,0,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,0,0,0,0,0,0,39,39,39,39,39,40,41,42,39,40,41,42,40,41,40,41,40,41,39,39,40,41,42,41,41,39,39,39,39,40,41,42,39,40,41,42,42,40,39,40,40,41,42,39,40,41,42,42,42,42,42,41,41,39,42,42,42,42,40,41,39,39,40,41,42,39,40,41,42,39,40,41,42,39,40,41,42,39,40,41,42,40,40,40,43,44,45,46,47,0,0,0,47,47,48,49,47,48,49,47,47,48,49,47,47,48,49,47,48,49,48,48,48,47,48,49,47,48,49,49,48,49,49,49,49,47,49,48,47,47,48,49,47,48,49,47,48,49,47,48,49,47,48,49,50,51,0,52,52,52,52,52,52,52,0,52,52,0,52,52,52,52,0,52,52,52,52,52,53,53,53,53,0,0,53,53,53,54,53,54,53,53,53,54,53,54,53,54,54,53,54,53,54,54,54,54,54,54,53,53,54,53,54,53,54,53,54,53,54,0,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,0,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56],"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]],[[["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]]],[[]],[[["error",4]]],[[["recverror",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,[[]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[],["bool",15]],[[["raylibhandle",3],["raylibthread",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],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,[[]],[[]],[[],["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,[[],["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]]]]],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,[[["internaljsonloaderror",4]]],[[["resourceloaderror",4]]],[[]],[[["error",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["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]]]],[[["raylibdrawhandle",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]]]]],[[["raylibdrawhandle",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,[[],["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]]],[[]],[[]],[[]],[[]],[[]],[[]],[[["resourcepathbuf",6]],["result",4,[["arc",3,[["tileset",3]]]]]],[[],["option",4,[["arc",3,[["tileset",3]]]]]],null,[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,[[]],[[["str",15],["raylibhandle",3],["raylibthread",3]],["result",4,[["maprendererror",4]]]],[[["raylibmode2d",3],["camera2d",3],["bool",15]]],[[["vector2",6,[["f32",15]]]],["f32",15]],[[["vector2",6,[["f32",15]]]],["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,[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],null,null,[[["raylibhandle",3],["raylibthread",3],["projectconstants",3]]],null,[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",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]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3]]],[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",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,[[["raylibdrawhandle",3],["projectconstants",3]]],[[["raylibdrawhandle",3],["projectconstants",3]]],[[["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[],["bool",15]],null,[[["raylibhandle",3],["raylibthread",3],["projectconstants",3]]],null,[[["raylibhandle",3],["raylibthread",3],["sender",3],["globalresources",3],["projectconstants",3]]],[[],["option",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["raylibhandle",3]]],[[["raylibhandle",3],["projectconstants",3]]],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,"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/project_constants.rs.html b/rustdoc/src/game_logic/project_constants.rs.html
index 07af7e7c..3dd73bbf 100644
--- a/rustdoc/src/game_logic/project_constants.rs.html
+++ b/rustdoc/src/game_logic/project_constants.rs.html
@@ -65,6 +65,9 @@
63
64
65
+66
+67
+68
//! The rust side of the `dist/project-constants.json` file
//!
//! ## Overview
@@ -107,6 +110,9 @@
/// Deceleration, tiles per second per second
pub deceleration: u32,
+
+ /// Starting size of player in tiles
+ pub start_size: f32,
}
/// This structure is filled with the contents of `dist/project-constants.json` at runtime
diff --git a/rustdoc/src/game_logic/scenes/player_interaction.rs.html b/rustdoc/src/game_logic/scenes/player_interaction.rs.html
index 99706269..f74c19a8 100644
--- a/rustdoc/src/game_logic/scenes/player_interaction.rs.html
+++ b/rustdoc/src/game_logic/scenes/player_interaction.rs.html
@@ -160,6 +160,33 @@
158
159
160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
//! This scene encompasses all of the game where the player can walk around.
use nalgebra as na;
@@ -243,33 +270,48 @@
// Clear the screen
draw.clear_background(Color::WHITE);
+
+ self.draw_world(&mut draw, constants);
- {
- // Begin camera mode
- let mut ctx2d = draw.begin_mode2D(self.camera);
+ self.draw_ui(&mut draw, constants);
+ }
- // Render the map
- self.world_map.render_map(&mut ctx2d, &self.camera, true);
- }
+ pub fn draw_world(
+ &mut self,
+ draw: &mut RaylibDrawHandle,
+ constants: &ProjectConstants,
+ ) {
+ // Begin camera mode
+ let mut ctx2d = draw.begin_mode2D(self.camera);
- for i in 0..100 {
- for j in 0..100 {
- draw.draw_rectangle(
- constants.tile_size as i32 * (i * 2),
- constants.tile_size as i32 * (j * 2) * -1,
- constants.tile_size as i32,
- constants.tile_size as i32,
- Color::RED
- )
- }
- }
+ // Render the map
+ self.world_map.render_map(&mut ctx2d, &self.camera, true);
+
+ let player_size = (constants.tile_size as f32 * constants.player.start_size * self.player.size) as i32;
+ ctx2d.draw_rectangle(
+ self.player.position[0] as i32 - player_size / 2,
+ self.player.position[1] as i32 * -1 - player_size / 2,
+ player_size,
+ player_size,
+ Color::LIGHTBLUE
+ );
+ }
+
+ pub fn draw_ui(
+ &mut self,
+ draw: &mut RaylibDrawHandle,
+ constants: &ProjectConstants,
+ ) {
draw.draw_rectangle(
- self.player.position[0] as i32,
- self.player.position[1] as i32 * -1,
- (constants.tile_size as f32 * self.player.size) as i32,
- (constants.tile_size as f32 * self.player.size) as i32,
- Color::GREEN
+ draw.get_screen_width() / 2 - 225, 0,
+ 450, 40,
+ Color::WHITE
+ );
+ draw.draw_text(
+ "Unregistered HyperCam 2",
+ draw.get_screen_width() / 2 - 215, 0,
+ 32, Color::BLACK
);
}
@@ -305,7 +347,7 @@
* constants.player.deceleration as f32
* constants.tile_size as f32
* delta_time;
- if player.velocity.magnitude() < 0.01 {
+ if player.velocity.magnitude() < 1.0 {
player.velocity.set_magnitude(0.0);
}
}
@@ -316,6 +358,18 @@
}
player.position += &player.velocity * delta_time;
+
+ self.update_camera(raylib);
+ }
+
+ pub fn update_camera(
+ &mut self,
+ raylib: & raylib::RaylibHandle,
+ ) {
+ self.camera.target = self.player.position.into();
+ self.camera.target.y *= -1.0;
+ self.camera.offset.x = raylib.get_screen_width() as f32 / 2.0;
+ self.camera.offset.y = raylib.get_screen_height() as f32 / 2.0;
}
}