diff --git a/rustdoc/game_logic/all.html b/rustdoc/game_logic/all.html index da479aa5..72a370bd 100644 --- a/rustdoc/game_logic/all.html +++ b/rustdoc/game_logic/all.html @@ -2,5 +2,5 @@

List of all items[] -

Structs

Enums

Functions

Typedefs

Constants

+

Structs

Enums

Functions

Typedefs

Constants

\ No newline at end of file diff --git a/rustdoc/game_logic/coord_convert/fn.game_to_tiled.html b/rustdoc/game_logic/coord_convert/fn.game_to_tiled.html new file mode 100644 index 00000000..d6cb3e57 --- /dev/null +++ b/rustdoc/game_logic/coord_convert/fn.game_to_tiled.html @@ -0,0 +1,5 @@ +game_to_tiled in game_logic::coord_convert - Rust +

Function game_logic::coord_convert::game_to_tiled[][src]

pub fn game_to_tiled(vec: Vector2<f32>) -> Vector2<f32>
Expand description

Converts from the game coordinate system to the tiled coordinate system.

+
+ \ No newline at end of file diff --git a/rustdoc/game_logic/coord_convert/fn.tiled_to_game.html b/rustdoc/game_logic/coord_convert/fn.tiled_to_game.html new file mode 100644 index 00000000..8a089395 --- /dev/null +++ b/rustdoc/game_logic/coord_convert/fn.tiled_to_game.html @@ -0,0 +1,5 @@ +tiled_to_game in game_logic::coord_convert - Rust +

Function game_logic::coord_convert::tiled_to_game[][src]

pub fn tiled_to_game(vec: Vector2<f32>) -> Vector2<f32>
Expand description

Converts from the tiled coordinate system to the game coordinate system.

+
+ \ No newline at end of file diff --git a/rustdoc/game_logic/coord_convert/index.html b/rustdoc/game_logic/coord_convert/index.html new file mode 100644 index 00000000..5d7c8dfd --- /dev/null +++ b/rustdoc/game_logic/coord_convert/index.html @@ -0,0 +1,7 @@ +game_logic::coord_convert - Rust +

Module game_logic::coord_convert[][src]

Functions

+

Converts from the game coordinate system to the tiled coordinate system.

+

Converts from the tiled coordinate system to the game coordinate system.

+
+ \ No newline at end of file diff --git a/rustdoc/game_logic/coord_convert/sidebar-items.js b/rustdoc/game_logic/coord_convert/sidebar-items.js new file mode 100644 index 00000000..f7d78076 --- /dev/null +++ b/rustdoc/game_logic/coord_convert/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({"fn":[["game_to_tiled","Converts from the game coordinate system to the tiled coordinate system."],["tiled_to_game","Converts from the tiled coordinate system to the game coordinate system."]]}); \ No newline at end of file diff --git a/rustdoc/game_logic/fn.entrypoint.html b/rustdoc/game_logic/fn.entrypoint.html index 889b1696..caff2e1f 100644 --- a/rustdoc/game_logic/fn.entrypoint.html +++ b/rustdoc/game_logic/fn.entrypoint.html @@ -1,6 +1,6 @@ entrypoint in game_logic - Rust

Function game_logic::entrypoint[][src]

pub async fn entrypoint(force_recreate_savefiles: bool)
Expand description

This is the game logic entrypoint. Despite being async, +

Function game_logic::entrypoint[][src]

pub async fn entrypoint(force_recreate_savefiles: bool)
Expand description

This is the game logic entrypoint. Despite being async, this is expected to block the main thread for rendering and stuff.

Setting force_recreate_savefiles will cause the game to recreate its settings and savestate files.

diff --git a/rustdoc/game_logic/index.html b/rustdoc/game_logic/index.html index 376229c8..9c4a2097 100644 --- a/rustdoc/game_logic/index.html +++ b/rustdoc/game_logic/index.html @@ -1,6 +1,6 @@ game_logic - Rust

Crate game_logic[][src]

Expand description

This file is the main entry point for the game logic.

+

Crate game_logic

Version 0.1.0

Crate game_logic[][src]

Expand description

This file is the main entry point for the game logic.

Overview

The main function in this module is entrypoint(). This is called from desktop_wrapper to start the game.

This module also includes all the other sub-modules of the game. If you are viewing this document from the web, click on the modules below to see more info.

@@ -17,7 +17,7 @@ Most of the game logic is expected to live in src/scenes and

Modules

Embedded asset management.

-

Interfacing with Discord

+

Interfacing with Discord

Global resources

This module contains the datastructure backing persistent data.

The rust side of the dist/project-constants.json file

diff --git a/rustdoc/game_logic/rendering/utilities/index.html b/rustdoc/game_logic/rendering/utilities/index.html index 7fec3155..20632815 100644 --- a/rustdoc/game_logic/rendering/utilities/index.html +++ b/rustdoc/game_logic/rendering/utilities/index.html @@ -1,6 +1,6 @@ game_logic::rendering::utilities - Rust

Module game_logic::rendering::utilities[][src]

Modules

+

Module utilities

Module game_logic::rendering::utilities[][src]

Modules

This module handles the code for rendering framerate-locked animations from textures

-
+
\ No newline at end of file diff --git a/rustdoc/game_logic/rendering/utilities/map_render/enum.MapRenderError.html b/rustdoc/game_logic/rendering/utilities/map_render/enum.MapRenderError.html new file mode 100644 index 00000000..25765979 --- /dev/null +++ b/rustdoc/game_logic/rendering/utilities/map_render/enum.MapRenderError.html @@ -0,0 +1,39 @@ +MapRenderError in game_logic::rendering::utilities::map_render - Rust +

Enum game_logic::rendering::utilities::map_render::MapRenderError[][src]

pub enum MapRenderError {
+    AssetNotFound(String),
+    TiledError(Error),
+}
Expand description

Possible errors generated by the map loading process

+

Variants

AssetNotFound(String)

Tuple Fields

0: String

TiledError(Error)

Tuple Fields

0: Error

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace #53487)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Performs the conversion.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Performs the conversion.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Performs the conversion.

+

Should always be Self

+

The inverse inclusion map: attempts to construct self from the equivalent element of its +superset. Read more

+

Checks if self is actually part of its subset T (and can be converted to it).

+

Use with care! Same as self.to_subset but without any property checks. Always succeeds.

+

The inclusion map: converts self to the equivalent element of its superset.

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
+ \ No newline at end of file diff --git a/rustdoc/game_logic/rendering/utilities/map_render/index.html b/rustdoc/game_logic/rendering/utilities/map_render/index.html new file mode 100644 index 00000000..227cb3ee --- /dev/null +++ b/rustdoc/game_logic/rendering/utilities/map_render/index.html @@ -0,0 +1,7 @@ +game_logic::rendering::utilities::map_render - Rust +

Module game_logic::rendering::utilities::map_render[][src]

Structs

+

Enums

+

Possible errors generated by the map loading process

+
+ \ No newline at end of file diff --git a/rustdoc/game_logic/rendering/utilities/map_render/sidebar-items.js b/rustdoc/game_logic/rendering/utilities/map_render/sidebar-items.js new file mode 100644 index 00000000..83e31bc3 --- /dev/null +++ b/rustdoc/game_logic/rendering/utilities/map_render/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({"enum":[["MapRenderError","Possible errors generated by the map loading process"]],"struct":[["MapRenderer",""],["ProgramDataTileCache",""]]}); \ No newline at end of file diff --git a/rustdoc/game_logic/rendering/utilities/map_render/struct.MapRenderer.html b/rustdoc/game_logic/rendering/utilities/map_render/struct.MapRenderer.html new file mode 100644 index 00000000..f37b9202 --- /dev/null +++ b/rustdoc/game_logic/rendering/utilities/map_render/struct.MapRenderer.html @@ -0,0 +1,32 @@ +MapRenderer in game_logic::rendering::utilities::map_render - Rust +

Struct game_logic::rendering::utilities::map_render::MapRenderer[][src]

pub struct MapRenderer {
+    map: Map,
+    tile_textures: HashMap<PathBuf, Texture2D>,
+}

Fields

map: Maptile_textures: HashMap<PathBuf, Texture2D>

Implementations

Construct a new MapRenderer.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Performs the conversion.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Performs the conversion.

+

Should always be Self

+

The inverse inclusion map: attempts to construct self from the equivalent element of its +superset. Read more

+

Checks if self is actually part of its subset T (and can be converted to it).

+

Use with care! Same as self.to_subset but without any property checks. Always succeeds.

+

The inclusion map: converts self to the equivalent element of its superset.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
+ \ No newline at end of file diff --git a/rustdoc/game_logic/rendering/utilities/map_render/struct.ProgramDataTileCache.html b/rustdoc/game_logic/rendering/utilities/map_render/struct.ProgramDataTileCache.html new file mode 100644 index 00000000..a47e91bb --- /dev/null +++ b/rustdoc/game_logic/rendering/utilities/map_render/struct.ProgramDataTileCache.html @@ -0,0 +1,34 @@ +ProgramDataTileCache in game_logic::rendering::utilities::map_render - Rust +

Struct game_logic::rendering::utilities::map_render::ProgramDataTileCache[][src]

struct ProgramDataTileCache {
+    tilesets: HashMap<ResourcePathBuf, Arc<Tileset>>,
+    internal_loader: Loader,
+}

Fields

tilesets: HashMap<ResourcePathBuf, Arc<Tileset>>internal_loader: Loader

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

+

Load the tileset. First attempts to pull from an in-RAM cache, otherwise attempts to load from disk.

+

Returns the tileset mapped to path if it exists, otherwise calls f and, depending on its +result, it will: Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Performs the conversion.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Performs the conversion.

+

Should always be Self

+

The inverse inclusion map: attempts to construct self from the equivalent element of its +superset. Read more

+

Checks if self is actually part of its subset T (and can be converted to it).

+

Use with care! Same as self.to_subset but without any property checks. Always succeeds.

+

The inclusion map: converts self to the equivalent element of its superset.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
+ \ No newline at end of file diff --git a/rustdoc/game_logic/rendering/utilities/sidebar-items.js b/rustdoc/game_logic/rendering/utilities/sidebar-items.js index b653f610..7986a163 100644 --- a/rustdoc/game_logic/rendering/utilities/sidebar-items.js +++ b/rustdoc/game_logic/rendering/utilities/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"mod":[["anim_texture","This module handles the code for rendering framerate-locked animations from textures"]]}); \ No newline at end of file +initSidebarItems({"mod":[["anim_texture","This module handles the code for rendering framerate-locked animations from textures"],["map_render",""]]}); \ No newline at end of file diff --git a/rustdoc/game_logic/scenes/index.html b/rustdoc/game_logic/scenes/index.html index 60a97449..47a04c50 100644 --- a/rustdoc/game_logic/scenes/index.html +++ b/rustdoc/game_logic/scenes/index.html @@ -1,6 +1,6 @@ game_logic::scenes - Rust

Module game_logic::scenes[][src]

Expand description

The render code for various scenes

+

Module scenes

Module game_logic::scenes[][src]

Expand description

The render code for various scenes

Overview

This will probably become a messy module over time. Stick your rendering code here

Modules

diff --git a/rustdoc/game_logic/scenes/struct.SceneRenderDelegate.html b/rustdoc/game_logic/scenes/struct.SceneRenderDelegate.html index 24e99693..f2b935b5 100644 --- a/rustdoc/game_logic/scenes/struct.SceneRenderDelegate.html +++ b/rustdoc/game_logic/scenes/struct.SceneRenderDelegate.html @@ -7,10 +7,10 @@ scene_main_menu: MainMenu, }
Expand description

Delegate for handling rendering. This is a struct to allow for stateful data (like sub-screens) to be set up

-

Fields

menu_control_signal: MenuStateSignalscene_test_fox: TestFoxScenescene_playable: PlayableScenescene_main_menu: MainMenu

Implementations

This is called when the game first loads

-

This is called every frame once the game has started.

+

Fields

menu_control_signal: MenuStateSignalscene_test_fox: TestFoxScenescene_playable: PlayableScenescene_main_menu: MainMenu

Implementations

This is called when the game first loads

+

This is called every frame once the game has started.

Keep in mind everything you do here will block the main thread (no loading files plz)

-

Trait Implementations

If you need anything to happen when the game closes, stick it here.

+

Trait Implementations

If you need anything to happen when the game closes, stick it here.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/game_logic/scenes/test_fox/index.html b/rustdoc/game_logic/scenes/test_fox/index.html index f43653be..98c39000 100644 --- a/rustdoc/game_logic/scenes/test_fox/index.html +++ b/rustdoc/game_logic/scenes/test_fox/index.html @@ -1,6 +1,6 @@ game_logic::scenes::test_fox - Rust

Module game_logic::scenes::test_fox[][src]

Expand description

This “scene” is used only for testing animation and resource loading +

Module test_fox

Module game_logic::scenes::test_fox[][src]

Expand description

This “scene” is used only for testing animation and resource loading It should be removed once the game is being worked on

Structs

diff --git a/rustdoc/game_logic/scenes/test_fox/struct.TestFoxScene.html b/rustdoc/game_logic/scenes/test_fox/struct.TestFoxScene.html index 211c53a2..ef621647 100644 --- a/rustdoc/game_logic/scenes/test_fox/struct.TestFoxScene.html +++ b/rustdoc/game_logic/scenes/test_fox/struct.TestFoxScene.html @@ -1,10 +1,12 @@ TestFoxScene in game_logic::scenes::test_fox - Rust

Struct game_logic::scenes::test_fox::TestFoxScene[][src]

pub struct TestFoxScene {
+        

Struct TestFoxScene

Struct game_logic::scenes::test_fox::TestFoxScene[][src]

pub struct TestFoxScene {
     fox_animation: AnimatedTexture,
-}

Fields

fox_animation: AnimatedTexture

Implementations

Construct a new TestFoxScene

-

Handler for each frame

-

Trait Implementations

Formats the value using the given formatter. Read more

+ world_map: MapRenderer, + camera: Camera2D, +}

Fields

fox_animation: AnimatedTextureworld_map: MapRenderercamera: Camera2D

Implementations

Construct a new TestFoxScene

+

Handler for each frame

+

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/game_logic/sidebar-items.js b/rustdoc/game_logic/sidebar-items.js index 42ecd719..d9a1aea2 100644 --- a/rustdoc/game_logic/sidebar-items.js +++ b/rustdoc/game_logic/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["entrypoint","This is the game logic entrypoint. Despite being async, this is expected to block the main thread for rendering and stuff."]],"mod":[["asset_manager","Embedded asset management."],["discord","Interfacing with Discord"],["global_resource_package","Global resources"],["model",""],["persistent","This module contains the datastructure backing persistent data."],["project_constants","The rust side of the `dist/project-constants.json` file"],["rendering","This module contains lower level rendering logic."],["scenes","The render code for various scenes"]]}); \ No newline at end of file +initSidebarItems({"fn":[["entrypoint","This is the game logic entrypoint. Despite being async, this is expected to block the main thread for rendering and stuff."]],"mod":[["asset_manager","Embedded asset management."],["coord_convert",""],["discord","Interfacing with Discord"],["global_resource_package","Global resources"],["model",""],["persistent","This module contains the datastructure backing persistent data."],["project_constants","The rust side of the `dist/project-constants.json` file"],["rendering","This module contains lower level rendering logic."],["scenes","The render code for various scenes"]]}); \ No newline at end of file diff --git a/rustdoc/implementors/core/convert/trait.From.js b/rustdoc/implementors/core/convert/trait.From.js index b4d97c50..3f4ba119 100644 --- a/rustdoc/implementors/core/convert/trait.From.js +++ b/rustdoc/implementors/core/convert/trait.From.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl From<Error> for InternalJsonLoadError","synthetic":false,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl From<Error> for ResourceLoadError","synthetic":false,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl From<Error> for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl From<RecvError> for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl From<Elapsed> for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl From<InternalJsonLoadError> for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl From<Error> for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl From<ResourceLoadError> for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]}]; +implementors["game_logic"] = [{"text":"impl From<Error> for InternalJsonLoadError","synthetic":false,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl From<Error> for ResourceLoadError","synthetic":false,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl From<Error> for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl From<RecvError> for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl From<Elapsed> for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl From<InternalJsonLoadError> for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl From<Error> for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl From<ResourceLoadError> for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl From<Error> for MapRenderError","synthetic":false,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/core/fmt/trait.Debug.js b/rustdoc/implementors/core/fmt/trait.Debug.js index 6c62f2d9..af9fdae5 100644 --- a/rustdoc/implementors/core/fmt/trait.Debug.js +++ b/rustdoc/implementors/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl Debug for InternalJsonLoadError","synthetic":false,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Debug for KnownSpriteType","synthetic":false,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Debug for ResourceLoadError","synthetic":false,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Debug for DiscordRpcSignal","synthetic":false,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Debug for StatefulDiscordRpcSignalHandler","synthetic":false,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Debug for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Debug for GlobalResources","synthetic":false,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Debug for PersistentGameSettings","synthetic":false,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Debug for GameSaveState","synthetic":false,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Debug for DiscordConstants","synthetic":false,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Debug for ProjectConstants","synthetic":false,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Debug for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Debug for FrameTextureDescriptor","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Debug for AnimatedTextureMetadata","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Debug for AnimatedTexture","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Debug for SmFailureScreen","synthetic":false,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Debug for PreloadState","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Debug for LoadingState","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Debug for RenderGameState","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Debug for SmFailedState","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Debug for RenderBackendStates","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Debug for MenuStateSignal","synthetic":false,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Debug for MainMenu","synthetic":false,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Debug for PlayableScene","synthetic":false,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Debug for TestFoxScene","synthetic":false,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Debug for Player","synthetic":false,"types":["game_logic::model::player::Player"]}]; +implementors["game_logic"] = [{"text":"impl Debug for InternalJsonLoadError","synthetic":false,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Debug for KnownSpriteType","synthetic":false,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Debug for ResourceLoadError","synthetic":false,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Debug for DiscordRpcSignal","synthetic":false,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Debug for StatefulDiscordRpcSignalHandler","synthetic":false,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Debug for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Debug for GlobalResources","synthetic":false,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Debug for PersistentGameSettings","synthetic":false,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Debug for GameSaveState","synthetic":false,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Debug for DiscordConstants","synthetic":false,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Debug for ProjectConstants","synthetic":false,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Debug for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Debug for FrameTextureDescriptor","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Debug for AnimatedTextureMetadata","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Debug for AnimatedTexture","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Debug for MapRenderError","synthetic":false,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]},{"text":"impl Debug for ProgramDataTileCache","synthetic":false,"types":["game_logic::rendering::utilities::map_render::ProgramDataTileCache"]},{"text":"impl Debug for MapRenderer","synthetic":false,"types":["game_logic::rendering::utilities::map_render::MapRenderer"]},{"text":"impl Debug for SmFailureScreen","synthetic":false,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Debug for PreloadState","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Debug for LoadingState","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Debug for RenderGameState","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Debug for SmFailedState","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Debug for RenderBackendStates","synthetic":false,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Debug for MenuStateSignal","synthetic":false,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Debug for MainMenu","synthetic":false,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Debug for PlayableScene","synthetic":false,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Debug for TestFoxScene","synthetic":false,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Debug for Player","synthetic":false,"types":["game_logic::model::player::Player"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/core/fmt/trait.Display.js b/rustdoc/implementors/core/fmt/trait.Display.js index 87172993..a288cb3f 100644 --- a/rustdoc/implementors/core/fmt/trait.Display.js +++ b/rustdoc/implementors/core/fmt/trait.Display.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl Display for InternalJsonLoadError","synthetic":false,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Display for ResourceLoadError","synthetic":false,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Display for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Display for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]}]; +implementors["game_logic"] = [{"text":"impl Display for InternalJsonLoadError","synthetic":false,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Display for ResourceLoadError","synthetic":false,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Display for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Display for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Display for MapRenderError","synthetic":false,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/core/marker/trait.Freeze.js b/rustdoc/implementors/core/marker/trait.Freeze.js index e90681a8..5db688da 100644 --- a/rustdoc/implementors/core/marker/trait.Freeze.js +++ b/rustdoc/implementors/core/marker/trait.Freeze.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl Freeze for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl Freeze for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Freeze for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Freeze for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Freeze for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Freeze for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Freeze for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl !Freeze for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl !Freeze for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl Freeze for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Freeze for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Freeze for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Freeze for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Freeze for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Freeze for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Freeze for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Freeze for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Freeze for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Freeze for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl Freeze for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Freeze for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Freeze for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Freeze for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Freeze for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Freeze for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Freeze for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Freeze for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Freeze for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Freeze for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Freeze for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl Freeze for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; +implementors["game_logic"] = [{"text":"impl Freeze for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl Freeze for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Freeze for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Freeze for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Freeze for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Freeze for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Freeze for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl !Freeze for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl !Freeze for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl Freeze for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Freeze for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Freeze for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Freeze for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Freeze for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Freeze for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Freeze for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Freeze for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Freeze for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Freeze for MapRenderError","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]},{"text":"impl Freeze for ProgramDataTileCache","synthetic":true,"types":["game_logic::rendering::utilities::map_render::ProgramDataTileCache"]},{"text":"impl Freeze for MapRenderer","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderer"]},{"text":"impl Freeze for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl Freeze for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Freeze for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Freeze for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Freeze for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Freeze for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Freeze for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Freeze for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Freeze for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Freeze for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Freeze for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Freeze for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl Freeze for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/core/marker/trait.Send.js b/rustdoc/implementors/core/marker/trait.Send.js index 5d1ef116..3199ef09 100644 --- a/rustdoc/implementors/core/marker/trait.Send.js +++ b/rustdoc/implementors/core/marker/trait.Send.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl Send for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl Send for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Send for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Send for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Send for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Send for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Send for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Send for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl Send for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl Send for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Send for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Send for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Send for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Send for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Send for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Send for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Send for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Send for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Send for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl Send for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Send for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Send for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Send for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Send for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Send for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Send for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Send for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Send for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Send for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Send for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl Send for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; +implementors["game_logic"] = [{"text":"impl Send for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl Send for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Send for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Send for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Send for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Send for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Send for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Send for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl Send for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl Send for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Send for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Send for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Send for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Send for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Send for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Send for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Send for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Send for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Send for MapRenderError","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]},{"text":"impl Send for ProgramDataTileCache","synthetic":true,"types":["game_logic::rendering::utilities::map_render::ProgramDataTileCache"]},{"text":"impl Send for MapRenderer","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderer"]},{"text":"impl Send for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl Send for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Send for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Send for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Send for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Send for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Send for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Send for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Send for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Send for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Send for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Send for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl Send for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/core/marker/trait.Sync.js b/rustdoc/implementors/core/marker/trait.Sync.js index e02cd8c9..09a62a92 100644 --- a/rustdoc/implementors/core/marker/trait.Sync.js +++ b/rustdoc/implementors/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl Sync for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl Sync for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Sync for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Sync for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Sync for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Sync for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Sync for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Sync for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl Sync for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl Sync for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Sync for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Sync for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Sync for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Sync for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Sync for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Sync for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Sync for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Sync for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Sync for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl Sync for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Sync for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Sync for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Sync for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Sync for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Sync for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Sync for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Sync for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Sync for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Sync for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Sync for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl Sync for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; +implementors["game_logic"] = [{"text":"impl Sync for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl Sync for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Sync for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Sync for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Sync for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Sync for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Sync for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Sync for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl Sync for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl Sync for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Sync for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Sync for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Sync for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Sync for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Sync for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Sync for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Sync for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Sync for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Sync for MapRenderError","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]},{"text":"impl Sync for ProgramDataTileCache","synthetic":true,"types":["game_logic::rendering::utilities::map_render::ProgramDataTileCache"]},{"text":"impl Sync for MapRenderer","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderer"]},{"text":"impl Sync for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl Sync for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Sync for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Sync for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Sync for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Sync for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Sync for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Sync for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Sync for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Sync for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Sync for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Sync for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl Sync for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/core/marker/trait.Unpin.js b/rustdoc/implementors/core/marker/trait.Unpin.js index 7ef07bbb..6fa06eff 100644 --- a/rustdoc/implementors/core/marker/trait.Unpin.js +++ b/rustdoc/implementors/core/marker/trait.Unpin.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl Unpin for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl Unpin for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Unpin for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Unpin for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Unpin for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Unpin for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Unpin for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Unpin for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl Unpin for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl Unpin for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Unpin for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Unpin for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Unpin for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Unpin for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Unpin for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Unpin for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Unpin for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Unpin for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Unpin for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl Unpin for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Unpin for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Unpin for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Unpin for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Unpin for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Unpin for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Unpin for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Unpin for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Unpin for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Unpin for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Unpin for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl Unpin for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; +implementors["game_logic"] = [{"text":"impl Unpin for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl Unpin for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Unpin for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl Unpin for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Unpin for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl Unpin for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl Unpin for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Unpin for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl Unpin for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl Unpin for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl Unpin for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl Unpin for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl Unpin for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl Unpin for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl Unpin for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Unpin for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl Unpin for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl Unpin for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl Unpin for MapRenderError","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]},{"text":"impl Unpin for ProgramDataTileCache","synthetic":true,"types":["game_logic::rendering::utilities::map_render::ProgramDataTileCache"]},{"text":"impl Unpin for MapRenderer","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderer"]},{"text":"impl Unpin for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl Unpin for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl Unpin for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl Unpin for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl Unpin for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl Unpin for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl Unpin for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl Unpin for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl Unpin for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl Unpin for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl Unpin for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl Unpin for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl Unpin for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/rustdoc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index 281824f1..82fd3467 100644 --- a/rustdoc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/rustdoc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl RefUnwindSafe for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl !RefUnwindSafe for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl RefUnwindSafe for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl !RefUnwindSafe for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl RefUnwindSafe for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl RefUnwindSafe for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl !RefUnwindSafe for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl !RefUnwindSafe for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl !RefUnwindSafe for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl RefUnwindSafe for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl RefUnwindSafe for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl RefUnwindSafe for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl RefUnwindSafe for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl RefUnwindSafe for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl !RefUnwindSafe for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl RefUnwindSafe for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl RefUnwindSafe for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl RefUnwindSafe for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl RefUnwindSafe for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl RefUnwindSafe for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl RefUnwindSafe for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl RefUnwindSafe for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl RefUnwindSafe for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl RefUnwindSafe for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl RefUnwindSafe for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl RefUnwindSafe for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl RefUnwindSafe for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl RefUnwindSafe for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl RefUnwindSafe for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl RefUnwindSafe for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl RefUnwindSafe for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; +implementors["game_logic"] = [{"text":"impl RefUnwindSafe for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl !RefUnwindSafe for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl RefUnwindSafe for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl !RefUnwindSafe for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl RefUnwindSafe for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl RefUnwindSafe for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl !RefUnwindSafe for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl !RefUnwindSafe for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl !RefUnwindSafe for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl RefUnwindSafe for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl RefUnwindSafe for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl RefUnwindSafe for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl RefUnwindSafe for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl RefUnwindSafe for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl !RefUnwindSafe for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl RefUnwindSafe for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl RefUnwindSafe for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl RefUnwindSafe for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl !RefUnwindSafe for MapRenderError","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]},{"text":"impl RefUnwindSafe for ProgramDataTileCache","synthetic":true,"types":["game_logic::rendering::utilities::map_render::ProgramDataTileCache"]},{"text":"impl RefUnwindSafe for MapRenderer","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderer"]},{"text":"impl RefUnwindSafe for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl RefUnwindSafe for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl RefUnwindSafe for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl RefUnwindSafe for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl RefUnwindSafe for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl RefUnwindSafe for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl RefUnwindSafe for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl RefUnwindSafe for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl RefUnwindSafe for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl RefUnwindSafe for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl RefUnwindSafe for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl RefUnwindSafe for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl RefUnwindSafe for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/rustdoc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index 228a209a..545c78f5 100644 --- a/rustdoc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/rustdoc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl UnwindSafe for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl !UnwindSafe for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl UnwindSafe for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl !UnwindSafe for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl UnwindSafe for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl UnwindSafe for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl !UnwindSafe for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl !UnwindSafe for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl !UnwindSafe for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl UnwindSafe for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl UnwindSafe for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl UnwindSafe for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl UnwindSafe for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl UnwindSafe for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl !UnwindSafe for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl UnwindSafe for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl UnwindSafe for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl UnwindSafe for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl UnwindSafe for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl UnwindSafe for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl UnwindSafe for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl UnwindSafe for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl UnwindSafe for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl UnwindSafe for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl UnwindSafe for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl UnwindSafe for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl UnwindSafe for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl UnwindSafe for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl UnwindSafe for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl UnwindSafe for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl UnwindSafe for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; +implementors["game_logic"] = [{"text":"impl UnwindSafe for InternalData","synthetic":true,"types":["game_logic::asset_manager::datastore::InternalData"]},{"text":"impl !UnwindSafe for InternalJsonLoadError","synthetic":true,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl UnwindSafe for KnownSpriteType","synthetic":true,"types":["game_logic::asset_manager::sprite_types::KnownSpriteType"]},{"text":"impl !UnwindSafe for ResourceLoadError","synthetic":true,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl UnwindSafe for DiscordRpcSignal","synthetic":true,"types":["game_logic::discord::signal::DiscordRpcSignal"]},{"text":"impl UnwindSafe for StatefulDiscordRpcSignalHandler","synthetic":true,"types":["game_logic::discord::signal::StatefulDiscordRpcSignalHandler"]},{"text":"impl !UnwindSafe for DiscordError","synthetic":true,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl !UnwindSafe for DiscordRpcClient","synthetic":true,"types":["game_logic::discord::ipc::DiscordRpcClient"]},{"text":"impl !UnwindSafe for DiscordRpcThreadHandle","synthetic":true,"types":["game_logic::discord::DiscordRpcThreadHandle"]},{"text":"impl UnwindSafe for GlobalResources","synthetic":true,"types":["game_logic::global_resource_package::GlobalResources"]},{"text":"impl UnwindSafe for PersistentGameSettings","synthetic":true,"types":["game_logic::persistent::settings::PersistentGameSettings"]},{"text":"impl UnwindSafe for GameSaveState","synthetic":true,"types":["game_logic::persistent::save_state::GameSaveState"]},{"text":"impl UnwindSafe for DiscordConstants","synthetic":true,"types":["game_logic::project_constants::DiscordConstants"]},{"text":"impl UnwindSafe for ProjectConstants","synthetic":true,"types":["game_logic::project_constants::ProjectConstants"]},{"text":"impl !UnwindSafe for AnimatedTextureLoadError","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl UnwindSafe for FrameTextureDescriptor","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::FrameTextureDescriptor"]},{"text":"impl UnwindSafe for AnimatedTextureMetadata","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureMetadata"]},{"text":"impl UnwindSafe for AnimatedTexture","synthetic":true,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTexture"]},{"text":"impl !UnwindSafe for MapRenderError","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]},{"text":"impl UnwindSafe for ProgramDataTileCache","synthetic":true,"types":["game_logic::rendering::utilities::map_render::ProgramDataTileCache"]},{"text":"impl UnwindSafe for MapRenderer","synthetic":true,"types":["game_logic::rendering::utilities::map_render::MapRenderer"]},{"text":"impl UnwindSafe for LoadingScreen","synthetic":true,"types":["game_logic::rendering::screens::loading_screen::LoadingScreen"]},{"text":"impl UnwindSafe for SmFailureScreen","synthetic":true,"types":["game_logic::rendering::screens::sm_failure_screen::SmFailureScreen"]},{"text":"impl UnwindSafe for PreloadState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::PreloadState"]},{"text":"impl UnwindSafe for LoadingState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::LoadingState"]},{"text":"impl UnwindSafe for RenderGameState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderGameState"]},{"text":"impl UnwindSafe for SmFailedState","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::SmFailedState"]},{"text":"impl UnwindSafe for RenderBackendStates","synthetic":true,"types":["game_logic::rendering::core_renderer_sm::RenderBackendStates"]},{"text":"impl UnwindSafe for MenuStateSignal","synthetic":true,"types":["game_logic::scenes::main_menu::MenuStateSignal"]},{"text":"impl UnwindSafe for MainMenu","synthetic":true,"types":["game_logic::scenes::main_menu::MainMenu"]},{"text":"impl UnwindSafe for PlayableScene","synthetic":true,"types":["game_logic::scenes::player_interaction::PlayableScene"]},{"text":"impl UnwindSafe for TestFoxScene","synthetic":true,"types":["game_logic::scenes::test_fox::TestFoxScene"]},{"text":"impl UnwindSafe for SceneRenderDelegate","synthetic":true,"types":["game_logic::scenes::SceneRenderDelegate"]},{"text":"impl UnwindSafe for Player","synthetic":true,"types":["game_logic::model::player::Player"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/std/error/trait.Error.js b/rustdoc/implementors/std/error/trait.Error.js index d6a377cd..92cfc5e9 100644 --- a/rustdoc/implementors/std/error/trait.Error.js +++ b/rustdoc/implementors/std/error/trait.Error.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["game_logic"] = [{"text":"impl Error for InternalJsonLoadError","synthetic":false,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Error for ResourceLoadError","synthetic":false,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Error for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Error for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]}]; +implementors["game_logic"] = [{"text":"impl Error for InternalJsonLoadError","synthetic":false,"types":["game_logic::asset_manager::json::InternalJsonLoadError"]},{"text":"impl Error for ResourceLoadError","synthetic":false,"types":["game_logic::asset_manager::texture::ResourceLoadError"]},{"text":"impl Error for DiscordError","synthetic":false,"types":["game_logic::discord::ipc::DiscordError"]},{"text":"impl Error for AnimatedTextureLoadError","synthetic":false,"types":["game_logic::rendering::utilities::anim_texture::AnimatedTextureLoadError"]},{"text":"impl Error for MapRenderError","synthetic":false,"types":["game_logic::rendering::utilities::map_render::MapRenderError"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/tiled/cache/trait.ResourceCache.js b/rustdoc/implementors/tiled/cache/trait.ResourceCache.js new file mode 100644 index 00000000..1727d0f0 --- /dev/null +++ b/rustdoc/implementors/tiled/cache/trait.ResourceCache.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["game_logic"] = [{"text":"impl ResourceCache for ProgramDataTileCache","synthetic":false,"types":["game_logic::rendering::utilities::map_render::ProgramDataTileCache"]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/search-index.js b/rustdoc/search-index.js index a6405423..e7ab6e04 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,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,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,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,12,12,12,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,12,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,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,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,11,11,11,12,11,11,11,12,11,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11],"n":["asset_manager","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","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","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","ProjectConstants","app_id","artwork","base_window_size","borrow","borrow","borrow_mut","borrow_mut","deserialize","deserialize","discord","fmt","fmt","from","from","from_subset","from_subset","game_name","into","into","is_in_subset","is_in_subset","strings","target_fps","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","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","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","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","fmt","from","from_subset","has_updated_discord_rpc","into","is_in_subset","new","player","render_frame","to_subset","to_subset_unchecked","try_from","try_into","type_id","TestFoxScene","borrow","borrow_mut","fmt","fox_animation","from","from_subset","into","is_in_subset","new","render_frame","to_subset","to_subset_unchecked","try_from","try_into","type_id"],"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::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::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.","","","","","","","","","","","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","This structure is filled with the contents of …","The Discord application ID","Artwork name mapping","The window size to use on launch","","","","","","","The Discord constants","","","","","","","The name of the game","","","","","Strings","The target framerate of the game","","","","","","","","","","","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 …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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,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,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,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,25,25,26,25,26,25,26,25,26,26,25,26,25,26,25,26,26,25,26,25,26,25,26,25,26,25,26,25,26,25,26,25,26,0,0,0,0,27,28,29,30,29,31,0,31,0,0,31,0,31,0,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,28,30,30,28,27,29,31,30,28,27,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,31,31,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,32,33,34,35,0,0,0,0,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,0,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,0,0,0,0,0,38,38,38,38,38,39,40,41,38,39,40,41,39,40,39,40,39,40,38,38,39,40,41,40,40,38,38,38,38,39,40,41,38,39,40,41,41,39,38,39,39,40,41,38,39,40,41,41,41,41,41,40,40,38,41,41,41,41,39,40,38,38,39,40,41,38,39,40,41,38,39,40,41,38,39,40,41,38,39,40,41,39,39,39,42,43,44,45,0,46,46,46,46,46,46,46,0,46,46,0,46,46,46,46,0,46,46,46,46,46,47,47,47,47,0,0,47,47,47,48,47,48,47,47,47,48,47,48,47,48,48,47,48,47,48,48,48,48,48,48,47,47,48,47,48,47,48,47,48,47,48,0,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50],"f":[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,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]],[[]],[[["recverror",3]]],[[["error",4]]],[[]],[[["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,[[]],[[]],[[["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,[[]],[[],["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,[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[],["bool",15]],[[],["bool",15]],null,null,[[],["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,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,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["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]]],[[["error",3]]],[[["resourceloaderror",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]]]],[[["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,[[]],[[]],[[]],[[]],[[]],[[]],[[],["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,[[]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[],["bool",15]],[[["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]],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]]],"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,"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"],[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,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,12,12,12,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,12,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,11,11,11,12,11,11,11,12,11,11,11,11,11,11,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","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","ProjectConstants","app_id","artwork","base_window_size","borrow","borrow","borrow_mut","borrow_mut","deserialize","deserialize","discord","fmt","fmt","from","from","from_subset","from_subset","game_name","into","into","is_in_subset","is_in_subset","strings","target_fps","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","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","fmt","from","from_subset","has_updated_discord_rpc","into","is_in_subset","new","player","render_frame","to_subset","to_subset_unchecked","try_from","try_into","type_id","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","This structure is filled with the contents of …","The Discord application ID","Artwork name mapping","The window size to use on launch","","","","","","","The Discord constants","","","","","","","The name of the game","","","","","Strings","The target framerate of the game","","","","","","","","","","","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,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,25,25,26,25,26,25,26,25,26,26,25,26,25,26,25,26,26,25,26,25,26,25,26,25,26,25,26,25,26,25,26,25,26,0,0,0,0,27,28,29,30,29,31,0,31,0,0,31,0,31,0,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,28,30,30,28,27,29,31,30,28,27,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,31,31,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,30,28,27,29,31,32,33,34,35,0,0,0,0,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,0,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,0,0,0,0,0,0,38,38,38,38,38,39,40,41,38,39,40,41,39,40,39,40,39,40,38,38,39,40,41,40,40,38,38,38,38,39,40,41,38,39,40,41,41,39,38,39,39,40,41,38,39,40,41,41,41,41,41,40,40,38,41,41,41,41,39,40,38,38,39,40,41,38,39,40,41,38,39,40,41,38,39,40,41,38,39,40,41,39,39,39,42,43,44,45,46,0,0,0,46,46,47,48,46,47,48,46,46,47,48,46,46,47,48,46,47,48,47,47,47,46,47,48,46,47,48,48,47,48,48,48,48,46,48,47,46,46,47,48,46,47,48,46,47,48,46,47,48,46,47,48,49,50,0,51,51,51,51,51,51,51,0,51,51,0,51,51,51,51,0,51,51,51,51,51,52,52,52,52,0,0,52,52,52,53,52,53,52,52,52,53,52,53,52,53,53,52,53,52,53,53,53,53,53,53,52,52,53,52,53,52,53,52,53,52,53,0,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,0,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55],"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]]],[[["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,[[]],[[]],[[["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,[[]],[[],["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,[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[],["bool",15]],[[],["bool",15]],null,null,[[],["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,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,[[["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]]]],[[["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,[[]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[],["bool",15]],[[["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]],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,"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/source-files.js b/rustdoc/source-files.js index 34a04338..c5f01434 100644 --- a/rustdoc/source-files.js +++ b/rustdoc/source-files.js @@ -1,3 +1,3 @@ var N = null;var sourcesIndex = {}; -sourcesIndex["game_logic"] = {"name":"","dirs":[{"name":"asset_manager","files":["datastore.rs","json.rs","mod.rs","sprite_types.rs","texture.rs"]},{"name":"discord","files":["ipc.rs","mod.rs","signal.rs"]},{"name":"model","files":["mod.rs","player.rs"]},{"name":"persistent","files":["mod.rs","save_state.rs","settings.rs"]},{"name":"rendering","dirs":[{"name":"screens","files":["loading_screen.rs","mod.rs","sm_failure_screen.rs"]},{"name":"utilities","files":["anim_texture.rs","mod.rs"]}],"files":["core_renderer_sm.rs","event_loop.rs","mod.rs"]},{"name":"scenes","files":["main_menu.rs","mod.rs","player_interaction.rs","test_fox.rs"]}],"files":["global_resource_package.rs","lib.rs","project_constants.rs"]}; +sourcesIndex["game_logic"] = {"name":"","dirs":[{"name":"asset_manager","files":["datastore.rs","json.rs","mod.rs","sprite_types.rs","texture.rs"]},{"name":"discord","files":["ipc.rs","mod.rs","signal.rs"]},{"name":"model","files":["mod.rs","player.rs"]},{"name":"persistent","files":["mod.rs","save_state.rs","settings.rs"]},{"name":"rendering","dirs":[{"name":"screens","files":["loading_screen.rs","mod.rs","sm_failure_screen.rs"]},{"name":"utilities","files":["anim_texture.rs","map_render.rs","mod.rs"]}],"files":["core_renderer_sm.rs","event_loop.rs","mod.rs"]},{"name":"scenes","files":["main_menu.rs","mod.rs","player_interaction.rs","test_fox.rs"]}],"files":["coord_convert.rs","global_resource_package.rs","lib.rs","project_constants.rs"]}; createSourceSidebar(); diff --git a/rustdoc/src/game_logic/coord_convert.rs.html b/rustdoc/src/game_logic/coord_convert.rs.html new file mode 100644 index 00000000..a91bbde5 --- /dev/null +++ b/rustdoc/src/game_logic/coord_convert.rs.html @@ -0,0 +1,26 @@ +coord_convert.rs - source +
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+
use nalgebra as na;
+
+/// Converts from the tiled coordinate system to the game coordinate system.
+pub fn tiled_to_game(vec: na::Vector2<f32>) -> na::Vector2<f32> {
+    na::Vector2::new(vec.x, vec.y * -1.0)
+}
+
+/// Converts from the game coordinate system to the tiled coordinate system.
+pub fn game_to_tiled(vec: na::Vector2<f32>) -> na::Vector2<f32> {
+    tiled_to_game(vec)
+}
+
+ \ No newline at end of file diff --git a/rustdoc/src/game_logic/lib.rs.html b/rustdoc/src/game_logic/lib.rs.html index 5b83b494..41b8122e 100644 --- a/rustdoc/src/game_logic/lib.rs.html +++ b/rustdoc/src/game_logic/lib.rs.html @@ -96,6 +96,7 @@ 94 95 96 +97
//! This file is the main entry point for the game logic.
 //!
 //! ## Overview
@@ -138,6 +139,7 @@
 pub(crate) mod rendering;
 pub(crate) mod scenes;
 pub(crate) mod model;
+pub(crate) mod coord_convert;
 
 /// This is the game logic entrypoint. Despite being async,
 /// this is expected to block the main thread for rendering and stuff.
diff --git a/rustdoc/src/game_logic/rendering/utilities/map_render.rs.html b/rustdoc/src/game_logic/rendering/utilities/map_render.rs.html
new file mode 100644
index 00000000..f8843c86
--- /dev/null
+++ b/rustdoc/src/game_logic/rendering/utilities/map_render.rs.html
@@ -0,0 +1,431 @@
+map_render.rs - source
+    
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+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
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+
use std::{collections::HashMap, path::PathBuf, sync::Arc};
+
+use crate::asset_manager::{load_texture_from_internal_data, InternalData};
+use nalgebra as na;
+use raylib::{
+    camera::Camera2D,
+    color::Color,
+    math::Vector2,
+    prelude::{RaylibDraw, RaylibDrawHandle, RaylibMode2D},
+    texture::Texture2D,
+    RaylibHandle, RaylibThread,
+};
+use tiled::{Loader, Map, ResourceCache, ResourcePath, ResourcePathBuf, Tileset};
+
+/// Possible errors generated by the map loading process
+#[derive(Debug, thiserror::Error)]
+pub enum MapRenderError {
+    #[error("Could not load embedded asset: {0}")]
+    AssetNotFound(String),
+    #[error(transparent)]
+    TiledError(#[from] tiled::Error),
+}
+
+#[derive(Debug)]
+struct ProgramDataTileCache {
+    tilesets: HashMap<ResourcePathBuf, Arc<Tileset>>,
+    internal_loader: Loader,
+}
+
+impl ProgramDataTileCache {
+    fn new() -> Self {
+        Self {
+            tilesets: HashMap::new(),
+            internal_loader: Loader::new(),
+        }
+    }
+}
+
+impl ResourceCache for ProgramDataTileCache {
+    /// Load the tileset. First attempts to pull from an in-RAM cache, otherwise attempts to load from disk.
+    fn get_tileset(&self, path: impl AsRef<ResourcePath>) -> Option<Arc<Tileset>> {
+        let possibly_cached_tileset = self.tilesets.get(path.as_ref()).map(Clone::clone);
+        if let Some(tileset) = possibly_cached_tileset {
+            return Some(tileset);
+        } else {
+            // Pull the TSX from storage and parse it
+            InternalData::get(path.as_ref().to_str().unwrap()).map(|file| {
+                let data = file.data.into_owned();
+                Arc::new(
+                    self.internal_loader
+                        .load_tsx_tileset_from(data.as_slice(), path)
+                        .unwrap(),
+                )
+            })
+        }
+    }
+
+    fn get_or_try_insert_tileset_with<F, E>(
+        &mut self,
+        path: ResourcePathBuf,
+        f: F,
+    ) -> Result<Arc<Tileset>, E>
+    where
+        F: FnOnce() -> Result<Tileset, E>,
+    {
+        Ok(match self.tilesets.entry(path) {
+            std::collections::hash_map::Entry::Occupied(o) => o.into_mut(),
+            std::collections::hash_map::Entry::Vacant(v) => v.insert(Arc::new(f()?)),
+        }
+        .clone())
+    }
+}
+
+#[derive(Debug)]
+pub struct MapRenderer {
+    map: Map,
+    tile_textures: HashMap<PathBuf, Texture2D>,
+}
+
+impl MapRenderer {
+    /// Construct a new MapRenderer.
+    pub fn new(
+        tmx_path: &str,
+        raylib: &mut RaylibHandle,
+        raylib_thread: &RaylibThread,
+    ) -> Result<Self, MapRenderError> {
+        // Pull the TMX from storage
+        let data = InternalData::get(tmx_path)
+            .ok_or(MapRenderError::AssetNotFound(tmx_path.to_string()))?
+            .data
+            .into_owned();
+
+        // Attempt to parse the TMX file
+        let mut loader = Loader::with_cache(ProgramDataTileCache::new());
+        let map = loader.load_tmx_map_from(data.as_slice(), tmx_path)?;
+
+        // Iterate over all images in the map
+        let mut tile_textures = HashMap::new();
+        for tileset in map.tilesets() {
+            for (idx, tile) in tileset.tiles() {
+                if let Some(image) = &tile.data.image {
+                    // We now have a path to an image
+                    let image_path = image.source.clone();
+
+                    // Load the texture
+                    let texture = load_texture_from_internal_data(
+                        raylib,
+                        raylib_thread,
+                        image_path.to_str().unwrap(),
+                    )
+                    .unwrap();
+
+                    // Store the texture in the cache
+                    tile_textures.insert(image_path, texture);
+                }
+            }
+        }
+
+        Ok(Self { map, tile_textures })
+    }
+
+    pub fn sample_friction_at(&self, position: na::Vector2<f32>) -> f32 {
+        todo!()
+    }
+
+    pub fn sample_temperature_at(&self, position: na::Vector2<f32>) -> f32 {
+        todo!()
+    }
+
+    pub fn render_map(&self, draw_handle: &mut RaylibMode2D<RaylibDrawHandle>, camera: &Camera2D, show_debug_grid:bool) {
+        // Get the window corners in world space
+        let screen_width = draw_handle.get_screen_width();
+        let screen_height = draw_handle.get_screen_height();
+        let world_win_top_left = draw_handle.get_screen_to_world2D(Vector2::new(0.0, 0.0), camera);
+        let world_win_bottom_right = draw_handle.get_screen_to_world2D(
+            Vector2::new(screen_width as f32, screen_height as f32),
+            camera,
+        );
+
+        // Handle each layer from the bottom up
+        for layer in self.map.layers() {
+            // Handle different layer types
+            match layer.layer_type() {
+                tiled::LayerType::TileLayer(layer) => {
+                    // Keep track of our sampler X and Y values
+                    let mut sampler_x = 0;
+                    let mut sampler_y = 0;
+
+                    // Get the tile width and height
+                    let tile_width = 128;
+                    let tile_height = 128;
+
+                    // Loop until we have covered all tiles on the screen
+                    for y in (world_win_top_left.y as i64)..(world_win_bottom_right.y as i64) {
+                        // Convert the pixel coordinates to tile coordinates
+                        let tile_y = (y as f32 / tile_height as f32).floor() as i32;
+
+                        // If we are looking at a new tile, update the sampler
+                        if sampler_y != tile_y {
+                            sampler_y = tile_y;
+
+                            for x in
+                                (world_win_top_left.x as i64)..(world_win_bottom_right.x as i64)
+                            {
+                                // Convert the pixel coordinates to tile coordinates
+                                let tile_x = (x as f32 / tile_width as f32).floor() as i32;
+                                // debug!("Tile: ({}, {})", tile_x, tile_y);
+
+                                // If we are looking at a new tile, update the sampler
+                                if sampler_x != tile_x {
+                                    sampler_x = tile_x;
+
+                                    // Get the tile at this coordinate
+                                    if let Some(tile) = layer.get_tile(sampler_x, sampler_y) {
+                                        // debug!("Tile: ({}, {})", tile_x, tile_y);
+                                        // Fetch the texture for this tile
+                                        let real_tile = tile.get_tile().unwrap();
+                                        let texture = self
+                                            .tile_textures
+                                            .get(&real_tile.image.as_ref().unwrap().source)
+                                            .unwrap();
+
+                                        // Draw the tile
+                                        draw_handle.draw_texture(
+                                            texture,
+                                            tile_x * tile_width as i32,
+                                            tile_y * tile_height as i32,
+                                            Color::WHITE,
+                                        );
+                                    } 
+                                    
+                                    if show_debug_grid {
+                                        draw_handle.draw_rectangle_lines(
+                                            tile_x * tile_width as i32,
+                                            tile_y * tile_height as i32,
+                                            self.map.tile_width as i32,
+                                            self.map.tile_height as i32,
+                                            Color::RED,
+                                        );
+                                        draw_handle.draw_pixel(x as i32, y as i32, Color::BLUE);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+                tiled::LayerType::ObjectLayer(_) => todo!(),
+                tiled::LayerType::ImageLayer(_) => todo!(),
+                tiled::LayerType::GroupLayer(_) => todo!(),
+            }
+        }
+    }
+}
+
+
+ \ No newline at end of file diff --git a/rustdoc/src/game_logic/rendering/utilities/mod.rs.html b/rustdoc/src/game_logic/rendering/utilities/mod.rs.html index f8271d40..72065a04 100644 --- a/rustdoc/src/game_logic/rendering/utilities/mod.rs.html +++ b/rustdoc/src/game_logic/rendering/utilities/mod.rs.html @@ -1,6 +1,8 @@ mod.rs - source
1
-
pub mod anim_texture;
+2 +
pub mod anim_texture;
+pub mod map_render;
\ No newline at end of file diff --git a/rustdoc/src/game_logic/scenes/mod.rs.html b/rustdoc/src/game_logic/scenes/mod.rs.html index 481a9ff6..bb1ddb64 100644 --- a/rustdoc/src/game_logic/scenes/mod.rs.html +++ b/rustdoc/src/game_logic/scenes/mod.rs.html @@ -104,6 +104,17 @@ 102 103 104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115
//! The render code for various scenes
 //!
 //! ## Overview
@@ -171,8 +182,13 @@
         // Render the main menu if in it, otherwise, render the game
         match self.menu_control_signal {
             MenuStateSignal::StartGame => {
-                self.scene_playable
-                    .render_frame(raylib, rl_thread, &discord, global_resources, constants)
+                // self.scene_playable
+                //     .render_frame(raylib, rl_thread, &discord, global_resources, constants)
+                //     .await;
+
+                // TODO: remove this test scene
+                self.scene_test_fox
+                    .render_frame(raylib, rl_thread, &discord, global_resources)
                     .await;
             }
             MenuStateSignal::QuitGame => unimplemented!(),
@@ -187,19 +203,25 @@
                     .scene_main_menu
                     .render_options_frame(raylib, rl_thread, discord, global_resources, constants)
                     .await
-            },
+            }
             MenuStateSignal::DoCredits => {
                 self.menu_control_signal = self
                     .scene_main_menu
                     .render_credits_frame(raylib, rl_thread, discord, global_resources, constants)
                     .await
-            },
+            }
             MenuStateSignal::DoLeaderboard => {
                 self.menu_control_signal = self
                     .scene_main_menu
-                    .render_leaderboard_frame(raylib, rl_thread, discord, global_resources, constants)
+                    .render_leaderboard_frame(
+                        raylib,
+                        rl_thread,
+                        discord,
+                        global_resources,
+                        constants,
+                    )
                     .await
-            },
+            }
         }
     }
 }
diff --git a/rustdoc/src/game_logic/scenes/test_fox.rs.html b/rustdoc/src/game_logic/scenes/test_fox.rs.html
index 19aa540e..f2fb24b0 100644
--- a/rustdoc/src/game_logic/scenes/test_fox.rs.html
+++ b/rustdoc/src/game_logic/scenes/test_fox.rs.html
@@ -50,20 +50,66 @@
 48
 49
 50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
 
//! This "scene" is used only for testing animation and resource loading
 //! It should be removed once the game is being worked on
 
-use raylib::prelude::*;
 use nalgebra as na;
+use raylib::prelude::*;
 
 use crate::{
-    discord::DiscordChannel, global_resource_package::GlobalResources,
-    rendering::utilities::anim_texture::AnimatedTexture,
+    discord::DiscordChannel,
+    global_resource_package::GlobalResources,
+    rendering::utilities::{anim_texture::AnimatedTexture, map_render::MapRenderer},
 };
 
 #[derive(Debug)]
 pub struct TestFoxScene {
     fox_animation: AnimatedTexture,
+    world_map: MapRenderer,
+    camera: Camera2D,
 }
 
 impl TestFoxScene {
@@ -72,11 +118,29 @@
         // Load the fox texture
         let fox = AnimatedTexture::new(raylib_handle, thread, "chr", "testFox").unwrap();
 
-        Self { fox_animation: fox }
+        // Load the map
+        let map_renderer = MapRenderer::new("map_gameMap.tmx", raylib_handle, thread).unwrap();
+
+        // Create a camera
+        let camera = Camera2D {
+            target: Vector2 { x: 0.0, y: 0.0 },
+            offset: Vector2 {
+                x: raylib_handle.get_screen_width() as f32,
+                y: (raylib_handle.get_screen_height() as f32) * -0.5,
+            },
+            rotation: 0.0,
+            zoom: 1.0,
+        };
+
+        Self {
+            fox_animation: fox,
+            world_map: map_renderer,
+            camera,
+        }
     }
 
     /// Handler for each frame
-    pub fn render_frame(
+    pub async fn render_frame(
         &mut self,
         raylib: &mut RaylibHandle,
         rl_thread: &RaylibThread,
@@ -98,6 +162,28 @@
             None,
             None,
         );
+
+        // Allow the camera to be moved with wasd
+        if draw.is_key_down(KeyboardKey::KEY_W) {
+            self.camera.target.y -= 5.0;
+        }
+        if draw.is_key_down(KeyboardKey::KEY_S) {
+            self.camera.target.y += 5.0;
+        }
+        if draw.is_key_down(KeyboardKey::KEY_A) {
+            self.camera.target.x -= 5.0;
+        }
+        if draw.is_key_down(KeyboardKey::KEY_D) {
+            self.camera.target.x += 5.0;
+        }
+
+        {
+            // Begin camera mode
+            let mut ctx2d = draw.begin_mode2D(self.camera);
+
+            // Render the map
+            self.world_map.render_map(&mut ctx2d, &self.camera, true);
+        }
     }
 }