diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..1c237aed --- /dev/null +++ b/.babelrc @@ -0,0 +1,13 @@ +{ + "presets": [ + "@babel/preset-env", + "@babel/preset-react", + [ + "@babel/preset-typescript", + { + "optimizeConstEnums": true + } + ] + ], + "plugins": ["babel-plugin-styled-components"] +} diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..f7fbd53b --- /dev/null +++ b/.env.example @@ -0,0 +1,5 @@ +NODE_ENV=development +# This defaults to localhost in development regardless of the value set in this file +DEFAULT_RPC=https://rpc-df.xdaichain.com/ +# Removing this value will disable all webserver calls in the client +DF_WEBSERVER_URL=http://localhost:3000 diff --git a/.gitignore b/.gitignore index 863166fd..6b609492 100644 --- a/.gitignore +++ b/.gitignore @@ -19,14 +19,11 @@ yarn-error.log* # local image files for testing public/img/artifacts -# compiled contracts -public/contracts/*.json -!public/contracts/DarkForestCore.json -!public/contracts/DarkForestGetters.json -!public/contracts/Whitelist.json -!public/contracts/DarkForestGPTCredit.json - declarations +tsconfig.ref.tsbuildinfo # Local Netlify folder .netlify + +# Environment variables +.env diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..b6a7d89c --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +16 diff --git a/.prettierignore b/.prettierignore index 50046eb2..24a90df0 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,3 +5,5 @@ embedded_plugins/dist/ public/ src/styles/font/ src/styles/icomoon/ +embedded_plugins/Remote-Explorer.ts +embedded_plugins/Renderer-Showcase.ts diff --git a/README.md b/README.md index cdc2a9b4..6b70495a 100644 --- a/README.md +++ b/README.md @@ -4,19 +4,19 @@ ### Installing Core Dependencies -- Node (v14.15.x) +- Node (v14.x OR v16.x) - Yarn (Javascript Package Manager) #### Installing The Correct Node Version Using NVM -Dark Forest is built and tested using Node.js v14.15.x and might not run properly on other Node.js versions. We recommend using NVM to switch between multiple Node.js version on your machine. +Dark Forest is built and tested using Node.js v14/v16 and might not run properly on other Node.js versions. We recommend using NVM to switch between multiple Node.js version on your machine. ```sh curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash nvm install ``` -After the installation is finished, you can run `node --version` to verify that you are running v14.15.x +After the installation is finished, you can run `node --version` to verify that you are running v14 or v16 #### Installing Yarn diff --git a/docs/README.md b/docs/README.md index c2da9e4a..507ebbcd 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,264 +4,200 @@ ### Modules -- [Backend/GameLogic/ArrivalUtils](modules/backend_gamelogic_arrivalutils.md) -- [Backend/GameLogic/ArtifactUtils](modules/backend_gamelogic_artifactutils.md) -- [Backend/GameLogic/ContractCaller](modules/backend_gamelogic_contractcaller.md) -- [Backend/GameLogic/ContractsAPI](modules/backend_gamelogic_contractsapi.md) -- [Backend/GameLogic/ConversationManager](modules/backend_gamelogic_conversationmanager.md) -- [Backend/GameLogic/GameManager](modules/backend_gamelogic_gamemanager.md) -- [Backend/GameLogic/GameObjects](modules/backend_gamelogic_gameobjects.md) -- [Backend/GameLogic/GameUIManager](modules/backend_gamelogic_gameuimanager.md) -- [Backend/GameLogic/InitialGameStateDownloader](modules/backend_gamelogic_initialgamestatedownloader.md) -- [Backend/GameLogic/LayeredMap](modules/backend_gamelogic_layeredmap.md) -- [Backend/GameLogic/PaidConversationManager](modules/backend_gamelogic_paidconversationmanager.md) -- [Backend/GameLogic/PluginManager](modules/backend_gamelogic_pluginmanager.md) -- [Backend/GameLogic/TutorialManager](modules/backend_gamelogic_tutorialmanager.md) -- [Backend/GameLogic/ViewportEntities](modules/backend_gamelogic_viewportentities.md) -- [Backend/Interfaces/DiagnosticUpdater](modules/backend_interfaces_diagnosticupdater.md) -- [Backend/Miner/ChunkUtils](modules/backend_miner_chunkutils.md) -- [Backend/Miner/MinerManager](modules/backend_miner_minermanager.md) -- [Backend/Miner/MiningPatterns](modules/backend_miner_miningpatterns.md) -- [Backend/Miner/miner.worker](modules/backend_miner_miner_worker.md) -- [Backend/Miner/permutation](modules/backend_miner_permutation.md) -- [Backend/Network/ConversationAPI](modules/backend_network_conversationapi.md) -- [Backend/Network/EthConnection](modules/backend_network_ethconnection.md) -- [Backend/Network/EventLogger](modules/backend_network_eventlogger.md) -- [Backend/Network/LeaderboardApi](modules/backend_network_leaderboardapi.md) -- [Backend/Network/MessageAPI](modules/backend_network_messageapi.md) -- [Backend/Network/ThrottledConcurrentQueue](modules/backend_network_throttledconcurrentqueue.md) -- [Backend/Network/TxExecutor](modules/backend_network_txexecutor.md) -- [Backend/Network/UtilityServerAPI](modules/backend_network_utilityserverapi.md) -- [Backend/Plugins/EmbeddedPluginLoader](modules/backend_plugins_embeddedpluginloader.md) -- [Backend/Plugins/PluginProcess](modules/backend_plugins_pluginprocess.md) -- [Backend/Plugins/PluginTemplate](modules/backend_plugins_plugintemplate.md) -- [Backend/Plugins/SerializedPlugin](modules/backend_plugins_serializedplugin.md) -- [Backend/Procedural/ArtifactProcgen](modules/backend_procedural_artifactprocgen.md) -- [Backend/Procedural/Noise](modules/backend_procedural_noise.md) -- [Backend/Procedural/ProcgenConsts](modules/backend_procedural_procgenconsts.md) -- [Backend/Procedural/ProcgenUtils](modules/backend_procedural_procgenutils.md) -- [Backend/Procedural/tracery](modules/backend_procedural_tracery.md) -- [Backend/Procedural/tracery-modifiers](modules/backend_procedural_tracery_modifiers.md) -- [Backend/Storage/PersistentChunkStore](modules/backend_storage_persistentchunkstore.md) -- [Backend/Storage/ReaderDataStore](modules/backend_storage_readerdatastore.md) -- [Backend/Utils/Animation](modules/backend_utils_animation.md) -- [Backend/Utils/BlockWaiter](modules/backend_utils_blockwaiter.md) -- [Backend/Utils/Coordinates](modules/backend_utils_coordinates.md) -- [Backend/Utils/SnarkArgsHelper](modules/backend_utils_snarkargshelper.md) -- [Backend/Utils/TypeAssertions](modules/backend_utils_typeassertions.md) -- [Backend/Utils/Utils](modules/backend_utils_utils.md) -- [Backend/Utils/UtilsTypes](modules/backend_utils_utilstypes.md) -- [Backend/Utils/Wrapper](modules/backend_utils_wrapper.md) -- [Frontend/Components/AncientLabel](modules/frontend_components_ancientlabel.md) -- [Frontend/Components/ArtifactImage](modules/frontend_components_artifactimage.md) -- [Frontend/Components/BiomeAnims](modules/frontend_components_biomeanims.md) -- [Frontend/Components/Btn](modules/frontend_components_btn.md) -- [Frontend/Components/Button](modules/frontend_components_button.md) -- [Frontend/Components/CoreUI](modules/frontend_components_coreui.md) -- [Frontend/Components/Corner](modules/frontend_components_corner.md) -- [Frontend/Components/Email](modules/frontend_components_email.md) -- [Frontend/Components/FlexRows](modules/frontend_components_flexrows.md) -- [Frontend/Components/GameLandingPageComponents](modules/frontend_components_gamelandingpagecomponents.md) -- [Frontend/Components/GameWindowComponents](modules/frontend_components_gamewindowcomponents.md) -- [Frontend/Components/Hoverable](modules/frontend_components_hoverable.md) -- [Frontend/Components/IconButton](modules/frontend_components_iconbutton.md) -- [Frontend/Components/Icons](modules/frontend_components_icons.md) -- [Frontend/Components/Input](modules/frontend_components_input.md) -- [Frontend/Components/Labels/ArtifactLabels](modules/frontend_components_labels_artifactlabels.md) -- [Frontend/Components/Labels/BiomeLabels](modules/frontend_components_labels_biomelabels.md) -- [Frontend/Components/Labels/KeywordLabels](modules/frontend_components_labels_keywordlabels.md) -- [Frontend/Components/Labels/Labels](modules/frontend_components_labels_labels.md) -- [Frontend/Components/Labels/LavaLabel](modules/frontend_components_labels_lavalabel.md) -- [Frontend/Components/Labels/LegendaryLabel](modules/frontend_components_labels_legendarylabel.md) -- [Frontend/Components/Labels/MythicLabel](modules/frontend_components_labels_mythiclabel.md) -- [Frontend/Components/Labels/PlanetLabels](modules/frontend_components_labels_planetlabels.md) -- [Frontend/Components/Labels/SpacetimeRipLabel](modules/frontend_components_labels_spacetimeriplabel.md) -- [Frontend/Components/Labels/WastelandLabel](modules/frontend_components_labels_wastelandlabel.md) -- [Frontend/Components/LoadingSpinner](modules/frontend_components_loadingspinner.md) -- [Frontend/Components/PlanetPreview](modules/frontend_components_planetpreview.md) -- [Frontend/Components/ReadMore](modules/frontend_components_readmore.md) -- [Frontend/Components/RemoteModal](modules/frontend_components_remotemodal.md) -- [Frontend/Components/Text](modules/frontend_components_text.md) -- [Frontend/Components/TextLoadingBar](modules/frontend_components_textloadingbar.md) -- [Frontend/Components/TextPreview](modules/frontend_components_textpreview.md) -- [Frontend/Components/TimeUntil](modules/frontend_components_timeuntil.md) -- [Frontend/Copy/HelpContent](modules/frontend_copy_helpcontent.md) -- [Frontend/EntryPoints](modules/frontend_entrypoints.md) -- [Frontend/Game/ControllableCanvas](modules/frontend_game_controllablecanvas.md) -- [Frontend/Game/NotificationManager](modules/frontend_game_notificationmanager.md) -- [Frontend/Game/Popups](modules/frontend_game_popups.md) -- [Frontend/Game/Viewport](modules/frontend_game_viewport.md) -- [Frontend/Game/ViewportAnimation](modules/frontend_game_viewportanimation.md) -- [Frontend/Game/WindowManager](modules/frontend_game_windowmanager.md) -- [Frontend/Pages/App](modules/frontend_pages_app.md) -- [Frontend/Pages/ConversationTest](modules/frontend_pages_conversationtest.md) -- [Frontend/Pages/GameLandingPage](modules/frontend_pages_gamelandingpage.md) -- [Frontend/Pages/GifMaker](modules/frontend_pages_gifmaker.md) -- [Frontend/Pages/LandingPage](modules/frontend_pages_landingpage.md) -- [Frontend/Pages/LoadingPage](modules/frontend_pages_loadingpage.md) -- [Frontend/Pages/PreviewPage](modules/frontend_pages_previewpage.md) -- [Frontend/Pages/ShareArtifact](modules/frontend_pages_shareartifact.md) -- [Frontend/Pages/SharePlanet](modules/frontend_pages_shareplanet.md) -- [Frontend/Pages/TestArtifactImages](modules/frontend_pages_testartifactimages.md) -- [Frontend/Pages/TxConfirmPopup](modules/frontend_pages_txconfirmpopup.md) -- [Frontend/Pages/UnsubscribePage](modules/frontend_pages_unsubscribepage.md) -- [Frontend/Pages/ValhallaPage](modules/frontend_pages_valhallapage.md) -- [Frontend/Panes/ArtifactConversation/ArtifactConversationPane](modules/frontend_panes_artifactconversation_artifactconversationpane.md) -- [Frontend/Panes/ArtifactConversation/ConversationSuggestions](modules/frontend_panes_artifactconversation_conversationsuggestions.md) -- [Frontend/Panes/ArtifactDetailsPane](modules/frontend_panes_artifactdetailspane.md) -- [Frontend/Panes/BroadcastPane](modules/frontend_panes_broadcastpane.md) -- [Frontend/Panes/CoordsPane](modules/frontend_panes_coordspane.md) -- [Frontend/Panes/DiagnosticsPane](modules/frontend_panes_diagnosticspane.md) -- [Frontend/Panes/ExplorePane](modules/frontend_panes_explorepane.md) -- [Frontend/Panes/HatPane](modules/frontend_panes_hatpane.md) -- [Frontend/Panes/HelpPane](modules/frontend_panes_helppane.md) -- [Frontend/Panes/HoverPlanetPane](modules/frontend_panes_hoverplanetpane.md) -- [Frontend/Panes/LeaderboardPane](modules/frontend_panes_leaderboardpane.md) -- [Frontend/Panes/ManagePlanetArtifacts/ArtifactActions](modules/frontend_panes_manageplanetartifacts_artifactactions.md) -- [Frontend/Panes/ManagePlanetArtifacts/ArtifactListItem](modules/frontend_panes_manageplanetartifacts_artifactlistitem.md) -- [Frontend/Panes/ManagePlanetArtifacts/ArtifactsList](modules/frontend_panes_manageplanetartifacts_artifactslist.md) -- [Frontend/Panes/ManagePlanetArtifacts/Find](modules/frontend_panes_manageplanetartifacts_find.md) -- [Frontend/Panes/ManagePlanetArtifacts/ManageArtifacts](modules/frontend_panes_manageplanetartifacts_manageartifacts.md) -- [Frontend/Panes/ManagePlanetArtifacts/ManagePlanetArtifactsPane](modules/frontend_panes_manageplanetartifacts_manageplanetartifactspane.md) -- [Frontend/Panes/ManagePlanetArtifacts/Prospect](modules/frontend_panes_manageplanetartifacts_prospect.md) -- [Frontend/Panes/ManagePlanetArtifacts/SortBy](modules/frontend_panes_manageplanetartifacts_sortby.md) -- [Frontend/Panes/ManagePlanetArtifacts/UpgradeStatsView](modules/frontend_panes_manageplanetartifacts_upgradestatsview.md) -- [Frontend/Panes/OnboardingPane](modules/frontend_panes_onboardingpane.md) -- [Frontend/Panes/PaidArtifactConversation/ConversationInfo](modules/frontend_panes_paidartifactconversation_conversationinfo.md) -- [Frontend/Panes/PaidArtifactConversation/CurrencyView](modules/frontend_panes_paidartifactconversation_currencyview.md) -- [Frontend/Panes/PaidArtifactConversation/PaidArtifactConversationPane](modules/frontend_panes_paidartifactconversation_paidartifactconversationpane.md) -- [Frontend/Panes/PlanetContextPane](modules/frontend_panes_planetcontextpane.md) -- [Frontend/Panes/PlanetDetailsPane](modules/frontend_panes_planetdetailspane.md) -- [Frontend/Panes/PlanetDexPane](modules/frontend_panes_planetdexpane.md) -- [Frontend/Panes/PlayerArtifactsPane](modules/frontend_panes_playerartifactspane.md) -- [Frontend/Panes/PlayerInfoPane](modules/frontend_panes_playerinfopane.md) -- [Frontend/Panes/PluginEditorPane](modules/frontend_panes_plugineditorpane.md) -- [Frontend/Panes/PluginLibraryPane](modules/frontend_panes_pluginlibrarypane.md) -- [Frontend/Panes/PrivatePane](modules/frontend_panes_privatepane.md) -- [Frontend/Panes/SettingsPane](modules/frontend_panes_settingspane.md) -- [Frontend/Panes/Tooltip](modules/frontend_panes_tooltip.md) -- [Frontend/Panes/TooltipPanes](modules/frontend_panes_tooltippanes.md) -- [Frontend/Panes/TutorialPane](modules/frontend_panes_tutorialpane.md) -- [Frontend/Panes/TwitterVerifyPane](modules/frontend_panes_twitterverifypane.md) -- [Frontend/Panes/UpgradeDetailsPane](modules/frontend_panes_upgradedetailspane.md) -- [Frontend/Panes/WikiPane](modules/frontend_panes_wikipane.md) -- [Frontend/Panes/WithdrawSilverPane](modules/frontend_panes_withdrawsilverpane.md) -- [Frontend/Panes/ZoomPane](modules/frontend_panes_zoompane.md) -- [Frontend/Renderers/Artifacts/ArtifactRenderer](modules/frontend_renderers_artifacts_artifactrenderer.md) -- [Frontend/Renderers/GameRenderer/EngineConsts](modules/frontend_renderers_gamerenderer_engineconsts.md) -- [Frontend/Renderers/GameRenderer/EngineTypes](modules/frontend_renderers_gamerenderer_enginetypes.md) -- [Frontend/Renderers/GameRenderer/EngineUtils](modules/frontend_renderers_gamerenderer_engineutils.md) -- [Frontend/Renderers/GameRenderer/Entities/AsteroidRenderer](modules/frontend_renderers_gamerenderer_entities_asteroidrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/BackgroundRenderer](modules/frontend_renderers_gamerenderer_entities_backgroundrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/BeltRenderer](modules/frontend_renderers_gamerenderer_entities_beltrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/BlackDomainRenderer](modules/frontend_renderers_gamerenderer_entities_blackdomainrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/CircleRenderer](modules/frontend_renderers_gamerenderer_entities_circlerenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/LineRenderer](modules/frontend_renderers_gamerenderer_entities_linerenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/MaskRenderer](modules/frontend_renderers_gamerenderer_entities_maskrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/MineBodyRenderer](modules/frontend_renderers_gamerenderer_entities_minebodyrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/MineRenderer](modules/frontend_renderers_gamerenderer_entities_minerenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/PerlinRenderer](modules/frontend_renderers_gamerenderer_entities_perlinrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/PerlinUtils](modules/frontend_renderers_gamerenderer_entities_perlinutils.md) -- [Frontend/Renderers/GameRenderer/Entities/PlanetRenderManager](modules/frontend_renderers_gamerenderer_entities_planetrendermanager.md) -- [Frontend/Renderers/GameRenderer/Entities/PlanetRenderer](modules/frontend_renderers_gamerenderer_entities_planetrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/QuasarBodyRenderer](modules/frontend_renderers_gamerenderer_entities_quasarbodyrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/QuasarRayRenderer](modules/frontend_renderers_gamerenderer_entities_quasarrayrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/QuasarRenderer](modules/frontend_renderers_gamerenderer_entities_quasarrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/RectRenderer](modules/frontend_renderers_gamerenderer_entities_rectrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/RingRenderer](modules/frontend_renderers_gamerenderer_entities_ringrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/RuinsRenderer](modules/frontend_renderers_gamerenderer_entities_ruinsrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/SpacetimeRipRenderer](modules/frontend_renderers_gamerenderer_entities_spacetimeriprenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/SpriteRenderer](modules/frontend_renderers_gamerenderer_entities_spriterenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/TextRenderer](modules/frontend_renderers_gamerenderer_entities_textrenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/VoyageRenderer](modules/frontend_renderers_gamerenderer_entities_voyagerenderer.md) -- [Frontend/Renderers/GameRenderer/Entities/WormholeRenderer](modules/frontend_renderers_gamerenderer_entities_wormholerenderer.md) -- [Frontend/Renderers/GameRenderer/Overlay2DRenderer](modules/frontend_renderers_gamerenderer_overlay2drenderer.md) -- [Frontend/Renderers/GameRenderer/Programs/AsteroidProgram](modules/frontend_renderers_gamerenderer_programs_asteroidprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/BeltProgram](modules/frontend_renderers_gamerenderer_programs_beltprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/BlackDomainProgram](modules/frontend_renderers_gamerenderer_programs_blackdomainprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/CircleProgram](modules/frontend_renderers_gamerenderer_programs_circleprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/GlassProgram](modules/frontend_renderers_gamerenderer_programs_glassprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/LineProgram](modules/frontend_renderers_gamerenderer_programs_lineprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/MaskProgram](modules/frontend_renderers_gamerenderer_programs_maskprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/MineProgram](modules/frontend_renderers_gamerenderer_programs_mineprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/NoiseProgram](modules/frontend_renderers_gamerenderer_programs_noiseprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/PerlinProgram](modules/frontend_renderers_gamerenderer_programs_perlinprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/PlanetProgram](modules/frontend_renderers_gamerenderer_programs_planetprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/QuasarBodyProgram](modules/frontend_renderers_gamerenderer_programs_quasarbodyprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/QuasarRayProgram](modules/frontend_renderers_gamerenderer_programs_quasarrayprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/RectProgram](modules/frontend_renderers_gamerenderer_programs_rectprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/RingProgram](modules/frontend_renderers_gamerenderer_programs_ringprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/RuinsProgram](modules/frontend_renderers_gamerenderer_programs_ruinsprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/SpacetimeRipProgram](modules/frontend_renderers_gamerenderer_programs_spacetimeripprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/SpriteProgram](modules/frontend_renderers_gamerenderer_programs_spriteprogram.md) -- [Frontend/Renderers/GameRenderer/Programs/TextProgram](modules/frontend_renderers_gamerenderer_programs_textprogram.md) -- [Frontend/Renderers/GameRenderer/Renderer](modules/frontend_renderers_gamerenderer_renderer.md) -- [Frontend/Renderers/GameRenderer/TextureManager](modules/frontend_renderers_gamerenderer_texturemanager.md) -- [Frontend/Renderers/GameRenderer/UIRenderer](modules/frontend_renderers_gamerenderer_uirenderer.md) -- [Frontend/Renderers/GameRenderer/WebGL/AttribArray](modules/frontend_renderers_gamerenderer_webgl_attribarray.md) -- [Frontend/Renderers/GameRenderer/WebGL/AttribManager](modules/frontend_renderers_gamerenderer_webgl_attribmanager.md) -- [Frontend/Renderers/GameRenderer/WebGL/GameGLManager](modules/frontend_renderers_gamerenderer_webgl_gameglmanager.md) -- [Frontend/Renderers/GameRenderer/WebGL/GenericRenderer](modules/frontend_renderers_gamerenderer_webgl_genericrenderer.md) -- [Frontend/Renderers/GameRenderer/WebGL/ProgramUtils](modules/frontend_renderers_gamerenderer_webgl_programutils.md) -- [Frontend/Renderers/GameRenderer/WebGL/ShaderMixins](modules/frontend_renderers_gamerenderer_webgl_shadermixins.md) -- [Frontend/Renderers/GameRenderer/WebGL/WebGLLibTypes](modules/frontend_renderers_gamerenderer_webgl_webgllibtypes.md) -- [Frontend/Renderers/GameRenderer/WebGL/WebGLManager](modules/frontend_renderers_gamerenderer_webgl_webglmanager.md) -- [Frontend/Renderers/GifRenderer](modules/frontend_renderers_gifrenderer.md) -- [Frontend/Renderers/LandingPageCanvas](modules/frontend_renderers_landingpagecanvas.md) -- [Frontend/Renderers/PlanetscapeRenderer/PathProgram](modules/frontend_renderers_planetscaperenderer_pathprogram.md) -- [Frontend/Renderers/PlanetscapeRenderer/PathRenderer](modules/frontend_renderers_planetscaperenderer_pathrenderer.md) -- [Frontend/Renderers/PlanetscapeRenderer/PlanetIcons](modules/frontend_renderers_planetscaperenderer_planeticons.md) -- [Frontend/Renderers/PlanetscapeRenderer/PlanetScape](modules/frontend_renderers_planetscaperenderer_planetscape.md) -- [Frontend/Renderers/PlanetscapeRenderer/PlanetScapeRenderer](modules/frontend_renderers_planetscaperenderer_planetscaperenderer.md) -- [Frontend/Styles/Colors](modules/frontend_styles_colors.md) -- [Frontend/Styles/Mixins](modules/frontend_styles_mixins.md) -- [Frontend/Styles/colors](modules/frontend_styles_colors.md) -- [Frontend/Styles/dfstyles](modules/frontend_styles_dfstyles.md) -- [Frontend/Styles/tailwind.config](modules/frontend_styles_tailwind_config.md) -- [Frontend/Utils/AppHooks](modules/frontend_utils_apphooks.md) -- [Frontend/Utils/BrowserChecks](modules/frontend_utils_browserchecks.md) -- [Frontend/Utils/EmitterHooks](modules/frontend_utils_emitterhooks.md) -- [Frontend/Utils/EmitterUtils](modules/frontend_utils_emitterutils.md) -- [Frontend/Utils/Hats](modules/frontend_utils_hats.md) -- [Frontend/Utils/Hooks](modules/frontend_utils_hooks.md) -- [Frontend/Utils/KeyEmitters](modules/frontend_utils_keyemitters.md) -- [Frontend/Utils/Monomitter](modules/frontend_utils_monomitter.md) -- [Frontend/Utils/SettingsHooks](modules/frontend_utils_settingshooks.md) -- [Frontend/Utils/ShortcutConstants](modules/frontend_utils_shortcutconstants.md) -- [Frontend/Utils/TerminalTypes](modules/frontend_utils_terminaltypes.md) -- [Frontend/Utils/TimeUtils](modules/frontend_utils_timeutils.md) -- [Frontend/Utils/UIEmitter](modules/frontend_utils_uiemitter.md) -- [Frontend/Utils/constants](modules/frontend_utils_constants.md) -- [Frontend/Utils/createDefinedContext](modules/frontend_utils_createdefinedcontext.md) -- [Frontend/Views/ArtifactLink](modules/frontend_views_artifactlink.md) -- [Frontend/Views/DFErrorBoundary](modules/frontend_views_dferrorboundary.md) -- [Frontend/Views/DarkForestTips](modules/frontend_views_darkforesttips.md) -- [Frontend/Views/EmojiPicker](modules/frontend_views_emojipicker.md) -- [Frontend/Views/EmojiPlanetNotification](modules/frontend_views_emojiplanetnotification.md) -- [Frontend/Views/GameWindowLayout](modules/frontend_views_gamewindowlayout.md) -- [Frontend/Views/Leaderboard](modules/frontend_views_leaderboard.md) -- [Frontend/Views/MenuBar](modules/frontend_views_menubar.md) -- [Frontend/Views/ModalIcon](modules/frontend_views_modalicon.md) -- [Frontend/Views/ModalPane](modules/frontend_views_modalpane.md) -- [Frontend/Views/Notifications](modules/frontend_views_notifications.md) -- [Frontend/Views/OwnedPluginView](modules/frontend_views_ownedpluginview.md) -- [Frontend/Views/PlanetCard](modules/frontend_views_planetcard.md) -- [Frontend/Views/PlanetCardComponents](modules/frontend_views_planetcardcomponents.md) -- [Frontend/Views/PlanetLink](modules/frontend_views_planetlink.md) -- [Frontend/Views/PlanetNotifications](modules/frontend_views_planetnotifications.md) -- [Frontend/Views/SendResources](modules/frontend_views_sendresources.md) -- [Frontend/Views/Share](modules/frontend_views_share.md) -- [Frontend/Views/SortableTable](modules/frontend_views_sortabletable.md) -- [Frontend/Views/TabbedView](modules/frontend_views_tabbedview.md) -- [Frontend/Views/Table](modules/frontend_views_table.md) -- [Frontend/Views/Terminal](modules/frontend_views_terminal.md) -- [Frontend/Views/TopBar](modules/frontend_views_topbar.md) -- [Frontend/Views/UpgradePreview](modules/frontend_views_upgradepreview.md) -- [Frontend/Views/WithdrawSilver](modules/frontend_views_withdrawsilver.md) -- [\_types/darkforest/api/ChunkStoreTypes](modules/_types_darkforest_api_chunkstoretypes.md) -- [\_types/darkforest/api/ContractsAPITypes](modules/_types_darkforest_api_contractsapitypes.md) -- [\_types/darkforest/api/UtilityServerAPITypes](modules/_types_darkforest_api_utilityserverapitypes.md) -- [\_types/file-loader/FileWorkerTypes](modules/_types_file_loader_fileworkertypes.md) -- [\_types/global/GlobalTypes](modules/_types_global_globaltypes.md) -- [\_types/global/globals](modules/_types_global_globals.md) -- [\_types/worker-loader/WorkerTypes](modules/_types_worker_loader_workertypes.md) +- [Backend/GameLogic/ArrivalUtils](modules/Backend_GameLogic_ArrivalUtils.md) +- [Backend/GameLogic/CaptureZoneGenerator](modules/Backend_GameLogic_CaptureZoneGenerator.md) +- [Backend/GameLogic/ContractsAPI](modules/Backend_GameLogic_ContractsAPI.md) +- [Backend/GameLogic/GameManager](modules/Backend_GameLogic_GameManager.md) +- [Backend/GameLogic/GameObjects](modules/Backend_GameLogic_GameObjects.md) +- [Backend/GameLogic/GameUIManager](modules/Backend_GameLogic_GameUIManager.md) +- [Backend/GameLogic/InitialGameStateDownloader](modules/Backend_GameLogic_InitialGameStateDownloader.md) +- [Backend/GameLogic/LayeredMap](modules/Backend_GameLogic_LayeredMap.md) +- [Backend/GameLogic/PluginManager](modules/Backend_GameLogic_PluginManager.md) +- [Backend/GameLogic/TutorialManager](modules/Backend_GameLogic_TutorialManager.md) +- [Backend/GameLogic/ViewportEntities](modules/Backend_GameLogic_ViewportEntities.md) +- [Backend/Miner/ChunkUtils](modules/Backend_Miner_ChunkUtils.md) +- [Backend/Miner/MinerManager](modules/Backend_Miner_MinerManager.md) +- [Backend/Miner/MiningPatterns](modules/Backend_Miner_MiningPatterns.md) +- [Backend/Miner/permutation](modules/Backend_Miner_permutation.md) +- [Backend/Network/AccountManager](modules/Backend_Network_AccountManager.md) +- [Backend/Network/Blockchain](modules/Backend_Network_Blockchain.md) +- [Backend/Network/EventLogger](modules/Backend_Network_EventLogger.md) +- [Backend/Network/LeaderboardApi](modules/Backend_Network_LeaderboardApi.md) +- [Backend/Network/MessageAPI](modules/Backend_Network_MessageAPI.md) +- [Backend/Network/NetworkHealthApi](modules/Backend_Network_NetworkHealthApi.md) +- [Backend/Network/UtilityServerAPI](modules/Backend_Network_UtilityServerAPI.md) +- [Backend/Plugins/EmbeddedPluginLoader](modules/Backend_Plugins_EmbeddedPluginLoader.md) +- [Backend/Plugins/PluginProcess](modules/Backend_Plugins_PluginProcess.md) +- [Backend/Plugins/PluginTemplate](modules/Backend_Plugins_PluginTemplate.md) +- [Backend/Plugins/SerializedPlugin](modules/Backend_Plugins_SerializedPlugin.md) +- [Backend/Storage/PersistentChunkStore](modules/Backend_Storage_PersistentChunkStore.md) +- [Backend/Storage/ReaderDataStore](modules/Backend_Storage_ReaderDataStore.md) +- [Backend/Utils/Animation](modules/Backend_Utils_Animation.md) +- [Backend/Utils/Coordinates](modules/Backend_Utils_Coordinates.md) +- [Backend/Utils/SnarkArgsHelper](modules/Backend_Utils_SnarkArgsHelper.md) +- [Backend/Utils/Utils](modules/Backend_Utils_Utils.md) +- [Backend/Utils/WhitelistSnarkArgsHelper](modules/Backend_Utils_WhitelistSnarkArgsHelper.md) +- [Backend/Utils/Wrapper](modules/Backend_Utils_Wrapper.md) +- [Frontend/Components/AncientLabel](modules/Frontend_Components_AncientLabel.md) +- [Frontend/Components/ArtifactImage](modules/Frontend_Components_ArtifactImage.md) +- [Frontend/Components/BiomeAnims](modules/Frontend_Components_BiomeAnims.md) +- [Frontend/Components/Btn](modules/Frontend_Components_Btn.md) +- [Frontend/Components/Button](modules/Frontend_Components_Button.md) +- [Frontend/Components/CapturePlanetButton](modules/Frontend_Components_CapturePlanetButton.md) +- [Frontend/Components/CoreUI](modules/Frontend_Components_CoreUI.md) +- [Frontend/Components/Corner](modules/Frontend_Components_Corner.md) +- [Frontend/Components/DisplayGasPrices](modules/Frontend_Components_DisplayGasPrices.md) +- [Frontend/Components/Email](modules/Frontend_Components_Email.md) +- [Frontend/Components/GameLandingPageComponents](modules/Frontend_Components_GameLandingPageComponents.md) +- [Frontend/Components/GameWindowComponents](modules/Frontend_Components_GameWindowComponents.md) +- [Frontend/Components/Icons](modules/Frontend_Components_Icons.md) +- [Frontend/Components/Input](modules/Frontend_Components_Input.md) +- [Frontend/Components/Labels/ArtifactLabels](modules/Frontend_Components_Labels_ArtifactLabels.md) +- [Frontend/Components/Labels/BiomeLabels](modules/Frontend_Components_Labels_BiomeLabels.md) +- [Frontend/Components/Labels/KeywordLabels](modules/Frontend_Components_Labels_KeywordLabels.md) +- [Frontend/Components/Labels/Labels](modules/Frontend_Components_Labels_Labels.md) +- [Frontend/Components/Labels/LavaLabel](modules/Frontend_Components_Labels_LavaLabel.md) +- [Frontend/Components/Labels/LegendaryLabel](modules/Frontend_Components_Labels_LegendaryLabel.md) +- [Frontend/Components/Labels/MythicLabel](modules/Frontend_Components_Labels_MythicLabel.md) +- [Frontend/Components/Labels/PlanetLabels](modules/Frontend_Components_Labels_PlanetLabels.md) +- [Frontend/Components/Labels/SpacetimeRipLabel](modules/Frontend_Components_Labels_SpacetimeRipLabel.md) +- [Frontend/Components/Labels/WastelandLabel](modules/Frontend_Components_Labels_WastelandLabel.md) +- [Frontend/Components/LoadingSpinner](modules/Frontend_Components_LoadingSpinner.md) +- [Frontend/Components/MaybeShortcutButton](modules/Frontend_Components_MaybeShortcutButton.md) +- [Frontend/Components/MineArtifactButton](modules/Frontend_Components_MineArtifactButton.md) +- [Frontend/Components/Modal](modules/Frontend_Components_Modal.md) +- [Frontend/Components/OpenPaneButtons](modules/Frontend_Components_OpenPaneButtons.md) +- [Frontend/Components/PluginModal](modules/Frontend_Components_PluginModal.md) +- [Frontend/Components/ReadMore](modules/Frontend_Components_ReadMore.md) +- [Frontend/Components/RemoteModal](modules/Frontend_Components_RemoteModal.md) +- [Frontend/Components/Row](modules/Frontend_Components_Row.md) +- [Frontend/Components/Slider](modules/Frontend_Components_Slider.md) +- [Frontend/Components/Text](modules/Frontend_Components_Text.md) +- [Frontend/Components/TextLoadingBar](modules/Frontend_Components_TextLoadingBar.md) +- [Frontend/Components/TextPreview](modules/Frontend_Components_TextPreview.md) +- [Frontend/Components/Theme](modules/Frontend_Components_Theme.md) +- [Frontend/Components/TimeUntil](modules/Frontend_Components_TimeUntil.md) +- [Frontend/Game/ControllableCanvas](modules/Frontend_Game_ControllableCanvas.md) +- [Frontend/Game/ModalManager](modules/Frontend_Game_ModalManager.md) +- [Frontend/Game/NotificationManager](modules/Frontend_Game_NotificationManager.md) +- [Frontend/Game/Popups](modules/Frontend_Game_Popups.md) +- [Frontend/Game/Viewport](modules/Frontend_Game_Viewport.md) +- [Frontend/Pages/App](modules/Frontend_Pages_App.md) +- [Frontend/Pages/CreateLobby](modules/Frontend_Pages_CreateLobby.md) +- [Frontend/Pages/EventsPage](modules/Frontend_Pages_EventsPage.md) +- [Frontend/Pages/GameLandingPage](modules/Frontend_Pages_GameLandingPage.md) +- [Frontend/Pages/GifMaker](modules/Frontend_Pages_GifMaker.md) +- [Frontend/Pages/LandingPage](modules/Frontend_Pages_LandingPage.md) +- [Frontend/Pages/LoadingPage](modules/Frontend_Pages_LoadingPage.md) +- [Frontend/Pages/LobbyLandingPage](modules/Frontend_Pages_LobbyLandingPage.md) +- [Frontend/Pages/NotFoundPage](modules/Frontend_Pages_NotFoundPage.md) +- [Frontend/Pages/ShareArtifact](modules/Frontend_Pages_ShareArtifact.md) +- [Frontend/Pages/SharePlanet](modules/Frontend_Pages_SharePlanet.md) +- [Frontend/Pages/TestArtifactImages](modules/Frontend_Pages_TestArtifactImages.md) +- [Frontend/Pages/TxConfirmPopup](modules/Frontend_Pages_TxConfirmPopup.md) +- [Frontend/Pages/UnsubscribePage](modules/Frontend_Pages_UnsubscribePage.md) +- [Frontend/Pages/ValhallaPage](modules/Frontend_Pages_ValhallaPage.md) +- [Frontend/Panes/ArtifactCard](modules/Frontend_Panes_ArtifactCard.md) +- [Frontend/Panes/ArtifactDetailsPane](modules/Frontend_Panes_ArtifactDetailsPane.md) +- [Frontend/Panes/ArtifactHoverPane](modules/Frontend_Panes_ArtifactHoverPane.md) +- [Frontend/Panes/ArtifactsList](modules/Frontend_Panes_ArtifactsList.md) +- [Frontend/Panes/BroadcastPane](modules/Frontend_Panes_BroadcastPane.md) +- [Frontend/Panes/CoordsPane](modules/Frontend_Panes_CoordsPane.md) +- [Frontend/Panes/DiagnosticsPane](modules/Frontend_Panes_DiagnosticsPane.md) +- [Frontend/Panes/ExplorePane](modules/Frontend_Panes_ExplorePane.md) +- [Frontend/Panes/HatPane](modules/Frontend_Panes_HatPane.md) +- [Frontend/Panes/HelpPane](modules/Frontend_Panes_HelpPane.md) +- [Frontend/Panes/HoverPane](modules/Frontend_Panes_HoverPane.md) +- [Frontend/Panes/HoverPlanetPane](modules/Frontend_Panes_HoverPlanetPane.md) +- [Frontend/Panes/Lobbies/AdminPermissionsPane](modules/Frontend_Panes_Lobbies_AdminPermissionsPane.md) +- [Frontend/Panes/Lobbies/ArtifactSettingsPane](modules/Frontend_Panes_Lobbies_ArtifactSettingsPane.md) +- [Frontend/Panes/Lobbies/CaptureZonesPane](modules/Frontend_Panes_Lobbies_CaptureZonesPane.md) +- [Frontend/Panes/Lobbies/ConfigurationPane](modules/Frontend_Panes_Lobbies_ConfigurationPane.md) +- [Frontend/Panes/Lobbies/GameSettingsPane](modules/Frontend_Panes_Lobbies_GameSettingsPane.md) +- [Frontend/Panes/Lobbies/LobbiesUtils](modules/Frontend_Panes_Lobbies_LobbiesUtils.md) +- [Frontend/Panes/Lobbies/MinimapPane](modules/Frontend_Panes_Lobbies_MinimapPane.md) +- [Frontend/Panes/Lobbies/MinimapUtils](modules/Frontend_Panes_Lobbies_MinimapUtils.md) +- [Frontend/Panes/Lobbies/PlanetPane](modules/Frontend_Panes_Lobbies_PlanetPane.md) +- [Frontend/Panes/Lobbies/PlayerSpawnPane](modules/Frontend_Panes_Lobbies_PlayerSpawnPane.md) +- [Frontend/Panes/Lobbies/Reducer](modules/Frontend_Panes_Lobbies_Reducer.md) +- [Frontend/Panes/Lobbies/SnarkPane](modules/Frontend_Panes_Lobbies_SnarkPane.md) +- [Frontend/Panes/Lobbies/SpaceJunkPane](modules/Frontend_Panes_Lobbies_SpaceJunkPane.md) +- [Frontend/Panes/Lobbies/SpaceTypeBiomePane](modules/Frontend_Panes_Lobbies_SpaceTypeBiomePane.md) +- [Frontend/Panes/Lobbies/WorldSizePane](modules/Frontend_Panes_Lobbies_WorldSizePane.md) +- [Frontend/Panes/ManagePlanetArtifacts/ArtifactActions](modules/Frontend_Panes_ManagePlanetArtifacts_ArtifactActions.md) +- [Frontend/Panes/ManagePlanetArtifacts/ManageArtifacts](modules/Frontend_Panes_ManagePlanetArtifacts_ManageArtifacts.md) +- [Frontend/Panes/ManagePlanetArtifacts/ManagePlanetArtifactsPane](modules/Frontend_Panes_ManagePlanetArtifacts_ManagePlanetArtifactsPane.md) +- [Frontend/Panes/ManagePlanetArtifacts/SortBy](modules/Frontend_Panes_ManagePlanetArtifacts_SortBy.md) +- [Frontend/Panes/ManagePlanetArtifacts/UpgradeStatsView](modules/Frontend_Panes_ManagePlanetArtifacts_UpgradeStatsView.md) +- [Frontend/Panes/OnboardingPane](modules/Frontend_Panes_OnboardingPane.md) +- [Frontend/Panes/PlanetContextPane](modules/Frontend_Panes_PlanetContextPane.md) +- [Frontend/Panes/PlanetDexPane](modules/Frontend_Panes_PlanetDexPane.md) +- [Frontend/Panes/PlanetInfoPane](modules/Frontend_Panes_PlanetInfoPane.md) +- [Frontend/Panes/PlayerArtifactsPane](modules/Frontend_Panes_PlayerArtifactsPane.md) +- [Frontend/Panes/PluginEditorPane](modules/Frontend_Panes_PluginEditorPane.md) +- [Frontend/Panes/PluginLibraryPane](modules/Frontend_Panes_PluginLibraryPane.md) +- [Frontend/Panes/PrivatePane](modules/Frontend_Panes_PrivatePane.md) +- [Frontend/Panes/SettingsPane](modules/Frontend_Panes_SettingsPane.md) +- [Frontend/Panes/Tooltip](modules/Frontend_Panes_Tooltip.md) +- [Frontend/Panes/TooltipPanes](modules/Frontend_Panes_TooltipPanes.md) +- [Frontend/Panes/TransactionLogPane](modules/Frontend_Panes_TransactionLogPane.md) +- [Frontend/Panes/TutorialPane](modules/Frontend_Panes_TutorialPane.md) +- [Frontend/Panes/TwitterVerifyPane](modules/Frontend_Panes_TwitterVerifyPane.md) +- [Frontend/Panes/UpgradeDetailsPane](modules/Frontend_Panes_UpgradeDetailsPane.md) +- [Frontend/Panes/WikiPane](modules/Frontend_Panes_WikiPane.md) +- [Frontend/Panes/ZoomPane](modules/Frontend_Panes_ZoomPane.md) +- [Frontend/Renderers/Artifacts/ArtifactRenderer](modules/Frontend_Renderers_Artifacts_ArtifactRenderer.md) +- [Frontend/Renderers/GifRenderer](modules/Frontend_Renderers_GifRenderer.md) +- [Frontend/Renderers/LandingPageCanvas](modules/Frontend_Renderers_LandingPageCanvas.md) +- [Frontend/Renderers/PlanetscapeRenderer/PlanetIcons](modules/Frontend_Renderers_PlanetscapeRenderer_PlanetIcons.md) +- [Frontend/Styles/Colors](modules/Frontend_Styles_Colors.md) +- [Frontend/Styles/Mixins](modules/Frontend_Styles_Mixins.md) +- [Frontend/Styles/dfstyles](modules/Frontend_Styles_dfstyles.md) +- [Frontend/Utils/AppHooks](modules/Frontend_Utils_AppHooks.md) +- [Frontend/Utils/BrowserChecks](modules/Frontend_Utils_BrowserChecks.md) +- [Frontend/Utils/EmitterHooks](modules/Frontend_Utils_EmitterHooks.md) +- [Frontend/Utils/EmitterUtils](modules/Frontend_Utils_EmitterUtils.md) +- [Frontend/Utils/Hooks](modules/Frontend_Utils_Hooks.md) +- [Frontend/Utils/KeyEmitters](modules/Frontend_Utils_KeyEmitters.md) +- [Frontend/Utils/SettingsHooks](modules/Frontend_Utils_SettingsHooks.md) +- [Frontend/Utils/ShortcutConstants](modules/Frontend_Utils_ShortcutConstants.md) +- [Frontend/Utils/TerminalTypes](modules/Frontend_Utils_TerminalTypes.md) +- [Frontend/Utils/TimeUtils](modules/Frontend_Utils_TimeUtils.md) +- [Frontend/Utils/UIEmitter](modules/Frontend_Utils_UIEmitter.md) +- [Frontend/Utils/constants](modules/Frontend_Utils_constants.md) +- [Frontend/Utils/createDefinedContext](modules/Frontend_Utils_createDefinedContext.md) +- [Frontend/Views/ArtifactLink](modules/Frontend_Views_ArtifactLink.md) +- [Frontend/Views/ArtifactRow](modules/Frontend_Views_ArtifactRow.md) +- [Frontend/Views/CadetWormhole](modules/Frontend_Views_CadetWormhole.md) +- [Frontend/Views/DFErrorBoundary](modules/Frontend_Views_DFErrorBoundary.md) +- [Frontend/Views/DarkForestTips](modules/Frontend_Views_DarkForestTips.md) +- [Frontend/Views/EmojiPicker](modules/Frontend_Views_EmojiPicker.md) +- [Frontend/Views/EmojiPlanetNotification](modules/Frontend_Views_EmojiPlanetNotification.md) +- [Frontend/Views/GameWindowLayout](modules/Frontend_Views_GameWindowLayout.md) +- [Frontend/Views/GenericErrorBoundary](modules/Frontend_Views_GenericErrorBoundary.md) +- [Frontend/Views/LandingPageRoundArt](modules/Frontend_Views_LandingPageRoundArt.md) +- [Frontend/Views/Leaderboard](modules/Frontend_Views_Leaderboard.md) +- [Frontend/Views/ModalIcon](modules/Frontend_Views_ModalIcon.md) +- [Frontend/Views/ModalPane](modules/Frontend_Views_ModalPane.md) +- [Frontend/Views/NetworkHealth](modules/Frontend_Views_NetworkHealth.md) +- [Frontend/Views/Notifications](modules/Frontend_Views_Notifications.md) +- [Frontend/Views/Paused](modules/Frontend_Views_Paused.md) +- [Frontend/Views/PlanetCard](modules/Frontend_Views_PlanetCard.md) +- [Frontend/Views/PlanetCardComponents](modules/Frontend_Views_PlanetCardComponents.md) +- [Frontend/Views/PlanetLink](modules/Frontend_Views_PlanetLink.md) +- [Frontend/Views/PlanetNotifications](modules/Frontend_Views_PlanetNotifications.md) +- [Frontend/Views/SendResources](modules/Frontend_Views_SendResources.md) +- [Frontend/Views/Share](modules/Frontend_Views_Share.md) +- [Frontend/Views/SidebarPane](modules/Frontend_Views_SidebarPane.md) +- [Frontend/Views/SortableTable](modules/Frontend_Views_SortableTable.md) +- [Frontend/Views/TabbedView](modules/Frontend_Views_TabbedView.md) +- [Frontend/Views/Table](modules/Frontend_Views_Table.md) +- [Frontend/Views/Terminal](modules/Frontend_Views_Terminal.md) +- [Frontend/Views/TopBar](modules/Frontend_Views_TopBar.md) +- [Frontend/Views/UpgradePreview](modules/Frontend_Views_UpgradePreview.md) +- [Frontend/Views/WithdrawSilver](modules/Frontend_Views_WithdrawSilver.md) +- [\_types/darkforest/api/ChunkStoreTypes](modules/types_darkforest_api_ChunkStoreTypes.md) +- [\_types/darkforest/api/ContractsAPITypes](modules/types_darkforest_api_ContractsAPITypes.md) +- [\_types/darkforest/api/UtilityServerAPITypes](modules/types_darkforest_api_UtilityServerAPITypes.md) +- [\_types/file-loader/FileWorkerTypes](modules/types_file_loader_FileWorkerTypes.md) +- [\_types/global/GlobalTypes](modules/types_global_GlobalTypes.md) diff --git a/docs/classes/Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md b/docs/classes/Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md new file mode 100644 index 00000000..9c5d6f3d --- /dev/null +++ b/docs/classes/Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md @@ -0,0 +1,218 @@ +# Class: CaptureZoneGenerator + +[Backend/GameLogic/CaptureZoneGenerator](../modules/Backend_GameLogic_CaptureZoneGenerator.md).CaptureZoneGenerator + +Given a game start block and a zone change block interval, decide when to generate new Capture Zones. + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#constructor) + +### Properties + +- [capturablePlanets](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#capturableplanets) +- [changeInterval](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#changeinterval) +- [gameManager](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#gamemanager) +- [generated$](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#generated$) +- [lastChangeBlock](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#lastchangeblock) +- [nextChangeBlock](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#nextchangeblock) +- [zones](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#zones) + +### Accessors + +- [gameObjects](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#gameobjects) + +### Methods + +- [\_generate](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#_generate) +- [generate](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#generate) +- [getNextChangeBlock](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#getnextchangeblock) +- [getZones](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#getzones) +- [isInZone](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#isinzone) +- [onNewChunk](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#onnewchunk) +- [setNextGenerationBlock](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#setnextgenerationblock) +- [updateCapturablePlanets](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md#updatecapturableplanets) + +## Constructors + +### constructor + +• **new CaptureZoneGenerator**(`gameManager`, `gameStartBlock`, `changeInterval`) + +#### Parameters + +| Name | Type | +| :--------------- | :---------------------------------------------------- | +| `gameManager` | [`default`](Backend_GameLogic_GameManager.default.md) | +| `gameStartBlock` | `number` | +| `changeInterval` | `number` | + +## Properties + +### capturablePlanets + +• `Private` **capturablePlanets**: `Set`<`LocationId`\> + +--- + +### changeInterval + +• `Private` **changeInterval**: `number` + +--- + +### gameManager + +• `Private` **gameManager**: [`default`](Backend_GameLogic_GameManager.default.md) + +--- + +### generated$ + +• `Readonly` **generated$**: `Monomitter`<[`CaptureZonesGeneratedEvent`](../modules/Backend_GameLogic_CaptureZoneGenerator.md#capturezonesgeneratedevent)\> + +--- + +### lastChangeBlock + +• `Private` **lastChangeBlock**: `number` + +--- + +### nextChangeBlock + +• `Private` **nextChangeBlock**: `number` + +--- + +### zones + +• `Private` **zones**: `Set`<`CaptureZone`\> + +## Accessors + +### gameObjects + +• `Private` `get` **gameObjects**(): [`GameObjects`](Backend_GameLogic_GameObjects.GameObjects.md) + +#### Returns + +[`GameObjects`](Backend_GameLogic_GameObjects.GameObjects.md) + +## Methods + +### \_generate + +▸ `Private` **\_generate**(`blockNumber`): `Promise`<`Set`<`CaptureZone`\>\> + +#### Parameters + +| Name | Type | +| :------------ | :------- | +| `blockNumber` | `number` | + +#### Returns + +`Promise`<`Set`<`CaptureZone`\>\> + +--- + +### generate + +▸ **generate**(`blockNumber`): `Promise`<`void`\> + +Call when a new block is received to check if generation is needed. + +#### Parameters + +| Name | Type | Description | +| :------------ | :------- | :-------------------- | +| `blockNumber` | `number` | Current block number. | + +#### Returns + +`Promise`<`void`\> + +--- + +### getNextChangeBlock + +▸ **getNextChangeBlock**(): `number` + +The next block that will trigger a Capture Zone generation. + +#### Returns + +`number` + +--- + +### getZones + +▸ **getZones**(): `Set`<`CaptureZone`\> + +#### Returns + +`Set`<`CaptureZone`\> + +--- + +### isInZone + +▸ **isInZone**(`locationId`): `boolean` + +Is the given planet inside of a Capture Zone. + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | + +#### Returns + +`boolean` + +--- + +### onNewChunk + +▸ `Private` **onNewChunk**(`chunk`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +`void` + +--- + +### setNextGenerationBlock + +▸ `Private` **setNextGenerationBlock**(`blockNumber`): `void` + +#### Parameters + +| Name | Type | +| :------------ | :------- | +| `blockNumber` | `number` | + +#### Returns + +`void` + +--- + +### updateCapturablePlanets + +▸ `Private` **updateCapturablePlanets**(): `void` + +#### Returns + +`void` diff --git a/docs/classes/Backend_GameLogic_ContractsAPI.ContractsAPI.md b/docs/classes/Backend_GameLogic_ContractsAPI.ContractsAPI.md new file mode 100644 index 00000000..6325eaf8 --- /dev/null +++ b/docs/classes/Backend_GameLogic_ContractsAPI.ContractsAPI.md @@ -0,0 +1,657 @@ +# Class: ContractsAPI + +[Backend/GameLogic/ContractsAPI](../modules/Backend_GameLogic_ContractsAPI.md).ContractsAPI + +Roughly contains methods that map 1:1 with functions that live in the contract. Responsible for +reading and writing to and from the blockchain. + +**`todo`** don't inherit from {@link EventEmitter}. instead use {@link Monomitter} + +## Hierarchy + +- `EventEmitter` + + ↳ **`ContractsAPI`** + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_ContractsAPI.ContractsAPI.md#constructor) + +### Properties + +- [contractAddress](Backend_GameLogic_ContractsAPI.ContractsAPI.md#contractaddress) +- [contractCaller](Backend_GameLogic_ContractsAPI.ContractsAPI.md#contractcaller) +- [ethConnection](Backend_GameLogic_ContractsAPI.ContractsAPI.md#ethconnection) +- [txExecutor](Backend_GameLogic_ContractsAPI.ContractsAPI.md#txexecutor) +- [MIN_BALANCE](Backend_GameLogic_ContractsAPI.ContractsAPI.md#min_balance) + +### Accessors + +- [contract](Backend_GameLogic_ContractsAPI.ContractsAPI.md#contract) + +### Methods + +- [afterTransaction](Backend_GameLogic_ContractsAPI.ContractsAPI.md#aftertransaction) +- [beforeQueued](Backend_GameLogic_ContractsAPI.ContractsAPI.md#beforequeued) +- [beforeTransaction](Backend_GameLogic_ContractsAPI.ContractsAPI.md#beforetransaction) +- [bulkGetArtifacts](Backend_GameLogic_ContractsAPI.ContractsAPI.md#bulkgetartifacts) +- [bulkGetArtifactsOnPlanets](Backend_GameLogic_ContractsAPI.ContractsAPI.md#bulkgetartifactsonplanets) +- [bulkGetPlanets](Backend_GameLogic_ContractsAPI.ContractsAPI.md#bulkgetplanets) +- [cancelTransaction](Backend_GameLogic_ContractsAPI.ContractsAPI.md#canceltransaction) +- [destroy](Backend_GameLogic_ContractsAPI.ContractsAPI.md#destroy) +- [emitTransactionEvents](Backend_GameLogic_ContractsAPI.ContractsAPI.md#emittransactionevents) +- [getAddress](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getaddress) +- [getAllArrivals](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getallarrivals) +- [getArrival](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getarrival) +- [getArrivalsForPlanet](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getarrivalsforplanet) +- [getArtifactById](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getartifactbyid) +- [getConstants](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getconstants) +- [getContractAddress](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getcontractaddress) +- [getGasFeeForTransaction](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getgasfeefortransaction) +- [getIsPaused](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getispaused) +- [getPlanetById](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getplanetbyid) +- [getPlayerArtifacts](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getplayerartifacts) +- [getPlayerById](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getplayerbyid) +- [getPlayers](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getplayers) +- [getRevealedCoordsByIdIfExists](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getrevealedcoordsbyidifexists) +- [getRevealedPlanetsCoords](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getrevealedplanetscoords) +- [getTokenMintEndTimestamp](Backend_GameLogic_ContractsAPI.ContractsAPI.md#gettokenmintendtimestamp) +- [getTouchedPlanetIds](Backend_GameLogic_ContractsAPI.ContractsAPI.md#gettouchedplanetids) +- [getWorldRadius](Backend_GameLogic_ContractsAPI.ContractsAPI.md#getworldradius) +- [makeCall](Backend_GameLogic_ContractsAPI.ContractsAPI.md#makecall) +- [prioritizeTransaction](Backend_GameLogic_ContractsAPI.ContractsAPI.md#prioritizetransaction) +- [removeEventListeners](Backend_GameLogic_ContractsAPI.ContractsAPI.md#removeeventlisteners) +- [setDiagnosticUpdater](Backend_GameLogic_ContractsAPI.ContractsAPI.md#setdiagnosticupdater) +- [setupEventListeners](Backend_GameLogic_ContractsAPI.ContractsAPI.md#setupeventlisteners) +- [submitTransaction](Backend_GameLogic_ContractsAPI.ContractsAPI.md#submittransaction) + +## Constructors + +### constructor + +• **new ContractsAPI**(`__namedParameters`) + +#### Parameters + +| Name | Type | +| :------------------ | :------------------- | +| `__namedParameters` | `ContractsApiConfig` | + +#### Overrides + +EventEmitter.constructor + +## Properties + +### contractAddress + +• `Private` **contractAddress**: `EthAddress` + +The contract address is saved on the object upon construction + +--- + +### contractCaller + +• `Private` `Readonly` **contractCaller**: `ContractCaller` + +Instrumented {@link ThrottledConcurrentQueue} for blockchain reads. + +--- + +### ethConnection + +• `Readonly` **ethConnection**: `EthConnection` + +Our connection to the blockchain. In charge of low level networking, and also of the burner +wallet. + +--- + +### txExecutor + +• `Readonly` **txExecutor**: `TxExecutor` + +Instrumented {@link ThrottledConcurrentQueue} for blockchain writes. + +--- + +### MIN_BALANCE + +▪ `Static` `Private` `Readonly` **MIN_BALANCE**: `BigNumber` + +Don't allow users to submit txs if balance falls below this amount/ + +## Accessors + +### contract + +• `get` **contract**(): `DarkForest` + +#### Returns + +`DarkForest` + +## Methods + +### afterTransaction + +▸ `Private` **afterTransaction**(`_txRequest`, `txDiagnosticInfo`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :----------------- | :------------------------- | +| `_txRequest` | `Transaction`<`TxIntent`\> | +| `txDiagnosticInfo` | `unknown` | + +#### Returns + +`Promise`<`void`\> + +--- + +### beforeQueued + +▸ `Private` **beforeQueued**(`id`, `intent`, `overrides?`): `Promise`<`void`\> + +This function is called by {@link TxExecutor} before a transaction is queued. +It gives the client an opportunity to prevent a transaction from being queued based +on business logic or user interaction. + +Reject the promise to prevent the queued transaction from being queued. + +#### Parameters + +| Name | Type | +| :----------- | :------------------- | +| `id` | `number` | +| `intent` | `TxIntent` | +| `overrides?` | `TransactionRequest` | + +#### Returns + +`Promise`<`void`\> + +--- + +### beforeTransaction + +▸ `Private` **beforeTransaction**(`tx`): `Promise`<`void`\> + +This function is called by {@link TxExecutor} before each transaction. It gives the client an +opportunity to prevent a transaction from going through based on business logic or user +interaction. To prevent the queued transaction from being submitted, throw an Error. + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`Promise`<`void`\> + +--- + +### bulkGetArtifacts + +▸ **bulkGetArtifacts**(`artifactIds`, `onProgress?`): `Promise`<`Artifact`[]\> + +#### Parameters + +| Name | Type | +| :------------ | :---------------------------------------- | +| `artifactIds` | `ArtifactId`[] | +| `onProgress?` | (`fractionCompleted`: `number`) => `void` | + +#### Returns + +`Promise`<`Artifact`[]\> + +--- + +### bulkGetArtifactsOnPlanets + +▸ **bulkGetArtifactsOnPlanets**(`locationIds`, `onProgress?`): `Promise`<`Artifact`[][]\> + +#### Parameters + +| Name | Type | +| :------------ | :---------------------------------------- | +| `locationIds` | `LocationId`[] | +| `onProgress?` | (`fractionCompleted`: `number`) => `void` | + +#### Returns + +`Promise`<`Artifact`[][]\> + +--- + +### bulkGetPlanets + +▸ **bulkGetPlanets**(`toLoadPlanets`, `onProgressPlanet?`, `onProgressMetadata?`): `Promise`<`Map`<`LocationId`, `Planet`\>\> + +#### Parameters + +| Name | Type | +| :-------------------- | :---------------------------------------- | +| `toLoadPlanets` | `LocationId`[] | +| `onProgressPlanet?` | (`fractionCompleted`: `number`) => `void` | +| `onProgressMetadata?` | (`fractionCompleted`: `number`) => `void` | + +#### Returns + +`Promise`<`Map`<`LocationId`, `Planet`\>\> + +--- + +### cancelTransaction + +▸ **cancelTransaction**(`tx`): `void` + +Remove a transaction from the queue. + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`void` + +--- + +### destroy + +▸ **destroy**(): `void` + +#### Returns + +`void` + +--- + +### emitTransactionEvents + +▸ **emitTransactionEvents**(`tx`): `void` + +This is a strange interface between the transaction queue system and the rest of the game. The +strange thing about it is that introduces another way by which transactions are pushed into the +game - these {@code ContractsAPIEvent} events. + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`void` + +--- + +### getAddress + +▸ **getAddress**(): `undefined` \| `EthAddress` + +#### Returns + +`undefined` \| `EthAddress` + +--- + +### getAllArrivals + +▸ **getAllArrivals**(`planetsToLoad`, `onProgress?`): `Promise`<`QueuedArrival`[]\> + +#### Parameters + +| Name | Type | +| :-------------- | :---------------------------------------- | +| `planetsToLoad` | `LocationId`[] | +| `onProgress?` | (`fractionCompleted`: `number`) => `void` | + +#### Returns + +`Promise`<`QueuedArrival`[]\> + +--- + +### getArrival + +▸ **getArrival**(`arrivalId`): `Promise`<`undefined` \| `QueuedArrival`\> + +#### Parameters + +| Name | Type | +| :---------- | :------- | +| `arrivalId` | `number` | + +#### Returns + +`Promise`<`undefined` \| `QueuedArrival`\> + +--- + +### getArrivalsForPlanet + +▸ **getArrivalsForPlanet**(`planetId`): `Promise`<`QueuedArrival`[]\> + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`Promise`<`QueuedArrival`[]\> + +--- + +### getArtifactById + +▸ **getArtifactById**(`artifactId`): `Promise`<`undefined` \| `Artifact`\> + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `artifactId` | `ArtifactId` | + +#### Returns + +`Promise`<`undefined` \| `Artifact`\> + +--- + +### getConstants + +▸ **getConstants**(): `Promise`<[`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md)\> + +#### Returns + +`Promise`<[`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md)\> + +--- + +### getContractAddress + +▸ **getContractAddress**(): `EthAddress` + +#### Returns + +`EthAddress` + +--- + +### getGasFeeForTransaction + +▸ `Private` **getGasFeeForTransaction**(`tx`): `string` \| `AutoGasSetting` + +We pass this function into {@link TxExecutor} to calculate what gas fee we should use for the +given transaction. The result is either a number, measured in gwei, represented as a string, or +a string representing that we want to use an auto gas setting. + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`string` \| `AutoGasSetting` + +--- + +### getIsPaused + +▸ **getIsPaused**(): `Promise`<`boolean`\> + +#### Returns + +`Promise`<`boolean`\> + +--- + +### getPlanetById + +▸ **getPlanetById**(`planetId`): `Promise`<`undefined` \| `Planet`\> + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`Promise`<`undefined` \| `Planet`\> + +--- + +### getPlayerArtifacts + +▸ **getPlayerArtifacts**(`playerId?`, `onProgress?`): `Promise`<`Artifact`[]\> + +#### Parameters + +| Name | Type | +| :------------ | :------------------------------ | +| `playerId?` | `EthAddress` | +| `onProgress?` | (`percent`: `number`) => `void` | + +#### Returns + +`Promise`<`Artifact`[]\> + +--- + +### getPlayerById + +▸ **getPlayerById**(`playerId`): `Promise`<`undefined` \| `Player`\> + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `playerId` | `EthAddress` | + +#### Returns + +`Promise`<`undefined` \| `Player`\> + +--- + +### getPlayers + +▸ **getPlayers**(`onProgress?`): `Promise`<`Map`<`string`, `Player`\>\> + +#### Parameters + +| Name | Type | +| :------------ | :---------------------------------------- | +| `onProgress?` | (`fractionCompleted`: `number`) => `void` | + +#### Returns + +`Promise`<`Map`<`string`, `Player`\>\> + +--- + +### getRevealedCoordsByIdIfExists + +▸ **getRevealedCoordsByIdIfExists**(`planetId`): `Promise`<`undefined` \| `RevealedCoords`\> + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`Promise`<`undefined` \| `RevealedCoords`\> + +--- + +### getRevealedPlanetsCoords + +▸ **getRevealedPlanetsCoords**(`startingAt`, `onProgressIds?`, `onProgressCoords?`): `Promise`<`RevealedCoords`[]\> + +#### Parameters + +| Name | Type | +| :------------------ | :---------------------------------------- | +| `startingAt` | `number` | +| `onProgressIds?` | (`fractionCompleted`: `number`) => `void` | +| `onProgressCoords?` | (`fractionCompleted`: `number`) => `void` | + +#### Returns + +`Promise`<`RevealedCoords`[]\> + +--- + +### getTokenMintEndTimestamp + +▸ **getTokenMintEndTimestamp**(): `Promise`<`number`\> + +#### Returns + +`Promise`<`number`\> + +--- + +### getTouchedPlanetIds + +▸ **getTouchedPlanetIds**(`startingAt`, `onProgress?`): `Promise`<`LocationId`[]\> + +#### Parameters + +| Name | Type | +| :------------ | :---------------------------------------- | +| `startingAt` | `number` | +| `onProgress?` | (`fractionCompleted`: `number`) => `void` | + +#### Returns + +`Promise`<`LocationId`[]\> + +--- + +### getWorldRadius + +▸ **getWorldRadius**(): `Promise`<`number`\> + +#### Returns + +`Promise`<`number`\> + +--- + +### makeCall + +▸ `Private` **makeCall**<`T`\>(`contractViewFunction`, `args?`): `Promise`<`T`\> + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | Default value | +| :--------------------- | :----------------------- | :------------ | +| `contractViewFunction` | `ContractFunction`<`T`\> | `undefined` | +| `args` | `unknown`[] | `[]` | + +#### Returns + +`Promise`<`T`\> + +--- + +### prioritizeTransaction + +▸ **prioritizeTransaction**(`tx`): `void` + +Make sure this transaction is the next to be executed. + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`void` + +--- + +### removeEventListeners + +▸ **removeEventListeners**(): `void` + +#### Returns + +`void` + +--- + +### setDiagnosticUpdater + +▸ **setDiagnosticUpdater**(`diagnosticUpdater?`): `void` + +#### Parameters + +| Name | Type | +| :------------------- | :------------------ | +| `diagnosticUpdater?` | `DiagnosticUpdater` | + +#### Returns + +`void` + +--- + +### setupEventListeners + +▸ **setupEventListeners**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +--- + +### submitTransaction + +▸ **submitTransaction**<`T`\>(`txIntent`, `overrides?`): `Promise`<`Transaction`<`T`\>\> + +#### Type parameters + +| Name | Type | +| :--- | :----------------- | +| `T` | extends `TxIntent` | + +#### Parameters + +| Name | Type | +| :----------- | :------------------- | +| `txIntent` | `T` | +| `overrides?` | `TransactionRequest` | + +#### Returns + +`Promise`<`Transaction`<`T`\>\> diff --git a/docs/classes/Backend_GameLogic_GameManager.default.md b/docs/classes/Backend_GameLogic_GameManager.default.md new file mode 100644 index 00000000..5f0b1c81 --- /dev/null +++ b/docs/classes/Backend_GameLogic_GameManager.default.md @@ -0,0 +1,3177 @@ +# Class: default + +[Backend/GameLogic/GameManager](../modules/Backend_GameLogic_GameManager.md).default + +## Hierarchy + +- `EventEmitter` + + ↳ **`default`** + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_GameManager.default.md#constructor) + +### Properties + +- [account](Backend_GameLogic_GameManager.default.md#account) +- [captureZoneGenerator](Backend_GameLogic_GameManager.default.md#capturezonegenerator) +- [contractConstants](Backend_GameLogic_GameManager.default.md#contractconstants) +- [contractsAPI](Backend_GameLogic_GameManager.default.md#contractsapi) +- [diagnostics](Backend_GameLogic_GameManager.default.md#diagnostics) +- [diagnosticsInterval](Backend_GameLogic_GameManager.default.md#diagnosticsinterval) +- [endTimeSeconds](Backend_GameLogic_GameManager.default.md#endtimeseconds) +- [entityStore](Backend_GameLogic_GameManager.default.md#entitystore) +- [ethConnection](Backend_GameLogic_GameManager.default.md#ethconnection) +- [hashConfig](Backend_GameLogic_GameManager.default.md#hashconfig) +- [hashRate](Backend_GameLogic_GameManager.default.md#hashrate) +- [homeLocation](Backend_GameLogic_GameManager.default.md#homelocation) +- [minerManager](Backend_GameLogic_GameManager.default.md#minermanager) +- [networkHealth$](Backend_GameLogic_GameManager.default.md#networkhealth$) +- [networkHealthInterval](Backend_GameLogic_GameManager.default.md#networkhealthinterval) +- [paused](Backend_GameLogic_GameManager.default.md#paused) +- [paused$](Backend_GameLogic_GameManager.default.md#paused$) +- [persistentChunkStore](Backend_GameLogic_GameManager.default.md#persistentchunkstore) +- [planetHashMimc](Backend_GameLogic_GameManager.default.md#planethashmimc) +- [playerInterval](Backend_GameLogic_GameManager.default.md#playerinterval) +- [players](Backend_GameLogic_GameManager.default.md#players) +- [playersUpdated$](Backend_GameLogic_GameManager.default.md#playersupdated$) +- [safeMode](Backend_GameLogic_GameManager.default.md#safemode) +- [scoreboardInterval](Backend_GameLogic_GameManager.default.md#scoreboardinterval) +- [settingsSubscription](Backend_GameLogic_GameManager.default.md#settingssubscription) +- [snarkHelper](Backend_GameLogic_GameManager.default.md#snarkhelper) +- [terminal](Backend_GameLogic_GameManager.default.md#terminal) +- [useMockHash](Backend_GameLogic_GameManager.default.md#usemockhash) +- [worldRadius](Backend_GameLogic_GameManager.default.md#worldradius) + +### Accessors + +- [captureZoneGeneratedEmitter](Backend_GameLogic_GameManager.default.md#capturezonegeneratedemitter) +- [planetRarity](Backend_GameLogic_GameManager.default.md#planetrarity) + +### Methods + +- [activateArtifact](Backend_GameLogic_GameManager.default.md#activateartifact) +- [addAccount](Backend_GameLogic_GameManager.default.md#addaccount) +- [addNewChunk](Backend_GameLogic_GameManager.default.md#addnewchunk) +- [biomebasePerlin](Backend_GameLogic_GameManager.default.md#biomebaseperlin) +- [bulkAddNewChunks](Backend_GameLogic_GameManager.default.md#bulkaddnewchunks) +- [bulkHardRefreshPlanets](Backend_GameLogic_GameManager.default.md#bulkhardrefreshplanets) +- [buyHat](Backend_GameLogic_GameManager.default.md#buyhat) +- [capturePlanet](Backend_GameLogic_GameManager.default.md#captureplanet) +- [checkGameHasEnded](Backend_GameLogic_GameManager.default.md#checkgamehasended) +- [clearEmoji](Backend_GameLogic_GameManager.default.md#clearemoji) +- [deactivateArtifact](Backend_GameLogic_GameManager.default.md#deactivateartifact) +- [depositArtifact](Backend_GameLogic_GameManager.default.md#depositartifact) +- [destroy](Backend_GameLogic_GameManager.default.md#destroy) +- [findArtifact](Backend_GameLogic_GameManager.default.md#findartifact) +- [findRandomHomePlanet](Backend_GameLogic_GameManager.default.md#findrandomhomeplanet) +- [forceTick](Backend_GameLogic_GameManager.default.md#forcetick) +- [getAccount](Backend_GameLogic_GameManager.default.md#getaccount) +- [getActiveArtifact](Backend_GameLogic_GameManager.default.md#getactiveartifact) +- [getAddress](Backend_GameLogic_GameManager.default.md#getaddress) +- [getAllOwnedPlanets](Backend_GameLogic_GameManager.default.md#getallownedplanets) +- [getAllPlanets](Backend_GameLogic_GameManager.default.md#getallplanets) +- [getAllPlayers](Backend_GameLogic_GameManager.default.md#getallplayers) +- [getAllVoyages](Backend_GameLogic_GameManager.default.md#getallvoyages) +- [getArtifactMap](Backend_GameLogic_GameManager.default.md#getartifactmap) +- [getArtifactUpdated$](Backend_GameLogic_GameManager.default.md#getartifactupdated$) +- [getArtifactWithId](Backend_GameLogic_GameManager.default.md#getartifactwithid) +- [getArtifactsWithIds](Backend_GameLogic_GameManager.default.md#getartifactswithids) +- [getCaptureZoneGenerator](Backend_GameLogic_GameManager.default.md#getcapturezonegenerator) +- [getCaptureZones](Backend_GameLogic_GameManager.default.md#getcapturezones) +- [getChunk](Backend_GameLogic_GameManager.default.md#getchunk) +- [getChunkStore](Backend_GameLogic_GameManager.default.md#getchunkstore) +- [getClaimedLocations](Backend_GameLogic_GameManager.default.md#getclaimedlocations) +- [getConstructors](Backend_GameLogic_GameManager.default.md#getconstructors) +- [getContract](Backend_GameLogic_GameManager.default.md#getcontract) +- [getContractAPI](Backend_GameLogic_GameManager.default.md#getcontractapi) +- [getContractAddress](Backend_GameLogic_GameManager.default.md#getcontractaddress) +- [getContractConstants](Backend_GameLogic_GameManager.default.md#getcontractconstants) +- [getCurrentlyExploringChunk](Backend_GameLogic_GameManager.default.md#getcurrentlyexploringchunk) +- [getDefaultSpaceJunkForPlanetLevel](Backend_GameLogic_GameManager.default.md#getdefaultspacejunkforplanetlevel) +- [getDiagnostics](Backend_GameLogic_GameManager.default.md#getdiagnostics) +- [getDist](Backend_GameLogic_GameManager.default.md#getdist) +- [getDistCoords](Backend_GameLogic_GameManager.default.md#getdistcoords) +- [getEndTimeSeconds](Backend_GameLogic_GameManager.default.md#getendtimeseconds) +- [getEnergyArrivingForMove](Backend_GameLogic_GameManager.default.md#getenergyarrivingformove) +- [getEnergyCurveAtPercent](Backend_GameLogic_GameManager.default.md#getenergycurveatpercent) +- [getEnergyNeededForMove](Backend_GameLogic_GameManager.default.md#getenergyneededformove) +- [getEnergyOfPlayer](Backend_GameLogic_GameManager.default.md#getenergyofplayer) +- [getEthConnection](Backend_GameLogic_GameManager.default.md#getethconnection) +- [getExploredChunks](Backend_GameLogic_GameManager.default.md#getexploredchunks) +- [getGameObjects](Backend_GameLogic_GameManager.default.md#getgameobjects) +- [getHashConfig](Backend_GameLogic_GameManager.default.md#gethashconfig) +- [getHashesPerSec](Backend_GameLogic_GameManager.default.md#gethashespersec) +- [getHomeCoords](Backend_GameLogic_GameManager.default.md#gethomecoords) +- [getHomeHash](Backend_GameLogic_GameManager.default.md#gethomehash) +- [getLocationOfPlanet](Backend_GameLogic_GameManager.default.md#getlocationofplanet) +- [getMaxMoveDist](Backend_GameLogic_GameManager.default.md#getmaxmovedist) +- [getMiningPattern](Backend_GameLogic_GameManager.default.md#getminingpattern) +- [getMyArtifactMap](Backend_GameLogic_GameManager.default.md#getmyartifactmap) +- [getMyArtifacts](Backend_GameLogic_GameManager.default.md#getmyartifacts) +- [getMyArtifactsUpdated$](Backend_GameLogic_GameManager.default.md#getmyartifactsupdated$) +- [getMyBalance](Backend_GameLogic_GameManager.default.md#getmybalance) +- [getMyBalance$](Backend_GameLogic_GameManager.default.md#getmybalance$) +- [getMyBalanceEth](Backend_GameLogic_GameManager.default.md#getmybalanceeth) +- [getMyPlanetMap](Backend_GameLogic_GameManager.default.md#getmyplanetmap) +- [getMyPlanets](Backend_GameLogic_GameManager.default.md#getmyplanets) +- [getMyPlanetsUpdated$](Backend_GameLogic_GameManager.default.md#getmyplanetsupdated$) +- [getMyScore](Backend_GameLogic_GameManager.default.md#getmyscore) +- [getNextBroadcastAvailableTimestamp](Backend_GameLogic_GameManager.default.md#getnextbroadcastavailabletimestamp) +- [getNextClaimAvailableTimestamp](Backend_GameLogic_GameManager.default.md#getnextclaimavailabletimestamp) +- [getNextRevealCountdownInfo](Backend_GameLogic_GameManager.default.md#getnextrevealcountdowninfo) +- [getNotificationsManager](Backend_GameLogic_GameManager.default.md#getnotificationsmanager) +- [getPaused](Backend_GameLogic_GameManager.default.md#getpaused) +- [getPaused$](Backend_GameLogic_GameManager.default.md#getpaused$) +- [getPerlinThresholds](Backend_GameLogic_GameManager.default.md#getperlinthresholds) +- [getPlanetLevel](Backend_GameLogic_GameManager.default.md#getplanetlevel) +- [getPlanetMap](Backend_GameLogic_GameManager.default.md#getplanetmap) +- [getPlanetRarity](Backend_GameLogic_GameManager.default.md#getplanetrarity) +- [getPlanetUpdated$](Backend_GameLogic_GameManager.default.md#getplanetupdated$) +- [getPlanetWithCoords](Backend_GameLogic_GameManager.default.md#getplanetwithcoords) +- [getPlanetWithId](Backend_GameLogic_GameManager.default.md#getplanetwithid) +- [getPlanetsInRange](Backend_GameLogic_GameManager.default.md#getplanetsinrange) +- [getPlanetsInWorldRectangle](Backend_GameLogic_GameManager.default.md#getplanetsinworldrectangle) +- [getPlanetsWithIds](Backend_GameLogic_GameManager.default.md#getplanetswithids) +- [getPlayer](Backend_GameLogic_GameManager.default.md#getplayer) +- [getPlayerScore](Backend_GameLogic_GameManager.default.md#getplayerscore) +- [getPlayerSpaceJunk](Backend_GameLogic_GameManager.default.md#getplayerspacejunk) +- [getPlayerSpaceJunkLimit](Backend_GameLogic_GameManager.default.md#getplayerspacejunklimit) +- [getPrivateKey](Backend_GameLogic_GameManager.default.md#getprivatekey) +- [getRangeBuff](Backend_GameLogic_GameManager.default.md#getrangebuff) +- [getRevealedLocations](Backend_GameLogic_GameManager.default.md#getrevealedlocations) +- [getSafeMode](Backend_GameLogic_GameManager.default.md#getsafemode) +- [getSignedTwitter](Backend_GameLogic_GameManager.default.md#getsignedtwitter) +- [getSilverCurveAtPercent](Backend_GameLogic_GameManager.default.md#getsilvercurveatpercent) +- [getSilverOfPlayer](Backend_GameLogic_GameManager.default.md#getsilverofplayer) +- [getSnarkHelper](Backend_GameLogic_GameManager.default.md#getsnarkhelper) +- [getSpaceships](Backend_GameLogic_GameManager.default.md#getspaceships) +- [getSpeedBuff](Backend_GameLogic_GameManager.default.md#getspeedbuff) +- [getStalePlanetWithId](Backend_GameLogic_GameManager.default.md#getstaleplanetwithid) +- [getTemperature](Backend_GameLogic_GameManager.default.md#gettemperature) +- [getTimeForMove](Backend_GameLogic_GameManager.default.md#gettimeformove) +- [getTokenMintEndTimeSeconds](Backend_GameLogic_GameManager.default.md#gettokenmintendtimeseconds) +- [getTwitter](Backend_GameLogic_GameManager.default.md#gettwitter) +- [getUIEventEmitter](Backend_GameLogic_GameManager.default.md#getuieventemitter) +- [getUnconfirmedMoves](Backend_GameLogic_GameManager.default.md#getunconfirmedmoves) +- [getUnconfirmedUpgrades](Backend_GameLogic_GameManager.default.md#getunconfirmedupgrades) +- [getUnconfirmedWormholeActivations](Backend_GameLogic_GameManager.default.md#getunconfirmedwormholeactivations) +- [getUniverseTotalEnergy](Backend_GameLogic_GameManager.default.md#getuniversetotalenergy) +- [getUpgrade](Backend_GameLogic_GameManager.default.md#getupgrade) +- [getWorldRadius](Backend_GameLogic_GameManager.default.md#getworldradius) +- [getWorldSilver](Backend_GameLogic_GameManager.default.md#getworldsilver) +- [getWormholeFactors](Backend_GameLogic_GameManager.default.md#getwormholefactors) +- [getWormholes](Backend_GameLogic_GameManager.default.md#getwormholes) +- [hardRefreshArtifact](Backend_GameLogic_GameManager.default.md#hardrefreshartifact) +- [hardRefreshPlanet](Backend_GameLogic_GameManager.default.md#hardrefreshplanet) +- [hardRefreshPlayer](Backend_GameLogic_GameManager.default.md#hardrefreshplayer) +- [hasJoinedGame](Backend_GameLogic_GameManager.default.md#hasjoinedgame) +- [hasMinedChunk](Backend_GameLogic_GameManager.default.md#hasminedchunk) +- [initMiningManager](Backend_GameLogic_GameManager.default.md#initminingmanager) +- [invadePlanet](Backend_GameLogic_GameManager.default.md#invadeplanet) +- [isAdmin](Backend_GameLogic_GameManager.default.md#isadmin) +- [isMining](Backend_GameLogic_GameManager.default.md#ismining) +- [isPlanetMineable](Backend_GameLogic_GameManager.default.md#isplanetmineable) +- [isRoundOver](Backend_GameLogic_GameManager.default.md#isroundover) +- [joinGame](Backend_GameLogic_GameManager.default.md#joingame) +- [listenForNewBlock](Backend_GameLogic_GameManager.default.md#listenfornewblock) +- [loadContract](Backend_GameLogic_GameManager.default.md#loadcontract) +- [loadPlugins](Backend_GameLogic_GameManager.default.md#loadplugins) +- [locationBigIntFromCoords](Backend_GameLogic_GameManager.default.md#locationbigintfromcoords) +- [locationFromCoords](Backend_GameLogic_GameManager.default.md#locationfromcoords) +- [move](Backend_GameLogic_GameManager.default.md#move) +- [onTxCancelled](Backend_GameLogic_GameManager.default.md#ontxcancelled) +- [onTxConfirmed](Backend_GameLogic_GameManager.default.md#ontxconfirmed) +- [onTxReverted](Backend_GameLogic_GameManager.default.md#ontxreverted) +- [onTxSubmit](Backend_GameLogic_GameManager.default.md#ontxsubmit) +- [prospectPlanet](Backend_GameLogic_GameManager.default.md#prospectplanet) +- [refreshNetworkHealth](Backend_GameLogic_GameManager.default.md#refreshnetworkhealth) +- [refreshScoreboard](Backend_GameLogic_GameManager.default.md#refreshscoreboard) +- [refreshServerPlanetStates](Backend_GameLogic_GameManager.default.md#refreshserverplanetstates) +- [refreshTwitters](Backend_GameLogic_GameManager.default.md#refreshtwitters) +- [revealLocation](Backend_GameLogic_GameManager.default.md#reveallocation) +- [savePlugins](Backend_GameLogic_GameManager.default.md#saveplugins) +- [setMinerCores](Backend_GameLogic_GameManager.default.md#setminercores) +- [setMiningPattern](Backend_GameLogic_GameManager.default.md#setminingpattern) +- [setPlanetEmoji](Backend_GameLogic_GameManager.default.md#setplanetemoji) +- [setPlayerTwitters](Backend_GameLogic_GameManager.default.md#setplayertwitters) +- [setRadius](Backend_GameLogic_GameManager.default.md#setradius) +- [setSafeMode](Backend_GameLogic_GameManager.default.md#setsafemode) +- [setSnarkCacheSize](Backend_GameLogic_GameManager.default.md#setsnarkcachesize) +- [softRefreshPlanet](Backend_GameLogic_GameManager.default.md#softrefreshplanet) +- [spaceTypeFromPerlin](Backend_GameLogic_GameManager.default.md#spacetypefromperlin) +- [spaceTypePerlin](Backend_GameLogic_GameManager.default.md#spacetypeperlin) +- [startExplore](Backend_GameLogic_GameManager.default.md#startexplore) +- [stopExplore](Backend_GameLogic_GameManager.default.md#stopexplore) +- [submitDisconnectTwitter](Backend_GameLogic_GameManager.default.md#submitdisconnecttwitter) +- [submitPlanetMessage](Backend_GameLogic_GameManager.default.md#submitplanetmessage) +- [submitTransaction](Backend_GameLogic_GameManager.default.md#submittransaction) +- [submitVerifyTwitter](Backend_GameLogic_GameManager.default.md#submitverifytwitter) +- [testNotification](Backend_GameLogic_GameManager.default.md#testnotification) +- [timeUntilNextBroadcastAvailable](Backend_GameLogic_GameManager.default.md#timeuntilnextbroadcastavailable) +- [transferOwnership](Backend_GameLogic_GameManager.default.md#transferownership) +- [updateDiagnostics](Backend_GameLogic_GameManager.default.md#updatediagnostics) +- [upgrade](Backend_GameLogic_GameManager.default.md#upgrade) +- [uploadDiagnostics](Backend_GameLogic_GameManager.default.md#uploaddiagnostics) +- [verifyMessage](Backend_GameLogic_GameManager.default.md#verifymessage) +- [waitForPlanet](Backend_GameLogic_GameManager.default.md#waitforplanet) +- [withdrawArtifact](Backend_GameLogic_GameManager.default.md#withdrawartifact) +- [withdrawSilver](Backend_GameLogic_GameManager.default.md#withdrawsilver) +- [create](Backend_GameLogic_GameManager.default.md#create) + +## Constructors + +### constructor + +• `Private` **new default**(`terminal`, `account`, `players`, `touchedPlanets`, `allTouchedPlanetIds`, `revealedCoords`, `claimedCoords`, `worldRadius`, `unprocessedArrivals`, `unprocessedPlanetArrivalIds`, `contractsAPI`, `contractConstants`, `persistentChunkStore`, `snarkHelper`, `homeLocation`, `useMockHash`, `artifacts`, `ethConnection`, `paused`) + +#### Parameters + +| Name | Type | +| :---------------------------- | :-------------------------------------------------------------------------------------------------------------- | +| `terminal` | `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> | +| `account` | `undefined` \| `EthAddress` | +| `players` | `Map`<`string`, `Player`\> | +| `touchedPlanets` | `Map`<`LocationId`, `Planet`\> | +| `allTouchedPlanetIds` | `Set`<`LocationId`\> | +| `revealedCoords` | `Map`<`LocationId`, `RevealedCoords`\> | +| `claimedCoords` | `Map`<`LocationId`, `ClaimedCoords`\> | +| `worldRadius` | `number` | +| `unprocessedArrivals` | `Map`<`VoyageId`, `QueuedArrival`\> | +| `unprocessedPlanetArrivalIds` | `Map`<`LocationId`, `VoyageId`[]\> | +| `contractsAPI` | [`ContractsAPI`](Backend_GameLogic_ContractsAPI.ContractsAPI.md) | +| `contractConstants` | [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) | +| `persistentChunkStore` | [`default`](Backend_Storage_PersistentChunkStore.default.md) | +| `snarkHelper` | [`default`](Backend_Utils_SnarkArgsHelper.default.md) | +| `homeLocation` | `undefined` \| `WorldLocation` | +| `useMockHash` | `boolean` | +| `artifacts` | `Map`<`ArtifactId`, `Artifact`\> | +| `ethConnection` | `EthConnection` | +| `paused` | `boolean` | + +#### Overrides + +EventEmitter.constructor + +## Properties + +### account + +• `Private` `Readonly` **account**: `undefined` \| `EthAddress` + +The ethereum address of the player who is currently logged in. We support 'no account', +represented by `undefined` in the case when you want to simply load the game state from the +contract and view it without be able to make any moves. + +--- + +### captureZoneGenerator + +• `Private` **captureZoneGenerator**: `undefined` \| [`CaptureZoneGenerator`](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md) + +Generates capture zones. + +--- + +### contractConstants + +• `Private` `Readonly` **contractConstants**: [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) + +Game parameters set by the contract. Stuff like perlin keys, which are important for mining the +correct universe, or the time multiplier, which allows us to tune how quickly voyages go. + +**`todo`** move this into a separate `GameConfiguration` class. + +--- + +### contractsAPI + +• `Private` `Readonly` **contractsAPI**: [`ContractsAPI`](Backend_GameLogic_ContractsAPI.ContractsAPI.md) + +Allows us to make contract calls, and execute transactions. Be careful about how you use this +guy. You don't want to cause your client to send an excessive amount of traffic to whatever +node you're connected to. + +Interacting with the blockchain isn't free, and we need to be mindful about about the way our +application interacts with the blockchain. The current rate limiting strategy consists of three +points: + +- data that needs to be fetched often should be fetched in bulk. +- rate limit smart contract calls (reads from the blockchain), implemented by + {@link ContractCaller} and transactions (writes to the blockchain on behalf of the player), + implemented by {@link TxExecutor} via two separately tuned {@link ThrottledConcurrentQueue}s. + +--- + +### diagnostics + +• `Private` **diagnostics**: `Diagnostics` + +Diagnostic information about the game. + +--- + +### diagnosticsInterval + +• `Private` **diagnosticsInterval**: `Timer` + +Handle to an interval that periodically uploads diagnostic information from this client. + +--- + +### endTimeSeconds + +• `Private` `Readonly` **endTimeSeconds**: `number` = `1948939200` + +**`todo`** change this to the correct timestamp each round. + +--- + +### entityStore + +• `Private` `Readonly` **entityStore**: [`GameObjects`](Backend_GameLogic_GameObjects.GameObjects.md) + +This variable contains the internal state of objects that live in the game world. + +--- + +### ethConnection + +• `Private` `Readonly` **ethConnection**: `EthConnection` + +An interface to the blockchain that is a little bit lower-level than [ContractsAPI](Backend_GameLogic_ContractsAPI.ContractsAPI.md). It +allows us to do basic operations such as wait for a transaction to complete, check the player's +address and balance, etc. + +--- + +### hashConfig + +• `Private` `Readonly` **hashConfig**: [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) + +Each round we change the hash configuration of the game. The hash configuration is download +from the blockchain, and essentially acts as a salt, permuting the universe into a unique +configuration for each new round. + +**`todo`** deduplicate this and `useMockHash` somehow. + +--- + +### hashRate + +• `Private` **hashRate**: `number` + +Continuously updated value representing the total hashes per second that the game is currently +mining the universe at. + +**`todo`** keep this in {@link MinerManager} + +--- + +### homeLocation + +• `Private` **homeLocation**: `undefined` \| `WorldLocation` + +The spawn location of the current player. + +**`todo,`** make this smarter somehow. It's really annoying to have to import world coordinates, and +get them wrong or something. Maybe we need to mark a planet, once it's been initialized +contract-side, as the homeworld of the user who initialized on it. That way, when you import a +new account into the game, and you import map data that contains your home planet, the client +would be able to automatically detect which planet is the player's home planet. + +**`todo`** move this into a new `PlayerState` class. + +--- + +### minerManager + +• `Private` `Optional` **minerManager**: [`default`](Backend_Miner_MinerManager.default.md) + +Manages the process of mining new space territory. + +--- + +### networkHealth$ + +• **networkHealth$**: `Monomitter`<`NetworkHealthSummary`\> + +Emits whenever we load the network health summary from the webserver, which is derived from +diagnostics that the client sends up to the webserver as well. + +--- + +### networkHealthInterval + +• `Private` **networkHealthInterval**: `Timer` + +Handle to an interval that periodically refreshes the network's health from our webserver. + +--- + +### paused + +• `Private` **paused**: `boolean` + +--- + +### paused$ + +• **paused$**: `Monomitter`<`boolean`\> + +--- + +### persistentChunkStore + +• `Private` `Readonly` **persistentChunkStore**: [`default`](Backend_Storage_PersistentChunkStore.default.md) + +An object that syncs any newly added or deleted chunks to the player's IndexedDB. + +**`todo`** it also persists other game data to IndexedDB. This class needs to be renamed `GameSaver` +or something like that. + +--- + +### planetHashMimc + +• `Private` `Readonly` **planetHashMimc**: (...`inputs`: `number`[]) => `BigInteger` + +#### Type declaration + +▸ (...`inputs`): `BigInteger` + +The aforementioned hash function. In debug mode where `DISABLE_ZK_CHECKS` is on, we use a +faster hash function. Othewise, in production mode, use MiMC hash (https://byt3bit.github.io/primesym/). + +##### Parameters + +| Name | Type | +| :---------- | :--------- | +| `...inputs` | `number`[] | + +##### Returns + +`BigInteger` + +--- + +### playerInterval + +• `Private` **playerInterval**: `Timer` + +Handle to an interval that periodically refreshes some information about the player from the +blockchain. + +**`todo`** move this into a new `PlayerState` class. + +--- + +### players + +• `Private` `Readonly` **players**: `Map`<`string`, `Player`\> + +Map from ethereum addresses to player objects. This isn't stored in [GameObjects](Backend_GameLogic_GameObjects.GameObjects.md), +because it's not techincally an entity that exists in the world. A player just controls planets +and artifacts that do exist in the world. + +**`todo`** move this into a new `Players` class. + +--- + +### playersUpdated$ + +• `Readonly` **playersUpdated$**: `Monomitter`<`void`\> + +Whenever we refresh the players twitter accounts or scores, we publish an event here. + +--- + +### safeMode + +• `Private` **safeMode**: `boolean` + +Setting to allow players to start game without plugins that were running during the previous +run of the game client. By default, the game launches plugins that were running that were +running when the game was last closed. + +--- + +### scoreboardInterval + +• `Private` **scoreboardInterval**: `Timer` + +Handle to an interval that periodically refreshes the scoreboard from our webserver. + +--- + +### settingsSubscription + +• `Private` **settingsSubscription**: `undefined` \| `Subscription` + +Subscription to act on setting changes + +--- + +### snarkHelper + +• `Private` `Readonly` **snarkHelper**: [`default`](Backend_Utils_SnarkArgsHelper.default.md) + +Responsible for generating snark proofs. + +--- + +### terminal + +• `Private` `Readonly` **terminal**: `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> + +Kind of hacky, but we store a reference to the terminal that the player sees when the initially +load into the game. This is the same exact terminal that appears inside the collapsable right +bar of the game. + +--- + +### useMockHash + +• `Private` `Readonly` **useMockHash**: `boolean` + +In debug builds of the game, we can connect to a set of contracts deployed to a local +blockchain, which are tweaked to not verify planet hashes, meaning we can use a faster hash +function with similar properties to mimc. This allows us to mine the map faster in debug mode. + +**`todo`** move this into a separate `GameConfiguration` class. + +--- + +### worldRadius + +• `Private` **worldRadius**: `number` + +Sometimes the universe gets bigger... Sometimes it doesn't. + +**`todo`** move this into a new `GameConfiguration` class. + +## Accessors + +### captureZoneGeneratedEmitter + +• `get` **captureZoneGeneratedEmitter**(): `undefined` \| `Monomitter`<[`CaptureZonesGeneratedEvent`](../modules/Backend_GameLogic_CaptureZoneGenerator.md#capturezonesgeneratedevent)\> + +Emits when new capture zones are generated. + +#### Returns + +`undefined` \| `Monomitter`<[`CaptureZonesGeneratedEvent`](../modules/Backend_GameLogic_CaptureZoneGenerator.md#capturezonesgeneratedevent)\> + +--- + +### planetRarity + +• `get` **planetRarity**(): `number` + +#### Returns + +`number` + +## Methods + +### activateArtifact + +▸ **activateArtifact**(`locationId`, `artifactId`, `wormholeTo`, `bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedActivateArtifact`\>\> + +#### Parameters + +| Name | Type | Default value | +| :------------- | :-------------------------- | :------------ | +| `locationId` | `LocationId` | `undefined` | +| `artifactId` | `ArtifactId` | `undefined` | +| `wormholeTo` | `undefined` \| `LocationId` | `undefined` | +| `bypassChecks` | `boolean` | `false` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedActivateArtifact`\>\> + +--- + +### addAccount + +▸ **addAccount**(`coords`): `Promise`<`boolean`\> + +Initializes a new player's game to start at the given home planet. Must have already +initialized the player on the contract. + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`Promise`<`boolean`\> + +--- + +### addNewChunk + +▸ **addNewChunk**(`chunk`): [`default`](Backend_GameLogic_GameManager.default.md) + +Makes this game manager aware of a new chunk - which includes its location, size, +as well as all of the planets contained in that chunk. Causes the client to load +all of the information about those planets from the blockchain. + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +[`default`](Backend_GameLogic_GameManager.default.md) + +--- + +### biomebasePerlin + +▸ **biomebasePerlin**(`coords`, `floor`): `number` + +Gets the biome perlin valie at the given location in the world. + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | +| `floor` | `boolean` | + +#### Returns + +`number` + +--- + +### bulkAddNewChunks + +▸ **bulkAddNewChunks**(`chunks`): `Promise`<`void`\> + +To add multiple chunks at once, use this function rather than `addNewChunk`, in order +to load all of the associated planet data in an efficient manner. + +#### Parameters + +| Name | Type | +| :------- | :-------- | +| `chunks` | `Chunk`[] | + +#### Returns + +`Promise`<`void`\> + +--- + +### bulkHardRefreshPlanets + +▸ `Private` **bulkHardRefreshPlanets**(`planetIds`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :---------- | :------------- | +| `planetIds` | `LocationId`[] | + +#### Returns + +`Promise`<`void`\> + +--- + +### buyHat + +▸ **buyHat**(`planetId`, `_bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedBuyHat`\>\> + +Submits a transaction to the blockchain to buy a hat for the given planet. You must own the +planet. Warning costs real xdai. Hats are permanently locked to a planet. They are purely +cosmetic and a great way to BM your opponents or just look your best. Just like in the real +world, more money means more hat. + +#### Parameters + +| Name | Type | Default value | +| :-------------- | :----------- | :------------ | +| `planetId` | `LocationId` | `undefined` | +| `_bypassChecks` | `boolean` | `false` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedBuyHat`\>\> + +--- + +### capturePlanet + +▸ **capturePlanet**(`locationId`): `Promise`<`Transaction`<`UnconfirmedCapturePlanet`\>\> + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedCapturePlanet`\>\> + +--- + +### checkGameHasEnded + +▸ `Private` **checkGameHasEnded**(): `boolean` + +#### Returns + +`boolean` + +--- + +### clearEmoji + +▸ **clearEmoji**(`locationId`): `Promise`<`void`\> + +If you are the owner of this planet, you can delete the emoji that is hovering above the +planet. + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | + +#### Returns + +`Promise`<`void`\> + +--- + +### deactivateArtifact + +▸ **deactivateArtifact**(`locationId`, `artifactId`, `bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedDeactivateArtifact`\>\> + +#### Parameters + +| Name | Type | Default value | +| :------------- | :----------- | :------------ | +| `locationId` | `LocationId` | `undefined` | +| `artifactId` | `ArtifactId` | `undefined` | +| `bypassChecks` | `boolean` | `false` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedDeactivateArtifact`\>\> + +--- + +### depositArtifact + +▸ **depositArtifact**(`locationId`, `artifactId`): `Promise`<`Transaction`<`UnconfirmedDepositArtifact`\>\> + +Submits a transaction to the blockchain to deposit an artifact on a given planet. +You must own the planet and you must own the artifact directly (can't be locked in contract) + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | +| `artifactId` | `ArtifactId` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedDepositArtifact`\>\> + +--- + +### destroy + +▸ **destroy**(): `void` + +#### Returns + +`void` + +--- + +### findArtifact + +▸ **findArtifact**(`planetId`, `bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedFindArtifact`\>\> + +Calls the contract to find an artifact on the given planet. + +#### Parameters + +| Name | Type | Default value | +| :------------- | :----------- | :------------ | +| `planetId` | `LocationId` | `undefined` | +| `bypassChecks` | `boolean` | `false` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedFindArtifact`\>\> + +--- + +### findRandomHomePlanet + +▸ `Private` **findRandomHomePlanet**(): `Promise`<`LocatablePlanet`\> + +#### Returns + +`Promise`<`LocatablePlanet`\> + +--- + +### forceTick + +▸ **forceTick**(`locationId`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | + +#### Returns + +`void` + +--- + +### getAccount + +▸ **getAccount**(): `undefined` \| `EthAddress` + +Gets the address of the player logged into this game manager. + +#### Returns + +`undefined` \| `EthAddress` + +--- + +### getActiveArtifact + +▸ **getActiveArtifact**(`planet`): `undefined` \| `Artifact` + +Gets the active artifact on this planet, if one exists. + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`undefined` \| `Artifact` + +--- + +### getAddress + +▸ **getAddress**(): `undefined` \| `EthAddress` + +#### Returns + +`undefined` \| `EthAddress` + +--- + +### getAllOwnedPlanets + +▸ **getAllOwnedPlanets**(): `Planet`[] + +Gets a list of planets that have an owner. + +#### Returns + +`Planet`[] + +--- + +### getAllPlanets + +▸ **getAllPlanets**(): `Iterable`<`Planet`\> + +Gets all planets. This means all planets that are in the contract, and also all +planets that have been mined locally. Does not update planets if they are stale. +NOT PERFORMANT - for scripting only. + +#### Returns + +`Iterable`<`Planet`\> + +--- + +### getAllPlayers + +▸ **getAllPlayers**(): `Player`[] + +Gets a list of all the players in the game (not just the ones you've +encounterd) + +#### Returns + +`Player`[] + +--- + +### getAllVoyages + +▸ **getAllVoyages**(): `QueuedArrival`[] + +Gets all voyages that have not completed. + +#### Returns + +`QueuedArrival`[] + +--- + +### getArtifactMap + +▸ **getArtifactMap**(): `Map`<`ArtifactId`, `Artifact`\> + +Return a reference to the artifact map + +#### Returns + +`Map`<`ArtifactId`, `Artifact`\> + +--- + +### getArtifactUpdated$ + +▸ **getArtifactUpdated$**(): `Monomitter`<`ArtifactId`\> + +#### Returns + +`Monomitter`<`ArtifactId`\> + +--- + +### getArtifactWithId + +▸ **getArtifactWithId**(`artifactId?`): `undefined` \| `Artifact` + +Gets the artifact with the given id. Null if no artifact with id exists. + +#### Parameters + +| Name | Type | +| :------------ | :----------- | +| `artifactId?` | `ArtifactId` | + +#### Returns + +`undefined` \| `Artifact` + +--- + +### getArtifactsWithIds + +▸ **getArtifactsWithIds**(`artifactIds?`): (`undefined` \| `Artifact`)[] + +Gets the artifacts with the given ids, including ones we know exist but haven't been loaded, +represented by `undefined`. + +#### Parameters + +| Name | Type | Default value | +| :------------ | :------------- | :------------ | +| `artifactIds` | `ArtifactId`[] | `[]` | + +#### Returns + +(`undefined` \| `Artifact`)[] + +--- + +### getCaptureZoneGenerator + +▸ **getCaptureZoneGenerator**(): `undefined` \| [`CaptureZoneGenerator`](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md) + +#### Returns + +`undefined` \| [`CaptureZoneGenerator`](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md) + +--- + +### getCaptureZones + +▸ **getCaptureZones**(): `Set`<`CaptureZone`\> + +#### Returns + +`Set`<`CaptureZone`\> + +--- + +### getChunk + +▸ **getChunk**(`chunkFootprint`): `undefined` \| `Chunk` + +#### Parameters + +| Name | Type | +| :--------------- | :---------- | +| `chunkFootprint` | `Rectangle` | + +#### Returns + +`undefined` \| `Chunk` + +--- + +### getChunkStore + +▸ **getChunkStore**(): [`default`](Backend_Storage_PersistentChunkStore.default.md) + +#### Returns + +[`default`](Backend_Storage_PersistentChunkStore.default.md) + +--- + +### getClaimedLocations + +▸ **getClaimedLocations**(): `Map`<`LocationId`, `ClaimedLocation`\> + +Gets a map of all location IDs which have been claimed. + +#### Returns + +`Map`<`LocationId`, `ClaimedLocation`\> + +--- + +### getConstructors + +▸ **getConstructors**(): `Object` + +Returns constructors of classes that may be useful for developing plugins. + +#### Returns + +`Object` + +| Name | Type | +| :----------------------- | :---------------------------------------------------------------------------------------- | +| `MinerManager` | typeof [`default`](Backend_Miner_MinerManager.default.md) | +| `SpiralPattern` | typeof [`SpiralPattern`](Backend_Miner_MiningPatterns.SpiralPattern.md) | +| `SwissCheesePattern` | typeof [`SwissCheesePattern`](Backend_Miner_MiningPatterns.SwissCheesePattern.md) | +| `TowardsCenterPattern` | typeof [`TowardsCenterPattern`](Backend_Miner_MiningPatterns.TowardsCenterPattern.md) | +| `TowardsCenterPatternV2` | typeof [`TowardsCenterPatternV2`](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md) | + +--- + +### getContract + +▸ **getContract**(): `DarkForest` + +#### Returns + +`DarkForest` + +--- + +### getContractAPI + +▸ **getContractAPI**(): [`ContractsAPI`](Backend_GameLogic_ContractsAPI.ContractsAPI.md) + +Get the thing that handles contract interaction. + +#### Returns + +[`ContractsAPI`](Backend_GameLogic_ContractsAPI.ContractsAPI.md) + +--- + +### getContractAddress + +▸ **getContractAddress**(): `EthAddress` + +Gets the address of the `DarkForest` contract, which is the 'backend' of the game. + +#### Returns + +`EthAddress` + +--- + +### getContractConstants + +▸ **getContractConstants**(): [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) + +#### Returns + +[`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) + +--- + +### getCurrentlyExploringChunk + +▸ **getCurrentlyExploringChunk**(): `undefined` \| `Rectangle` + +Gets the rectangle bounding the chunk that the miner is currently in the process +of hashing. + +#### Returns + +`undefined` \| `Rectangle` + +--- + +### getDefaultSpaceJunkForPlanetLevel + +▸ **getDefaultSpaceJunkForPlanetLevel**(`level`): `number` + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `level` | `number` | + +#### Returns + +`number` + +--- + +### getDiagnostics + +▸ **getDiagnostics**(): `Diagnostics` + +Gets some diagnostic information about the game. Returns a copy, you can't modify it. + +#### Returns + +`Diagnostics` + +--- + +### getDist + +▸ **getDist**(`fromId`, `toId`): `number` + +Gets the distance between two planets. Throws an exception if you don't +know the location of either planet. Takes into account wormholes. + +#### Parameters + +| Name | Type | +| :------- | :----------- | +| `fromId` | `LocationId` | +| `toId` | `LocationId` | + +#### Returns + +`number` + +--- + +### getDistCoords + +▸ **getDistCoords**(`fromCoords`, `toCoords`): `number` + +Gets the distance between two coordinates in space. + +#### Parameters + +| Name | Type | +| :----------- | :------------ | +| `fromCoords` | `WorldCoords` | +| `toCoords` | `WorldCoords` | + +#### Returns + +`number` + +--- + +### getEndTimeSeconds + +▸ **getEndTimeSeconds**(): `number` + +The game ends at a particular time in the future - get this time measured +in seconds from the epoch. + +#### Returns + +`number` + +--- + +### getEnergyArrivingForMove + +▸ **getEnergyArrivingForMove**(`fromId`, `toId`, `distance`, `sentEnergy`, `abandoning`): `number` + +Gets the amount of energy that would arrive if a voyage with the given parameters +was to occur. The toPlanet is optional, in case you want an estimate that doesn't include +wormhole speedups. + +#### Parameters + +| Name | Type | +| :----------- | :-------------------------- | +| `fromId` | `LocationId` | +| `toId` | `undefined` \| `LocationId` | +| `distance` | `undefined` \| `number` | +| `sentEnergy` | `number` | +| `abandoning` | `boolean` | + +#### Returns + +`number` + +--- + +### getEnergyCurveAtPercent + +▸ **getEnergyCurveAtPercent**(`planet`, `percent`): `number` + +returns timestamp (seconds) that planet will reach percent% of energycap +time may be in the past + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `planet` | `Planet` | +| `percent` | `number` | + +#### Returns + +`number` + +--- + +### getEnergyNeededForMove + +▸ **getEnergyNeededForMove**(`fromId`, `toId`, `arrivingEnergy`, `abandoning?`): `number` + +Gets the amount of energy needed in order for a voyage from the given to the given +planet to arrive with your desired amount of energy. + +#### Parameters + +| Name | Type | Default value | +| :--------------- | :----------- | :------------ | +| `fromId` | `LocationId` | `undefined` | +| `toId` | `LocationId` | `undefined` | +| `arrivingEnergy` | `number` | `undefined` | +| `abandoning` | `boolean` | `false` | + +#### Returns + +`number` + +--- + +### getEnergyOfPlayer + +▸ **getEnergyOfPlayer**(`player`): `number` + +Gets the total amount of energy that lives on planets that the given player owns. + +#### Parameters + +| Name | Type | +| :------- | :----------- | +| `player` | `EthAddress` | + +#### Returns + +`number` + +--- + +### getEthConnection + +▸ **getEthConnection**(): `EthConnection` + +#### Returns + +`EthConnection` + +--- + +### getExploredChunks + +▸ **getExploredChunks**(): `Iterable`<`Chunk`\> + +Gets all the map chunks that this client is aware of. Chunks may have come from +mining, or from importing map data. + +#### Returns + +`Iterable`<`Chunk`\> + +--- + +### getGameObjects + +▸ **getGameObjects**(): [`GameObjects`](Backend_GameLogic_GameObjects.GameObjects.md) + +Gets a reference to the game's internal representation of the world state. This includes +voyages, planets, artifacts, and active wormholes, + +#### Returns + +[`GameObjects`](Backend_GameLogic_GameObjects.GameObjects.md) + +--- + +### getHashConfig + +▸ **getHashConfig**(): [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) + +Gets the HASH CONFIG + +#### Returns + +[`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) + +--- + +### getHashesPerSec + +▸ **getHashesPerSec**(): `number` + +Gets the amount of hashes per second that the miner manager is calculating. + +#### Returns + +`number` + +--- + +### getHomeCoords + +▸ **getHomeCoords**(): `undefined` \| `WorldCoords` + +Gets the location of your home planet. + +#### Returns + +`undefined` \| `WorldCoords` + +--- + +### getHomeHash + +▸ **getHomeHash**(): `undefined` \| `LocationId` + +Gets the hash of the location of your home planet. + +#### Returns + +`undefined` \| `LocationId` + +--- + +### getLocationOfPlanet + +▸ **getLocationOfPlanet**(`planetId`): `undefined` \| `WorldLocation` + +Gets the location of the given planet. Returns undefined if the planet does not exist, or if +we do not know the location of this planet NOT update the planet if the planet is stale, +which means this function is fast. + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`undefined` \| `WorldLocation` + +--- + +### getMaxMoveDist + +▸ **getMaxMoveDist**(`planetId`, `sendingPercent`, `abandoning`): `number` + +Gets the maximuim distance that you can send your energy from the given planet, +using the given percentage of that planet's current silver. + +#### Parameters + +| Name | Type | +| :--------------- | :----------- | +| `planetId` | `LocationId` | +| `sendingPercent` | `number` | +| `abandoning` | `boolean` | + +#### Returns + +`number` + +--- + +### getMiningPattern + +▸ **getMiningPattern**(): `undefined` \| [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +Gets the mining pattern that the miner is currently using. + +#### Returns + +`undefined` \| [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +--- + +### getMyArtifactMap + +▸ **getMyArtifactMap**(): `Map`<`ArtifactId`, `Artifact`\> + +Return a reference to the map of my artifacts + +#### Returns + +`Map`<`ArtifactId`, `Artifact`\> + +--- + +### getMyArtifacts + +▸ **getMyArtifacts**(): `Artifact`[] + +gets both deposited artifacts that are on planets i own as well as artifacts i own + +#### Returns + +`Artifact`[] + +--- + +### getMyArtifactsUpdated$ + +▸ **getMyArtifactsUpdated$**(): `Monomitter`<`Map`<`ArtifactId`, `Artifact`\>\> + +#### Returns + +`Monomitter`<`Map`<`ArtifactId`, `Artifact`\>\> + +--- + +### getMyBalance + +▸ **getMyBalance**(): `BigNumber` + +Gets the balance of the account + +#### Returns + +`BigNumber` + +--- + +### getMyBalance$ + +▸ **getMyBalance$**(): `Monomitter`<`BigNumber`\> + +Returns the monomitter which publishes events whenever the player's balance changes. + +#### Returns + +`Monomitter`<`BigNumber`\> + +--- + +### getMyBalanceEth + +▸ **getMyBalanceEth**(): `number` + +Gets the balance of the account measured in Eth (i.e. in full units of the chain). + +#### Returns + +`number` + +--- + +### getMyPlanetMap + +▸ **getMyPlanetMap**(): `Map`<`LocationId`, `Planet`\> + +Return a reference to the map of my planets + +#### Returns + +`Map`<`LocationId`, `Planet`\> + +--- + +### getMyPlanets + +▸ **getMyPlanets**(): `Planet`[] + +Gets a list of the planets that the player logged into this `GameManager` owns. + +#### Returns + +`Planet`[] + +--- + +### getMyPlanetsUpdated$ + +▸ **getMyPlanetsUpdated$**(): `Monomitter`<`Map`<`LocationId`, `Planet`\>\> + +#### Returns + +`Monomitter`<`Map`<`LocationId`, `Planet`\>\> + +--- + +### getMyScore + +▸ **getMyScore**(): `undefined` \| `number` + +Get the score of the currently logged-in account. + +#### Returns + +`undefined` \| `number` + +--- + +### getNextBroadcastAvailableTimestamp + +▸ **getNextBroadcastAvailableTimestamp**(): `number` + +Gets the timestamp (ms) of the next time that we can broadcast the coordinates of a planet. + +#### Returns + +`number` + +--- + +### getNextClaimAvailableTimestamp + +▸ **getNextClaimAvailableTimestamp**(): `number` + +Gets the timestamp (ms) of the next time that we can claim a planet. + +#### Returns + +`number` + +--- + +### getNextRevealCountdownInfo + +▸ **getNextRevealCountdownInfo**(): [`RevealCountdownInfo`](../interfaces/types_global_GlobalTypes.RevealCountdownInfo.md) + +Returns info about the next time you can broadcast coordinates + +#### Returns + +[`RevealCountdownInfo`](../interfaces/types_global_GlobalTypes.RevealCountdownInfo.md) + +--- + +### getNotificationsManager + +▸ **getNotificationsManager**(): [`default`](Frontend_Game_NotificationManager.default.md) + +#### Returns + +[`default`](Frontend_Game_NotificationManager.default.md) + +--- + +### getPaused + +▸ **getPaused**(): `boolean` + +#### Returns + +`boolean` + +--- + +### getPaused$ + +▸ **getPaused$**(): `Monomitter`<`boolean`\> + +#### Returns + +`Monomitter`<`boolean`\> + +--- + +### getPerlinThresholds + +▸ **getPerlinThresholds**(): [`number`, `number`, `number`] + +The perlin value at each coordinate determines the space type. There are four space +types, which means there are four ranges on the number line that correspond to +each space type. This function returns the boundary values between each of these +four ranges: `PERLIN_THRESHOLD_1`, `PERLIN_THRESHOLD_2`, `PERLIN_THRESHOLD_3`. + +#### Returns + +[`number`, `number`, `number`] + +--- + +### getPlanetLevel + +▸ **getPlanetLevel**(`planetId`): `undefined` \| `PlanetLevel` + +Gets the level of the given planet. Returns undefined if the planet does not exist. Does +NOT update the planet if the planet is stale, which means this function is fast. + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`undefined` \| `PlanetLevel` + +--- + +### getPlanetMap + +▸ **getPlanetMap**(): `Map`<`LocationId`, `Planet`\> + +Return a reference to the planet map + +#### Returns + +`Map`<`LocationId`, `Planet`\> + +--- + +### getPlanetRarity + +▸ **getPlanetRarity**(): `number` + +Gets the rarity of planets in the universe + +#### Returns + +`number` + +--- + +### getPlanetUpdated$ + +▸ **getPlanetUpdated$**(): `Monomitter`<`LocationId`\> + +#### Returns + +`Monomitter`<`LocationId`\> + +--- + +### getPlanetWithCoords + +▸ **getPlanetWithCoords**(`coords`): `undefined` \| `LocatablePlanet` + +Gets the planet that is located at the given coordinates. Returns undefined if not a valid +location or if no planet exists at location. If the planet needs to be updated (because +some time has passed since we last updated the planet), then updates that planet first. + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`undefined` \| `LocatablePlanet` + +--- + +### getPlanetWithId + +▸ **getPlanetWithId**(`planetId`): `undefined` \| `Planet` + +Gets the planet with the given hash. Returns undefined if the planet is neither in the contract +nor has been discovered locally. If the planet needs to be updated (because some time has +passed since we last updated the planet), then updates that planet first. + +#### Parameters + +| Name | Type | +| :--------- | :-------------------------- | +| `planetId` | `undefined` \| `LocationId` | + +#### Returns + +`undefined` \| `Planet` + +--- + +### getPlanetsInRange + +▸ **getPlanetsInRange**(`planetId`, `sendingPercent`, `abandoning`): `Planet`[] + +Gets all the planets that you can reach with at least 1 energy from +the given planet. Does not take into account wormholes. + +#### Parameters + +| Name | Type | +| :--------------- | :----------- | +| `planetId` | `LocationId` | +| `sendingPercent` | `number` | +| `abandoning` | `boolean` | + +#### Returns + +`Planet`[] + +--- + +### getPlanetsInWorldRectangle + +▸ **getPlanetsInWorldRectangle**(`worldX`, `worldY`, `worldWidth`, `worldHeight`, `levels`, `planetLevelToRadii`, `updateIfStale?`): `LocatablePlanet`[] + +Gets the ids of all the planets that are both within the given bounding box (defined by its bottom +left coordinate, width, and height) in the world and of a level that was passed in via the +`planetLevels` parameter. + +#### Parameters + +| Name | Type | Default value | +| :------------------- | :------------------------ | :------------ | +| `worldX` | `number` | `undefined` | +| `worldY` | `number` | `undefined` | +| `worldWidth` | `number` | `undefined` | +| `worldHeight` | `number` | `undefined` | +| `levels` | `number`[] | `undefined` | +| `planetLevelToRadii` | `Map`<`number`, `Radii`\> | `undefined` | +| `updateIfStale` | `boolean` | `true` | + +#### Returns + +`LocatablePlanet`[] + +--- + +### getPlanetsWithIds + +▸ **getPlanetsWithIds**(`planetId`): `Planet`[] + +Gets a list of planets in the client's memory with the given ids. If a planet with the given id +doesn't exist, no entry for that planet will be returned in the result. + +#### Parameters + +| Name | Type | +| :--------- | :------------- | +| `planetId` | `LocationId`[] | + +#### Returns + +`Planet`[] + +--- + +### getPlayer + +▸ **getPlayer**(`address?`): `undefined` \| `Player` + +Gets either the given player, or if no address was provided, gets the player that is logged +this client. + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `address?` | `EthAddress` | + +#### Returns + +`undefined` \| `Player` + +--- + +### getPlayerScore + +▸ **getPlayerScore**(`addr`): `undefined` \| `number` + +#### Parameters + +| Name | Type | +| :----- | :----------- | +| `addr` | `EthAddress` | + +#### Returns + +`undefined` \| `number` + +--- + +### getPlayerSpaceJunk + +▸ **getPlayerSpaceJunk**(`addr`): `undefined` \| `number` + +#### Parameters + +| Name | Type | +| :----- | :----------- | +| `addr` | `EthAddress` | + +#### Returns + +`undefined` \| `number` + +--- + +### getPlayerSpaceJunkLimit + +▸ **getPlayerSpaceJunkLimit**(`addr`): `undefined` \| `number` + +#### Parameters + +| Name | Type | +| :----- | :----------- | +| `addr` | `EthAddress` | + +#### Returns + +`undefined` \| `number` + +--- + +### getPrivateKey + +▸ **getPrivateKey**(): `undefined` \| `string` + +Gets the private key of the burner wallet used by this account. + +#### Returns + +`undefined` \| `string` + +--- + +### getRangeBuff + +▸ **getRangeBuff**(`abandoning`): `number` + +#### Parameters + +| Name | Type | +| :----------- | :-------- | +| `abandoning` | `boolean` | + +#### Returns + +`number` + +--- + +### getRevealedLocations + +▸ **getRevealedLocations**(): `Map`<`LocationId`, `RevealedLocation`\> + +Gets a map of all location IDs whose coords have been publically revealed + +#### Returns + +`Map`<`LocationId`, `RevealedLocation`\> + +--- + +### getSafeMode + +▸ **getSafeMode**(): `boolean` + +#### Returns + +`boolean` + +--- + +### getSignedTwitter + +▸ **getSignedTwitter**(`twitter`): `Promise`<`string`\> + +Signs the given twitter handle with the private key of the current user. Used to +verify that the person who owns the Dark Forest account was the one that attempted +to link a twitter to their account. + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `twitter` | `string` | + +#### Returns + +`Promise`<`string`\> + +--- + +### getSilverCurveAtPercent + +▸ **getSilverCurveAtPercent**(`planet`, `percent`): `undefined` \| `number` + +returns timestamp (seconds) that planet will reach percent% of silcap if +doesn't produce silver, returns undefined if already over percent% of silcap, + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `planet` | `Planet` | +| `percent` | `number` | + +#### Returns + +`undefined` \| `number` + +--- + +### getSilverOfPlayer + +▸ **getSilverOfPlayer**(`player`): `number` + +Gets the total amount of silver that lives on planets that the given player owns. + +#### Parameters + +| Name | Type | +| :------- | :----------- | +| `player` | `EthAddress` | + +#### Returns + +`number` + +--- + +### getSnarkHelper + +▸ **getSnarkHelper**(): [`default`](Backend_Utils_SnarkArgsHelper.default.md) + +#### Returns + +[`default`](Backend_Utils_SnarkArgsHelper.default.md) + +--- + +### getSpaceships + +▸ `Private` **getSpaceships**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +--- + +### getSpeedBuff + +▸ **getSpeedBuff**(`abandoning`): `number` + +Right now the only buffs supported in this way are +speed/range buffs from Abandoning a planet. + +The abandoning argument is used when interacting with +this function programmatically. + +#### Parameters + +| Name | Type | +| :----------- | :-------- | +| `abandoning` | `boolean` | + +#### Returns + +`number` + +--- + +### getStalePlanetWithId + +▸ **getStalePlanetWithId**(`planetId`): `undefined` \| `Planet` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`undefined` \| `Planet` + +--- + +### getTemperature + +▸ **getTemperature**(`coords`): `number` + +Gets the temperature of a given location. + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`number` + +--- + +### getTimeForMove + +▸ **getTimeForMove**(`fromId`, `toId`, `abandoning?`): `number` + +Gets the amount of time, in seconds that a voyage between from the first to the +second planet would take. + +#### Parameters + +| Name | Type | Default value | +| :----------- | :----------- | :------------ | +| `fromId` | `LocationId` | `undefined` | +| `toId` | `LocationId` | `undefined` | +| `abandoning` | `boolean` | `false` | + +#### Returns + +`number` + +--- + +### getTokenMintEndTimeSeconds + +▸ **getTokenMintEndTimeSeconds**(): `number` + +Dark Forest tokens can only be minted up to a certain time - get this time measured in seconds from epoch. + +#### Returns + +`number` + +--- + +### getTwitter + +▸ **getTwitter**(`address`): `undefined` \| `string` + +Gets the twitter handle of the given ethereum account which is associated +with Dark Forest. + +#### Parameters + +| Name | Type | +| :-------- | :-------------------------- | +| `address` | `undefined` \| `EthAddress` | + +#### Returns + +`undefined` \| `string` + +--- + +### getUIEventEmitter + +▸ **getUIEventEmitter**(): [`default`](Frontend_Utils_UIEmitter.default.md) + +Helpful for listening to user input events. + +#### Returns + +[`default`](Frontend_Utils_UIEmitter.default.md) + +--- + +### getUnconfirmedMoves + +▸ **getUnconfirmedMoves**(): `Transaction`<`UnconfirmedMove`\>[] + +Gets all moves that this client has queued to be uploaded to the contract, but +have not been successfully confirmed yet. + +#### Returns + +`Transaction`<`UnconfirmedMove`\>[] + +--- + +### getUnconfirmedUpgrades + +▸ **getUnconfirmedUpgrades**(): `Transaction`<`UnconfirmedUpgrade`\>[] + +Gets all upgrades that this client has queued to be uploaded to the contract, but +have not been successfully confirmed yet. + +#### Returns + +`Transaction`<`UnconfirmedUpgrade`\>[] + +--- + +### getUnconfirmedWormholeActivations + +▸ **getUnconfirmedWormholeActivations**(): `Transaction`<`UnconfirmedActivateArtifact`\>[] + +#### Returns + +`Transaction`<`UnconfirmedActivateArtifact`\>[] + +--- + +### getUniverseTotalEnergy + +▸ **getUniverseTotalEnergy**(): `number` + +Gets the total amount of energy that lives on a planet that somebody owns. + +#### Returns + +`number` + +--- + +### getUpgrade + +▸ **getUpgrade**(`branch`, `level`): `Upgrade` + +Returns the upgrade that would be applied to a planet given a particular +upgrade branch (defense, range, speed) and level of upgrade. + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `branch` | `number` | +| `level` | `number` | + +#### Returns + +`Upgrade` + +--- + +### getWorldRadius + +▸ **getWorldRadius**(): `number` + +Gets the radius of the playable area of the universe. + +#### Returns + +`number` + +--- + +### getWorldSilver + +▸ **getWorldSilver**(): `number` + +Gets the total amount of silver that lives on a planet that somebody owns. + +#### Returns + +`number` + +--- + +### getWormholeFactors + +▸ **getWormholeFactors**(`fromPlanet`, `toPlanet`): `undefined` \| { `distanceFactor`: `number` ; `speedFactor`: `number` } + +If there's an active artifact on either of these planets which happens to be a wormhole which +is active and targetting the other planet, return the wormhole boost which is greater. Values +represent a multiplier. + +#### Parameters + +| Name | Type | +| :----------- | :------- | +| `fromPlanet` | `Planet` | +| `toPlanet` | `Planet` | + +#### Returns + +`undefined` \| { `distanceFactor`: `number` ; `speedFactor`: `number` } + +--- + +### getWormholes + +▸ **getWormholes**(): `Iterable`<`Wormhole`\> + +#### Returns + +`Iterable`<`Wormhole`\> + +--- + +### hardRefreshArtifact + +▸ **hardRefreshArtifact**(`artifactId`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `artifactId` | `ArtifactId` | + +#### Returns + +`Promise`<`void`\> + +--- + +### hardRefreshPlanet + +▸ **hardRefreshPlanet**(`planetId`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`Promise`<`void`\> + +--- + +### hardRefreshPlayer + +▸ `Private` **hardRefreshPlayer**(`address?`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `address?` | `EthAddress` | + +#### Returns + +`Promise`<`void`\> + +--- + +### hasJoinedGame + +▸ **hasJoinedGame**(): `boolean` + +Whether or not this client has successfully found and landed on a home planet. + +#### Returns + +`boolean` + +--- + +### hasMinedChunk + +▸ **hasMinedChunk**(`chunkLocation`): `boolean` + +Whether or not the given rectangle has been mined. + +#### Parameters + +| Name | Type | +| :-------------- | :---------- | +| `chunkLocation` | `Rectangle` | + +#### Returns + +`boolean` + +--- + +### initMiningManager + +▸ `Private` **initMiningManager**(`homeCoords`, `cores?`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :------------ | +| `homeCoords` | `WorldCoords` | +| `cores?` | `number` | + +#### Returns + +`void` + +--- + +### invadePlanet + +▸ **invadePlanet**(`locationId`): `Promise`<`Transaction`<`UnconfirmedInvadePlanet`\>\> + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedInvadePlanet`\>\> + +--- + +### isAdmin + +▸ **isAdmin**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isMining + +▸ **isMining**(): `boolean` + +Whether or not the miner is currently exploring space. + +#### Returns + +`boolean` + +--- + +### isPlanetMineable + +▸ **isPlanetMineable**(`p`): `boolean` + +Whether or not the given planet is capable of minting an artifact. + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `p` | `Planet` | + +#### Returns + +`boolean` + +--- + +### isRoundOver + +▸ **isRoundOver**(): `boolean` + +Returns whether or not the current round has ended. + +#### Returns + +`boolean` + +--- + +### joinGame + +▸ **joinGame**(`beforeRetry`): `Promise`<`void`\> + +Attempts to join the game. Should not be called once you've already joined. + +#### Parameters + +| Name | Type | +| :------------ | :-------------------------------------- | +| `beforeRetry` | (`e`: `Error`) => `Promise`<`boolean`\> | + +#### Returns + +`Promise`<`void`\> + +--- + +### listenForNewBlock + +▸ **listenForNewBlock**(): `void` + +#### Returns + +`void` + +--- + +### loadContract + +▸ **loadContract**<`T`\>(`contractAddress`, `contractABI`): `Promise`<`T`\> + +Returns an instance of a `Contract` from the ethersjs library. This is the library we use to +connect to the blockchain. For documentation about how `Contract` works, see: +https://docs.ethers.io/v5/api/contract/contract/ + +Also, registers your contract in the system to make calls against it and to reload it when +necessary (such as the RPC endpoint changing). + +#### Type parameters + +| Name | Type | +| :--- | :----------------------- | +| `T` | extends `Contract`<`T`\> | + +#### Parameters + +| Name | Type | +| :---------------- | :------------------ | +| `contractAddress` | `string` | +| `contractABI` | `ContractInterface` | + +#### Returns + +`Promise`<`T`\> + +--- + +### loadPlugins + +▸ **loadPlugins**(): `Promise`<[`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[]\> + +Load the serialized versions of all the plugins that this player has. + +#### Returns + +`Promise`<[`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[]\> + +--- + +### locationBigIntFromCoords + +▸ **locationBigIntFromCoords**(`coords`): `BigInteger` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`BigInteger` + +--- + +### locationFromCoords + +▸ `Private` **locationFromCoords**(`coords`): `WorldLocation` + +computes the WorldLocation object corresponding to a set of coordinates +very slow since it actually calculates the hash; do not use in render loop + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`WorldLocation` + +--- + +### move + +▸ **move**(`from`, `to`, `forces`, `silver`, `artifactMoved?`, `abandoning?`, `bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedMove`\>\> + +Submits a transaction to the blockchain to move the given amount of resources from +the given planet to the given planet. + +#### Parameters + +| Name | Type | Default value | +| :--------------- | :----------- | :------------ | +| `from` | `LocationId` | `undefined` | +| `to` | `LocationId` | `undefined` | +| `forces` | `number` | `undefined` | +| `silver` | `number` | `undefined` | +| `artifactMoved?` | `ArtifactId` | `undefined` | +| `abandoning` | `boolean` | `false` | +| `bypassChecks` | `boolean` | `false` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedMove`\>\> + +--- + +### onTxCancelled + +▸ `Private` **onTxCancelled**(`tx`): `void` + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`void` + +--- + +### onTxConfirmed + +▸ `Private` **onTxConfirmed**(`tx`): `void` + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`void` + +--- + +### onTxReverted + +▸ `Private` **onTxReverted**(`tx`): `void` + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`void` + +--- + +### onTxSubmit + +▸ `Private` **onTxSubmit**(`tx`): `void` + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`void` + +--- + +### prospectPlanet + +▸ **prospectPlanet**(`planetId`, `bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedProspectPlanet`\>\> + +#### Parameters + +| Name | Type | Default value | +| :------------- | :----------- | :------------ | +| `planetId` | `LocationId` | `undefined` | +| `bypassChecks` | `boolean` | `false` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedProspectPlanet`\>\> + +--- + +### refreshNetworkHealth + +▸ `Private` **refreshNetworkHealth**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +--- + +### refreshScoreboard + +▸ `Private` **refreshScoreboard**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +--- + +### refreshServerPlanetStates + +▸ **refreshServerPlanetStates**(`planetIds`): `Promise`<`void`\> + +We have two locations which planet state can live: on the server, and on the blockchain. We use +the blockchain for the 'physics' of the universe, and the webserver for optional 'add-on' +features, which are cryptographically secure, but live off-chain. + +This function loads the planet states which live on the server. Plays nicely with our +notifications system and sets the appropriate loading state values on the planet. + +#### Parameters + +| Name | Type | +| :---------- | :------------- | +| `planetIds` | `LocationId`[] | + +#### Returns + +`Promise`<`void`\> + +--- + +### refreshTwitters + +▸ `Private` **refreshTwitters**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +--- + +### revealLocation + +▸ **revealLocation**(`planetId`): `Promise`<`Transaction`<`UnconfirmedReveal`\>\> + +Reveals a planet's location on-chain. + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedReveal`\>\> + +--- + +### savePlugins + +▸ **savePlugins**(`savedPlugins`): `Promise`<`void`\> + +Overwrites all the saved plugins to equal the given array of plugins. + +#### Parameters + +| Name | Type | +| :------------- | :----------------------------------------------------------------------------------------- | +| `savedPlugins` | [`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[] | + +#### Returns + +`Promise`<`void`\> + +--- + +### setMinerCores + +▸ **setMinerCores**(`nCores`): `void` + +Set the amount of cores to mine the universe with. More cores equals faster! + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `nCores` | `number` | + +#### Returns + +`void` + +--- + +### setMiningPattern + +▸ **setMiningPattern**(`pattern`): `void` + +Sets the mining pattern of the miner. This kills the old miner and starts this one. + +#### Parameters + +| Name | Type | +| :-------- | :----------------------------------------------------------------------------- | +| `pattern` | [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) | + +#### Returns + +`void` + +--- + +### setPlanetEmoji + +▸ **setPlanetEmoji**(`locationId`, `emojiStr`): `Promise`<`void`\> + +If you are the owner of this planet, you can set an 'emoji' to hover above the planet. +`emojiStr` must be a string that contains a single emoji, otherwise this function will throw an +error. + +The emoji is stored off-chain in a postgres database. We verify planet ownership via a contract +call from the webserver, and by verifying that the request to add (or remove) an emoji from a +planet was signed by the owner. + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | +| `emojiStr` | `string` | + +#### Returns + +`Promise`<`void`\> + +--- + +### setPlayerTwitters + +▸ `Private` **setPlayerTwitters**(`twitters`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :------------------------------------------------------------------------------------------------ | +| `twitters` | [`AddressTwitterMap`](../modules/types_darkforest_api_UtilityServerAPITypes.md#addresstwittermap) | + +#### Returns + +`void` + +--- + +### setRadius + +▸ `Private` **setRadius**(`worldRadius`): `void` + +#### Parameters + +| Name | Type | +| :------------ | :------- | +| `worldRadius` | `number` | + +#### Returns + +`void` + +--- + +### setSafeMode + +▸ **setSafeMode**(`safeMode`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :-------- | +| `safeMode` | `boolean` | + +#### Returns + +`void` + +--- + +### setSnarkCacheSize + +▸ **setSnarkCacheSize**(`size`): `void` + +Changes the amount of move snark proofs that are cached. + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `size` | `number` | + +#### Returns + +`void` + +--- + +### softRefreshPlanet + +▸ `Private` **softRefreshPlanet**(`planetId`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`Promise`<`void`\> + +--- + +### spaceTypeFromPerlin + +▸ **spaceTypeFromPerlin**(`perlin`): `SpaceType` + +Each coordinate lives in a particular type of space, determined by a smooth random +function called 'perlin noise. + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `perlin` | `number` | + +#### Returns + +`SpaceType` + +--- + +### spaceTypePerlin + +▸ **spaceTypePerlin**(`coords`, `floor`): `number` + +Gets the perlin value at the given location in the world. SpaceType is based +on this value. + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | +| `floor` | `boolean` | + +#### Returns + +`number` + +--- + +### startExplore + +▸ **startExplore**(): `void` + +Starts the miner. + +#### Returns + +`void` + +--- + +### stopExplore + +▸ **stopExplore**(): `void` + +Stops the miner. + +#### Returns + +`void` + +--- + +### submitDisconnectTwitter + +▸ **submitDisconnectTwitter**(`twitter`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `twitter` | `string` | + +#### Returns + +`Promise`<`void`\> + +--- + +### submitPlanetMessage + +▸ `Private` **submitPlanetMessage**(`locationId`, `type`, `body`): `Promise`<`void`\> + +The planet emoji feature is built on top of a more general 'Planet Message' system, which +allows players to upload pieces of data called 'Message's to planets that they own. Emojis are +just one type of message. Their implementation leaves the door open to more off-chain data. + +#### Parameters + +| Name | Type | +| :----------- | :------------------ | +| `locationId` | `LocationId` | +| `type` | `PlanetMessageType` | +| `body` | `unknown` | + +#### Returns + +`Promise`<`void`\> + +--- + +### submitTransaction + +▸ **submitTransaction**<`T`\>(`txIntent`, `overrides?`): `Promise`<`Transaction`<`T`\>\> + +#### Type parameters + +| Name | Type | +| :--- | :----------------- | +| `T` | extends `TxIntent` | + +#### Parameters + +| Name | Type | +| :----------- | :------------------- | +| `txIntent` | `T` | +| `overrides?` | `TransactionRequest` | + +#### Returns + +`Promise`<`Transaction`<`T`\>\> + +--- + +### submitVerifyTwitter + +▸ **submitVerifyTwitter**(`twitter`): `Promise`<`boolean`\> + +Once you have posted the verification tweet - complete the twitter-account-linking +process by telling the Dark Forest webserver to look at that tweet. + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `twitter` | `string` | + +#### Returns + +`Promise`<`boolean`\> + +--- + +### testNotification + +▸ **testNotification**(): `void` + +#### Returns + +`void` + +--- + +### timeUntilNextBroadcastAvailable + +▸ **timeUntilNextBroadcastAvailable**(): `number` + +Gets the amount of time (ms) until the next time the current player can broadcast a planet. + +#### Returns + +`number` + +--- + +### transferOwnership + +▸ **transferOwnership**(`planetId`, `newOwner`, `bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedPlanetTransfer`\>\> + +#### Parameters + +| Name | Type | Default value | +| :------------- | :----------- | :------------ | +| `planetId` | `LocationId` | `undefined` | +| `newOwner` | `EthAddress` | `undefined` | +| `bypassChecks` | `boolean` | `false` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedPlanetTransfer`\>\> + +--- + +### updateDiagnostics + +▸ **updateDiagnostics**(`updateFn`): `void` + +Updates the diagnostic info of the game using the supplied function. Ideally, each spot in the +codebase that would like to record a metric is able to update its specific metric in a +convenient manner. + +#### Parameters + +| Name | Type | +| :--------- | :----------------------------- | +| `updateFn` | (`d`: `Diagnostics`) => `void` | + +#### Returns + +`void` + +--- + +### upgrade + +▸ **upgrade**(`planetId`, `branch`, `_bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedUpgrade`\>\> + +Submits a transaction to the blockchain to upgrade the given planet with the given +upgrade branch. You must own the planet, and have enough silver on it to complete +the upgrade. + +#### Parameters + +| Name | Type | Default value | +| :-------------- | :----------- | :------------ | +| `planetId` | `LocationId` | `undefined` | +| `branch` | `number` | `undefined` | +| `_bypassChecks` | `boolean` | `false` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedUpgrade`\>\> + +--- + +### uploadDiagnostics + +▸ `Private` **uploadDiagnostics**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +--- + +### verifyMessage + +▸ `Private` **verifyMessage**(`message`): `Promise`<`boolean`\> + +Checks that a message signed by {@link GameManager#signMessage} was signed by the address that +it claims it was signed by. + +#### Parameters + +| Name | Type | +| :-------- | :-------------------------- | +| `message` | `SignedMessage`<`unknown`\> | + +#### Returns + +`Promise`<`boolean`\> + +--- + +### waitForPlanet + +▸ **waitForPlanet**<`T`\>(`locationId`, `predicate`): `Promise`<`T`\> + +Listen for changes to a planet take action, +eg. +waitForPlanet("yourAsteroidId", ({current}) => current.silverCap / current.silver > 90) +.then(() => { +// Send Silver to nearby planet +}) + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | Description | +| :----------- | :------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------- | +| `locationId` | `LocationId` | A locationId to watch for updates | +| `predicate` | (`__namedParameters`: [`Diff`](../interfaces/Frontend_Utils_EmitterUtils.Diff.md)<`Planet`\>) => `undefined` \| `T` | a function that accepts a Diff and should return a truth-y value, value will be passed to promise.resolve() | + +#### Returns + +`Promise`<`T`\> + +a promise that will resolve with results returned from the predicate function + +--- + +### withdrawArtifact + +▸ **withdrawArtifact**(`locationId`, `artifactId`, `bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedWithdrawArtifact`\>\> + +Withdraws the artifact that is locked up on the given planet. + +#### Parameters + +| Name | Type | Default value | +| :------------- | :----------- | :------------ | +| `locationId` | `LocationId` | `undefined` | +| `artifactId` | `ArtifactId` | `undefined` | +| `bypassChecks` | `boolean` | `true` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedWithdrawArtifact`\>\> + +--- + +### withdrawSilver + +▸ **withdrawSilver**(`locationId`, `amount`, `bypassChecks?`): `Promise`<`Transaction`<`UnconfirmedWithdrawSilver`\>\> + +#### Parameters + +| Name | Type | Default value | +| :------------- | :----------- | :------------ | +| `locationId` | `LocationId` | `undefined` | +| `amount` | `number` | `undefined` | +| `bypassChecks` | `boolean` | `false` | + +#### Returns + +`Promise`<`Transaction`<`UnconfirmedWithdrawSilver`\>\> + +--- + +### create + +▸ `Static` **create**(`__namedParameters`): `Promise`<[`default`](Backend_GameLogic_GameManager.default.md)\> + +#### Parameters + +| Name | Type | +| :---------------------------------- | :-------------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.connection` | `EthConnection` | +| `__namedParameters.contractAddress` | `EthAddress` | +| `__namedParameters.terminal` | `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> | + +#### Returns + +`Promise`<[`default`](Backend_GameLogic_GameManager.default.md)\> diff --git a/docs/classes/Backend_GameLogic_GameObjects.GameObjects.md b/docs/classes/Backend_GameLogic_GameObjects.GameObjects.md new file mode 100644 index 00000000..db95be37 --- /dev/null +++ b/docs/classes/Backend_GameLogic_GameObjects.GameObjects.md @@ -0,0 +1,1254 @@ +# Class: GameObjects + +[Backend/GameLogic/GameObjects](../modules/Backend_GameLogic_GameObjects.md).GameObjects + +Representation of the objects which exist in the world. + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_GameObjects.GameObjects.md#constructor) + +### Properties + +- [address](Backend_GameLogic_GameObjects.GameObjects.md#address) +- [arrivals](Backend_GameLogic_GameObjects.GameObjects.md#arrivals) +- [artifactUpdated$](Backend_GameLogic_GameObjects.GameObjects.md#artifactupdated$) +- [artifacts](Backend_GameLogic_GameObjects.GameObjects.md#artifacts) +- [claimedLocations](Backend_GameLogic_GameObjects.GameObjects.md#claimedlocations) +- [contractConstants](Backend_GameLogic_GameObjects.GameObjects.md#contractconstants) +- [coordsToLocation](Backend_GameLogic_GameObjects.GameObjects.md#coordstolocation) +- [layeredMap](Backend_GameLogic_GameObjects.GameObjects.md#layeredmap) +- [myArtifacts](Backend_GameLogic_GameObjects.GameObjects.md#myartifacts) +- [myArtifactsUpdated$](Backend_GameLogic_GameObjects.GameObjects.md#myartifactsupdated$) +- [myPlanets](Backend_GameLogic_GameObjects.GameObjects.md#myplanets) +- [myPlanetsUpdated$](Backend_GameLogic_GameObjects.GameObjects.md#myplanetsupdated$) +- [planetArrivalIds](Backend_GameLogic_GameObjects.GameObjects.md#planetarrivalids) +- [planetLocationMap](Backend_GameLogic_GameObjects.GameObjects.md#planetlocationmap) +- [planetUpdated$](Backend_GameLogic_GameObjects.GameObjects.md#planetupdated$) +- [planets](Backend_GameLogic_GameObjects.GameObjects.md#planets) +- [revealedLocations](Backend_GameLogic_GameObjects.GameObjects.md#revealedlocations) +- [touchedPlanetIds](Backend_GameLogic_GameObjects.GameObjects.md#touchedplanetids) +- [transactions](Backend_GameLogic_GameObjects.GameObjects.md#transactions) +- [wormholes](Backend_GameLogic_GameObjects.GameObjects.md#wormholes) + +### Methods + +- [addPlanetLocation](Backend_GameLogic_GameObjects.GameObjects.md#addplanetlocation) +- [clearOldArrivals](Backend_GameLogic_GameObjects.GameObjects.md#clearoldarrivals) +- [clearUnconfirmedTxIntent](Backend_GameLogic_GameObjects.GameObjects.md#clearunconfirmedtxintent) +- [defaultPlanetFromLocation](Backend_GameLogic_GameObjects.GameObjects.md#defaultplanetfromlocation) +- [emitArrivalNotifications](Backend_GameLogic_GameObjects.GameObjects.md#emitarrivalnotifications) +- [forceTick](Backend_GameLogic_GameObjects.GameObjects.md#forcetick) +- [getAllOwnedPlanets](Backend_GameLogic_GameObjects.GameObjects.md#getallownedplanets) +- [getAllPlanets](Backend_GameLogic_GameObjects.GameObjects.md#getallplanets) +- [getAllPlanetsMap](Backend_GameLogic_GameObjects.GameObjects.md#getallplanetsmap) +- [getAllVoyages](Backend_GameLogic_GameObjects.GameObjects.md#getallvoyages) +- [getArrivalIdsForLocation](Backend_GameLogic_GameObjects.GameObjects.md#getarrivalidsforlocation) +- [getArtifactById](Backend_GameLogic_GameObjects.GameObjects.md#getartifactbyid) +- [getArtifactController](Backend_GameLogic_GameObjects.GameObjects.md#getartifactcontroller) +- [getArtifactMap](Backend_GameLogic_GameObjects.GameObjects.md#getartifactmap) +- [getArtifactsOnPlanetsOwnedBy](Backend_GameLogic_GameObjects.GameObjects.md#getartifactsonplanetsownedby) +- [getArtifactsOwnedBy](Backend_GameLogic_GameObjects.GameObjects.md#getartifactsownedby) +- [getBiome](Backend_GameLogic_GameObjects.GameObjects.md#getbiome) +- [getClaimedLocations](Backend_GameLogic_GameObjects.GameObjects.md#getclaimedlocations) +- [getEnergyCurveAtPercent](Backend_GameLogic_GameObjects.GameObjects.md#getenergycurveatpercent) +- [getLocationOfPlanet](Backend_GameLogic_GameObjects.GameObjects.md#getlocationofplanet) +- [getMyArtifactMap](Backend_GameLogic_GameObjects.GameObjects.md#getmyartifactmap) +- [getMyPlanetMap](Backend_GameLogic_GameObjects.GameObjects.md#getmyplanetmap) +- [getPlanetArtifacts](Backend_GameLogic_GameObjects.GameObjects.md#getplanetartifacts) +- [getPlanetDetailLevel](Backend_GameLogic_GameObjects.GameObjects.md#getplanetdetaillevel) +- [getPlanetLevel](Backend_GameLogic_GameObjects.GameObjects.md#getplanetlevel) +- [getPlanetMap](Backend_GameLogic_GameObjects.GameObjects.md#getplanetmap) +- [getPlanetWithCoords](Backend_GameLogic_GameObjects.GameObjects.md#getplanetwithcoords) +- [getPlanetWithId](Backend_GameLogic_GameObjects.GameObjects.md#getplanetwithid) +- [getPlanetWithLocation](Backend_GameLogic_GameObjects.GameObjects.md#getplanetwithlocation) +- [getPlanetsInWorldCircle](Backend_GameLogic_GameObjects.GameObjects.md#getplanetsinworldcircle) +- [getPlanetsInWorldRectangle](Backend_GameLogic_GameObjects.GameObjects.md#getplanetsinworldrectangle) +- [getPlanetsWithIds](Backend_GameLogic_GameObjects.GameObjects.md#getplanetswithids) +- [getRevealedLocations](Backend_GameLogic_GameObjects.GameObjects.md#getrevealedlocations) +- [getSilverCurveAtPercent](Backend_GameLogic_GameObjects.GameObjects.md#getsilvercurveatpercent) +- [getWormholes](Backend_GameLogic_GameObjects.GameObjects.md#getwormholes) +- [isGettingSpaceships](Backend_GameLogic_GameObjects.GameObjects.md#isgettingspaceships) +- [isPlanetInContract](Backend_GameLogic_GameObjects.GameObjects.md#isplanetincontract) +- [markLocationRevealed](Backend_GameLogic_GameObjects.GameObjects.md#marklocationrevealed) +- [onTxIntent](Backend_GameLogic_GameObjects.GameObjects.md#ontxintent) +- [planetLevelFromHexPerlin](Backend_GameLogic_GameObjects.GameObjects.md#planetlevelfromhexperlin) +- [planetTypeFromHexPerlin](Backend_GameLogic_GameObjects.GameObjects.md#planettypefromhexperlin) +- [processArrivalsForPlanet](Backend_GameLogic_GameObjects.GameObjects.md#processarrivalsforplanet) +- [removeArrival](Backend_GameLogic_GameObjects.GameObjects.md#removearrival) +- [replaceArtifactFromContractData](Backend_GameLogic_GameObjects.GameObjects.md#replaceartifactfromcontractdata) +- [replaceArtifactsFromContractData](Backend_GameLogic_GameObjects.GameObjects.md#replaceartifactsfromcontractdata) +- [replacePlanetFromContractData](Backend_GameLogic_GameObjects.GameObjects.md#replaceplanetfromcontractdata) +- [setArtifact](Backend_GameLogic_GameObjects.GameObjects.md#setartifact) +- [setClaimedLocation](Backend_GameLogic_GameObjects.GameObjects.md#setclaimedlocation) +- [setPlanet](Backend_GameLogic_GameObjects.GameObjects.md#setplanet) +- [spaceTypeFromPerlin](Backend_GameLogic_GameObjects.GameObjects.md#spacetypefromperlin) +- [updateArtifact](Backend_GameLogic_GameObjects.GameObjects.md#updateartifact) +- [updatePlanet](Backend_GameLogic_GameObjects.GameObjects.md#updateplanet) +- [updatePlanetIfStale](Backend_GameLogic_GameObjects.GameObjects.md#updateplanetifstale) +- [getSilverNeeded](Backend_GameLogic_GameObjects.GameObjects.md#getsilverneeded) +- [planetCanUpgrade](Backend_GameLogic_GameObjects.GameObjects.md#planetcanupgrade) + +## Constructors + +### constructor + +• **new GameObjects**(`address`, `touchedPlanets`, `allTouchedPlanetIds`, `revealedLocations`, `claimedLocations`, `artifacts`, `allChunks`, `unprocessedArrivals`, `unprocessedPlanetArrivalIds`, `contractConstants`, `worldRadius`) + +#### Parameters + +| Name | Type | +| :---------------------------- | :----------------------------------------------------------------------------------------------- | +| `address` | `undefined` \| `EthAddress` | +| `touchedPlanets` | `Map`<`LocationId`, `Planet`\> | +| `allTouchedPlanetIds` | `Set`<`LocationId`\> | +| `revealedLocations` | `Map`<`LocationId`, `RevealedLocation`\> | +| `claimedLocations` | `Map`<`LocationId`, `ClaimedLocation`\> | +| `artifacts` | `Map`<`ArtifactId`, `Artifact`\> | +| `allChunks` | `Iterable`<`Chunk`\> | +| `unprocessedArrivals` | `Map`<`VoyageId`, `QueuedArrival`\> | +| `unprocessedPlanetArrivalIds` | `Map`<`LocationId`, `VoyageId`[]\> | +| `contractConstants` | [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) | +| `worldRadius` | `number` | + +## Properties + +### address + +• `Private` `Readonly` **address**: `undefined` \| `EthAddress` + +This address of the player that is currently logged in. + +**`todo`** move this, along with all other objects relating to the currently logged-on player into a +new field: {@code player: PlayerInfo} + +--- + +### arrivals + +• `Private` `Readonly` **arrivals**: `Map`<`VoyageId`, `ArrivalWithTimer`\> + +Map of arrivals to timers that fire when an arrival arrives, in case that handler needs to be +cancelled for whatever reason. + +--- + +### artifactUpdated$ + +• `Readonly` **artifactUpdated$**: `Monomitter`<`ArtifactId`\> + +Event emitter which publishes whenever an artifact has been updated. + +--- + +### artifacts + +• `Private` `Readonly` **artifacts**: `Map`<`ArtifactId`, `Artifact`\> + +Cached index of all known artifact data. + +**`see`** The same warning applys as the one on [GameObjects.planets](Backend_GameLogic_GameObjects.GameObjects.md#planets) + +--- + +### claimedLocations + +• `Private` `Readonly` **claimedLocations**: `Map`<`LocationId`, `ClaimedLocation`\> + +Map from location ids to, if that location id has been claimed on-chain, the world coordinates +of that location id, as well as some extra information regarding the circumstances of the +revealing of this planet. + +--- + +### contractConstants + +• `Private` `Readonly` **contractConstants**: [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) + +Some of the game's parameters are downloaded from the blockchain. This allows the client to be +flexible, and connect to any compatible set of Dark Forest contracts, download the parameters, +and join the game, taking into account the unique configuration of those specific Dark Forest +contracts. + +--- + +### coordsToLocation + +• `Private` `Readonly` **coordsToLocation**: `Map`<`CoordsString`, `WorldLocation`\> + +Map from a stringified representation of an x-y coordinate to an object that contains some more +information about the world at that location. + +--- + +### layeredMap + +• `Private` `Readonly` **layeredMap**: [`LayeredMap`](Backend_GameLogic_LayeredMap.LayeredMap.md) + +This is a data structure that allows us to efficiently calculate which planets are visible on +the player's screen given the viewport's position and size. + +--- + +### myArtifacts + +• `Private` `Readonly` **myArtifacts**: `Map`<`ArtifactId`, `Artifact`\> + +Cached index of artifacts owned by the player. + +**`see`** The same warning applys as the one on [GameObjects.planets](Backend_GameLogic_GameObjects.GameObjects.md#planets) + +--- + +### myArtifactsUpdated$ + +• `Readonly` **myArtifactsUpdated$**: `Monomitter`<`Map`<`ArtifactId`, `Artifact`\>\> + +Whenever one of the player's artifacts are updated, this event emitter publishes. See +[GameObjects.myPlanetsUpdated$](Backend_GameLogic_GameObjects.GameObjects.md#myplanetsupdated$) for more info. + +--- + +### myPlanets + +• `Private` `Readonly` **myPlanets**: `Map`<`LocationId`, `Planet`\> + +Cached index of planets owned by the player. + +**`see`** The same warning applys as the one on [GameObjects.planets](Backend_GameLogic_GameObjects.GameObjects.md#planets) + +--- + +### myPlanetsUpdated$ + +• `Readonly` **myPlanetsUpdated$**: `Monomitter`<`Map`<`LocationId`, `Planet`\>\> + +Whenever a planet is updated, we publish to this event with a reference to a map from location +id to planet. We need to rethink this event emitter because it currently publishes every time +that any planet is updated, and if a lot of them are updated at once (which i think is the case +once every two minutes) then this event emitter will publish a shitton of events. +TODO: rethink this + +--- + +### planetArrivalIds + +• `Private` `Readonly` **planetArrivalIds**: `Map`<`LocationId`, `VoyageId`[]\> + +Map from a location id (think of it as the unique id of each planet) to all the ids of the +voyages that are arriving on that planet. These include both the player's own voyages, and also +any potential invader's voyages. + +--- + +### planetLocationMap + +• `Private` `Readonly` **planetLocationMap**: `Map`<`LocationId`, `WorldLocation`\> + +Map from location id (unique id of each planet) to some information about the location at which +this planet is located, if this client happens to know the coordinates of this planet. + +--- + +### planetUpdated$ + +• `Readonly` **planetUpdated$**: `Monomitter`<`LocationId`\> + +Event emitter which publishes whenever a planet is updated. + +--- + +### planets + +• `Private` `Readonly` **planets**: `Map`<`LocationId`, `Planet`\> + +Cached index of all known planet data. + +Warning! + +This should NEVER be set to directly! Any time you want to update a planet, you must call the +{@link GameObjects#setPlanet()} function. Following this rule enables us to reliably notify +other parts of the client when a particular object has been updated. TODO: what is the best way +to do this? + +**`todo`** extract the pattern we're using for the field tuples + +- {planets, myPlanets, myPlanetsUpdated, planetUpdated$} +- {artifacts, myArtifacts, myArtifactsUpdated, artifactUpdated$} + +into some sort of class. + +--- + +### revealedLocations + +• `Private` `Readonly` **revealedLocations**: `Map`<`LocationId`, `RevealedLocation`\> + +Map from location ids to, if that location id has been revealed on-chain, the world coordinates +of that location id, as well as some extra information regarding the circumstances of the +revealing of this planet. + +--- + +### touchedPlanetIds + +• `Private` `Readonly` **touchedPlanetIds**: `Set`<`LocationId`\> + +Set of all planet ids that we know have been interacted-with on-chain. + +--- + +### transactions + +• `Readonly` **transactions**: `TransactionCollection` + +Transactions that are currently in flight. + +--- + +### wormholes + +• `Private` `Readonly` **wormholes**: `Map`<`ArtifactId`, `Wormhole`\> + +Map from artifact ids to wormholes. + +## Methods + +### addPlanetLocation + +▸ **addPlanetLocation**(`planetLocation`): `void` + +Called when we load chunk data into memory (on startup), when we're loading all revealed locations (on startup), +when miner has mined a new chunk while exploring, and when a planet's location is revealed onchain during the course of play +Adds a WorldLocation to the planetLocationMap, making it known to the player locally +Sets an unsynced default planet in the PlanetMap this.planets +IMPORTANT: This is the only way a LocatablePlanet gets constructed +IMPORTANT: Idempotent + +#### Parameters + +| Name | Type | +| :--------------- | :-------------- | +| `planetLocation` | `WorldLocation` | + +#### Returns + +`void` + +--- + +### clearOldArrivals + +▸ `Private` **clearOldArrivals**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### clearUnconfirmedTxIntent + +▸ **clearUnconfirmedTxIntent**(`tx`): `void` + +Whenever a transaction that the user initiated either succeeds or fails, we need to clear the +fact that it was in progress from the event's corresponding entities. For example, whenever a +transaction that sends a voyage from one planet to another either succeeds or fails, we need to +remove the dashed line that connected them. + +Making sure that we never miss something here is very tedious. + +**`todo`** Make this less tedious. + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`void` + +--- + +### defaultPlanetFromLocation + +▸ `Private` **defaultPlanetFromLocation**(`location`): `LocatablePlanet` + +returns the data for an unowned, untouched planet at location +most planets in the game are untouched and not stored in the contract, +so we need to generate their data optimistically in the client + +#### Parameters + +| Name | Type | +| :--------- | :-------------- | +| `location` | `WorldLocation` | + +#### Returns + +`LocatablePlanet` + +--- + +### emitArrivalNotifications + +▸ `Private` **emitArrivalNotifications**(`__namedParameters`): `void` + +Emit notifications based on a planet's state change + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------- | +| `__namedParameters` | [`PlanetDiff`](../interfaces/Backend_GameLogic_ArrivalUtils.PlanetDiff.md) | + +#### Returns + +`void` + +--- + +### forceTick + +▸ **forceTick**(`locationId`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | + +#### Returns + +`void` + +--- + +### getAllOwnedPlanets + +▸ **getAllOwnedPlanets**(): `Planet`[] + +Returns all the planets in the game which this client is aware of that have an owner, as a map +from their id to the planet + +**`tutorial`** For plugin developers! + +**`see`** Warning in {@link GameObjects.getAllPlanets()} + +#### Returns + +`Planet`[] + +--- + +### getAllPlanets + +▸ **getAllPlanets**(): `Iterable`<`Planet`\> + +Returns all planets in the game. + +Warning! Simply iterating over this is not performant, and is meant for scripting. + +**`tutorial`** For plugin developers! + +#### Returns + +`Iterable`<`Planet`\> + +--- + +### getAllPlanetsMap + +▸ **getAllPlanetsMap**(): `Map`<`LocationId`, `Planet`\> + +Returns all planets in the game, as a map from their location id to the planet. + +**`tutorial`** For plugin developers! + +**`see`** Warning in {@link GameObjects.getAllPlanets()} + +#### Returns + +`Map`<`LocationId`, `Planet`\> + +--- + +### getAllVoyages + +▸ **getAllVoyages**(): `QueuedArrival`[] + +Returns all voyages that are scheduled to arrive at some point in the future. + +**`tutorial`** For plugin developers! + +**`see`** Warning in {@link GameObjects.getAllPlanets()} + +#### Returns + +`QueuedArrival`[] + +--- + +### getArrivalIdsForLocation + +▸ **getArrivalIdsForLocation**(`location`): `undefined` \| `VoyageId`[] + +Get all of the incoming voyages for a given location. + +#### Parameters + +| Name | Type | +| :--------- | :-------------------------- | +| `location` | `undefined` \| `LocationId` | + +#### Returns + +`undefined` \| `VoyageId`[] + +--- + +### getArtifactById + +▸ **getArtifactById**(`artifactId?`): `undefined` \| `Artifact` + +#### Parameters + +| Name | Type | +| :------------ | :----------- | +| `artifactId?` | `ArtifactId` | + +#### Returns + +`undefined` \| `Artifact` + +--- + +### getArtifactController + +▸ **getArtifactController**(`artifactId`): `undefined` \| `EthAddress` + +Returns the EthAddress of the player who can control the owner: +if the artifact is on a planet, this is the owner of the planet +if the artifact is on a voyage, this is the initiator of the voyage +if the artifact is not on either, then it is the owner of the artifact NFT + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `artifactId` | `ArtifactId` | + +#### Returns + +`undefined` \| `EthAddress` + +--- + +### getArtifactMap + +▸ **getArtifactMap**(): `Map`<`ArtifactId`, `Artifact`\> + +#### Returns + +`Map`<`ArtifactId`, `Artifact`\> + +--- + +### getArtifactsOnPlanetsOwnedBy + +▸ **getArtifactsOnPlanetsOwnedBy**(`addr`): `Artifact`[] + +#### Parameters + +| Name | Type | +| :----- | :----------- | +| `addr` | `EthAddress` | + +#### Returns + +`Artifact`[] + +--- + +### getArtifactsOwnedBy + +▸ **getArtifactsOwnedBy**(`addr`): `Artifact`[] + +#### Parameters + +| Name | Type | +| :----- | :----------- | +| `addr` | `EthAddress` | + +#### Returns + +`Artifact`[] + +--- + +### getBiome + +▸ `Private` **getBiome**(`loc`): `Biome` + +#### Parameters + +| Name | Type | +| :---- | :-------------- | +| `loc` | `WorldLocation` | + +#### Returns + +`Biome` + +--- + +### getClaimedLocations + +▸ **getClaimedLocations**(): `Map`<`LocationId`, `ClaimedLocation`\> + +#### Returns + +`Map`<`LocationId`, `ClaimedLocation`\> + +--- + +### getEnergyCurveAtPercent + +▸ **getEnergyCurveAtPercent**(`planet`, `percent`): `number` + +returns timestamp (seconds) that planet will reach percent% of energycap +time may be in the past + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `planet` | `Planet` | +| `percent` | `number` | + +#### Returns + +`number` + +--- + +### getLocationOfPlanet + +▸ **getLocationOfPlanet**(`planetId`): `undefined` \| `WorldLocation` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`undefined` \| `WorldLocation` + +--- + +### getMyArtifactMap + +▸ **getMyArtifactMap**(): `Map`<`ArtifactId`, `Artifact`\> + +#### Returns + +`Map`<`ArtifactId`, `Artifact`\> + +--- + +### getMyPlanetMap + +▸ **getMyPlanetMap**(): `Map`<`LocationId`, `Planet`\> + +#### Returns + +`Map`<`LocationId`, `Planet`\> + +--- + +### getPlanetArtifacts + +▸ **getPlanetArtifacts**(`planetId`): `Artifact`[] + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`Artifact`[] + +--- + +### getPlanetDetailLevel + +▸ **getPlanetDetailLevel**(`planetId`): `undefined` \| `number` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`undefined` \| `number` + +--- + +### getPlanetLevel + +▸ **getPlanetLevel**(`planetId`): `undefined` \| `PlanetLevel` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`undefined` \| `PlanetLevel` + +--- + +### getPlanetMap + +▸ **getPlanetMap**(): `Map`<`LocationId`, `Planet`\> + +#### Returns + +`Map`<`LocationId`, `Planet`\> + +--- + +### getPlanetWithCoords + +▸ **getPlanetWithCoords**(`coords`): `undefined` \| `LocatablePlanet` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`undefined` \| `LocatablePlanet` + +--- + +### getPlanetWithId + +▸ **getPlanetWithId**(`planetId`, `updateIfStale?`): `undefined` \| `Planet` + +#### Parameters + +| Name | Type | Default value | +| :-------------- | :----------- | :------------ | +| `planetId` | `LocationId` | `undefined` | +| `updateIfStale` | `boolean` | `true` | + +#### Returns + +`undefined` \| `Planet` + +--- + +### getPlanetWithLocation + +▸ **getPlanetWithLocation**(`location`): `undefined` \| `Planet` + +#### Parameters + +| Name | Type | +| :--------- | :----------------------------- | +| `location` | `undefined` \| `WorldLocation` | + +#### Returns + +`undefined` \| `Planet` + +--- + +### getPlanetsInWorldCircle + +▸ **getPlanetsInWorldCircle**(`coords`, `radius`): `LocatablePlanet`[] + +Gets all the planets that are within {@code radius} world units from the given coordinate. Fast +because it uses [LayeredMap](Backend_GameLogic_LayeredMap.LayeredMap.md). + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | +| `radius` | `number` | + +#### Returns + +`LocatablePlanet`[] + +--- + +### getPlanetsInWorldRectangle + +▸ **getPlanetsInWorldRectangle**(`worldX`, `worldY`, `worldWidth`, `worldHeight`, `levels`, `planetLevelToRadii`, `updateIfStale?`): `LocatablePlanet`[] + +Gets the ids of all the planets that are both within the given bounding box (defined by its +bottom left coordinate, width, and height) in the world and of a level that was passed in via +the `planetLevels` parameter. Fast because it uses [LayeredMap](Backend_GameLogic_LayeredMap.LayeredMap.md). + +#### Parameters + +| Name | Type | Default value | +| :------------------- | :------------------------ | :------------ | +| `worldX` | `number` | `undefined` | +| `worldY` | `number` | `undefined` | +| `worldWidth` | `number` | `undefined` | +| `worldHeight` | `number` | `undefined` | +| `levels` | `number`[] | `undefined` | +| `planetLevelToRadii` | `Map`<`number`, `Radii`\> | `undefined` | +| `updateIfStale` | `boolean` | `true` | + +#### Returns + +`LocatablePlanet`[] + +--- + +### getPlanetsWithIds + +▸ **getPlanetsWithIds**(`locationIds`, `updateIfStale?`): `Planet`[] + +Gets all the planets with the given ids, giltering out the ones that we don't have. + +#### Parameters + +| Name | Type | Default value | +| :-------------- | :------------- | :------------ | +| `locationIds` | `LocationId`[] | `undefined` | +| `updateIfStale` | `boolean` | `true` | + +#### Returns + +`Planet`[] + +--- + +### getRevealedLocations + +▸ **getRevealedLocations**(): `Map`<`LocationId`, `RevealedLocation`\> + +#### Returns + +`Map`<`LocationId`, `RevealedLocation`\> + +--- + +### getSilverCurveAtPercent + +▸ **getSilverCurveAtPercent**(`planet`, `percent`): `undefined` \| `number` + +returns timestamp (seconds) that planet will reach percent% of silcap if +doesn't produce silver, returns undefined if already over percent% of silcap, +returns undefined + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `planet` | `Planet` | +| `percent` | `number` | + +#### Returns + +`undefined` \| `number` + +--- + +### getWormholes + +▸ **getWormholes**(): `Iterable`<`Wormhole`\> + +#### Returns + +`Iterable`<`Wormhole`\> + +--- + +### isGettingSpaceships + +▸ **isGettingSpaceships**(): `boolean` + +Whether or not we're already asking the game to give us spaceships. + +#### Returns + +`boolean` + +--- + +### isPlanetInContract + +▸ **isPlanetInContract**(`planetId`): `boolean` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`boolean` + +--- + +### markLocationRevealed + +▸ **markLocationRevealed**(`revealedLocation`): `void` + +#### Parameters + +| Name | Type | +| :----------------- | :----------------- | +| `revealedLocation` | `RevealedLocation` | + +#### Returns + +`void` + +--- + +### onTxIntent + +▸ **onTxIntent**(`tx`): `void` + +We call this function whenever the user requests that we send a transaction to the blockchain +with their localstorage wallet. You can think of it as one of the hubs which connects +`GameObjects` to the rest of the world. + +Inside this function, we update the relevant internal game objects to reflect that the user has +requested a particular action. Additionally, we publish the appropriate events to the relevant +{@link Monomitter} instances that are stored in this class. + +In the case of something like prospecting for an artifact, this allows us to display a spinner +text which says "Prospecting..." + +In the case of the user sending energy from one planet to another planet, this allows us to +display a dashed line between the two planets in their new voyage. + +Whenever we update an entity, we must do it via that entity's type's corresponding +`set` function, in order for us to publish these events. + +**`todo:`** this entire function could be automated by implementing a new interface called +{@code TxFilter}. + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`void` + +--- + +### planetLevelFromHexPerlin + +▸ **planetLevelFromHexPerlin**(`hex`, `perlin`): `PlanetLevel` + +#### Parameters + +| Name | Type | +| :------- | :----------- | +| `hex` | `LocationId` | +| `perlin` | `number` | + +#### Returns + +`PlanetLevel` + +--- + +### planetTypeFromHexPerlin + +▸ **planetTypeFromHexPerlin**(`hex`, `perlin`): `PlanetType` + +#### Parameters + +| Name | Type | +| :------- | :----------- | +| `hex` | `LocationId` | +| `perlin` | `number` | + +#### Returns + +`PlanetType` + +--- + +### processArrivalsForPlanet + +▸ `Private` **processArrivalsForPlanet**(`planetId`, `arrivals`): `ArrivalWithTimer`[] + +#### Parameters + +| Name | Type | +| :--------- | :---------------- | +| `planetId` | `LocationId` | +| `arrivals` | `QueuedArrival`[] | + +#### Returns + +`ArrivalWithTimer`[] + +--- + +### removeArrival + +▸ `Private` **removeArrival**(`planetId`, `arrivalId`): `void` + +#### Parameters + +| Name | Type | +| :---------- | :----------- | +| `planetId` | `LocationId` | +| `arrivalId` | `VoyageId` | + +#### Returns + +`void` + +--- + +### replaceArtifactFromContractData + +▸ **replaceArtifactFromContractData**(`artifact`): `void` + +received some artifact data from the contract. update our stores + +#### Parameters + +| Name | Type | +| :--------- | :--------- | +| `artifact` | `Artifact` | + +#### Returns + +`void` + +--- + +### replaceArtifactsFromContractData + +▸ **replaceArtifactsFromContractData**(`artifacts`): `void` + +#### Parameters + +| Name | Type | +| :---------- | :---------------------- | +| `artifacts` | `Iterable`<`Artifact`\> | + +#### Returns + +`void` + +--- + +### replacePlanetFromContractData + +▸ **replacePlanetFromContractData**(`planet`, `updatedArrivals?`, `updatedArtifactsOnPlanet?`, `revealedLocation?`, `claimerEthAddress?`): `void` + +received some planet data from the contract. update our stores + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------------- | +| `planet` | `Planet` | +| `updatedArrivals?` | `QueuedArrival`[] | +| `updatedArtifactsOnPlanet?` | `ArtifactId`[] | +| `revealedLocation?` | `RevealedLocation` | +| `claimerEthAddress?` | `EthAddress` | + +#### Returns + +`void` + +--- + +### setArtifact + +▸ `Private` **setArtifact**(`artifact`): `void` + +Set an artifact into our cached store. Should ALWAYS call this when setting an artifact. +`this.artifacts` and `this.myArtifacts` should NEVER be accessed directly! +This function also handles managing artifact update messages and indexing the map of owned artifacts. + +#### Parameters + +| Name | Type | Description | +| :--------- | :--------- | :------------------ | +| `artifact` | `Artifact` | the artifact to set | + +#### Returns + +`void` + +--- + +### setClaimedLocation + +▸ **setClaimedLocation**(`claimedLocation`): `void` + +#### Parameters + +| Name | Type | +| :---------------- | :---------------- | +| `claimedLocation` | `ClaimedLocation` | + +#### Returns + +`void` + +--- + +### setPlanet + +▸ `Private` **setPlanet**(`planet`): `void` + +Set a planet into our cached store. Should ALWAYS call this when setting a planet. +`this.planets` and `this.myPlanets` should NEVER be accessed directly! +This function also handles managing planet update messages and indexing the map of owned planets. + +#### Parameters + +| Name | Type | Description | +| :------- | :------- | :---------------- | +| `planet` | `Planet` | the planet to set | + +#### Returns + +`void` + +--- + +### spaceTypeFromPerlin + +▸ **spaceTypeFromPerlin**(`perlin`): `SpaceType` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `perlin` | `number` | + +#### Returns + +`SpaceType` + +--- + +### updateArtifact + +▸ **updateArtifact**(`id`, `updateFn`): `void` + +Given a planet id, update the state of the given planet by calling the given update function. +If the planet was updated, then also publish the appropriate event. + +#### Parameters + +| Name | Type | +| :--------- | :-------------------------- | +| `id` | `undefined` \| `ArtifactId` | +| `updateFn` | (`p`: `Artifact`) => `void` | + +#### Returns + +`void` + +--- + +### updatePlanet + +▸ **updatePlanet**(`id`, `updateFn`): `void` + +Given a planet id, update the state of the given planet by calling the given update function. +If the planet was updated, then also publish the appropriate event. + +#### Parameters + +| Name | Type | +| :--------- | :------------------------ | +| `id` | `LocationId` | +| `updateFn` | (`p`: `Planet`) => `void` | + +#### Returns + +`void` + +--- + +### updatePlanetIfStale + +▸ `Private` **updatePlanetIfStale**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### getSilverNeeded + +▸ `Static` **getSilverNeeded**(`planet`): `number` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`number` + +--- + +### planetCanUpgrade + +▸ `Static` **planetCanUpgrade**(`planet`): `boolean` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`boolean` diff --git a/docs/classes/Backend_GameLogic_GameUIManager.default.md b/docs/classes/Backend_GameLogic_GameUIManager.default.md new file mode 100644 index 00000000..e1b600cc --- /dev/null +++ b/docs/classes/Backend_GameLogic_GameUIManager.default.md @@ -0,0 +1,2841 @@ +# Class: default + +[Backend/GameLogic/GameUIManager](../modules/Backend_GameLogic_GameUIManager.md).default + +## Hierarchy + +- `EventEmitter` + + ↳ **`default`** + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_GameUIManager.default.md#constructor) + +### Properties + +- [abandoning](Backend_GameLogic_GameUIManager.default.md#abandoning) +- [artifactSending](Backend_GameLogic_GameUIManager.default.md#artifactsending) +- [extraMinerLocations](Backend_GameLogic_GameUIManager.default.md#extraminerlocations) +- [forcesSending](Backend_GameLogic_GameUIManager.default.md#forcessending) +- [gameManager](Backend_GameLogic_GameUIManager.default.md#gamemanager) +- [hoverArtifact$](Backend_GameLogic_GameUIManager.default.md#hoverartifact$) +- [hoverArtifactId$](Backend_GameLogic_GameUIManager.default.md#hoverartifactid$) +- [hoverPlanet$](Backend_GameLogic_GameUIManager.default.md#hoverplanet$) +- [hoverPlanetId$](Backend_GameLogic_GameUIManager.default.md#hoverplanetid$) +- [isAbandoning$](Backend_GameLogic_GameUIManager.default.md#isabandoning$) +- [isChoosingTargetPlanet](Backend_GameLogic_GameUIManager.default.md#ischoosingtargetplanet) +- [isSending](Backend_GameLogic_GameUIManager.default.md#issending) +- [isSending$](Backend_GameLogic_GameUIManager.default.md#issending$) +- [minerLocation](Backend_GameLogic_GameUIManager.default.md#minerlocation) +- [modalManager](Backend_GameLogic_GameUIManager.default.md#modalmanager) +- [mouseDownOverCoords](Backend_GameLogic_GameUIManager.default.md#mousedownovercoords) +- [mouseDownOverPlanet](Backend_GameLogic_GameUIManager.default.md#mousedownoverplanet) +- [mouseHoveringOverCoords](Backend_GameLogic_GameUIManager.default.md#mousehoveringovercoords) +- [mouseHoveringOverPlanet](Backend_GameLogic_GameUIManager.default.md#mousehoveringoverplanet) +- [myArtifacts$](Backend_GameLogic_GameUIManager.default.md#myartifacts$) +- [onChooseTargetPlanet](Backend_GameLogic_GameUIManager.default.md#onchoosetargetplanet) +- [overlayContainer](Backend_GameLogic_GameUIManager.default.md#overlaycontainer) +- [planetHoveringInRenderer](Backend_GameLogic_GameUIManager.default.md#planethoveringinrenderer) +- [plugins](Backend_GameLogic_GameUIManager.default.md#plugins) +- [previousSelectedPlanetId](Backend_GameLogic_GameUIManager.default.md#previousselectedplanetid) +- [radiusMap](Backend_GameLogic_GameUIManager.default.md#radiusmap) +- [selectedCoords](Backend_GameLogic_GameUIManager.default.md#selectedcoords) +- [selectedPlanetId](Backend_GameLogic_GameUIManager.default.md#selectedplanetid) +- [selectedPlanetId$](Backend_GameLogic_GameUIManager.default.md#selectedplanetid$) +- [sendingCoords](Backend_GameLogic_GameUIManager.default.md#sendingcoords) +- [sendingPlanet](Backend_GameLogic_GameUIManager.default.md#sendingplanet) +- [silverSending](Backend_GameLogic_GameUIManager.default.md#silversending) +- [terminal](Backend_GameLogic_GameUIManager.default.md#terminal) +- [viewportEntities](Backend_GameLogic_GameUIManager.default.md#viewportentities) + +### Accessors + +- [captureZonesEnabled](Backend_GameLogic_GameUIManager.default.md#capturezonesenabled) +- [contractConstants](Backend_GameLogic_GameUIManager.default.md#contractconstants) + +### Methods + +- [activateArtifact](Backend_GameLogic_GameUIManager.default.md#activateartifact) +- [addAccount](Backend_GameLogic_GameUIManager.default.md#addaccount) +- [addNewChunk](Backend_GameLogic_GameUIManager.default.md#addnewchunk) +- [bulkAddNewChunks](Backend_GameLogic_GameUIManager.default.md#bulkaddnewchunks) +- [buyHat](Backend_GameLogic_GameUIManager.default.md#buyhat) +- [centerCoords](Backend_GameLogic_GameUIManager.default.md#centercoords) +- [centerLocationId](Backend_GameLogic_GameUIManager.default.md#centerlocationid) +- [centerPlanet](Backend_GameLogic_GameUIManager.default.md#centerplanet) +- [deactivateArtifact](Backend_GameLogic_GameUIManager.default.md#deactivateartifact) +- [depositArtifact](Backend_GameLogic_GameUIManager.default.md#depositartifact) +- [destroy](Backend_GameLogic_GameUIManager.default.md#destroy) +- [disableCustomRenderer](Backend_GameLogic_GameUIManager.default.md#disablecustomrenderer) +- [disconnectTwitter](Backend_GameLogic_GameUIManager.default.md#disconnecttwitter) +- [discoverBiome](Backend_GameLogic_GameUIManager.default.md#discoverbiome) +- [drawAllRunningPlugins](Backend_GameLogic_GameUIManager.default.md#drawallrunningplugins) +- [findArtifact](Backend_GameLogic_GameUIManager.default.md#findartifact) +- [generateVerificationTweet](Backend_GameLogic_GameUIManager.default.md#generateverificationtweet) +- [get2dRenderer](Backend_GameLogic_GameUIManager.default.md#get2drenderer) +- [getAbandonRangeChangePercent](Backend_GameLogic_GameUIManager.default.md#getabandonrangechangepercent) +- [getAbandonSpeedChangePercent](Backend_GameLogic_GameUIManager.default.md#getabandonspeedchangepercent) +- [getAccount](Backend_GameLogic_GameUIManager.default.md#getaccount) +- [getAllMinerLocations](Backend_GameLogic_GameUIManager.default.md#getallminerlocations) +- [getAllOwnedPlanets](Backend_GameLogic_GameUIManager.default.md#getallownedplanets) +- [getAllPlayers](Backend_GameLogic_GameUIManager.default.md#getallplayers) +- [getAllVoyages](Backend_GameLogic_GameUIManager.default.md#getallvoyages) +- [getArtifactMap](Backend_GameLogic_GameUIManager.default.md#getartifactmap) +- [getArtifactPlanet](Backend_GameLogic_GameUIManager.default.md#getartifactplanet) +- [getArtifactPointValues](Backend_GameLogic_GameUIManager.default.md#getartifactpointvalues) +- [getArtifactSending](Backend_GameLogic_GameUIManager.default.md#getartifactsending) +- [getArtifactUpdated$](Backend_GameLogic_GameUIManager.default.md#getartifactupdated$) +- [getArtifactWithId](Backend_GameLogic_GameUIManager.default.md#getartifactwithid) +- [getArtifactsWithIds](Backend_GameLogic_GameUIManager.default.md#getartifactswithids) +- [getBiomeKey](Backend_GameLogic_GameUIManager.default.md#getbiomekey) +- [getBiomePerlin](Backend_GameLogic_GameUIManager.default.md#getbiomeperlin) +- [getBooleanSetting](Backend_GameLogic_GameUIManager.default.md#getbooleansetting) +- [getCaptureZoneGenerator](Backend_GameLogic_GameUIManager.default.md#getcapturezonegenerator) +- [getCaptureZonePointValues](Backend_GameLogic_GameUIManager.default.md#getcapturezonepointvalues) +- [getCaptureZones](Backend_GameLogic_GameUIManager.default.md#getcapturezones) +- [getChunk](Backend_GameLogic_GameUIManager.default.md#getchunk) +- [getContractAddress](Backend_GameLogic_GameUIManager.default.md#getcontractaddress) +- [getDefaultSpaceJunkForPlanetLevel](Backend_GameLogic_GameUIManager.default.md#getdefaultspacejunkforplanetlevel) +- [getDiagnostics](Backend_GameLogic_GameUIManager.default.md#getdiagnostics) +- [getDiscoverBiomeName](Backend_GameLogic_GameUIManager.default.md#getdiscoverbiomename) +- [getDistCoords](Backend_GameLogic_GameUIManager.default.md#getdistcoords) +- [getEndTimeSeconds](Backend_GameLogic_GameUIManager.default.md#getendtimeseconds) +- [getEnergyArrivingForMove](Backend_GameLogic_GameUIManager.default.md#getenergyarrivingformove) +- [getEnergyCurveAtPercent](Backend_GameLogic_GameUIManager.default.md#getenergycurveatpercent) +- [getEnergyOfPlayer](Backend_GameLogic_GameUIManager.default.md#getenergyofplayer) +- [getEthConnection](Backend_GameLogic_GameUIManager.default.md#getethconnection) +- [getExploredChunks](Backend_GameLogic_GameUIManager.default.md#getexploredchunks) +- [getForcesSending](Backend_GameLogic_GameUIManager.default.md#getforcessending) +- [getGameManager](Backend_GameLogic_GameUIManager.default.md#getgamemanager) +- [getGameObjects](Backend_GameLogic_GameUIManager.default.md#getgameobjects) +- [getGlManager](Backend_GameLogic_GameUIManager.default.md#getglmanager) +- [getHashConfig](Backend_GameLogic_GameUIManager.default.md#gethashconfig) +- [getHashesPerSec](Backend_GameLogic_GameUIManager.default.md#gethashespersec) +- [getHomeCoords](Backend_GameLogic_GameUIManager.default.md#gethomecoords) +- [getHomeHash](Backend_GameLogic_GameUIManager.default.md#gethomehash) +- [getHomePlanet](Backend_GameLogic_GameUIManager.default.md#gethomeplanet) +- [getHoveringOverCoords](Backend_GameLogic_GameUIManager.default.md#gethoveringovercoords) +- [getHoveringOverPlanet](Backend_GameLogic_GameUIManager.default.md#gethoveringoverplanet) +- [getIsChoosingTargetPlanet](Backend_GameLogic_GameUIManager.default.md#getischoosingtargetplanet) +- [getIsHighPerfMode](Backend_GameLogic_GameUIManager.default.md#getishighperfmode) +- [getLocationOfPlanet](Backend_GameLogic_GameUIManager.default.md#getlocationofplanet) +- [getLocationsAndChunks](Backend_GameLogic_GameUIManager.default.md#getlocationsandchunks) +- [getMinerLocation](Backend_GameLogic_GameUIManager.default.md#getminerlocation) +- [getMiningPattern](Backend_GameLogic_GameUIManager.default.md#getminingpattern) +- [getModalManager](Backend_GameLogic_GameUIManager.default.md#getmodalmanager) +- [getMouseDownCoords](Backend_GameLogic_GameUIManager.default.md#getmousedowncoords) +- [getMouseDownPlanet](Backend_GameLogic_GameUIManager.default.md#getmousedownplanet) +- [getMyArtifactMap](Backend_GameLogic_GameUIManager.default.md#getmyartifactmap) +- [getMyArtifacts](Backend_GameLogic_GameUIManager.default.md#getmyartifacts) +- [getMyArtifactsNotOnPlanet](Backend_GameLogic_GameUIManager.default.md#getmyartifactsnotonplanet) +- [getMyBalance](Backend_GameLogic_GameUIManager.default.md#getmybalance) +- [getMyBalance$](Backend_GameLogic_GameUIManager.default.md#getmybalance$) +- [getMyBalanceBn](Backend_GameLogic_GameUIManager.default.md#getmybalancebn) +- [getMyPlanetMap](Backend_GameLogic_GameUIManager.default.md#getmyplanetmap) +- [getMyScore](Backend_GameLogic_GameUIManager.default.md#getmyscore) +- [getNextBroadcastAvailableTimestamp](Backend_GameLogic_GameUIManager.default.md#getnextbroadcastavailabletimestamp) +- [getOverlayContainer](Backend_GameLogic_GameUIManager.default.md#getoverlaycontainer) +- [getPaused](Backend_GameLogic_GameUIManager.default.md#getpaused) +- [getPaused$](Backend_GameLogic_GameUIManager.default.md#getpaused$) +- [getPerlinConfig](Backend_GameLogic_GameUIManager.default.md#getperlinconfig) +- [getPerlinThresholds](Backend_GameLogic_GameUIManager.default.md#getperlinthresholds) +- [getPlanetHoveringInRenderer](Backend_GameLogic_GameUIManager.default.md#getplanethoveringinrenderer) +- [getPlanetLevel](Backend_GameLogic_GameUIManager.default.md#getplanetlevel) +- [getPlanetMap](Backend_GameLogic_GameUIManager.default.md#getplanetmap) +- [getPlanetWithCoords](Backend_GameLogic_GameUIManager.default.md#getplanetwithcoords) +- [getPlanetWithId](Backend_GameLogic_GameUIManager.default.md#getplanetwithid) +- [getPlanetsInViewport](Backend_GameLogic_GameUIManager.default.md#getplanetsinviewport) +- [getPlayer](Backend_GameLogic_GameUIManager.default.md#getplayer) +- [getPlayerScore](Backend_GameLogic_GameUIManager.default.md#getplayerscore) +- [getPluginManager](Backend_GameLogic_GameUIManager.default.md#getpluginmanager) +- [getPreviousSelectedPlanet](Backend_GameLogic_GameUIManager.default.md#getpreviousselectedplanet) +- [getPrivateKey](Backend_GameLogic_GameUIManager.default.md#getprivatekey) +- [getRadiusOfPlanetLevel](Backend_GameLogic_GameUIManager.default.md#getradiusofplanetlevel) +- [getRangeBuff](Backend_GameLogic_GameUIManager.default.md#getrangebuff) +- [getRenderer](Backend_GameLogic_GameUIManager.default.md#getrenderer) +- [getSelectedCoords](Backend_GameLogic_GameUIManager.default.md#getselectedcoords) +- [getSelectedPlanet](Backend_GameLogic_GameUIManager.default.md#getselectedplanet) +- [getSilverCurveAtPercent](Backend_GameLogic_GameUIManager.default.md#getsilvercurveatpercent) +- [getSilverOfPlayer](Backend_GameLogic_GameUIManager.default.md#getsilverofplayer) +- [getSilverScoreValue](Backend_GameLogic_GameUIManager.default.md#getsilverscorevalue) +- [getSilverSending](Backend_GameLogic_GameUIManager.default.md#getsilversending) +- [getSpaceJunkEnabled](Backend_GameLogic_GameUIManager.default.md#getspacejunkenabled) +- [getSpaceTypePerlin](Backend_GameLogic_GameUIManager.default.md#getspacetypeperlin) +- [getSpeedBuff](Backend_GameLogic_GameUIManager.default.md#getspeedbuff) +- [getStringSetting](Backend_GameLogic_GameUIManager.default.md#getstringsetting) +- [getTerminal](Backend_GameLogic_GameUIManager.default.md#getterminal) +- [getTwitter](Backend_GameLogic_GameUIManager.default.md#gettwitter) +- [getUIEmitter](Backend_GameLogic_GameUIManager.default.md#getuiemitter) +- [getUnconfirmedMoves](Backend_GameLogic_GameUIManager.default.md#getunconfirmedmoves) +- [getUnconfirmedUpgrades](Backend_GameLogic_GameUIManager.default.md#getunconfirmedupgrades) +- [getUnconfirmedWormholeActivations](Backend_GameLogic_GameUIManager.default.md#getunconfirmedwormholeactivations) +- [getUniverseTotalEnergy](Backend_GameLogic_GameUIManager.default.md#getuniversetotalenergy) +- [getUpgrade](Backend_GameLogic_GameUIManager.default.md#getupgrade) +- [getViewport](Backend_GameLogic_GameUIManager.default.md#getviewport) +- [getWorldRadius](Backend_GameLogic_GameUIManager.default.md#getworldradius) +- [getWorldSilver](Backend_GameLogic_GameUIManager.default.md#getworldsilver) +- [getWormholes](Backend_GameLogic_GameUIManager.default.md#getwormholes) +- [hasMinedChunk](Backend_GameLogic_GameUIManager.default.md#hasminedchunk) +- [isAbandoning](Backend_GameLogic_GameUIManager.default.md#isabandoning) +- [isAdmin](Backend_GameLogic_GameUIManager.default.md#isadmin) +- [isCurrentlyRevealing](Backend_GameLogic_GameUIManager.default.md#iscurrentlyrevealing) +- [isMining](Backend_GameLogic_GameUIManager.default.md#ismining) +- [isOverOwnPlanet](Backend_GameLogic_GameUIManager.default.md#isoverownplanet) +- [isOwnedByMe](Backend_GameLogic_GameUIManager.default.md#isownedbyme) +- [isRoundOver](Backend_GameLogic_GameUIManager.default.md#isroundover) +- [isSendingForces](Backend_GameLogic_GameUIManager.default.md#issendingforces) +- [isSendingShip](Backend_GameLogic_GameUIManager.default.md#issendingship) +- [joinGame](Backend_GameLogic_GameUIManager.default.md#joingame) +- [onDiscoveredChunk](Backend_GameLogic_GameUIManager.default.md#ondiscoveredchunk) +- [onEmitInitializedPlayer](Backend_GameLogic_GameUIManager.default.md#onemitinitializedplayer) +- [onEmitInitializedPlayerError](Backend_GameLogic_GameUIManager.default.md#onemitinitializedplayererror) +- [onMouseClick](Backend_GameLogic_GameUIManager.default.md#onmouseclick) +- [onMouseDown](Backend_GameLogic_GameUIManager.default.md#onmousedown) +- [onMouseMove](Backend_GameLogic_GameUIManager.default.md#onmousemove) +- [onMouseOut](Backend_GameLogic_GameUIManager.default.md#onmouseout) +- [onMouseUp](Backend_GameLogic_GameUIManager.default.md#onmouseup) +- [onSendCancel](Backend_GameLogic_GameUIManager.default.md#onsendcancel) +- [onSendComplete](Backend_GameLogic_GameUIManager.default.md#onsendcomplete) +- [onSendInit](Backend_GameLogic_GameUIManager.default.md#onsendinit) +- [potentialCaptureScore](Backend_GameLogic_GameUIManager.default.md#potentialcapturescore) +- [prospectPlanet](Backend_GameLogic_GameUIManager.default.md#prospectplanet) +- [removeExtraMinerLocation](Backend_GameLogic_GameUIManager.default.md#removeextraminerlocation) +- [revealLocation](Backend_GameLogic_GameUIManager.default.md#reveallocation) +- [setAbandoning](Backend_GameLogic_GameUIManager.default.md#setabandoning) +- [setArtifactSending](Backend_GameLogic_GameUIManager.default.md#setartifactsending) +- [setCustomRenderer](Backend_GameLogic_GameUIManager.default.md#setcustomrenderer) +- [setExtraMinerLocation](Backend_GameLogic_GameUIManager.default.md#setextraminerlocation) +- [setForcesSending](Backend_GameLogic_GameUIManager.default.md#setforcessending) +- [setHoveringOverArtifact](Backend_GameLogic_GameUIManager.default.md#sethoveringoverartifact) +- [setHoveringOverPlanet](Backend_GameLogic_GameUIManager.default.md#sethoveringoverplanet) +- [setMiningPattern](Backend_GameLogic_GameUIManager.default.md#setminingpattern) +- [setModalManager](Backend_GameLogic_GameUIManager.default.md#setmodalmanager) +- [setOverlayContainer](Backend_GameLogic_GameUIManager.default.md#setoverlaycontainer) +- [setSelectedId](Backend_GameLogic_GameUIManager.default.md#setselectedid) +- [setSelectedPlanet](Backend_GameLogic_GameUIManager.default.md#setselectedplanet) +- [setSending](Backend_GameLogic_GameUIManager.default.md#setsending) +- [setSilverSending](Backend_GameLogic_GameUIManager.default.md#setsilversending) +- [spaceTypeFromPerlin](Backend_GameLogic_GameUIManager.default.md#spacetypefromperlin) +- [startExplore](Backend_GameLogic_GameUIManager.default.md#startexplore) +- [startWormholeFrom](Backend_GameLogic_GameUIManager.default.md#startwormholefrom) +- [stopExplore](Backend_GameLogic_GameUIManager.default.md#stopexplore) +- [timeUntilNextBroadcastAvailable](Backend_GameLogic_GameUIManager.default.md#timeuntilnextbroadcastavailable) +- [toggleExplore](Backend_GameLogic_GameUIManager.default.md#toggleexplore) +- [toggleTargettingExplorer](Backend_GameLogic_GameUIManager.default.md#toggletargettingexplorer) +- [updateDiagnostics](Backend_GameLogic_GameUIManager.default.md#updatediagnostics) +- [updateMouseHoveringOverCoords](Backend_GameLogic_GameUIManager.default.md#updatemousehoveringovercoords) +- [updatePlanets](Backend_GameLogic_GameUIManager.default.md#updateplanets) +- [upgrade](Backend_GameLogic_GameUIManager.default.md#upgrade) +- [verifyTwitter](Backend_GameLogic_GameUIManager.default.md#verifytwitter) +- [withdrawArtifact](Backend_GameLogic_GameUIManager.default.md#withdrawartifact) +- [withdrawSilver](Backend_GameLogic_GameUIManager.default.md#withdrawsilver) +- [create](Backend_GameLogic_GameUIManager.default.md#create) + +## Constructors + +### constructor + +• `Private` **new default**(`gameManager`, `terminalHandle`) + +#### Parameters + +| Name | Type | +| :--------------- | :-------------------------------------------------------------------------------------------------------------- | +| `gameManager` | [`default`](Backend_GameLogic_GameManager.default.md) | +| `terminalHandle` | `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> | + +#### Overrides + +EventEmitter.constructor + +## Properties + +### abandoning + +• `Private` **abandoning**: `boolean` = `false` + +--- + +### artifactSending + +• `Private` **artifactSending**: `Object` = `{}` + +#### Index signature + +▪ [key: `string`]: `Artifact` \| `undefined` + +--- + +### extraMinerLocations + +• `Private` **extraMinerLocations**: `WorldCoords`[] = `[]` + +--- + +### forcesSending + +• `Private` **forcesSending**: `Object` = `{}` + +#### Index signature + +▪ [key: `string`]: `number` + +--- + +### gameManager + +• `Private` `Readonly` **gameManager**: [`default`](Backend_GameLogic_GameManager.default.md) + +--- + +### hoverArtifact$ + +• `Readonly` **hoverArtifact$**: `Monomitter`<`undefined` \| `Artifact`\> + +--- + +### hoverArtifactId$ + +• `Readonly` **hoverArtifactId$**: `Monomitter`<`undefined` \| `ArtifactId`\> + +--- + +### hoverPlanet$ + +• `Readonly` **hoverPlanet$**: `Monomitter`<`undefined` \| `Planet`\> + +--- + +### hoverPlanetId$ + +• `Readonly` **hoverPlanetId$**: `Monomitter`<`undefined` \| `LocationId`\> + +--- + +### isAbandoning$ + +• `Readonly` **isAbandoning$**: `Monomitter`<`boolean`\> + +--- + +### isChoosingTargetPlanet + +• `Private` **isChoosingTargetPlanet**: `boolean` = `false` + +The Wormhole artifact requires you to choose a target planet. This value +indicates whether or not the player is currently selecting a target planet. + +--- + +### isSending + +• `Private` **isSending**: `boolean` = `false` + +--- + +### isSending$ + +• `Readonly` **isSending$**: `Monomitter`<`boolean`\> + +--- + +### minerLocation + +• `Private` **minerLocation**: `undefined` \| `WorldCoords` + +--- + +### modalManager + +• `Private` **modalManager**: [`default`](Frontend_Game_ModalManager.default.md) + +--- + +### mouseDownOverCoords + +• `Private` **mouseDownOverCoords**: `undefined` \| `WorldCoords` + +--- + +### mouseDownOverPlanet + +• `Private` **mouseDownOverPlanet**: `undefined` \| `LocatablePlanet` + +--- + +### mouseHoveringOverCoords + +• `Private` **mouseHoveringOverCoords**: `undefined` \| `WorldCoords` + +--- + +### mouseHoveringOverPlanet + +• `Private` **mouseHoveringOverPlanet**: `undefined` \| `LocatablePlanet` + +--- + +### myArtifacts$ + +• `Readonly` **myArtifacts$**: `Monomitter`<`Map`<`ArtifactId`, `Artifact`\>\> + +--- + +### onChooseTargetPlanet + +• `Private` `Optional` **onChooseTargetPlanet**: (`planet`: `undefined` \| `LocatablePlanet`) => `void` + +#### Type declaration + +▸ (`planet`): `void` + +##### Parameters + +| Name | Type | +| :------- | :------------------------------- | +| `planet` | `undefined` \| `LocatablePlanet` | + +##### Returns + +`void` + +--- + +### overlayContainer + +• `Private` `Optional` **overlayContainer**: `HTMLDivElement` + +In order to render React on top of the game, we need to insert React nodes into an overlay +container. We keep a reference to this container, so that our React components can optionally +choose to render themselves into this overlay container using React Portals. + +--- + +### planetHoveringInRenderer + +• `Private` **planetHoveringInRenderer**: `boolean` = `false` + +--- + +### plugins + +• `Private` **plugins**: [`PluginManager`](Backend_GameLogic_PluginManager.PluginManager.md) + +--- + +### previousSelectedPlanetId + +• `Private` **previousSelectedPlanetId**: `undefined` \| `LocationId` + +--- + +### radiusMap + +• `Private` `Readonly` **radiusMap**: `Object` + +#### Index signature + +▪ [PlanetLevel: `number`]: `number` + +--- + +### selectedCoords + +• `Private` **selectedCoords**: `undefined` \| `WorldCoords` + +--- + +### selectedPlanetId + +• `Private` **selectedPlanetId**: `undefined` \| `LocationId` + +--- + +### selectedPlanetId$ + +• `Readonly` **selectedPlanetId$**: `Monomitter`<`undefined` \| `LocationId`\> + +--- + +### sendingCoords + +• `Private` **sendingCoords**: `undefined` \| `WorldCoords` + +--- + +### sendingPlanet + +• `Private` **sendingPlanet**: `undefined` \| `LocatablePlanet` + +--- + +### silverSending + +• `Private` **silverSending**: `Object` = `{}` + +#### Index signature + +▪ [key: `string`]: `number` + +--- + +### terminal + +• `Private` **terminal**: `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> + +--- + +### viewportEntities + +• `Private` **viewportEntities**: [`ViewportEntities`](Backend_GameLogic_ViewportEntities.ViewportEntities.md) + +## Accessors + +### captureZonesEnabled + +• `get` **captureZonesEnabled**(): `boolean` + +#### Returns + +`boolean` + +--- + +### contractConstants + +• `get` **contractConstants**(): [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) + +#### Returns + +[`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) + +## Methods + +### activateArtifact + +▸ **activateArtifact**(`locationId`, `id`, `wormholeTo?`): `void` + +#### Parameters + +| Name | Type | +| :------------ | :----------- | +| `locationId` | `LocationId` | +| `id` | `ArtifactId` | +| `wormholeTo?` | `LocationId` | + +#### Returns + +`void` + +--- + +### addAccount + +▸ **addAccount**(`coords`): `Promise`<`boolean`\> + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`Promise`<`boolean`\> + +--- + +### addNewChunk + +▸ **addNewChunk**(`chunk`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +`void` + +--- + +### bulkAddNewChunks + +▸ **bulkAddNewChunks**(`chunks`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------- | :-------- | +| `chunks` | `Chunk`[] | + +#### Returns + +`Promise`<`void`\> + +--- + +### buyHat + +▸ **buyHat**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### centerCoords + +▸ **centerCoords**(`coords`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`void` + +--- + +### centerLocationId + +▸ **centerLocationId**(`planetId`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`void` + +--- + +### centerPlanet + +▸ **centerPlanet**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------------------------- | +| `planet` | `undefined` \| `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### deactivateArtifact + +▸ **deactivateArtifact**(`locationId`, `artifactId`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | +| `artifactId` | `ArtifactId` | + +#### Returns + +`void` + +--- + +### depositArtifact + +▸ **depositArtifact**(`locationId`, `artifactId`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | +| `artifactId` | `ArtifactId` | + +#### Returns + +`void` + +--- + +### destroy + +▸ **destroy**(): `void` + +#### Returns + +`void` + +--- + +### disableCustomRenderer + +▸ **disableCustomRenderer**(`customRenderer`): `void` + +This function will remove the passed in renderer from the renderering stack. If the +renderer is on top of the renderering stack the next renderer will be the one bellow it. + +#### Parameters + +| Name | Type | Description | +| :--------------- | :------------- | :------------------------------------------------------- | +| `customRenderer` | `BaseRenderer` | a Renderer that follows one of the 23 renderer tempaltes | + +#### Returns + +`void` + +--- + +### disconnectTwitter + +▸ **disconnectTwitter**(`twitter`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `twitter` | `string` | + +#### Returns + +`Promise`<`void`\> + +--- + +### discoverBiome + +▸ **discoverBiome**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :---------------- | +| `planet` | `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### drawAllRunningPlugins + +▸ **drawAllRunningPlugins**(`ctx`): `void` + +#### Parameters + +| Name | Type | +| :---- | :------------------------- | +| `ctx` | `CanvasRenderingContext2D` | + +#### Returns + +`void` + +--- + +### findArtifact + +▸ **findArtifact**(`planetId`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`void` + +--- + +### generateVerificationTweet + +▸ **generateVerificationTweet**(`twitter`): `Promise`<`string`\> + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `twitter` | `string` | + +#### Returns + +`Promise`<`string`\> + +--- + +### get2dRenderer + +▸ **get2dRenderer**(): `null` \| `CanvasRenderingContext2D` + +#### Returns + +`null` \| `CanvasRenderingContext2D` + +the CanvasRenderingContext2D for the game canvas. + +--- + +### getAbandonRangeChangePercent + +▸ **getAbandonRangeChangePercent**(): `number` + +#### Returns + +`number` + +--- + +### getAbandonSpeedChangePercent + +▸ **getAbandonSpeedChangePercent**(): `number` + +#### Returns + +`number` + +--- + +### getAccount + +▸ **getAccount**(): `undefined` \| `EthAddress` + +#### Returns + +`undefined` \| `EthAddress` + +--- + +### getAllMinerLocations + +▸ **getAllMinerLocations**(): `WorldCoords`[] + +#### Returns + +`WorldCoords`[] + +--- + +### getAllOwnedPlanets + +▸ **getAllOwnedPlanets**(): `Planet`[] + +#### Returns + +`Planet`[] + +--- + +### getAllPlayers + +▸ **getAllPlayers**(): `Player`[] + +#### Returns + +`Player`[] + +--- + +### getAllVoyages + +▸ **getAllVoyages**(): `QueuedArrival`[] + +#### Returns + +`QueuedArrival`[] + +--- + +### getArtifactMap + +▸ **getArtifactMap**(): `Map`<`ArtifactId`, `Artifact`\> + +#### Returns + +`Map`<`ArtifactId`, `Artifact`\> + +--- + +### getArtifactPlanet + +▸ **getArtifactPlanet**(`artifact`): `undefined` \| `Planet` + +#### Parameters + +| Name | Type | +| :--------- | :--------- | +| `artifact` | `Artifact` | + +#### Returns + +`undefined` \| `Planet` + +--- + +### getArtifactPointValues + +▸ **getArtifactPointValues**(): `ArtifactPointValues` + +#### Returns + +`ArtifactPointValues` + +--- + +### getArtifactSending + +▸ **getArtifactSending**(`planetId?`): `undefined` \| `Artifact` + +#### Parameters + +| Name | Type | +| :---------- | :----------- | +| `planetId?` | `LocationId` | + +#### Returns + +`undefined` \| `Artifact` + +--- + +### getArtifactUpdated$ + +▸ **getArtifactUpdated$**(): `Monomitter`<`ArtifactId`\> + +#### Returns + +`Monomitter`<`ArtifactId`\> + +--- + +### getArtifactWithId + +▸ **getArtifactWithId**(`artifactId`): `undefined` \| `Artifact` + +#### Parameters + +| Name | Type | +| :----------- | :-------------------------- | +| `artifactId` | `undefined` \| `ArtifactId` | + +#### Returns + +`undefined` \| `Artifact` + +--- + +### getArtifactsWithIds + +▸ **getArtifactsWithIds**(`artifactIds?`): (`undefined` \| `Artifact`)[] + +#### Parameters + +| Name | Type | +| :------------- | :------------- | +| `artifactIds?` | `ArtifactId`[] | + +#### Returns + +(`undefined` \| `Artifact`)[] + +--- + +### getBiomeKey + +▸ `Private` **getBiomeKey**(`biome`): `string` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `biome` | `Biome` | + +#### Returns + +`string` + +--- + +### getBiomePerlin + +▸ **getBiomePerlin**(`coords`, `floor`): `number` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | +| `floor` | `boolean` | + +#### Returns + +`number` + +--- + +### getBooleanSetting + +▸ **getBooleanSetting**(`setting`): `boolean` + +#### Parameters + +| Name | Type | +| :-------- | :-------- | +| `setting` | `Setting` | + +#### Returns + +`boolean` + +--- + +### getCaptureZoneGenerator + +▸ **getCaptureZoneGenerator**(): `undefined` \| [`CaptureZoneGenerator`](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md) + +#### Returns + +`undefined` \| [`CaptureZoneGenerator`](Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md) + +--- + +### getCaptureZonePointValues + +▸ **getCaptureZonePointValues**(): [`number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`] + +#### Returns + +[`number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`] + +--- + +### getCaptureZones + +▸ **getCaptureZones**(): `Set`<`CaptureZone`\> + +#### Returns + +`Set`<`CaptureZone`\> + +--- + +### getChunk + +▸ **getChunk**(`chunkFootprint`): `undefined` \| `Chunk` + +#### Parameters + +| Name | Type | +| :--------------- | :---------- | +| `chunkFootprint` | `Rectangle` | + +#### Returns + +`undefined` \| `Chunk` + +--- + +### getContractAddress + +▸ **getContractAddress**(): `EthAddress` + +#### Returns + +`EthAddress` + +--- + +### getDefaultSpaceJunkForPlanetLevel + +▸ **getDefaultSpaceJunkForPlanetLevel**(`level`): `number` + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `level` | `number` | + +#### Returns + +`number` + +--- + +### getDiagnostics + +▸ **getDiagnostics**(): `Diagnostics` + +#### Returns + +`Diagnostics` + +--- + +### getDiscoverBiomeName + +▸ **getDiscoverBiomeName**(`biome`): `string` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `biome` | `Biome` | + +#### Returns + +`string` + +--- + +### getDistCoords + +▸ **getDistCoords**(`from`, `to`): `number` + +#### Parameters + +| Name | Type | +| :----- | :------------ | +| `from` | `WorldCoords` | +| `to` | `WorldCoords` | + +#### Returns + +`number` + +--- + +### getEndTimeSeconds + +▸ **getEndTimeSeconds**(): `number` + +#### Returns + +`number` + +--- + +### getEnergyArrivingForMove + +▸ **getEnergyArrivingForMove**(`from`, `to`, `dist`, `energy`): `number` + +#### Parameters + +| Name | Type | +| :------- | :-------------------------- | +| `from` | `LocationId` | +| `to` | `undefined` \| `LocationId` | +| `dist` | `undefined` \| `number` | +| `energy` | `number` | + +#### Returns + +`number` + +--- + +### getEnergyCurveAtPercent + +▸ **getEnergyCurveAtPercent**(`planet`, `percent`): `number` + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `planet` | `Planet` | +| `percent` | `number` | + +#### Returns + +`number` + +--- + +### getEnergyOfPlayer + +▸ **getEnergyOfPlayer**(`player`): `number` + +#### Parameters + +| Name | Type | +| :------- | :----------- | +| `player` | `EthAddress` | + +#### Returns + +`number` + +--- + +### getEthConnection + +▸ **getEthConnection**(): `EthConnection` + +#### Returns + +`EthConnection` + +--- + +### getExploredChunks + +▸ **getExploredChunks**(): `Iterable`<`Chunk`\> + +#### Returns + +`Iterable`<`Chunk`\> + +--- + +### getForcesSending + +▸ **getForcesSending**(`planetId?`): `number` + +Percent from 0 to 100. + +#### Parameters + +| Name | Type | +| :---------- | :----------- | +| `planetId?` | `LocationId` | + +#### Returns + +`number` + +--- + +### getGameManager + +▸ **getGameManager**(): [`default`](Backend_GameLogic_GameManager.default.md) + +#### Returns + +[`default`](Backend_GameLogic_GameManager.default.md) + +--- + +### getGameObjects + +▸ **getGameObjects**(): [`GameObjects`](Backend_GameLogic_GameObjects.GameObjects.md) + +Gets a reference to the game's internal representation of the world state. Beware! Use this for +reading only, otherwise you might mess up the state of the game. You can try modifying the game +state in some way + +#### Returns + +[`GameObjects`](Backend_GameLogic_GameObjects.GameObjects.md) + +--- + +### getGlManager + +▸ **getGlManager**(): `null` \| `GameGLManager` + +#### Returns + +`null` \| `GameGLManager` + +- A wrapper class for the WebGL2RenderingContext. + +--- + +### getHashConfig + +▸ **getHashConfig**(): [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) + +#### Returns + +[`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) + +--- + +### getHashesPerSec + +▸ **getHashesPerSec**(): `number` + +#### Returns + +`number` + +--- + +### getHomeCoords + +▸ **getHomeCoords**(): `WorldCoords` + +#### Returns + +`WorldCoords` + +--- + +### getHomeHash + +▸ **getHomeHash**(): `undefined` \| `LocationId` + +#### Returns + +`undefined` \| `LocationId` + +--- + +### getHomePlanet + +▸ **getHomePlanet**(): `undefined` \| `Planet` + +#### Returns + +`undefined` \| `Planet` + +--- + +### getHoveringOverCoords + +▸ **getHoveringOverCoords**(): `undefined` \| `WorldCoords` + +#### Returns + +`undefined` \| `WorldCoords` + +--- + +### getHoveringOverPlanet + +▸ **getHoveringOverPlanet**(): `undefined` \| `Planet` + +#### Returns + +`undefined` \| `Planet` + +--- + +### getIsChoosingTargetPlanet + +▸ **getIsChoosingTargetPlanet**(): `boolean` + +#### Returns + +`boolean` + +--- + +### getIsHighPerfMode + +▸ **getIsHighPerfMode**(): `boolean` + +#### Returns + +`boolean` + +--- + +### getLocationOfPlanet + +▸ **getLocationOfPlanet**(`planetId`): `undefined` \| `WorldLocation` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`undefined` \| `WorldLocation` + +--- + +### getLocationsAndChunks + +▸ **getLocationsAndChunks**(): `Object` + +#### Returns + +`Object` + +| Name | Type | +| :-------------- | :--------------------------------------- | +| `cachedPlanets` | `Map`<`LocationId`, `PlanetRenderInfo`\> | +| `chunks` | `Set`<`Chunk`\> | + +--- + +### getMinerLocation + +▸ **getMinerLocation**(): `undefined` \| `WorldCoords` + +#### Returns + +`undefined` \| `WorldCoords` + +--- + +### getMiningPattern + +▸ **getMiningPattern**(): `undefined` \| [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +#### Returns + +`undefined` \| [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +--- + +### getModalManager + +▸ **getModalManager**(): [`default`](Frontend_Game_ModalManager.default.md) + +#### Returns + +[`default`](Frontend_Game_ModalManager.default.md) + +--- + +### getMouseDownCoords + +▸ **getMouseDownCoords**(): `undefined` \| `WorldCoords` + +#### Returns + +`undefined` \| `WorldCoords` + +--- + +### getMouseDownPlanet + +▸ **getMouseDownPlanet**(): `undefined` \| `LocatablePlanet` + +#### Returns + +`undefined` \| `LocatablePlanet` + +--- + +### getMyArtifactMap + +▸ **getMyArtifactMap**(): `Map`<`ArtifactId`, `Artifact`\> + +#### Returns + +`Map`<`ArtifactId`, `Artifact`\> + +--- + +### getMyArtifacts + +▸ **getMyArtifacts**(): `Artifact`[] + +#### Returns + +`Artifact`[] + +--- + +### getMyArtifactsNotOnPlanet + +▸ **getMyArtifactsNotOnPlanet**(): `Artifact`[] + +#### Returns + +`Artifact`[] + +--- + +### getMyBalance + +▸ **getMyBalance**(): `number` + +#### Returns + +`number` + +--- + +### getMyBalance$ + +▸ **getMyBalance$**(): `Monomitter`<`BigNumber`\> + +#### Returns + +`Monomitter`<`BigNumber`\> + +--- + +### getMyBalanceBn + +▸ **getMyBalanceBn**(): `BigNumber` + +#### Returns + +`BigNumber` + +--- + +### getMyPlanetMap + +▸ **getMyPlanetMap**(): `Map`<`LocationId`, `Planet`\> + +#### Returns + +`Map`<`LocationId`, `Planet`\> + +--- + +### getMyScore + +▸ **getMyScore**(): `undefined` \| `number` + +#### Returns + +`undefined` \| `number` + +--- + +### getNextBroadcastAvailableTimestamp + +▸ **getNextBroadcastAvailableTimestamp**(): `number` + +#### Returns + +`number` + +--- + +### getOverlayContainer + +▸ **getOverlayContainer**(): `undefined` \| `HTMLDivElement` + +Gets the overlay container. See {@link GameUIManger.overlayContainer} for more information +about what the overlay container is. + +#### Returns + +`undefined` \| `HTMLDivElement` + +--- + +### getPaused + +▸ **getPaused**(): `boolean` + +#### Returns + +`boolean` + +--- + +### getPaused$ + +▸ **getPaused$**(): `Monomitter`<`boolean`\> + +#### Returns + +`Monomitter`<`boolean`\> + +--- + +### getPerlinConfig + +▸ **getPerlinConfig**(`isBiome?`): `PerlinConfig` + +#### Parameters + +| Name | Type | Default value | +| :-------- | :-------- | :------------ | +| `isBiome` | `boolean` | `false` | + +#### Returns + +`PerlinConfig` + +--- + +### getPerlinThresholds + +▸ **getPerlinThresholds**(): [`number`, `number`, `number`] + +#### Returns + +[`number`, `number`, `number`] + +--- + +### getPlanetHoveringInRenderer + +▸ **getPlanetHoveringInRenderer**(): `boolean` + +If there is a planet being hovered over, returns whether or not it's being hovered +over in the renderer. + +#### Returns + +`boolean` + +--- + +### getPlanetLevel + +▸ **getPlanetLevel**(`planetId`): `undefined` \| `PlanetLevel` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`undefined` \| `PlanetLevel` + +--- + +### getPlanetMap + +▸ **getPlanetMap**(): `Map`<`LocationId`, `Planet`\> + +#### Returns + +`Map`<`LocationId`, `Planet`\> + +--- + +### getPlanetWithCoords + +▸ **getPlanetWithCoords**(`coords`): `undefined` \| `Planet` + +#### Parameters + +| Name | Type | +| :------- | :--------------------------- | +| `coords` | `undefined` \| `WorldCoords` | + +#### Returns + +`undefined` \| `Planet` + +--- + +### getPlanetWithId + +▸ **getPlanetWithId**(`planetId`): `undefined` \| `Planet` + +#### Parameters + +| Name | Type | +| :--------- | :-------------------------- | +| `planetId` | `undefined` \| `LocationId` | + +#### Returns + +`undefined` \| `Planet` + +--- + +### getPlanetsInViewport + +▸ **getPlanetsInViewport**(): `Planet`[] + +#### Returns + +`Planet`[] + +--- + +### getPlayer + +▸ **getPlayer**(`address?`): `undefined` \| `Player` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `address?` | `EthAddress` | + +#### Returns + +`undefined` \| `Player` + +--- + +### getPlayerScore + +▸ **getPlayerScore**(`player`): `undefined` \| `number` + +#### Parameters + +| Name | Type | +| :------- | :----------- | +| `player` | `EthAddress` | + +#### Returns + +`undefined` \| `number` + +--- + +### getPluginManager + +▸ **getPluginManager**(): [`PluginManager`](Backend_GameLogic_PluginManager.PluginManager.md) + +#### Returns + +[`PluginManager`](Backend_GameLogic_PluginManager.PluginManager.md) + +--- + +### getPreviousSelectedPlanet + +▸ **getPreviousSelectedPlanet**(): `undefined` \| `Planet` + +#### Returns + +`undefined` \| `Planet` + +--- + +### getPrivateKey + +▸ **getPrivateKey**(): `undefined` \| `string` + +#### Returns + +`undefined` \| `string` + +--- + +### getRadiusOfPlanetLevel + +▸ **getRadiusOfPlanetLevel**(`planetRarity`): `number` + +#### Parameters + +| Name | Type | +| :------------- | :------------ | +| `planetRarity` | `PlanetLevel` | + +#### Returns + +`number` + +--- + +### getRangeBuff + +▸ **getRangeBuff**(): `number` + +#### Returns + +`number` + +--- + +### getRenderer + +▸ **getRenderer**(): `null` \| `Renderer` + +#### Returns + +`null` \| `Renderer` + +--- + +### getSelectedCoords + +▸ **getSelectedCoords**(): `undefined` \| `WorldCoords` + +#### Returns + +`undefined` \| `WorldCoords` + +--- + +### getSelectedPlanet + +▸ **getSelectedPlanet**(): `undefined` \| `LocatablePlanet` + +#### Returns + +`undefined` \| `LocatablePlanet` + +--- + +### getSilverCurveAtPercent + +▸ **getSilverCurveAtPercent**(`planet`, `percent`): `undefined` \| `number` + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `planet` | `Planet` | +| `percent` | `number` | + +#### Returns + +`undefined` \| `number` + +--- + +### getSilverOfPlayer + +▸ **getSilverOfPlayer**(`player`): `number` + +#### Parameters + +| Name | Type | +| :------- | :----------- | +| `player` | `EthAddress` | + +#### Returns + +`number` + +--- + +### getSilverScoreValue + +▸ **getSilverScoreValue**(): `number` + +#### Returns + +`number` + +--- + +### getSilverSending + +▸ **getSilverSending**(`planetId?`): `number` + +Percent from 0 to 100. + +#### Parameters + +| Name | Type | +| :---------- | :----------- | +| `planetId?` | `LocationId` | + +#### Returns + +`number` + +--- + +### getSpaceJunkEnabled + +▸ **getSpaceJunkEnabled**(): `boolean` + +#### Returns + +`boolean` + +--- + +### getSpaceTypePerlin + +▸ **getSpaceTypePerlin**(`coords`, `floor`): `number` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | +| `floor` | `boolean` | + +#### Returns + +`number` + +--- + +### getSpeedBuff + +▸ **getSpeedBuff**(): `number` + +#### Returns + +`number` + +--- + +### getStringSetting + +▸ **getStringSetting**(`setting`): `undefined` \| `string` + +#### Parameters + +| Name | Type | +| :-------- | :-------- | +| `setting` | `Setting` | + +#### Returns + +`undefined` \| `string` + +--- + +### getTerminal + +▸ **getTerminal**(): `undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md) + +#### Returns + +`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md) + +--- + +### getTwitter + +▸ **getTwitter**(`address`): `undefined` \| `string` + +#### Parameters + +| Name | Type | +| :-------- | :-------------------------- | +| `address` | `undefined` \| `EthAddress` | + +#### Returns + +`undefined` \| `string` + +--- + +### getUIEmitter + +▸ **getUIEmitter**(): [`default`](Frontend_Utils_UIEmitter.default.md) + +#### Returns + +[`default`](Frontend_Utils_UIEmitter.default.md) + +--- + +### getUnconfirmedMoves + +▸ **getUnconfirmedMoves**(): `Transaction`<`UnconfirmedMove`\>[] + +**`todo`** delete this. now that [GameObjects](Backend_GameLogic_GameObjects.GameObjects.md) is publically accessible, we shouldn't need to +drill fields like this anymore. + +**`tutorial`** Plugin developers, please access fields like this with something like {@code df.getGameObjects().} + +**`deprecated`** + +#### Returns + +`Transaction`<`UnconfirmedMove`\>[] + +--- + +### getUnconfirmedUpgrades + +▸ **getUnconfirmedUpgrades**(): `Transaction`<`UnconfirmedUpgrade`\>[] + +#### Returns + +`Transaction`<`UnconfirmedUpgrade`\>[] + +--- + +### getUnconfirmedWormholeActivations + +▸ **getUnconfirmedWormholeActivations**(): `Transaction`<`UnconfirmedActivateArtifact`\>[] + +#### Returns + +`Transaction`<`UnconfirmedActivateArtifact`\>[] + +--- + +### getUniverseTotalEnergy + +▸ **getUniverseTotalEnergy**(): `number` + +#### Returns + +`number` + +--- + +### getUpgrade + +▸ **getUpgrade**(`branch`, `level`): `Upgrade` + +#### Parameters + +| Name | Type | +| :------- | :------------------ | +| `branch` | `UpgradeBranchName` | +| `level` | `number` | + +#### Returns + +`Upgrade` + +--- + +### getViewport + +▸ **getViewport**(): [`default`](Frontend_Game_Viewport.default.md) + +#### Returns + +[`default`](Frontend_Game_Viewport.default.md) + +--- + +### getWorldRadius + +▸ **getWorldRadius**(): `number` + +#### Returns + +`number` + +--- + +### getWorldSilver + +▸ **getWorldSilver**(): `number` + +#### Returns + +`number` + +--- + +### getWormholes + +▸ **getWormholes**(): `Iterable`<`Wormhole`\> + +#### Returns + +`Iterable`<`Wormhole`\> + +--- + +### hasMinedChunk + +▸ **hasMinedChunk**(`chunkLocation`): `boolean` + +#### Parameters + +| Name | Type | +| :-------------- | :---------- | +| `chunkLocation` | `Rectangle` | + +#### Returns + +`boolean` + +--- + +### isAbandoning + +▸ **isAbandoning**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isAdmin + +▸ **isAdmin**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isCurrentlyRevealing + +▸ **isCurrentlyRevealing**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isMining + +▸ **isMining**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isOverOwnPlanet + +▸ **isOverOwnPlanet**(`coords`): `undefined` \| `Planet` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`undefined` \| `Planet` + +--- + +### isOwnedByMe + +▸ **isOwnedByMe**(`planet`): `boolean` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`boolean` + +--- + +### isRoundOver + +▸ **isRoundOver**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isSendingForces + +▸ **isSendingForces**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isSendingShip + +▸ **isSendingShip**(`planetId?`): `boolean` + +#### Parameters + +| Name | Type | +| :---------- | :----------- | +| `planetId?` | `LocationId` | + +#### Returns + +`boolean` + +--- + +### joinGame + +▸ **joinGame**(`beforeRetry`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------------ | :-------------------------------------- | +| `beforeRetry` | (`e`: `Error`) => `Promise`<`boolean`\> | + +#### Returns + +`Promise`<`void`\> + +--- + +### onDiscoveredChunk + +▸ **onDiscoveredChunk**(`chunk`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +`void` + +--- + +### onEmitInitializedPlayer + +▸ `Private` **onEmitInitializedPlayer**(): `void` + +#### Returns + +`void` + +--- + +### onEmitInitializedPlayerError + +▸ `Private` **onEmitInitializedPlayerError**(`err`): `void` + +#### Parameters + +| Name | Type | +| :---- | :---------- | +| `err` | `ReactNode` | + +#### Returns + +`void` + +--- + +### onMouseClick + +▸ **onMouseClick**(`_coords`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :------------ | +| `_coords` | `WorldCoords` | + +#### Returns + +`void` + +--- + +### onMouseDown + +▸ **onMouseDown**(`coords`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`void` + +--- + +### onMouseMove + +▸ **onMouseMove**(`coords`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`void` + +--- + +### onMouseOut + +▸ **onMouseOut**(): `void` + +#### Returns + +`void` + +--- + +### onMouseUp + +▸ **onMouseUp**(`coords`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`void` + +--- + +### onSendCancel + +▸ **onSendCancel**(): `void` + +#### Returns + +`void` + +--- + +### onSendComplete + +▸ **onSendComplete**(`locationId`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | + +#### Returns + +`void` + +--- + +### onSendInit + +▸ **onSendInit**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------------------------- | +| `planet` | `undefined` \| `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### potentialCaptureScore + +▸ **potentialCaptureScore**(`planetLevel`): `number` + +#### Parameters + +| Name | Type | +| :------------ | :------- | +| `planetLevel` | `number` | + +#### Returns + +`number` + +--- + +### prospectPlanet + +▸ **prospectPlanet**(`planetId`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`void` + +--- + +### removeExtraMinerLocation + +▸ **removeExtraMinerLocation**(`idx`): `void` + +#### Parameters + +| Name | Type | +| :---- | :------- | +| `idx` | `number` | + +#### Returns + +`void` + +--- + +### revealLocation + +▸ **revealLocation**(`locationId`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | + +#### Returns + +`void` + +--- + +### setAbandoning + +▸ **setAbandoning**(`abandoning`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :-------- | +| `abandoning` | `boolean` | + +#### Returns + +`void` + +--- + +### setArtifactSending + +▸ **setArtifactSending**(`planetId`, `artifact?`): `void` + +#### Parameters + +| Name | Type | +| :---------- | :----------- | +| `planetId` | `LocationId` | +| `artifact?` | `Artifact` | + +#### Returns + +`void` + +--- + +### setCustomRenderer + +▸ **setCustomRenderer**(`customRenderer`): `void` + +Replaces the current renderer with the passed in custom renderer and adds the renderer +to the rendering stack. The function will automatically determine which renderer it is +by the rendererType and the methods in the renderer. + +#### Parameters + +| Name | Type | Description | +| :--------------- | :------------- | :------------------------------------------------------- | +| `customRenderer` | `BaseRenderer` | a Renderer that follows one of the 23 renderer tempaltes | + +#### Returns + +`void` + +--- + +### setExtraMinerLocation + +▸ **setExtraMinerLocation**(`idx`, `coords`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `idx` | `number` | +| `coords` | `WorldCoords` | + +#### Returns + +`void` + +--- + +### setForcesSending + +▸ **setForcesSending**(`planetId`, `percentage`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `planetId` | `LocationId` | +| `percentage` | `number` | + +#### Returns + +`void` + +--- + +### setHoveringOverArtifact + +▸ **setHoveringOverArtifact**(`artifactId?`): `void` + +#### Parameters + +| Name | Type | +| :------------ | :----------- | +| `artifactId?` | `ArtifactId` | + +#### Returns + +`void` + +--- + +### setHoveringOverPlanet + +▸ **setHoveringOverPlanet**(`planet`, `inRenderer`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :------------------------------- | +| `planet` | `undefined` \| `LocatablePlanet` | +| `inRenderer` | `boolean` | + +#### Returns + +`void` + +--- + +### setMiningPattern + +▸ **setMiningPattern**(`pattern`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :----------------------------------------------------------------------------- | +| `pattern` | [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) | + +#### Returns + +`void` + +--- + +### setModalManager + +▸ `Private` **setModalManager**(`modalManager`): `void` + +#### Parameters + +| Name | Type | +| :------------- | :------------------------------------------------- | +| `modalManager` | [`default`](Frontend_Game_ModalManager.default.md) | + +#### Returns + +`void` + +--- + +### setOverlayContainer + +▸ **setOverlayContainer**(`randomContainer?`): `void` + +Sets the overlay container. See {@link GameUIManger.overlayContainer} for more information +about what the overlay container is. + +#### Parameters + +| Name | Type | +| :----------------- | :--------------- | +| `randomContainer?` | `HTMLDivElement` | + +#### Returns + +`void` + +--- + +### setSelectedId + +▸ **setSelectedId**(`id`): `void` + +#### Parameters + +| Name | Type | +| :--- | :----------- | +| `id` | `LocationId` | + +#### Returns + +`void` + +--- + +### setSelectedPlanet + +▸ **setSelectedPlanet**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------------------------- | +| `planet` | `undefined` \| `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### setSending + +▸ **setSending**(`sending`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :-------- | +| `sending` | `boolean` | + +#### Returns + +`void` + +--- + +### setSilverSending + +▸ **setSilverSending**(`planetId`, `percentage`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `planetId` | `LocationId` | +| `percentage` | `number` | + +#### Returns + +`void` + +--- + +### spaceTypeFromPerlin + +▸ **spaceTypeFromPerlin**(`perlin`): `SpaceType` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `perlin` | `number` | + +#### Returns + +`SpaceType` + +--- + +### startExplore + +▸ **startExplore**(): `void` + +#### Returns + +`void` + +--- + +### startWormholeFrom + +▸ **startWormholeFrom**(`planet`): `Promise`<`undefined` \| `LocatablePlanet`\> + +#### Parameters + +| Name | Type | +| :------- | :---------------- | +| `planet` | `LocatablePlanet` | + +#### Returns + +`Promise`<`undefined` \| `LocatablePlanet`\> + +--- + +### stopExplore + +▸ **stopExplore**(): `void` + +#### Returns + +`void` + +--- + +### timeUntilNextBroadcastAvailable + +▸ **timeUntilNextBroadcastAvailable**(): `number` + +#### Returns + +`number` + +--- + +### toggleExplore + +▸ **toggleExplore**(): `void` + +#### Returns + +`void` + +--- + +### toggleTargettingExplorer + +▸ **toggleTargettingExplorer**(): `void` + +#### Returns + +`void` + +--- + +### updateDiagnostics + +▸ **updateDiagnostics**(`updateFn`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :----------------------------- | +| `updateFn` | (`d`: `Diagnostics`) => `void` | + +#### Returns + +`void` + +--- + +### updateMouseHoveringOverCoords + +▸ `Private` **updateMouseHoveringOverCoords**(`coords`): `WorldCoords` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`WorldCoords` + +--- + +### updatePlanets + +▸ `Private` **updatePlanets**(): `void` + +#### Returns + +`void` + +--- + +### upgrade + +▸ **upgrade**(`planet`, `branch`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | +| `branch` | `number` | + +#### Returns + +`void` + +--- + +### verifyTwitter + +▸ **verifyTwitter**(`twitter`): `Promise`<`boolean`\> + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `twitter` | `string` | + +#### Returns + +`Promise`<`boolean`\> + +--- + +### withdrawArtifact + +▸ **withdrawArtifact**(`locationId`, `artifactId`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | +| `artifactId` | `ArtifactId` | + +#### Returns + +`void` + +--- + +### withdrawSilver + +▸ **withdrawSilver**(`locationId`, `amount`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `locationId` | `LocationId` | +| `amount` | `number` | + +#### Returns + +`void` + +--- + +### create + +▸ `Static` **create**(`gameManager`, `terminalHandle`): `Promise`<[`default`](Backend_GameLogic_GameUIManager.default.md)\> + +#### Parameters + +| Name | Type | +| :--------------- | :-------------------------------------------------------------------------------------------------------------- | +| `gameManager` | [`default`](Backend_GameLogic_GameManager.default.md) | +| `terminalHandle` | `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> | + +#### Returns + +`Promise`<[`default`](Backend_GameLogic_GameUIManager.default.md)\> diff --git a/docs/classes/Backend_GameLogic_InitialGameStateDownloader.InitialGameStateDownloader.md b/docs/classes/Backend_GameLogic_InitialGameStateDownloader.InitialGameStateDownloader.md new file mode 100644 index 00000000..3a4522f1 --- /dev/null +++ b/docs/classes/Backend_GameLogic_InitialGameStateDownloader.InitialGameStateDownloader.md @@ -0,0 +1,81 @@ +# Class: InitialGameStateDownloader + +[Backend/GameLogic/InitialGameStateDownloader](../modules/Backend_GameLogic_InitialGameStateDownloader.md).InitialGameStateDownloader + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_InitialGameStateDownloader.InitialGameStateDownloader.md#constructor) + +### Properties + +- [terminal](Backend_GameLogic_InitialGameStateDownloader.InitialGameStateDownloader.md#terminal) + +### Methods + +- [download](Backend_GameLogic_InitialGameStateDownloader.InitialGameStateDownloader.md#download) +- [makeProgressListener](Backend_GameLogic_InitialGameStateDownloader.InitialGameStateDownloader.md#makeprogresslistener) + +## Constructors + +### constructor + +• **new InitialGameStateDownloader**(`terminal`) + +#### Parameters + +| Name | Type | +| :--------- | :-------------------------------------------------------------------------- | +| `terminal` | [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md) | + +## Properties + +### terminal + +• `Private` **terminal**: [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md) + +## Methods + +### download + +▸ **download**(`contractsAPI`, `persistentChunkStore`): `Promise`<[`InitialGameState`](../interfaces/Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md)\> + +#### Parameters + +| Name | Type | +| :--------------------- | :--------------------------------------------------------------- | +| `contractsAPI` | [`ContractsAPI`](Backend_GameLogic_ContractsAPI.ContractsAPI.md) | +| `persistentChunkStore` | [`default`](Backend_Storage_PersistentChunkStore.default.md) | + +#### Returns + +`Promise`<[`InitialGameState`](../interfaces/Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md)\> + +--- + +### makeProgressListener + +▸ `Private` **makeProgressListener**(`prettyEntityName`): (`percent`: `number`) => `void` + +#### Parameters + +| Name | Type | +| :----------------- | :------- | +| `prettyEntityName` | `string` | + +#### Returns + +`fn` + +▸ (`percent`): `void` + +##### Parameters + +| Name | Type | +| :-------- | :------- | +| `percent` | `number` | + +##### Returns + +`void` diff --git a/docs/classes/Backend_GameLogic_LayeredMap.LayeredMap.md b/docs/classes/Backend_GameLogic_LayeredMap.LayeredMap.md new file mode 100644 index 00000000..c5c30fcc --- /dev/null +++ b/docs/classes/Backend_GameLogic_LayeredMap.LayeredMap.md @@ -0,0 +1,128 @@ +# Class: LayeredMap + +[Backend/GameLogic/LayeredMap](../modules/Backend_GameLogic_LayeredMap.md).LayeredMap + +Data structure which allows us to efficiently query for "which planets between level X and X + n +(for positive n) are present in the given world rectangle", as well as, in the future, "which +chunks are visible in the vieport". + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_LayeredMap.LayeredMap.md#constructor) + +### Properties + +- [insertedLocations](Backend_GameLogic_LayeredMap.LayeredMap.md#insertedlocations) +- [perLevelPlanetQuadtrees](Backend_GameLogic_LayeredMap.LayeredMap.md#perlevelplanetquadtrees) + +### Methods + +- [getPlanets](Backend_GameLogic_LayeredMap.LayeredMap.md#getplanets) +- [getPlanetsInCircle](Backend_GameLogic_LayeredMap.LayeredMap.md#getplanetsincircle) +- [getPointLocationId](Backend_GameLogic_LayeredMap.LayeredMap.md#getpointlocationid) +- [insertPlanet](Backend_GameLogic_LayeredMap.LayeredMap.md#insertplanet) + +## Constructors + +### constructor + +• **new LayeredMap**(`worldRadius`) + +#### Parameters + +| Name | Type | +| :------------ | :------- | +| `worldRadius` | `number` | + +## Properties + +### insertedLocations + +• `Private` **insertedLocations**: `Set`<`LocationId`\> + +--- + +### perLevelPlanetQuadtrees + +• `Private` **perLevelPlanetQuadtrees**: `Map`<`number`, `QuadTree`\> + +## Methods + +### getPlanets + +▸ **getPlanets**(`worldX`, `worldY`, `worldWidth`, `worldHeight`, `planetLevels`, `planetLevelToRadii`): `LocationId`[] + +Gets the ids of all the planets that are both within the given bounding box (defined by its bottom +left coordinate, width, and height) in the world and of a level that was passed in via the +`planetLevels` parameter. + +#### Parameters + +| Name | Type | +| :------------------- | :------------------------ | +| `worldX` | `number` | +| `worldY` | `number` | +| `worldWidth` | `number` | +| `worldHeight` | `number` | +| `planetLevels` | `number`[] | +| `planetLevelToRadii` | `Map`<`number`, `Radii`\> | + +#### Returns + +`LocationId`[] + +--- + +### getPlanetsInCircle + +▸ **getPlanetsInCircle**(`coords`, `worldRadius`): `LocationId`[] + +Gets all the planets within the given world radius of a world location. + +#### Parameters + +| Name | Type | +| :------------ | :------------ | +| `coords` | `WorldCoords` | +| `worldRadius` | `number` | + +#### Returns + +`LocationId`[] + +--- + +### getPointLocationId + +▸ `Private` **getPointLocationId**(`point`): `LocationId` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `point` | `Point` | + +#### Returns + +`LocationId` + +--- + +### insertPlanet + +▸ **insertPlanet**(`location`, `planetLevel`): `void` + +Records the fact that there is a planet at the given world location. + +#### Parameters + +| Name | Type | +| :------------ | :-------------- | +| `location` | `WorldLocation` | +| `planetLevel` | `number` | + +#### Returns + +`void` diff --git a/docs/classes/Backend_GameLogic_PluginManager.PluginManager.md b/docs/classes/Backend_GameLogic_PluginManager.PluginManager.md new file mode 100644 index 00000000..b9393768 --- /dev/null +++ b/docs/classes/Backend_GameLogic_PluginManager.PluginManager.md @@ -0,0 +1,412 @@ +# Class: PluginManager + +[Backend/GameLogic/PluginManager](../modules/Backend_GameLogic_PluginManager.md).PluginManager + +This class keeps track of all the plugins that this player has loaded +into their game. Acts as a task manager, supports all CRUD operations +for plugins, as well as instantiating and destroying running plugins. +All library operations are also persisted to IndexDB. + +Important! Does not run plugins until the user clicks 'run' somewhere in +this UI. This is important, because if someone develops a buggy plugin, +it would suck if that bricked their game. + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_PluginManager.PluginManager.md#constructor) + +### Properties + +- [gameManager](Backend_GameLogic_PluginManager.PluginManager.md#gamemanager) +- [pluginLibrary](Backend_GameLogic_PluginManager.PluginManager.md#pluginlibrary) +- [pluginProcessInfos](Backend_GameLogic_PluginManager.PluginManager.md#pluginprocessinfos) +- [pluginProcesses](Backend_GameLogic_PluginManager.PluginManager.md#pluginprocesses) +- [plugins$](Backend_GameLogic_PluginManager.PluginManager.md#plugins$) + +### Methods + +- [addPluginToLibrary](Backend_GameLogic_PluginManager.PluginManager.md#addplugintolibrary) +- [deletePlugin](Backend_GameLogic_PluginManager.PluginManager.md#deleteplugin) +- [destroy](Backend_GameLogic_PluginManager.PluginManager.md#destroy) +- [drawAllRunningPlugins](Backend_GameLogic_PluginManager.PluginManager.md#drawallrunningplugins) +- [getAllProcessInfos](Backend_GameLogic_PluginManager.PluginManager.md#getallprocessinfos) +- [getLibrary](Backend_GameLogic_PluginManager.PluginManager.md#getlibrary) +- [getPluginFromLibrary](Backend_GameLogic_PluginManager.PluginManager.md#getpluginfromlibrary) +- [getProcessInfo](Backend_GameLogic_PluginManager.PluginManager.md#getprocessinfo) +- [hasPlugin](Backend_GameLogic_PluginManager.PluginManager.md#hasplugin) +- [load](Backend_GameLogic_PluginManager.PluginManager.md#load) +- [notifyPluginLibraryUpdated](Backend_GameLogic_PluginManager.PluginManager.md#notifypluginlibraryupdated) +- [onNewEmbeddedPlugins](Backend_GameLogic_PluginManager.PluginManager.md#onnewembeddedplugins) +- [overwritePlugin](Backend_GameLogic_PluginManager.PluginManager.md#overwriteplugin) +- [render](Backend_GameLogic_PluginManager.PluginManager.md#render) +- [reorderPlugins](Backend_GameLogic_PluginManager.PluginManager.md#reorderplugins) +- [spawn](Backend_GameLogic_PluginManager.PluginManager.md#spawn) +- [copy](Backend_GameLogic_PluginManager.PluginManager.md#copy) + +## Constructors + +### constructor + +• **new PluginManager**(`gameManager`) + +#### Parameters + +| Name | Type | +| :------------ | :---------------------------------------------------- | +| `gameManager` | [`default`](Backend_GameLogic_GameManager.default.md) | + +## Properties + +### gameManager + +• `Private` **gameManager**: [`default`](Backend_GameLogic_GameManager.default.md) + +--- + +### pluginLibrary + +• `Private` **pluginLibrary**: [`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[] + +All the plugins in the player's library. Not all of the player's plugins +are running, and therefore not all exist in `pluginInstances`. +`PluginsManager` keeps this field in sync with the plugins the user has +saved in the IndexDB via {@link PersistentChunkStore} + +--- + +### pluginProcessInfos + +• `Private` **pluginProcessInfos**: `Record`<`string`, [`ProcessInfo`](Backend_GameLogic_PluginManager.ProcessInfo.md)\> + +parallel to pluginProcesses + +--- + +### pluginProcesses + +• `Private` **pluginProcesses**: `Record`<`string`, [`PluginProcess`](../interfaces/Backend_Plugins_PluginProcess.PluginProcess.md)\> + +Plugins that are currently loaded into the game, and are rendering into a modal. +`PluginsManager` makes sure that when a plugin starts executing, it is added into +`pluginInstances`, and that once a plugin is unloaded, its `.destroy()` method is called, and +that the plugin is removed from `pluginInstances`. + +--- + +### plugins$ + +• **plugins$**: `Monomitter`<[`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[]\> + +Event emitter that publishes whenever the set of plugins changes. + +## Methods + +### addPluginToLibrary + +▸ **addPluginToLibrary**(`id`, `name`, `code`): [`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md) + +adds a new plugin into the plugin library. + +#### Parameters + +| Name | Type | +| :----- | :--------- | +| `id` | `PluginId` | +| `name` | `string` | +| `code` | `string` | + +#### Returns + +[`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md) + +--- + +### deletePlugin + +▸ **deletePlugin**(`pluginId`): `Promise`<`void`\> + +Remove the given plugin both from the player's library, and kills +the plugin if it is running. + +#### Parameters + +| Name | Type | +| :--------- | :--------- | +| `pluginId` | `PluginId` | + +#### Returns + +`Promise`<`void`\> + +--- + +### destroy + +▸ **destroy**(`id`): `void` + +If a plugin with the given id is running, call its `.destroy()` method, +and remove it from `pluginInstances`. Stop listening for new local plugins. + +#### Parameters + +| Name | Type | +| :--- | :--------- | +| `id` | `PluginId` | + +#### Returns + +`void` + +--- + +### drawAllRunningPlugins + +▸ **drawAllRunningPlugins**(`ctx`): `void` + +For each currently running plugin, if the plugin has a 'draw' +function, then draw that plugin to the screen. + +#### Parameters + +| Name | Type | +| :---- | :------------------------- | +| `ctx` | `CanvasRenderingContext2D` | + +#### Returns + +`void` + +--- + +### getAllProcessInfos + +▸ **getAllProcessInfos**(): `Map`<`PluginId`, [`ProcessInfo`](Backend_GameLogic_PluginManager.ProcessInfo.md)\> + +Gets a map of all the currently running processes + +#### Returns + +`Map`<`PluginId`, [`ProcessInfo`](Backend_GameLogic_PluginManager.ProcessInfo.md)\> + +--- + +### getLibrary + +▸ **getLibrary**(): [`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[] + +Gets all the plugins in this player's library. + +#### Returns + +[`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[] + +--- + +### getPluginFromLibrary + +▸ **getPluginFromLibrary**(`id?`): `undefined` \| [`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md) + +Gets the serialized plugin with the given id from the player's plugin +library. `undefined` if no plugin exists. + +#### Parameters + +| Name | Type | +| :---- | :--------- | +| `id?` | `PluginId` | + +#### Returns + +`undefined` \| [`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md) + +--- + +### getProcessInfo + +▸ **getProcessInfo**(`id`): [`ProcessInfo`](Backend_GameLogic_PluginManager.ProcessInfo.md) + +If this process has been started, gets its info + +#### Parameters + +| Name | Type | +| :--- | :--------- | +| `id` | `PluginId` | + +#### Returns + +[`ProcessInfo`](Backend_GameLogic_PluginManager.ProcessInfo.md) + +--- + +### hasPlugin + +▸ `Private` **hasPlugin**(`plugin`): `boolean` + +#### Parameters + +| Name | Type | +| :------- | :--------------------------------------------------------------------------------------- | +| `plugin` | [`EmbeddedPlugin`](../interfaces/Backend_Plugins_EmbeddedPluginLoader.EmbeddedPlugin.md) | + +#### Returns + +`boolean` + +--- + +### load + +▸ **load**(`isAdmin`, `overwriteEmbeddedPlugins`): `Promise`<`void`\> + +Load all plugins from this disk into `pluginLibrary`. Insert the default +plugins into the player's library if the default plugins have never been +added before. Effectively idempotent after the first time you call it. + +#### Parameters + +| Name | Type | Description | +| :------------------------- | :-------- | :---------------------------------------------------------------------------------------- | +| `isAdmin` | `boolean` | Is an admin loading the plugins. | +| `overwriteEmbeddedPlugins` | `boolean` | Reload all embedded plugins even if a local copy is found. Useful for plugin development. | + +#### Returns + +`Promise`<`void`\> + +--- + +### notifyPluginLibraryUpdated + +▸ `Private` **notifyPluginLibraryUpdated**(): `void` + +#### Returns + +`void` + +--- + +### onNewEmbeddedPlugins + +▸ `Private` **onNewEmbeddedPlugins**(`newPlugins`, `overwriteEmbeddedPlugins`): `void` + +#### Parameters + +| Name | Type | +| :------------------------- | :----------------------------------------------------------------------------------------- | +| `newPlugins` | [`EmbeddedPlugin`](../interfaces/Backend_Plugins_EmbeddedPluginLoader.EmbeddedPlugin.md)[] | +| `overwriteEmbeddedPlugins` | `boolean` | + +#### Returns + +`void` + +--- + +### overwritePlugin + +▸ **overwritePlugin**(`newName`, `pluginCode`, `id`): `void` + +1. kills the plugin if it's running +2. edits the plugin-library version of this plugin +3. if a plugin was edited, save the plugin library to disk + +#### Parameters + +| Name | Type | +| :----------- | :--------- | +| `newName` | `string` | +| `pluginCode` | `string` | +| `id` | `PluginId` | + +#### Returns + +`void` + +--- + +### render + +▸ **render**(`id`, `element`): `Promise`<`void`\> + +If this plugin's `render` method has not been called yet, then +call it! Remembers that this plugin has been rendered. + +#### Parameters + +| Name | Type | +| :-------- | :--------------- | +| `id` | `PluginId` | +| `element` | `HTMLDivElement` | + +#### Returns + +`Promise`<`void`\> + +--- + +### reorderPlugins + +▸ **reorderPlugins**(`newPluginIdOrder`): `void` + +Reorders the current plugins. plugin ids in `newPluginIdOrder` must correspond +1:1 to plugins in the plugin library. + +#### Parameters + +| Name | Type | +| :----------------- | :--------- | +| `newPluginIdOrder` | `string`[] | + +#### Returns + +`void` + +--- + +### spawn + +▸ **spawn**(`id`): `Promise`<`undefined` \| [`PluginProcess`](../interfaces/Backend_Plugins_PluginProcess.PluginProcess.md)\> + +Either spawns the given plugin by evaluating its `pluginCode`, or +returns the already running plugin instance. If starting a plugin +throws an error then returns `undefined`. + +#### Parameters + +| Name | Type | +| :--- | :--------- | +| `id` | `PluginId` | + +#### Returns + +`Promise`<`undefined` \| [`PluginProcess`](../interfaces/Backend_Plugins_PluginProcess.PluginProcess.md)\> + +--- + +### copy + +▸ `Static` `Private` **copy**<`T`\>(`plugin`): `T` + +To prevent users of this class from modifying our plugins library, +we return clones of the plugins. This should probably be a function +in a Utils file somewhere, but I thought I should leave a good comment +about why we return copies of the plugins from the library. + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | +| :------- | :--- | +| `plugin` | `T` | + +#### Returns + +`T` diff --git a/docs/classes/Backend_GameLogic_PluginManager.ProcessInfo.md b/docs/classes/Backend_GameLogic_PluginManager.ProcessInfo.md new file mode 100644 index 00000000..efa50cc6 --- /dev/null +++ b/docs/classes/Backend_GameLogic_PluginManager.ProcessInfo.md @@ -0,0 +1,36 @@ +# Class: ProcessInfo + +[Backend/GameLogic/PluginManager](../modules/Backend_GameLogic_PluginManager.md).ProcessInfo + +Represents book-keeping information about a running process. We keep it +separate from the process code, so that the plugin doesn't accidentally +overwrite this information. + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_PluginManager.ProcessInfo.md#constructor) + +### Properties + +- [hasError](Backend_GameLogic_PluginManager.ProcessInfo.md#haserror) +- [rendered](Backend_GameLogic_PluginManager.ProcessInfo.md#rendered) + +## Constructors + +### constructor + +• **new ProcessInfo**() + +## Properties + +### hasError + +• **hasError**: `boolean` = `false` + +--- + +### rendered + +• **rendered**: `boolean` = `false` diff --git a/docs/classes/Backend_GameLogic_TutorialManager.default.md b/docs/classes/Backend_GameLogic_TutorialManager.default.md new file mode 100644 index 00000000..98f99db9 --- /dev/null +++ b/docs/classes/Backend_GameLogic_TutorialManager.default.md @@ -0,0 +1,159 @@ +# Class: default + +[Backend/GameLogic/TutorialManager](../modules/Backend_GameLogic_TutorialManager.md).default + +## Hierarchy + +- `EventEmitter` + + ↳ **`default`** + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_TutorialManager.default.md#constructor) + +### Properties + +- [tutorialState](Backend_GameLogic_TutorialManager.default.md#tutorialstate) +- [uiManager](Backend_GameLogic_TutorialManager.default.md#uimanager) +- [instance](Backend_GameLogic_TutorialManager.default.md#instance) + +### Methods + +- [acceptInput](Backend_GameLogic_TutorialManager.default.md#acceptinput) +- [advance](Backend_GameLogic_TutorialManager.default.md#advance) +- [complete](Backend_GameLogic_TutorialManager.default.md#complete) +- [reset](Backend_GameLogic_TutorialManager.default.md#reset) +- [setTutorialState](Backend_GameLogic_TutorialManager.default.md#settutorialstate) +- [shouldSkipState](Backend_GameLogic_TutorialManager.default.md#shouldskipstate) +- [getInstance](Backend_GameLogic_TutorialManager.default.md#getinstance) + +## Constructors + +### constructor + +• `Private` **new default**(`uiManager`) + +#### Parameters + +| Name | Type | +| :---------- | :------------------------------------------------------ | +| `uiManager` | [`default`](Backend_GameLogic_GameUIManager.default.md) | + +#### Overrides + +EventEmitter.constructor + +## Properties + +### tutorialState + +• `Private` **tutorialState**: [`TutorialState`](../enums/Backend_GameLogic_TutorialManager.TutorialState.md) = `TutorialState.None` + +--- + +### uiManager + +• `Private` **uiManager**: [`default`](Backend_GameLogic_GameUIManager.default.md) + +--- + +### instance + +▪ `Static` **instance**: [`default`](Backend_GameLogic_TutorialManager.default.md) + +## Methods + +### acceptInput + +▸ **acceptInput**(`state`): `void` + +#### Parameters + +| Name | Type | +| :------ | :----------------------------------------------------------------------------- | +| `state` | [`TutorialState`](../enums/Backend_GameLogic_TutorialManager.TutorialState.md) | + +#### Returns + +`void` + +--- + +### advance + +▸ `Private` **advance**(): `void` + +#### Returns + +`void` + +--- + +### complete + +▸ **complete**(): `void` + +#### Returns + +`void` + +--- + +### reset + +▸ **reset**(): `void` + +#### Returns + +`void` + +--- + +### setTutorialState + +▸ `Private` **setTutorialState**(`newState`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :----------------------------------------------------------------------------- | +| `newState` | [`TutorialState`](../enums/Backend_GameLogic_TutorialManager.TutorialState.md) | + +#### Returns + +`void` + +--- + +### shouldSkipState + +▸ `Private` **shouldSkipState**(`state`): `boolean` + +#### Parameters + +| Name | Type | +| :------ | :----------------------------------------------------------------------------- | +| `state` | [`TutorialState`](../enums/Backend_GameLogic_TutorialManager.TutorialState.md) | + +#### Returns + +`boolean` + +--- + +### getInstance + +▸ `Static` **getInstance**(`uiManager`): [`default`](Backend_GameLogic_TutorialManager.default.md) + +#### Parameters + +| Name | Type | +| :---------- | :------------------------------------------------------ | +| `uiManager` | [`default`](Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +[`default`](Backend_GameLogic_TutorialManager.default.md) diff --git a/docs/classes/Backend_GameLogic_ViewportEntities.ViewportEntities.md b/docs/classes/Backend_GameLogic_ViewportEntities.ViewportEntities.md new file mode 100644 index 00000000..187849c8 --- /dev/null +++ b/docs/classes/Backend_GameLogic_ViewportEntities.ViewportEntities.md @@ -0,0 +1,224 @@ +# Class: ViewportEntities + +[Backend/GameLogic/ViewportEntities](../modules/Backend_GameLogic_ViewportEntities.md).ViewportEntities + +Efficiently calculates which planets are in the viewport, and allows you to find the nearest +visible planet to the mouse. + +## Table of contents + +### Constructors + +- [constructor](Backend_GameLogic_ViewportEntities.ViewportEntities.md#constructor) + +### Properties + +- [cachedExploredChunks](Backend_GameLogic_ViewportEntities.ViewportEntities.md#cachedexploredchunks) +- [cachedPlanets](Backend_GameLogic_ViewportEntities.ViewportEntities.md#cachedplanets) +- [gameManager](Backend_GameLogic_ViewportEntities.ViewportEntities.md#gamemanager) +- [uiManager](Backend_GameLogic_ViewportEntities.ViewportEntities.md#uimanager) + +### Methods + +- [getNearestVisiblePlanet](Backend_GameLogic_ViewportEntities.ViewportEntities.md#getnearestvisibleplanet) +- [getPlanetRadii](Backend_GameLogic_ViewportEntities.ViewportEntities.md#getplanetradii) +- [getPlanetsAndChunks](Backend_GameLogic_ViewportEntities.ViewportEntities.md#getplanetsandchunks) +- [getVisiblePlanetLevels](Backend_GameLogic_ViewportEntities.ViewportEntities.md#getvisibleplanetlevels) +- [loadPlanetMessages](Backend_GameLogic_ViewportEntities.ViewportEntities.md#loadplanetmessages) +- [recalculateViewportChunks](Backend_GameLogic_ViewportEntities.ViewportEntities.md#recalculateviewportchunks) +- [recalculateViewportPlanets](Backend_GameLogic_ViewportEntities.ViewportEntities.md#recalculateviewportplanets) +- [replacePlanets](Backend_GameLogic_ViewportEntities.ViewportEntities.md#replaceplanets) +- [startRefreshing](Backend_GameLogic_ViewportEntities.ViewportEntities.md#startrefreshing) +- [updateLocationsAndChunks](Backend_GameLogic_ViewportEntities.ViewportEntities.md#updatelocationsandchunks) + +## Constructors + +### constructor + +• **new ViewportEntities**(`gameManager`, `gameUIManager`) + +#### Parameters + +| Name | Type | +| :-------------- | :------------------------------------------------------ | +| `gameManager` | [`default`](Backend_GameLogic_GameManager.default.md) | +| `gameUIManager` | [`default`](Backend_GameLogic_GameUIManager.default.md) | + +## Properties + +### cachedExploredChunks + +• `Private` **cachedExploredChunks**: `Set`<`Chunk`\> + +--- + +### cachedPlanets + +• `Private` **cachedPlanets**: `Map`<`LocationId`, `PlanetRenderInfo`\> + +--- + +### gameManager + +• `Private` `Readonly` **gameManager**: [`default`](Backend_GameLogic_GameManager.default.md) + +--- + +### uiManager + +• `Private` `Readonly` **uiManager**: [`default`](Backend_GameLogic_GameUIManager.default.md) + +## Methods + +### getNearestVisiblePlanet + +▸ **getNearestVisiblePlanet**(`coords`): `undefined` \| `LocatablePlanet` + +Gets the planet that is closest to the given coordinates. Filters out irrelevant planets +using the `radiusMap` parameter, which specifies how close a planet must be in order to +be returned from this function, given that planet's level. Smaller planets have a smaller +radius, and larger planets have a larger radius. + +If a smaller and a larger planet are both within respective radii of coords, the smaller +planet is returned. + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`undefined` \| `LocatablePlanet` + +--- + +### getPlanetRadii + +▸ `Private` **getPlanetRadii**(`viewport`): `Map`<`PlanetLevel`, `Radii`\> + +One entry per planet level - radius in screen pixels of that planet level given the current +viewport configuration, as well as the world radius. + +#### Parameters + +| Name | Type | +| :--------- | :--------------------------------------------- | +| `viewport` | [`default`](Frontend_Game_Viewport.default.md) | + +#### Returns + +`Map`<`PlanetLevel`, `Radii`\> + +--- + +### getPlanetsAndChunks + +▸ **getPlanetsAndChunks**(): `Object` + +#### Returns + +`Object` + +| Name | Type | +| :-------------- | :--------------------------------------- | +| `cachedPlanets` | `Map`<`LocationId`, `PlanetRenderInfo`\> | +| `chunks` | `Set`<`Chunk`\> | + +--- + +### getVisiblePlanetLevels + +▸ `Private` **getVisiblePlanetLevels**(`viewport`): `number`[] + +Returns a list of planet levels which, when rendered, would result in a planet that has a size +larger than one pixel. + +#### Parameters + +| Name | Type | +| :--------- | :--------------------------------------------- | +| `viewport` | [`default`](Frontend_Game_Viewport.default.md) | + +#### Returns + +`number`[] + +--- + +### loadPlanetMessages + +▸ `Private` **loadPlanetMessages**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +--- + +### recalculateViewportChunks + +▸ `Private` **recalculateViewportChunks**(`viewport`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :--------------------------------------------- | +| `viewport` | [`default`](Frontend_Game_Viewport.default.md) | + +#### Returns + +`void` + +--- + +### recalculateViewportPlanets + +▸ `Private` **recalculateViewportPlanets**(`viewport`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :--------------------------------------------- | +| `viewport` | [`default`](Frontend_Game_Viewport.default.md) | + +#### Returns + +`void` + +--- + +### replacePlanets + +▸ `Private` **replacePlanets**(`newPlanetsInViewport`): `void` + +#### Parameters + +| Name | Type | +| :--------------------- | :------------------ | +| `newPlanetsInViewport` | `LocatablePlanet`[] | + +#### Returns + +`void` + +--- + +### startRefreshing + +▸ **startRefreshing**(): `void` + +#### Returns + +`void` + +--- + +### updateLocationsAndChunks + +▸ `Private` **updateLocationsAndChunks**(): `void` + +#### Returns + +`void` diff --git a/docs/classes/Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md b/docs/classes/Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md new file mode 100644 index 00000000..ece02349 --- /dev/null +++ b/docs/classes/Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md @@ -0,0 +1,99 @@ +# Class: HomePlanetMinerChunkStore + +[Backend/Miner/MinerManager](../modules/Backend_Miner_MinerManager.md).HomePlanetMinerChunkStore + +## Implements + +- [`ChunkStore`](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md) + +## Table of contents + +### Constructors + +- [constructor](Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md#constructor) + +### Properties + +- [initPerlinMax](Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md#initperlinmax) +- [initPerlinMin](Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md#initperlinmin) +- [minedChunkKeys](Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md#minedchunkkeys) +- [perlinOptions](Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md#perlinoptions) + +### Methods + +- [addChunk](Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md#addchunk) +- [hasMinedChunk](Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md#hasminedchunk) + +## Constructors + +### constructor + +• **new HomePlanetMinerChunkStore**(`initPerlinMin`, `initPerlinMax`, `hashConfig`) + +#### Parameters + +| Name | Type | +| :-------------- | :---------------------------------------------------------------- | +| `initPerlinMin` | `number` | +| `initPerlinMax` | `number` | +| `hashConfig` | [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) | + +## Properties + +### initPerlinMax + +• `Private` **initPerlinMax**: `number` + +--- + +### initPerlinMin + +• `Private` **initPerlinMin**: `number` + +--- + +### minedChunkKeys + +• `Private` **minedChunkKeys**: `Set`<`string`\> + +--- + +### perlinOptions + +• `Private` **perlinOptions**: `PerlinConfig` + +## Methods + +### addChunk + +▸ **addChunk**(`exploredChunk`): `void` + +#### Parameters + +| Name | Type | +| :-------------- | :------ | +| `exploredChunk` | `Chunk` | + +#### Returns + +`void` + +--- + +### hasMinedChunk + +▸ **hasMinedChunk**(`chunkFootprint`): `boolean` + +#### Parameters + +| Name | Type | +| :--------------- | :---------- | +| `chunkFootprint` | `Rectangle` | + +#### Returns + +`boolean` + +#### Implementation of + +[ChunkStore](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md).[hasMinedChunk](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md#hasminedchunk) diff --git a/docs/classes/Backend_Miner_MinerManager.default.md b/docs/classes/Backend_Miner_MinerManager.default.md new file mode 100644 index 00000000..0950a510 --- /dev/null +++ b/docs/classes/Backend_Miner_MinerManager.default.md @@ -0,0 +1,441 @@ +# Class: default + +[Backend/Miner/MinerManager](../modules/Backend_Miner_MinerManager.md).default + +## Hierarchy + +- `EventEmitter` + + ↳ **`default`** + +## Table of contents + +### Constructors + +- [constructor](Backend_Miner_MinerManager.default.md#constructor) + +### Properties + +- [cores](Backend_Miner_MinerManager.default.md#cores) +- [currentJobId](Backend_Miner_MinerManager.default.md#currentjobid) +- [exploringChunk](Backend_Miner_MinerManager.default.md#exploringchunk) +- [exploringChunkStart](Backend_Miner_MinerManager.default.md#exploringchunkstart) +- [hashConfig](Backend_Miner_MinerManager.default.md#hashconfig) +- [isExploring](Backend_Miner_MinerManager.default.md#isexploring) +- [minedChunksStore](Backend_Miner_MinerManager.default.md#minedchunksstore) +- [minersComplete](Backend_Miner_MinerManager.default.md#minerscomplete) +- [miningPattern](Backend_Miner_MinerManager.default.md#miningpattern) +- [perlinOptions](Backend_Miner_MinerManager.default.md#perlinoptions) +- [planetRarity](Backend_Miner_MinerManager.default.md#planetrarity) +- [useMockHash](Backend_Miner_MinerManager.default.md#usemockhash) +- [workerFactory](Backend_Miner_MinerManager.default.md#workerfactory) +- [workers](Backend_Miner_MinerManager.default.md#workers) +- [worldRadius](Backend_Miner_MinerManager.default.md#worldradius) + +### Methods + +- [chunkKeyToLocation](Backend_Miner_MinerManager.default.md#chunkkeytolocation) +- [chunkLocationToKey](Backend_Miner_MinerManager.default.md#chunklocationtokey) +- [destroy](Backend_Miner_MinerManager.default.md#destroy) +- [exploreNext](Backend_Miner_MinerManager.default.md#explorenext) +- [getCurrentlyExploringChunk](Backend_Miner_MinerManager.default.md#getcurrentlyexploringchunk) +- [getMiningPattern](Backend_Miner_MinerManager.default.md#getminingpattern) +- [initWorker](Backend_Miner_MinerManager.default.md#initworker) +- [isMining](Backend_Miner_MinerManager.default.md#ismining) +- [isValidExploreTarget](Backend_Miner_MinerManager.default.md#isvalidexploretarget) +- [nextValidExploreTarget](Backend_Miner_MinerManager.default.md#nextvalidexploretarget) +- [onDiscovered](Backend_Miner_MinerManager.default.md#ondiscovered) +- [sendMessageToWorkers](Backend_Miner_MinerManager.default.md#sendmessagetoworkers) +- [setCores](Backend_Miner_MinerManager.default.md#setcores) +- [setMiningPattern](Backend_Miner_MinerManager.default.md#setminingpattern) +- [setRadius](Backend_Miner_MinerManager.default.md#setradius) +- [startExplore](Backend_Miner_MinerManager.default.md#startexplore) +- [stopExplore](Backend_Miner_MinerManager.default.md#stopexplore) +- [create](Backend_Miner_MinerManager.default.md#create) + +## Constructors + +### constructor + +• `Private` **new default**(`minedChunksStore`, `miningPattern`, `worldRadius`, `planetRarity`, `hashConfig`, `useMockHash`, `workerFactory`) + +#### Parameters + +| Name | Type | +| :----------------- | :------------------------------------------------------------------------------- | +| `minedChunksStore` | [`ChunkStore`](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md) | +| `miningPattern` | [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) | +| `worldRadius` | `number` | +| `planetRarity` | `number` | +| `hashConfig` | [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) | +| `useMockHash` | `boolean` | +| `workerFactory` | [`workerFactory`](../modules/Backend_Miner_MinerManager.md#workerfactory) | + +#### Overrides + +EventEmitter.constructor + +## Properties + +### cores + +• `Private` **cores**: `number` = `1` + +--- + +### currentJobId + +• `Private` **currentJobId**: `number` = `0` + +--- + +### exploringChunk + +• `Private` **exploringChunk**: `Object` = `{}` + +#### Index signature + +▪ [chunkKey: `string`]: `Chunk` + +--- + +### exploringChunkStart + +• `Private` **exploringChunkStart**: `Object` = `{}` + +#### Index signature + +▪ [chunkKey: `string`]: `number` + +--- + +### hashConfig + +• `Private` **hashConfig**: [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) + +--- + +### isExploring + +• `Private` **isExploring**: `boolean` = `false` + +--- + +### minedChunksStore + +• `Private` `Readonly` **minedChunksStore**: [`ChunkStore`](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md) + +--- + +### minersComplete + +• `Private` **minersComplete**: `Object` = `{}` + +#### Index signature + +▪ [chunkKey: `string`]: `number` + +--- + +### miningPattern + +• `Private` **miningPattern**: [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +--- + +### perlinOptions + +• `Private` **perlinOptions**: `PerlinConfig` + +--- + +### planetRarity + +• `Private` `Readonly` **planetRarity**: `number` + +--- + +### useMockHash + +• `Private` **useMockHash**: `boolean` + +--- + +### workerFactory + +• `Private` **workerFactory**: [`workerFactory`](../modules/Backend_Miner_MinerManager.md#workerfactory) + +--- + +### workers + +• `Private` **workers**: `Worker`[] + +--- + +### worldRadius + +• `Private` **worldRadius**: `number` + +## Methods + +### chunkKeyToLocation + +▸ `Private` **chunkKeyToLocation**(`chunkKey`): `undefined` \| [`Rectangle`, `number`] + +#### Parameters + +| Name | Type | +| :--------- | :------- | +| `chunkKey` | `string` | + +#### Returns + +`undefined` \| [`Rectangle`, `number`] + +--- + +### chunkLocationToKey + +▸ `Private` **chunkLocationToKey**(`chunkLocation`, `jobId`): `string` + +#### Parameters + +| Name | Type | +| :-------------- | :---------- | +| `chunkLocation` | `Rectangle` | +| `jobId` | `number` | + +#### Returns + +`string` + +--- + +### destroy + +▸ **destroy**(): `void` + +#### Returns + +`void` + +--- + +### exploreNext + +▸ `Private` **exploreNext**(`fromChunk`, `jobId`): `void` + +#### Parameters + +| Name | Type | +| :---------- | :---------- | +| `fromChunk` | `Rectangle` | +| `jobId` | `number` | + +#### Returns + +`void` + +--- + +### getCurrentlyExploringChunk + +▸ **getCurrentlyExploringChunk**(): `undefined` \| `Rectangle` + +#### Returns + +`undefined` \| `Rectangle` + +--- + +### getMiningPattern + +▸ **getMiningPattern**(): [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +#### Returns + +[`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +--- + +### initWorker + +▸ `Private` **initWorker**(`index`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `index` | `number` | + +#### Returns + +`void` + +--- + +### isMining + +▸ **isMining**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isValidExploreTarget + +▸ `Private` **isValidExploreTarget**(`chunkLocation`): `boolean` + +#### Parameters + +| Name | Type | +| :-------------- | :---------- | +| `chunkLocation` | `Rectangle` | + +#### Returns + +`boolean` + +--- + +### nextValidExploreTarget + +▸ `Private` **nextValidExploreTarget**(`chunkLocation`, `jobId`): `Promise`<`undefined` \| `Rectangle`\> + +#### Parameters + +| Name | Type | +| :-------------- | :---------- | +| `chunkLocation` | `Rectangle` | +| `jobId` | `number` | + +#### Returns + +`Promise`<`undefined` \| `Rectangle`\> + +--- + +### onDiscovered + +▸ `Private` **onDiscovered**(`exploredChunk`, `jobId`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :-------------- | :------- | +| `exploredChunk` | `Chunk` | +| `jobId` | `number` | + +#### Returns + +`Promise`<`void`\> + +--- + +### sendMessageToWorkers + +▸ `Private` **sendMessageToWorkers**(`chunkToExplore`, `jobId`): `void` + +#### Parameters + +| Name | Type | +| :--------------- | :---------- | +| `chunkToExplore` | `Rectangle` | +| `jobId` | `number` | + +#### Returns + +`void` + +--- + +### setCores + +▸ **setCores**(`nCores`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `nCores` | `number` | + +#### Returns + +`void` + +--- + +### setMiningPattern + +▸ **setMiningPattern**(`pattern`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :----------------------------------------------------------------------------- | +| `pattern` | [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) | + +#### Returns + +`void` + +--- + +### setRadius + +▸ **setRadius**(`radius`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `radius` | `number` | + +#### Returns + +`void` + +--- + +### startExplore + +▸ **startExplore**(): `void` + +#### Returns + +`void` + +--- + +### stopExplore + +▸ **stopExplore**(): `void` + +#### Returns + +`void` + +--- + +### create + +▸ `Static` **create**(`chunkStore`, `miningPattern`, `worldRadius`, `planetRarity`, `hashConfig`, `useMockHash?`, `workerFactory?`): [`default`](Backend_Miner_MinerManager.default.md) + +#### Parameters + +| Name | Type | Default value | +| :-------------- | :------------------------------------------------------------------------------- | :-------------- | +| `chunkStore` | [`ChunkStore`](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md) | `undefined` | +| `miningPattern` | [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) | `undefined` | +| `worldRadius` | `number` | `undefined` | +| `planetRarity` | `number` | `undefined` | +| `hashConfig` | [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) | `undefined` | +| `useMockHash` | `boolean` | `false` | +| `workerFactory` | [`workerFactory`](../modules/Backend_Miner_MinerManager.md#workerfactory) | `defaultWorker` | + +#### Returns + +[`default`](Backend_Miner_MinerManager.default.md) diff --git a/docs/classes/Backend_Miner_MiningPatterns.SpiralPattern.md b/docs/classes/Backend_Miner_MiningPatterns.SpiralPattern.md new file mode 100644 index 00000000..0f6b5bc5 --- /dev/null +++ b/docs/classes/Backend_Miner_MiningPatterns.SpiralPattern.md @@ -0,0 +1,82 @@ +# Class: SpiralPattern + +[Backend/Miner/MiningPatterns](../modules/Backend_Miner_MiningPatterns.md).SpiralPattern + +## Implements + +- [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +## Table of contents + +### Constructors + +- [constructor](Backend_Miner_MiningPatterns.SpiralPattern.md#constructor) + +### Properties + +- [chunkSideLength](Backend_Miner_MiningPatterns.SpiralPattern.md#chunksidelength) +- [fromChunk](Backend_Miner_MiningPatterns.SpiralPattern.md#fromchunk) +- [type](Backend_Miner_MiningPatterns.SpiralPattern.md#type) + +### Methods + +- [nextChunk](Backend_Miner_MiningPatterns.SpiralPattern.md#nextchunk) + +## Constructors + +### constructor + +• **new SpiralPattern**(`center`, `chunkSize`) + +#### Parameters + +| Name | Type | +| :---------- | :------------ | +| `center` | `WorldCoords` | +| `chunkSize` | `number` | + +## Properties + +### chunkSideLength + +• **chunkSideLength**: `number` + +--- + +### fromChunk + +• **fromChunk**: `Rectangle` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[fromChunk](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#fromchunk) + +--- + +### type + +• **type**: [`MiningPatternType`](../enums/Backend_Miner_MiningPatterns.MiningPatternType.md) = `MiningPatternType.Spiral` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[type](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#type) + +## Methods + +### nextChunk + +▸ **nextChunk**(`chunk`): `Rectangle` + +#### Parameters + +| Name | Type | +| :------ | :---------- | +| `chunk` | `Rectangle` | + +#### Returns + +`Rectangle` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[nextChunk](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#nextchunk) diff --git a/docs/classes/Backend_Miner_MiningPatterns.SwissCheesePattern.md b/docs/classes/Backend_Miner_MiningPatterns.SwissCheesePattern.md new file mode 100644 index 00000000..3f1f1572 --- /dev/null +++ b/docs/classes/Backend_Miner_MiningPatterns.SwissCheesePattern.md @@ -0,0 +1,82 @@ +# Class: SwissCheesePattern + +[Backend/Miner/MiningPatterns](../modules/Backend_Miner_MiningPatterns.md).SwissCheesePattern + +## Implements + +- [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +## Table of contents + +### Constructors + +- [constructor](Backend_Miner_MiningPatterns.SwissCheesePattern.md#constructor) + +### Properties + +- [chunkSideLength](Backend_Miner_MiningPatterns.SwissCheesePattern.md#chunksidelength) +- [fromChunk](Backend_Miner_MiningPatterns.SwissCheesePattern.md#fromchunk) +- [type](Backend_Miner_MiningPatterns.SwissCheesePattern.md#type) + +### Methods + +- [nextChunk](Backend_Miner_MiningPatterns.SwissCheesePattern.md#nextchunk) + +## Constructors + +### constructor + +• **new SwissCheesePattern**(`center`, `chunkSize`) + +#### Parameters + +| Name | Type | +| :---------- | :------------ | +| `center` | `WorldCoords` | +| `chunkSize` | `number` | + +## Properties + +### chunkSideLength + +• **chunkSideLength**: `number` + +--- + +### fromChunk + +• **fromChunk**: `Rectangle` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[fromChunk](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#fromchunk) + +--- + +### type + +• **type**: [`MiningPatternType`](../enums/Backend_Miner_MiningPatterns.MiningPatternType.md) = `MiningPatternType.SwissCheese` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[type](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#type) + +## Methods + +### nextChunk + +▸ **nextChunk**(`chunk`): `Rectangle` + +#### Parameters + +| Name | Type | +| :------ | :---------- | +| `chunk` | `Rectangle` | + +#### Returns + +`Rectangle` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[nextChunk](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#nextchunk) diff --git a/docs/classes/Backend_Miner_MiningPatterns.TowardsCenterPattern.md b/docs/classes/Backend_Miner_MiningPatterns.TowardsCenterPattern.md new file mode 100644 index 00000000..51b54cd4 --- /dev/null +++ b/docs/classes/Backend_Miner_MiningPatterns.TowardsCenterPattern.md @@ -0,0 +1,103 @@ +# Class: TowardsCenterPattern + +[Backend/Miner/MiningPatterns](../modules/Backend_Miner_MiningPatterns.md).TowardsCenterPattern + +## Implements + +- [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +## Table of contents + +### Constructors + +- [constructor](Backend_Miner_MiningPatterns.TowardsCenterPattern.md#constructor) + +### Properties + +- [chunkSideLength](Backend_Miner_MiningPatterns.TowardsCenterPattern.md#chunksidelength) +- [fromChunk](Backend_Miner_MiningPatterns.TowardsCenterPattern.md#fromchunk) +- [maxWidth](Backend_Miner_MiningPatterns.TowardsCenterPattern.md#maxwidth) +- [tipX](Backend_Miner_MiningPatterns.TowardsCenterPattern.md#tipx) +- [tipY](Backend_Miner_MiningPatterns.TowardsCenterPattern.md#tipy) +- [type](Backend_Miner_MiningPatterns.TowardsCenterPattern.md#type) + +### Methods + +- [nextChunk](Backend_Miner_MiningPatterns.TowardsCenterPattern.md#nextchunk) + +## Constructors + +### constructor + +• **new TowardsCenterPattern**(`center`, `chunkSize`) + +#### Parameters + +| Name | Type | +| :---------- | :------------ | +| `center` | `WorldCoords` | +| `chunkSize` | `number` | + +## Properties + +### chunkSideLength + +• **chunkSideLength**: `number` + +--- + +### fromChunk + +• **fromChunk**: `Rectangle` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[fromChunk](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#fromchunk) + +--- + +### maxWidth + +• `Private` **maxWidth**: `number` = `1600` + +--- + +### tipX + +• `Private` **tipX**: `number` + +--- + +### tipY + +• `Private` **tipY**: `number` + +--- + +### type + +• **type**: [`MiningPatternType`](../enums/Backend_Miner_MiningPatterns.MiningPatternType.md) = `MiningPatternType.TowardsCenter` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[type](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#type) + +## Methods + +### nextChunk + +▸ **nextChunk**(`chunk`): `Rectangle` + +#### Parameters + +| Name | Type | +| :------ | :---------- | +| `chunk` | `Rectangle` | + +#### Returns + +`Rectangle` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[nextChunk](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#nextchunk) diff --git a/docs/classes/Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md b/docs/classes/Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md new file mode 100644 index 00000000..4a4e784e --- /dev/null +++ b/docs/classes/Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md @@ -0,0 +1,120 @@ +# Class: TowardsCenterPatternV2 + +[Backend/Miner/MiningPatterns](../modules/Backend_Miner_MiningPatterns.md).TowardsCenterPatternV2 + +## Implements + +- [`MiningPattern`](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) + +## Table of contents + +### Constructors + +- [constructor](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md#constructor) + +### Properties + +- [chunkSideLength](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md#chunksidelength) +- [fromChunk](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md#fromchunk) +- [rowRadius](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md#rowradius) +- [slopeToCenter](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md#slopetocenter) +- [type](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md#type) +- [yDominant](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md#ydominant) + +### Methods + +- [nextChunk](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md#nextchunk) +- [toChunk](Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md#tochunk) + +## Constructors + +### constructor + +• **new TowardsCenterPatternV2**(`center`, `chunkSize`) + +#### Parameters + +| Name | Type | +| :---------- | :------------ | +| `center` | `WorldCoords` | +| `chunkSize` | `number` | + +## Properties + +### chunkSideLength + +• **chunkSideLength**: `number` + +--- + +### fromChunk + +• **fromChunk**: `Rectangle` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[fromChunk](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#fromchunk) + +--- + +### rowRadius + +• `Private` **rowRadius**: `number` + +--- + +### slopeToCenter + +• `Private` **slopeToCenter**: `number` + +--- + +### type + +• **type**: [`MiningPatternType`](../enums/Backend_Miner_MiningPatterns.MiningPatternType.md) = `MiningPatternType.TowardsCenterV2` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[type](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#type) + +--- + +### yDominant + +• `Private` **yDominant**: `boolean` + +## Methods + +### nextChunk + +▸ **nextChunk**(`chunk`): `Rectangle` + +#### Parameters + +| Name | Type | +| :------ | :---------- | +| `chunk` | `Rectangle` | + +#### Returns + +`Rectangle` + +#### Implementation of + +[MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md).[nextChunk](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md#nextchunk) + +--- + +### toChunk + +▸ **toChunk**(`coord`): `number` + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `coord` | `number` | + +#### Returns + +`number` diff --git a/docs/classes/Backend_Network_EventLogger.EventLogger.md b/docs/classes/Backend_Network_EventLogger.EventLogger.md new file mode 100644 index 00000000..a244e5dc --- /dev/null +++ b/docs/classes/Backend_Network_EventLogger.EventLogger.md @@ -0,0 +1,58 @@ +# Class: EventLogger + +[Backend/Network/EventLogger](../modules/Backend_Network_EventLogger.md).EventLogger + +## Table of contents + +### Constructors + +- [constructor](Backend_Network_EventLogger.EventLogger.md#constructor) + +### Methods + +- [logEvent](Backend_Network_EventLogger.EventLogger.md#logevent) +- [augmentEvent](Backend_Network_EventLogger.EventLogger.md#augmentevent) + +## Constructors + +### constructor + +• **new EventLogger**() + +## Methods + +### logEvent + +▸ **logEvent**(`eventType`, `event`): `void` + +#### Parameters + +| Name | Type | +| :---------- | :--------------------------------------------------------------- | +| `eventType` | [`EventType`](../enums/Backend_Network_EventLogger.EventType.md) | +| `event` | `unknown` | + +#### Returns + +`void` + +--- + +### augmentEvent + +▸ `Static` `Private` **augmentEvent**(`event`, `eventType`): `Object` + +#### Parameters + +| Name | Type | +| :---------- | :--------------------------------------------------------------- | +| `event` | `unknown` | +| `eventType` | [`EventType`](../enums/Backend_Network_EventLogger.EventType.md) | + +#### Returns + +`Object` + +| Name | Type | +| :-------------- | :--------------------------------------------------------------- | +| `df_event_type` | [`EventType`](../enums/Backend_Network_EventLogger.EventType.md) | diff --git a/docs/classes/Backend_Storage_PersistentChunkStore.default.md b/docs/classes/Backend_Storage_PersistentChunkStore.default.md new file mode 100644 index 00000000..a5e22ea6 --- /dev/null +++ b/docs/classes/Backend_Storage_PersistentChunkStore.default.md @@ -0,0 +1,625 @@ +# Class: default + +[Backend/Storage/PersistentChunkStore](../modules/Backend_Storage_PersistentChunkStore.md).default + +## Implements + +- [`ChunkStore`](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md) + +## Table of contents + +### Constructors + +- [constructor](Backend_Storage_PersistentChunkStore.default.md#constructor) + +### Properties + +- [account](Backend_Storage_PersistentChunkStore.default.md#account) +- [chunkMap](Backend_Storage_PersistentChunkStore.default.md#chunkmap) +- [confirmedTxHashes](Backend_Storage_PersistentChunkStore.default.md#confirmedtxhashes) +- [contractAddress](Backend_Storage_PersistentChunkStore.default.md#contractaddress) +- [db](Backend_Storage_PersistentChunkStore.default.md#db) +- [diagnosticUpdater](Backend_Storage_PersistentChunkStore.default.md#diagnosticupdater) +- [nUpdatesLastTwoMins](Backend_Storage_PersistentChunkStore.default.md#nupdateslasttwomins) +- [queuedChunkWrites](Backend_Storage_PersistentChunkStore.default.md#queuedchunkwrites) +- [throttledSaveChunkCacheToDisk](Backend_Storage_PersistentChunkStore.default.md#throttledsavechunkcachetodisk) + +### Methods + +- [addChunk](Backend_Storage_PersistentChunkStore.default.md#addchunk) +- [addHomeLocation](Backend_Storage_PersistentChunkStore.default.md#addhomelocation) +- [allChunks](Backend_Storage_PersistentChunkStore.default.md#allchunks) +- [bulkSetKeyInCollection](Backend_Storage_PersistentChunkStore.default.md#bulksetkeyincollection) +- [confirmHomeLocation](Backend_Storage_PersistentChunkStore.default.md#confirmhomelocation) +- [destroy](Backend_Storage_PersistentChunkStore.default.md#destroy) +- [getChunkByFootprint](Backend_Storage_PersistentChunkStore.default.md#getchunkbyfootprint) +- [getChunkById](Backend_Storage_PersistentChunkStore.default.md#getchunkbyid) +- [getHomeLocations](Backend_Storage_PersistentChunkStore.default.md#gethomelocations) +- [getKey](Backend_Storage_PersistentChunkStore.default.md#getkey) +- [getMinedSubChunks](Backend_Storage_PersistentChunkStore.default.md#getminedsubchunks) +- [getSavedClaimedCoords](Backend_Storage_PersistentChunkStore.default.md#getsavedclaimedcoords) +- [getSavedRevealedCoords](Backend_Storage_PersistentChunkStore.default.md#getsavedrevealedcoords) +- [getSavedTouchedPlanetIds](Backend_Storage_PersistentChunkStore.default.md#getsavedtouchedplanetids) +- [getUnconfirmedSubmittedEthTxs](Backend_Storage_PersistentChunkStore.default.md#getunconfirmedsubmittedethtxs) +- [hasMinedChunk](Backend_Storage_PersistentChunkStore.default.md#hasminedchunk) +- [loadChunks](Backend_Storage_PersistentChunkStore.default.md#loadchunks) +- [loadModalPositions](Backend_Storage_PersistentChunkStore.default.md#loadmodalpositions) +- [loadPlugins](Backend_Storage_PersistentChunkStore.default.md#loadplugins) +- [onEthTxComplete](Backend_Storage_PersistentChunkStore.default.md#onethtxcomplete) +- [onEthTxSubmit](Backend_Storage_PersistentChunkStore.default.md#onethtxsubmit) +- [persistQueuedChunks](Backend_Storage_PersistentChunkStore.default.md#persistqueuedchunks) +- [recomputeSaveThrottleAfterUpdate](Backend_Storage_PersistentChunkStore.default.md#recomputesavethrottleafterupdate) +- [removeKey](Backend_Storage_PersistentChunkStore.default.md#removekey) +- [saveClaimedCoords](Backend_Storage_PersistentChunkStore.default.md#saveclaimedcoords) +- [saveModalPositions](Backend_Storage_PersistentChunkStore.default.md#savemodalpositions) +- [savePlugins](Backend_Storage_PersistentChunkStore.default.md#saveplugins) +- [saveRevealedCoords](Backend_Storage_PersistentChunkStore.default.md#saverevealedcoords) +- [saveTouchedPlanetIds](Backend_Storage_PersistentChunkStore.default.md#savetouchedplanetids) +- [setDiagnosticUpdater](Backend_Storage_PersistentChunkStore.default.md#setdiagnosticupdater) +- [setKey](Backend_Storage_PersistentChunkStore.default.md#setkey) +- [create](Backend_Storage_PersistentChunkStore.default.md#create) + +## Constructors + +### constructor + +• **new default**(`__namedParameters`) + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------------- | +| `__namedParameters` | `PersistentChunkStoreConfig` | + +## Properties + +### account + +• `Private` **account**: `EthAddress` + +--- + +### chunkMap + +• `Private` **chunkMap**: `Map`<[`ChunkId`](../modules/types_darkforest_api_ChunkStoreTypes.md#chunkid), `Chunk`\> + +--- + +### confirmedTxHashes + +• `Private` **confirmedTxHashes**: `Set`<`string`\> + +--- + +### contractAddress + +• `Private` **contractAddress**: `EthAddress` + +--- + +### db + +• `Private` **db**: `IDBPDatabase`<`unknown`\> + +--- + +### diagnosticUpdater + +• `Private` `Optional` **diagnosticUpdater**: `DiagnosticUpdater` + +--- + +### nUpdatesLastTwoMins + +• `Private` **nUpdatesLastTwoMins**: `number` = `0` + +--- + +### queuedChunkWrites + +• `Private` **queuedChunkWrites**: `DBTx`[] + +--- + +### throttledSaveChunkCacheToDisk + +• `Private` **throttledSaveChunkCacheToDisk**: `DebouncedFunc`<() => `Promise`<`void`\>\> + +## Methods + +### addChunk + +▸ **addChunk**(`chunk`, `persistChunk?`): `void` + +When a chunk is mined, or a chunk is imported via map import, or a chunk is loaded from +persistent storage for the first time, we need to add this chunk to the game. This function +allows you to add a new chunk to the game, and optionally persist that chunk. The reason you +might not want to persist the chunk is if you are sure that you got it from persistent storage. +i.e. it already exists in persistent storage. + +#### Parameters + +| Name | Type | Default value | +| :------------- | :-------- | :------------ | +| `chunk` | `Chunk` | `undefined` | +| `persistChunk` | `boolean` | `true` | + +#### Returns + +`void` + +--- + +### addHomeLocation + +▸ **addHomeLocation**(`location`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :--------- | :-------------- | +| `location` | `WorldLocation` | + +#### Returns + +`Promise`<`void`\> + +--- + +### allChunks + +▸ **allChunks**(): `Iterable`<`Chunk`\> + +#### Returns + +`Iterable`<`Chunk`\> + +--- + +### bulkSetKeyInCollection + +▸ `Private` **bulkSetKeyInCollection**(`updateChunkTxs`, `collection`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :--------------- | :------------ | +| `updateChunkTxs` | `DBTx`[] | +| `collection` | `ObjectStore` | + +#### Returns + +`Promise`<`void`\> + +--- + +### confirmHomeLocation + +▸ **confirmHomeLocation**(`location`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :--------- | :-------------- | +| `location` | `WorldLocation` | + +#### Returns + +`Promise`<`void`\> + +--- + +### destroy + +▸ **destroy**(): `void` + +#### Returns + +`void` + +--- + +### getChunkByFootprint + +▸ **getChunkByFootprint**(`chunkLoc`): `undefined` \| `Chunk` + +Returns the explored chunk data for the given rectangle if that chunk has been mined. If this +chunk is entirely contained within another bigger chunk that has been mined, return that chunk. +`chunkLoc` is an aligned square, as defined in ChunkUtils.ts in the `getSiblingLocations` +function. + +#### Parameters + +| Name | Type | +| :--------- | :---------- | +| `chunkLoc` | `Rectangle` | + +#### Returns + +`undefined` \| `Chunk` + +--- + +### getChunkById + +▸ `Private` **getChunkById**(`chunkId`): `undefined` \| `Chunk` + +#### Parameters + +| Name | Type | +| :-------- | :---------------------------------------------------------------------- | +| `chunkId` | [`ChunkId`](../modules/types_darkforest_api_ChunkStoreTypes.md#chunkid) | + +#### Returns + +`undefined` \| `Chunk` + +--- + +### getHomeLocations + +▸ **getHomeLocations**(): `Promise`<`WorldLocation`[]\> + +we keep a list rather than a single location, since client/contract can +often go out of sync on initialization - if client thinks that init +failed but is wrong, it will prompt user to initialize with new home coords, +which bricks the user's account. + +#### Returns + +`Promise`<`WorldLocation`[]\> + +--- + +### getKey + +▸ `Private` **getKey**(`key`, `objStore?`): `Promise`<`undefined` \| `string`\> + +Important! This sets the key in indexed db per account and per contract. This means the same +client can connect to multiple different dark forest contracts, with multiple different +accounts, and the persistent storage will not overwrite data that is not relevant for the +current configuration of the client. + +#### Parameters + +| Name | Type | Default value | +| :--------- | :------------ | :-------------------- | +| `key` | `string` | `undefined` | +| `objStore` | `ObjectStore` | `ObjectStore.DEFAULT` | + +#### Returns + +`Promise`<`undefined` \| `string`\> + +--- + +### getMinedSubChunks + +▸ `Private` **getMinedSubChunks**(`chunk`): `Chunk`[] + +Returns all the mined chunks with smaller sidelength strictly contained in the chunk. + +TODO: move this into ChunkUtils, and also make use of it, the way that it is currently used, in +the function named `addToChunkMap`. + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +`Chunk`[] + +--- + +### getSavedClaimedCoords + +▸ **getSavedClaimedCoords**(): `Promise`<`ClaimedCoords`[]\> + +#### Returns + +`Promise`<`ClaimedCoords`[]\> + +--- + +### getSavedRevealedCoords + +▸ **getSavedRevealedCoords**(): `Promise`<`RevealedCoords`[]\> + +#### Returns + +`Promise`<`RevealedCoords`[]\> + +--- + +### getSavedTouchedPlanetIds + +▸ **getSavedTouchedPlanetIds**(): `Promise`<`LocationId`[]\> + +#### Returns + +`Promise`<`LocationId`[]\> + +--- + +### getUnconfirmedSubmittedEthTxs + +▸ **getUnconfirmedSubmittedEthTxs**(): `Promise`<`PersistedTransaction`<`TxIntent`\>[]\> + +#### Returns + +`Promise`<`PersistedTransaction`<`TxIntent`\>[]\> + +--- + +### hasMinedChunk + +▸ **hasMinedChunk**(`chunkLoc`): `boolean` + +#### Parameters + +| Name | Type | +| :--------- | :---------- | +| `chunkLoc` | `Rectangle` | + +#### Returns + +`boolean` + +#### Implementation of + +[ChunkStore](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md).[hasMinedChunk](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md#hasminedchunk) + +--- + +### loadChunks + +▸ `Private` **loadChunks**(): `Promise`<`void`\> + +This function loads all chunks persisted in the user's storage into the game. + +#### Returns + +`Promise`<`void`\> + +--- + +### loadModalPositions + +▸ **loadModalPositions**(): `Promise`<`Map`<`ModalId`, `ModalPosition`\>\> + +#### Returns + +`Promise`<`Map`<`ModalId`, `ModalPosition`\>\> + +--- + +### loadPlugins + +▸ **loadPlugins**(): `Promise`<[`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[]\> + +#### Returns + +`Promise`<[`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[]\> + +--- + +### onEthTxComplete + +▸ **onEthTxComplete**(`txHash`): `Promise`<`void`\> + +Partner function to {@link PersistentChunkStore#onEthTxSubmit} + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `txHash` | `string` | + +#### Returns + +`Promise`<`void`\> + +--- + +### onEthTxSubmit + +▸ **onEthTxSubmit**(`tx`): `Promise`<`void`\> + +Whenever a transaction is submitted, it is persisted. When the transaction either fails or +succeeds, it is un-persisted. The reason we persist submitted transactions is to be able to +wait for them upon a fresh start of the game if you close the game before a transaction +confirms. + +#### Parameters + +| Name | Type | +| :--- | :------------------------- | +| `tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`Promise`<`void`\> + +--- + +### persistQueuedChunks + +▸ `Private` **persistQueuedChunks**(): `Promise`<`void`\> + +Rather than saving a chunk immediately after it's mined, we queue up new chunks, and +periodically save them. This function gets all of the queued new chunks, and persists them to +indexed db. + +#### Returns + +`Promise`<`void`\> + +--- + +### recomputeSaveThrottleAfterUpdate + +▸ `Private` **recomputeSaveThrottleAfterUpdate**(): `void` + +#### Returns + +`void` + +--- + +### removeKey + +▸ `Private` **removeKey**(`key`, `objStore?`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | Default value | +| :--------- | :------------ | :-------------------- | +| `key` | `string` | `undefined` | +| `objStore` | `ObjectStore` | `ObjectStore.DEFAULT` | + +#### Returns + +`Promise`<`void`\> + +--- + +### saveClaimedCoords + +▸ **saveClaimedCoords**(`claimedCoordTupps`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------------------ | :---------------- | +| `claimedCoordTupps` | `ClaimedCoords`[] | + +#### Returns + +`Promise`<`void`\> + +--- + +### saveModalPositions + +▸ **saveModalPositions**(`modalPositions`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :--------------- | :--------------------------------- | +| `modalPositions` | `Map`<`ModalId`, `ModalPosition`\> | + +#### Returns + +`Promise`<`void`\> + +--- + +### savePlugins + +▸ **savePlugins**(`plugins`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :-------- | :----------------------------------------------------------------------------------------- | +| `plugins` | [`SerializedPlugin`](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md)[] | + +#### Returns + +`Promise`<`void`\> + +--- + +### saveRevealedCoords + +▸ **saveRevealedCoords**(`revealedCoordTups`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------------------ | :----------------- | +| `revealedCoordTups` | `RevealedCoords`[] | + +#### Returns + +`Promise`<`void`\> + +--- + +### saveTouchedPlanetIds + +▸ **saveTouchedPlanetIds**(`ids`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :---- | :------------- | +| `ids` | `LocationId`[] | + +#### Returns + +`Promise`<`void`\> + +--- + +### setDiagnosticUpdater + +▸ **setDiagnosticUpdater**(`diagnosticUpdater?`): `void` + +#### Parameters + +| Name | Type | +| :------------------- | :------------------ | +| `diagnosticUpdater?` | `DiagnosticUpdater` | + +#### Returns + +`void` + +--- + +### setKey + +▸ `Private` **setKey**(`key`, `value`, `objStore?`): `Promise`<`void`\> + +Important! This sets the key in indexed db per account and per contract. This means the same +client can connect to multiple different dark forest contracts, with multiple different +accounts, and the persistent storage will not overwrite data that is not relevant for the +current configuration of the client. + +#### Parameters + +| Name | Type | Default value | +| :--------- | :------------ | :-------------------- | +| `key` | `string` | `undefined` | +| `value` | `string` | `undefined` | +| `objStore` | `ObjectStore` | `ObjectStore.DEFAULT` | + +#### Returns + +`Promise`<`void`\> + +--- + +### create + +▸ `Static` **create**(`__namedParameters`): `Promise`<[`default`](Backend_Storage_PersistentChunkStore.default.md)\> + +NOTE! if you're creating a new object store, it will not be _added_ to existing dark forest +accounts. This creation code runs once per account. Therefore, if you're adding a new object +store, and need to test it out, you must either clear the indexed db databse for this account, +or create a brand new account. + +#### Parameters + +| Name | Type | +| :------------------ | :-------------------------------------------- | +| `__namedParameters` | `Omit`<`PersistentChunkStoreConfig`, `"db"`\> | + +#### Returns + +`Promise`<[`default`](Backend_Storage_PersistentChunkStore.default.md)\> diff --git a/docs/classes/Backend_Storage_ReaderDataStore.default.md b/docs/classes/Backend_Storage_ReaderDataStore.default.md new file mode 100644 index 00000000..76cbf30d --- /dev/null +++ b/docs/classes/Backend_Storage_ReaderDataStore.default.md @@ -0,0 +1,210 @@ +# Class: default + +[Backend/Storage/ReaderDataStore](../modules/Backend_Storage_ReaderDataStore.md).default + +A data store that allows you to retrieve data from the contract, +and combine it with data that is stored in this browser about a +particular user. + +## Table of contents + +### Constructors + +- [constructor](Backend_Storage_ReaderDataStore.default.md#constructor) + +### Properties + +- [addressTwitterMap](Backend_Storage_ReaderDataStore.default.md#addresstwittermap) +- [contractConstants](Backend_Storage_ReaderDataStore.default.md#contractconstants) +- [contractsAPI](Backend_Storage_ReaderDataStore.default.md#contractsapi) +- [persistentChunkStore](Backend_Storage_ReaderDataStore.default.md#persistentchunkstore) +- [viewer](Backend_Storage_ReaderDataStore.default.md#viewer) + +### Methods + +- [destroy](Backend_Storage_ReaderDataStore.default.md#destroy) +- [getBiome](Backend_Storage_ReaderDataStore.default.md#getbiome) +- [getTwitter](Backend_Storage_ReaderDataStore.default.md#gettwitter) +- [getViewer](Backend_Storage_ReaderDataStore.default.md#getviewer) +- [loadArtifactFromContract](Backend_Storage_ReaderDataStore.default.md#loadartifactfromcontract) +- [loadPlanetFromContract](Backend_Storage_ReaderDataStore.default.md#loadplanetfromcontract) +- [setPlanetLocationIfKnown](Backend_Storage_ReaderDataStore.default.md#setplanetlocationifknown) +- [spaceTypeFromPerlin](Backend_Storage_ReaderDataStore.default.md#spacetypefromperlin) +- [create](Backend_Storage_ReaderDataStore.default.md#create) + +## Constructors + +### constructor + +• `Private` **new default**(`__namedParameters`) + +#### Parameters + +| Name | Type | +| :------------------ | :---------------------- | +| `__namedParameters` | `ReaderDataStoreConfig` | + +## Properties + +### addressTwitterMap + +• `Private` `Readonly` **addressTwitterMap**: [`AddressTwitterMap`](../modules/types_darkforest_api_UtilityServerAPITypes.md#addresstwittermap) + +--- + +### contractConstants + +• `Private` `Readonly` **contractConstants**: [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) + +--- + +### contractsAPI + +• `Private` `Readonly` **contractsAPI**: [`ContractsAPI`](Backend_GameLogic_ContractsAPI.ContractsAPI.md) + +--- + +### persistentChunkStore + +• `Private` `Readonly` **persistentChunkStore**: `undefined` \| [`default`](Backend_Storage_PersistentChunkStore.default.md) + +--- + +### viewer + +• `Private` `Readonly` **viewer**: `undefined` \| `EthAddress` + +## Methods + +### destroy + +▸ **destroy**(): `void` + +#### Returns + +`void` + +--- + +### getBiome + +▸ `Private` **getBiome**(`loc`): `Biome` + +#### Parameters + +| Name | Type | +| :---- | :-------------- | +| `loc` | `WorldLocation` | + +#### Returns + +`Biome` + +--- + +### getTwitter + +▸ **getTwitter**(`owner`): `undefined` \| `string` + +#### Parameters + +| Name | Type | +| :------ | :-------------------------- | +| `owner` | `undefined` \| `EthAddress` | + +#### Returns + +`undefined` \| `string` + +--- + +### getViewer + +▸ **getViewer**(): `undefined` \| `EthAddress` + +#### Returns + +`undefined` \| `EthAddress` + +--- + +### loadArtifactFromContract + +▸ **loadArtifactFromContract**(`artifactId`): `Promise`<`Artifact`\> + +#### Parameters + +| Name | Type | +| :----------- | :----------- | +| `artifactId` | `ArtifactId` | + +#### Returns + +`Promise`<`Artifact`\> + +--- + +### loadPlanetFromContract + +▸ **loadPlanetFromContract**(`planetId`): `Promise`<`Planet` \| `LocatablePlanet`\> + +#### Parameters + +| Name | Type | +| :--------- | :----------- | +| `planetId` | `LocationId` | + +#### Returns + +`Promise`<`Planet` \| `LocatablePlanet`\> + +--- + +### setPlanetLocationIfKnown + +▸ `Private` **setPlanetLocationIfKnown**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### spaceTypeFromPerlin + +▸ `Private` **spaceTypeFromPerlin**(`perlin`): `SpaceType` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `perlin` | `number` | + +#### Returns + +`SpaceType` + +--- + +### create + +▸ `Static` **create**(`__namedParameters`): `Promise`<[`default`](Backend_Storage_ReaderDataStore.default.md)\> + +#### Parameters + +| Name | Type | +| :---------------------------------- | :-------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.connection` | `EthConnection` | +| `__namedParameters.contractAddress` | `EthAddress` | +| `__namedParameters.viewer` | `undefined` \| `EthAddress` | + +#### Returns + +`Promise`<[`default`](Backend_Storage_ReaderDataStore.default.md)\> diff --git a/docs/classes/Backend_Utils_SnarkArgsHelper.default.md b/docs/classes/Backend_Utils_SnarkArgsHelper.default.md new file mode 100644 index 00000000..fb39924a --- /dev/null +++ b/docs/classes/Backend_Utils_SnarkArgsHelper.default.md @@ -0,0 +1,298 @@ +# Class: default + +[Backend/Utils/SnarkArgsHelper](../modules/Backend_Utils_SnarkArgsHelper.md).default + +## Table of contents + +### Constructors + +- [constructor](Backend_Utils_SnarkArgsHelper.default.md#constructor) + +### Properties + +- [biomebasePerlinOpts](Backend_Utils_SnarkArgsHelper.default.md#biomebaseperlinopts) +- [hashConfig](Backend_Utils_SnarkArgsHelper.default.md#hashconfig) +- [moveSnarkCache](Backend_Utils_SnarkArgsHelper.default.md#movesnarkcache) +- [planetHashMimc](Backend_Utils_SnarkArgsHelper.default.md#planethashmimc) +- [snarkProverQueue](Backend_Utils_SnarkArgsHelper.default.md#snarkproverqueue) +- [spaceTypePerlinOpts](Backend_Utils_SnarkArgsHelper.default.md#spacetypeperlinopts) +- [terminal](Backend_Utils_SnarkArgsHelper.default.md#terminal) +- [useMockHash](Backend_Utils_SnarkArgsHelper.default.md#usemockhash) +- [DEFAULT_SNARK_CACHE_SIZE](Backend_Utils_SnarkArgsHelper.default.md#default_snark_cache_size) + +### Methods + +- [fakeBiomebaseProof](Backend_Utils_SnarkArgsHelper.default.md#fakebiomebaseproof) +- [fakeInitProof](Backend_Utils_SnarkArgsHelper.default.md#fakeinitproof) +- [fakeMoveProof](Backend_Utils_SnarkArgsHelper.default.md#fakemoveproof) +- [fakeRevealProof](Backend_Utils_SnarkArgsHelper.default.md#fakerevealproof) +- [getFindArtifactArgs](Backend_Utils_SnarkArgsHelper.default.md#getfindartifactargs) +- [getInitArgs](Backend_Utils_SnarkArgsHelper.default.md#getinitargs) +- [getMoveArgs](Backend_Utils_SnarkArgsHelper.default.md#getmoveargs) +- [getRevealArgs](Backend_Utils_SnarkArgsHelper.default.md#getrevealargs) +- [setSnarkCacheSize](Backend_Utils_SnarkArgsHelper.default.md#setsnarkcachesize) +- [create](Backend_Utils_SnarkArgsHelper.default.md#create) + +## Constructors + +### constructor + +• `Private` **new default**(`hashConfig`, `terminal`, `useMockHash`) + +#### Parameters + +| Name | Type | +| :------------ | :-------------------------------------------------------------------------------------------------------------- | +| `hashConfig` | [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) | +| `terminal` | `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> | +| `useMockHash` | `boolean` | + +## Properties + +### biomebasePerlinOpts + +• `Private` `Readonly` **biomebasePerlinOpts**: `PerlinConfig` + +--- + +### hashConfig + +• `Private` `Readonly` **hashConfig**: [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) + +--- + +### moveSnarkCache + +• `Private` **moveSnarkCache**: `default`<`string`, `MoveSnarkContractCallArgs`\> + +--- + +### planetHashMimc + +• `Private` `Readonly` **planetHashMimc**: (...`inputs`: `number`[]) => `BigInteger` + +#### Type declaration + +▸ (...`inputs`): `BigInteger` + +##### Parameters + +| Name | Type | +| :---------- | :--------- | +| `...inputs` | `number`[] | + +##### Returns + +`BigInteger` + +--- + +### snarkProverQueue + +• `Private` `Readonly` **snarkProverQueue**: `SnarkProverQueue` + +--- + +### spaceTypePerlinOpts + +• `Private` `Readonly` **spaceTypePerlinOpts**: `PerlinConfig` + +--- + +### terminal + +• `Private` `Readonly` **terminal**: `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> + +--- + +### useMockHash + +• `Private` `Readonly` **useMockHash**: `boolean` + +--- + +### DEFAULT_SNARK_CACHE_SIZE + +▪ `Static` `Private` `Readonly` **DEFAULT_SNARK_CACHE_SIZE**: `20` + +How many snark results to keep in an LRU cache. + +## Methods + +### fakeBiomebaseProof + +▸ `Private` **fakeBiomebaseProof**(`x`, `y`): `SnarkJSProofAndSignals` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `x` | `number` | +| `y` | `number` | + +#### Returns + +`SnarkJSProofAndSignals` + +--- + +### fakeInitProof + +▸ `Private` **fakeInitProof**(`x`, `y`, `r`): `SnarkJSProofAndSignals` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `x` | `number` | +| `y` | `number` | +| `r` | `number` | + +#### Returns + +`SnarkJSProofAndSignals` + +--- + +### fakeMoveProof + +▸ `Private` **fakeMoveProof**(`x1`, `y1`, `x2`, `y2`, `r`, `distMax`): `SnarkJSProofAndSignals` + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `x1` | `number` | +| `y1` | `number` | +| `x2` | `number` | +| `y2` | `number` | +| `r` | `number` | +| `distMax` | `number` | + +#### Returns + +`SnarkJSProofAndSignals` + +--- + +### fakeRevealProof + +▸ `Private` **fakeRevealProof**(`x`, `y`): `SnarkJSProofAndSignals` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `x` | `number` | +| `y` | `number` | + +#### Returns + +`SnarkJSProofAndSignals` + +--- + +### getFindArtifactArgs + +▸ **getFindArtifactArgs**(`x`, `y`): `Promise`<`BiomebaseSnarkContractCallArgs`\> + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `x` | `number` | +| `y` | `number` | + +#### Returns + +`Promise`<`BiomebaseSnarkContractCallArgs`\> + +--- + +### getInitArgs + +▸ **getInitArgs**(`x`, `y`, `r`): `Promise`<`InitSnarkContractCallArgs`\> + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `x` | `number` | +| `y` | `number` | +| `r` | `number` | + +#### Returns + +`Promise`<`InitSnarkContractCallArgs`\> + +--- + +### getMoveArgs + +▸ **getMoveArgs**(`x1`, `y1`, `x2`, `y2`, `r`, `distMax`): `Promise`<`MoveSnarkContractCallArgs`\> + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `x1` | `number` | +| `y1` | `number` | +| `x2` | `number` | +| `y2` | `number` | +| `r` | `number` | +| `distMax` | `number` | + +#### Returns + +`Promise`<`MoveSnarkContractCallArgs`\> + +--- + +### getRevealArgs + +▸ **getRevealArgs**(`x`, `y`): `Promise`<`RevealSnarkContractCallArgs`\> + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `x` | `number` | +| `y` | `number` | + +#### Returns + +`Promise`<`RevealSnarkContractCallArgs`\> + +--- + +### setSnarkCacheSize + +▸ **setSnarkCacheSize**(`size`): `void` + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `size` | `number` | + +#### Returns + +`void` + +--- + +### create + +▸ `Static` **create**(`hashConfig`, `terminal`, `fakeHash?`): [`default`](Backend_Utils_SnarkArgsHelper.default.md) + +#### Parameters + +| Name | Type | Default value | +| :----------- | :-------------------------------------------------------------------------------------------------------------- | :------------ | +| `hashConfig` | [`HashConfig`](../modules/types_global_GlobalTypes.md#hashconfig) | `undefined` | +| `terminal` | `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> | `undefined` | +| `fakeHash` | `boolean` | `false` | + +#### Returns + +[`default`](Backend_Utils_SnarkArgsHelper.default.md) diff --git a/docs/classes/Backend_Utils_Wrapper.Wrapper.md b/docs/classes/Backend_Utils_Wrapper.Wrapper.md new file mode 100644 index 00000000..f0997381 --- /dev/null +++ b/docs/classes/Backend_Utils_Wrapper.Wrapper.md @@ -0,0 +1,47 @@ +# Class: Wrapper + +[Backend/Utils/Wrapper](../modules/Backend_Utils_Wrapper.md).Wrapper + +React uses referential identity to detect changes, and rerender. Rather +than copying an object into a new object, to force a rerender, we can +just wrap it in a new {@code Wrapper}, which will force a rerender. + +## Type parameters + +| Name | +| :--- | +| `T` | + +## Table of contents + +### Constructors + +- [constructor](Backend_Utils_Wrapper.Wrapper.md#constructor) + +### Properties + +- [value](Backend_Utils_Wrapper.Wrapper.md#value) + +## Constructors + +### constructor + +• **new Wrapper**<`T`\>(`value`) + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | +| :------ | :--- | +| `value` | `T` | + +## Properties + +### value + +• `Readonly` **value**: `T` diff --git a/docs/classes/Frontend_Components_Btn.DarkForestButton.md b/docs/classes/Frontend_Components_Btn.DarkForestButton.md new file mode 100644 index 00000000..6b696796 --- /dev/null +++ b/docs/classes/Frontend_Components_Btn.DarkForestButton.md @@ -0,0 +1,135 @@ +# Class: DarkForestButton + +[Frontend/Components/Btn](../modules/Frontend_Components_Btn.md).DarkForestButton + +## Hierarchy + +- `LitElement` + + ↳ **`DarkForestButton`** + + ↳↳ [`DarkForestShortcutButton`](Frontend_Components_Btn.DarkForestShortcutButton.md) + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Btn.DarkForestButton.md#constructor) + +### Properties + +- [active](Frontend_Components_Btn.DarkForestButton.md#active) +- [disabled](Frontend_Components_Btn.DarkForestButton.md#disabled) +- [size](Frontend_Components_Btn.DarkForestButton.md#size) +- [variant](Frontend_Components_Btn.DarkForestButton.md#variant) +- [properties](Frontend_Components_Btn.DarkForestButton.md#properties) +- [styles](Frontend_Components_Btn.DarkForestButton.md#styles) +- [tagName](Frontend_Components_Btn.DarkForestButton.md#tagname) + +### Methods + +- [\_handleClick](Frontend_Components_Btn.DarkForestButton.md#_handleclick) +- [render](Frontend_Components_Btn.DarkForestButton.md#render) + +## Constructors + +### constructor + +• **new DarkForestButton**() + +#### Inherited from + +LitElement.constructor + +## Properties + +### active + +• **active**: `boolean` + +--- + +### disabled + +• **disabled**: `boolean` + +--- + +### size + +• **size**: `"small"` \| `"stretch"` \| `"medium"` \| `"large"` + +--- + +### variant + +• **variant**: `"normal"` \| `"danger"` + +--- + +### properties + +▪ `Static` **properties**: `Object` + +#### Type declaration + +| Name | Type | +| :-------------- | :------------------------------- | +| `active` | { `type`: `BooleanConstructor` } | +| `active.type` | `BooleanConstructor` | +| `disabled` | { `type`: `BooleanConstructor` } | +| `disabled.type` | `BooleanConstructor` | +| `size` | { `type`: `StringConstructor` } | +| `size.type` | `StringConstructor` | +| `variant` | { `type`: `StringConstructor` } | +| `variant.type` | `StringConstructor` | + +#### Overrides + +LitElement.properties + +--- + +### styles + +▪ `Static` **styles**: `CSSResult`[] + +#### Overrides + +LitElement.styles + +--- + +### tagName + +▪ `Static` **tagName**: `string` + +## Methods + +### \_handleClick + +▸ `Protected` **\_handleClick**(`evt`): `void` + +#### Parameters + +| Name | Type | +| :---- | :----------- | +| `evt` | `MouseEvent` | + +#### Returns + +`void` + +--- + +### render + +▸ **render**(): `TemplateResult`<`1`\> + +#### Returns + +`TemplateResult`<`1`\> + +#### Overrides + +LitElement.render diff --git a/docs/classes/Frontend_Components_Btn.DarkForestShortcutButton.md b/docs/classes/Frontend_Components_Btn.DarkForestShortcutButton.md new file mode 100644 index 00000000..31e0e490 --- /dev/null +++ b/docs/classes/Frontend_Components_Btn.DarkForestShortcutButton.md @@ -0,0 +1,246 @@ +# Class: DarkForestShortcutButton + +[Frontend/Components/Btn](../modules/Frontend_Components_Btn.md).DarkForestShortcutButton + +## Hierarchy + +- [`DarkForestButton`](Frontend_Components_Btn.DarkForestButton.md) + + ↳ **`DarkForestShortcutButton`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Btn.DarkForestShortcutButton.md#constructor) + +### Properties + +- [\_getKeyFromEvent](Frontend_Components_Btn.DarkForestShortcutButton.md#_getkeyfromevent) +- [\_handleKeyDown](Frontend_Components_Btn.DarkForestShortcutButton.md#_handlekeydown) +- [\_handleKeyUp](Frontend_Components_Btn.DarkForestShortcutButton.md#_handlekeyup) +- [\_renderKbd](Frontend_Components_Btn.DarkForestShortcutButton.md#_renderkbd) +- [\_shortcutPressed](Frontend_Components_Btn.DarkForestShortcutButton.md#_shortcutpressed) +- [active](Frontend_Components_Btn.DarkForestShortcutButton.md#active) +- [disabled](Frontend_Components_Btn.DarkForestShortcutButton.md#disabled) +- [shortcutKey](Frontend_Components_Btn.DarkForestShortcutButton.md#shortcutkey) +- [shortcutText](Frontend_Components_Btn.DarkForestShortcutButton.md#shortcuttext) +- [size](Frontend_Components_Btn.DarkForestShortcutButton.md#size) +- [variant](Frontend_Components_Btn.DarkForestShortcutButton.md#variant) +- [properties](Frontend_Components_Btn.DarkForestShortcutButton.md#properties) +- [styles](Frontend_Components_Btn.DarkForestShortcutButton.md#styles) +- [tagName](Frontend_Components_Btn.DarkForestShortcutButton.md#tagname) + +### Methods + +- [\_handleClick](Frontend_Components_Btn.DarkForestShortcutButton.md#_handleclick) +- [connectedCallback](Frontend_Components_Btn.DarkForestShortcutButton.md#connectedcallback) +- [disconnectedCallback](Frontend_Components_Btn.DarkForestShortcutButton.md#disconnectedcallback) +- [render](Frontend_Components_Btn.DarkForestShortcutButton.md#render) + +## Constructors + +### constructor + +• **new DarkForestShortcutButton**() + +#### Inherited from + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[constructor](Frontend_Components_Btn.DarkForestButton.md#constructor) + +## Properties + +### \_getKeyFromEvent + +• `Private` **\_getKeyFromEvent**: `any` + +--- + +### \_handleKeyDown + +• `Private` **\_handleKeyDown**: `any` + +--- + +### \_handleKeyUp + +• `Private` **\_handleKeyUp**: `any` + +--- + +### \_renderKbd + +• `Private` **\_renderKbd**: `any` + +--- + +### \_shortcutPressed + +• `Private` **\_shortcutPressed**: `any` + +--- + +### active + +• **active**: `boolean` + +#### Inherited from + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[active](Frontend_Components_Btn.DarkForestButton.md#active) + +--- + +### disabled + +• **disabled**: `boolean` + +#### Inherited from + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[disabled](Frontend_Components_Btn.DarkForestButton.md#disabled) + +--- + +### shortcutKey + +• `Optional` **shortcutKey**: `string` + +The `shortcutKey` indicates which key this component listens for while it is mounted + +--- + +### shortcutText + +• `Optional` **shortcutText**: `string` + +The `shortcutText` indicates the key should be displayed and with what text + +--- + +### size + +• **size**: `"small"` \| `"stretch"` \| `"medium"` \| `"large"` + +#### Inherited from + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[size](Frontend_Components_Btn.DarkForestButton.md#size) + +--- + +### variant + +• **variant**: `"normal"` \| `"danger"` + +#### Inherited from + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[variant](Frontend_Components_Btn.DarkForestButton.md#variant) + +--- + +### properties + +▪ `Static` **properties**: `Object` + +#### Type declaration + +| Name | Type | +| :----------------------- | :------------------------------- | +| `_shortcutPressed` | { `state`: `boolean` } | +| `_shortcutPressed.state` | `boolean` | +| `active` | { `type`: `BooleanConstructor` } | +| `active.type` | `BooleanConstructor` | +| `disabled` | { `type`: `BooleanConstructor` } | +| `disabled.type` | `BooleanConstructor` | +| `shortcutKey` | { `type`: `StringConstructor` } | +| `shortcutKey.type` | `StringConstructor` | +| `shortcutText` | { `type`: `StringConstructor` } | +| `shortcutText.type` | `StringConstructor` | +| `size` | { `type`: `StringConstructor` } | +| `size.type` | `StringConstructor` | +| `variant` | { `type`: `StringConstructor` } | +| `variant.type` | `StringConstructor` | + +#### Overrides + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[properties](Frontend_Components_Btn.DarkForestButton.md#properties) + +--- + +### styles + +▪ `Static` **styles**: `CSSResult`[] + +#### Overrides + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[styles](Frontend_Components_Btn.DarkForestButton.md#styles) + +--- + +### tagName + +▪ `Static` **tagName**: `string` + +#### Overrides + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[tagName](Frontend_Components_Btn.DarkForestButton.md#tagname) + +## Methods + +### \_handleClick + +▸ `Protected` **\_handleClick**(`evt`): `void` + +#### Parameters + +| Name | Type | +| :---- | :----------- | +| `evt` | `MouseEvent` | + +#### Returns + +`void` + +#### Inherited from + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[\_handleClick](Frontend_Components_Btn.DarkForestButton.md#_handleclick) + +--- + +### connectedCallback + +▸ **connectedCallback**(): `void` + +#### Returns + +`void` + +#### Overrides + +DarkForestButton.connectedCallback + +--- + +### disconnectedCallback + +▸ **disconnectedCallback**(): `void` + +#### Returns + +`void` + +#### Overrides + +DarkForestButton.disconnectedCallback + +--- + +### render + +▸ **render**(): `TemplateResult`<`1`\> + +#### Returns + +`TemplateResult`<`1`\> + +#### Overrides + +[DarkForestButton](Frontend_Components_Btn.DarkForestButton.md).[render](Frontend_Components_Btn.DarkForestButton.md#render) diff --git a/docs/classes/Frontend_Components_Btn.ShortcutPressedEvent.md b/docs/classes/Frontend_Components_Btn.ShortcutPressedEvent.md new file mode 100644 index 00000000..42086c67 --- /dev/null +++ b/docs/classes/Frontend_Components_Btn.ShortcutPressedEvent.md @@ -0,0 +1,25 @@ +# Class: ShortcutPressedEvent + +[Frontend/Components/Btn](../modules/Frontend_Components_Btn.md).ShortcutPressedEvent + +## Hierarchy + +- `Event` + + ↳ **`ShortcutPressedEvent`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Btn.ShortcutPressedEvent.md#constructor) + +## Constructors + +### constructor + +• **new ShortcutPressedEvent**() + +#### Overrides + +Event.constructor diff --git a/docs/classes/Frontend_Components_Input.DarkForestCheckbox.md b/docs/classes/Frontend_Components_Input.DarkForestCheckbox.md new file mode 100644 index 00000000..07847799 --- /dev/null +++ b/docs/classes/Frontend_Components_Input.DarkForestCheckbox.md @@ -0,0 +1,185 @@ +# Class: DarkForestCheckbox + +[Frontend/Components/Input](../modules/Frontend_Components_Input.md).DarkForestCheckbox + +## Hierarchy + +- `LitElement` + + ↳ **`DarkForestCheckbox`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Input.DarkForestCheckbox.md#constructor) + +### Properties + +- [\_handleInput](Frontend_Components_Input.DarkForestCheckbox.md#_handleinput) +- [\_handleKeyDown](Frontend_Components_Input.DarkForestCheckbox.md#_handlekeydown) +- [\_handleKeyUp](Frontend_Components_Input.DarkForestCheckbox.md#_handlekeyup) +- [\_inputRef](Frontend_Components_Input.DarkForestCheckbox.md#_inputref) +- [checked](Frontend_Components_Input.DarkForestCheckbox.md#checked) +- [disabled](Frontend_Components_Input.DarkForestCheckbox.md#disabled) +- [label](Frontend_Components_Input.DarkForestCheckbox.md#label) +- [selected](Frontend_Components_Input.DarkForestCheckbox.md#selected) +- [properties](Frontend_Components_Input.DarkForestCheckbox.md#properties) +- [styles](Frontend_Components_Input.DarkForestCheckbox.md#styles) +- [tagName](Frontend_Components_Input.DarkForestCheckbox.md#tagname) + +### Methods + +- [firstUpdated](Frontend_Components_Input.DarkForestCheckbox.md#firstupdated) +- [focus](Frontend_Components_Input.DarkForestCheckbox.md#focus) +- [render](Frontend_Components_Input.DarkForestCheckbox.md#render) +- [select](Frontend_Components_Input.DarkForestCheckbox.md#select) + +## Constructors + +### constructor + +• **new DarkForestCheckbox**() + +#### Inherited from + +LitElement.constructor + +## Properties + +### \_handleInput + +• `Private` **\_handleInput**: `any` + +--- + +### \_handleKeyDown + +• `Private` **\_handleKeyDown**: `any` + +--- + +### \_handleKeyUp + +• `Private` **\_handleKeyUp**: `any` + +--- + +### \_inputRef + +• `Private` **\_inputRef**: `any` + +--- + +### checked + +• **checked**: `boolean` + +--- + +### disabled + +• `Optional` **disabled**: `boolean` + +--- + +### label + +• `Optional` **label**: `string` + +--- + +### selected + +• **selected**: `boolean` + +--- + +### properties + +▪ `Static` **properties**: `Object` + +#### Type declaration + +| Name | Type | +| :-------------- | :------------------------------- | +| `checked` | { `type`: `BooleanConstructor` } | +| `checked.type` | `BooleanConstructor` | +| `disabled` | { `type`: `BooleanConstructor` } | +| `disabled.type` | `BooleanConstructor` | +| `label` | { `type`: `StringConstructor` } | +| `label.type` | `StringConstructor` | +| `selected` | { `type`: `BooleanConstructor` } | +| `selected.type` | `BooleanConstructor` | + +#### Overrides + +LitElement.properties + +--- + +### styles + +▪ `Static` **styles**: `CSSResult` + +#### Overrides + +LitElement.styles + +--- + +### tagName + +▪ `Static` **tagName**: `string` + +## Methods + +### firstUpdated + +▸ **firstUpdated**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.firstUpdated + +--- + +### focus + +▸ **focus**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.focus + +--- + +### render + +▸ **render**(): `TemplateResult`<`1`\> + +#### Returns + +`TemplateResult`<`1`\> + +#### Overrides + +LitElement.render + +--- + +### select + +▸ **select**(): `void` + +#### Returns + +`void` diff --git a/docs/classes/Frontend_Components_Input.DarkForestColorInput.md b/docs/classes/Frontend_Components_Input.DarkForestColorInput.md new file mode 100644 index 00000000..88390514 --- /dev/null +++ b/docs/classes/Frontend_Components_Input.DarkForestColorInput.md @@ -0,0 +1,185 @@ +# Class: DarkForestColorInput + +[Frontend/Components/Input](../modules/Frontend_Components_Input.md).DarkForestColorInput + +## Hierarchy + +- `LitElement` + + ↳ **`DarkForestColorInput`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Input.DarkForestColorInput.md#constructor) + +### Properties + +- [\_handleInput](Frontend_Components_Input.DarkForestColorInput.md#_handleinput) +- [\_handleKeyDown](Frontend_Components_Input.DarkForestColorInput.md#_handlekeydown) +- [\_handleKeyUp](Frontend_Components_Input.DarkForestColorInput.md#_handlekeyup) +- [\_inputRef](Frontend_Components_Input.DarkForestColorInput.md#_inputref) +- [disabled](Frontend_Components_Input.DarkForestColorInput.md#disabled) +- [readonly](Frontend_Components_Input.DarkForestColorInput.md#readonly) +- [selected](Frontend_Components_Input.DarkForestColorInput.md#selected) +- [value](Frontend_Components_Input.DarkForestColorInput.md#value) +- [properties](Frontend_Components_Input.DarkForestColorInput.md#properties) +- [styles](Frontend_Components_Input.DarkForestColorInput.md#styles) +- [tagName](Frontend_Components_Input.DarkForestColorInput.md#tagname) + +### Methods + +- [firstUpdated](Frontend_Components_Input.DarkForestColorInput.md#firstupdated) +- [focus](Frontend_Components_Input.DarkForestColorInput.md#focus) +- [render](Frontend_Components_Input.DarkForestColorInput.md#render) +- [select](Frontend_Components_Input.DarkForestColorInput.md#select) + +## Constructors + +### constructor + +• **new DarkForestColorInput**() + +#### Inherited from + +LitElement.constructor + +## Properties + +### \_handleInput + +• `Private` **\_handleInput**: `any` + +--- + +### \_handleKeyDown + +• `Private` **\_handleKeyDown**: `any` + +--- + +### \_handleKeyUp + +• `Private` **\_handleKeyUp**: `any` + +--- + +### \_inputRef + +• `Private` **\_inputRef**: `any` + +--- + +### disabled + +• `Optional` **disabled**: `boolean` + +--- + +### readonly + +• **readonly**: `boolean` + +--- + +### selected + +• **selected**: `boolean` + +--- + +### value + +• **value**: `string` + +--- + +### properties + +▪ `Static` **properties**: `Object` + +#### Type declaration + +| Name | Type | +| :-------------- | :------------------------------- | +| `disabled` | { `type`: `BooleanConstructor` } | +| `disabled.type` | `BooleanConstructor` | +| `readonly` | { `type`: `BooleanConstructor` } | +| `readonly.type` | `BooleanConstructor` | +| `selected` | { `type`: `BooleanConstructor` } | +| `selected.type` | `BooleanConstructor` | +| `value` | { `type`: `StringConstructor` } | +| `value.type` | `StringConstructor` | + +#### Overrides + +LitElement.properties + +--- + +### styles + +▪ `Static` **styles**: `CSSResult` + +#### Overrides + +LitElement.styles + +--- + +### tagName + +▪ `Static` **tagName**: `string` + +## Methods + +### firstUpdated + +▸ **firstUpdated**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.firstUpdated + +--- + +### focus + +▸ **focus**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.focus + +--- + +### render + +▸ **render**(): `TemplateResult`<`1`\> + +#### Returns + +`TemplateResult`<`1`\> + +#### Overrides + +LitElement.render + +--- + +### select + +▸ **select**(): `void` + +#### Returns + +`void` diff --git a/docs/classes/Frontend_Components_Input.DarkForestNumberInput.md b/docs/classes/Frontend_Components_Input.DarkForestNumberInput.md new file mode 100644 index 00000000..e937b022 --- /dev/null +++ b/docs/classes/Frontend_Components_Input.DarkForestNumberInput.md @@ -0,0 +1,229 @@ +# Class: DarkForestNumberInput + +[Frontend/Components/Input](../modules/Frontend_Components_Input.md).DarkForestNumberInput + +## Hierarchy + +- `LitElement` + + ↳ **`DarkForestNumberInput`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Input.DarkForestNumberInput.md#constructor) + +### Properties + +- [\_handleInput](Frontend_Components_Input.DarkForestNumberInput.md#_handleinput) +- [\_handleKeyDown](Frontend_Components_Input.DarkForestNumberInput.md#_handlekeydown) +- [\_handleKeyUp](Frontend_Components_Input.DarkForestNumberInput.md#_handlekeyup) +- [\_handleWheel](Frontend_Components_Input.DarkForestNumberInput.md#_handlewheel) +- [\_inputRef](Frontend_Components_Input.DarkForestNumberInput.md#_inputref) +- [\_value](Frontend_Components_Input.DarkForestNumberInput.md#_value) +- [disabled](Frontend_Components_Input.DarkForestNumberInput.md#disabled) +- [format](Frontend_Components_Input.DarkForestNumberInput.md#format) +- [readonly](Frontend_Components_Input.DarkForestNumberInput.md#readonly) +- [selected](Frontend_Components_Input.DarkForestNumberInput.md#selected) +- [properties](Frontend_Components_Input.DarkForestNumberInput.md#properties) +- [styles](Frontend_Components_Input.DarkForestNumberInput.md#styles) +- [tagName](Frontend_Components_Input.DarkForestNumberInput.md#tagname) + +### Accessors + +- [value](Frontend_Components_Input.DarkForestNumberInput.md#value) + +### Methods + +- [firstUpdated](Frontend_Components_Input.DarkForestNumberInput.md#firstupdated) +- [focus](Frontend_Components_Input.DarkForestNumberInput.md#focus) +- [render](Frontend_Components_Input.DarkForestNumberInput.md#render) +- [select](Frontend_Components_Input.DarkForestNumberInput.md#select) + +## Constructors + +### constructor + +• **new DarkForestNumberInput**() + +#### Inherited from + +LitElement.constructor + +## Properties + +### \_handleInput + +• `Private` **\_handleInput**: `any` + +--- + +### \_handleKeyDown + +• `Private` **\_handleKeyDown**: `any` + +--- + +### \_handleKeyUp + +• `Private` **\_handleKeyUp**: `any` + +--- + +### \_handleWheel + +• `Private` **\_handleWheel**: `any` + +--- + +### \_inputRef + +• `Private` **\_inputRef**: `any` + +--- + +### \_value + +• `Private` **\_value**: `any` + +--- + +### disabled + +• `Optional` **disabled**: `boolean` + +--- + +### format + +• **format**: `"integer"` \| `"float"` + +--- + +### readonly + +• **readonly**: `boolean` + +--- + +### selected + +• **selected**: `boolean` + +--- + +### properties + +▪ `Static` **properties**: `Object` + +#### Type declaration + +| Name | Type | +| :-------------- | :------------------------------- | +| `_value` | { `state`: `boolean` } | +| `_value.state` | `boolean` | +| `disabled` | { `type`: `BooleanConstructor` } | +| `disabled.type` | `BooleanConstructor` | +| `format` | { `type`: `StringConstructor` } | +| `format.type` | `StringConstructor` | +| `readonly` | { `type`: `BooleanConstructor` } | +| `readonly.type` | `BooleanConstructor` | +| `selected` | { `type`: `BooleanConstructor` } | +| `selected.type` | `BooleanConstructor` | +| `value` | { `type`: `NumberConstructor` } | +| `value.type` | `NumberConstructor` | + +#### Overrides + +LitElement.properties + +--- + +### styles + +▪ `Static` **styles**: `CSSResult` + +#### Overrides + +LitElement.styles + +--- + +### tagName + +▪ `Static` **tagName**: `string` + +## Accessors + +### value + +• `get` **value**(): `undefined` \| `number` + +#### Returns + +`undefined` \| `number` + +• `set` **value**(`newValue`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :---------------------- | +| `newValue` | `undefined` \| `number` | + +#### Returns + +`void` + +## Methods + +### firstUpdated + +▸ **firstUpdated**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.firstUpdated + +--- + +### focus + +▸ **focus**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.focus + +--- + +### render + +▸ **render**(): `TemplateResult`<`1`\> + +#### Returns + +`TemplateResult`<`1`\> + +#### Overrides + +LitElement.render + +--- + +### select + +▸ **select**(): `void` + +#### Returns + +`void` diff --git a/docs/classes/Frontend_Components_Input.DarkForestTextInput.md b/docs/classes/Frontend_Components_Input.DarkForestTextInput.md new file mode 100644 index 00000000..61dc0192 --- /dev/null +++ b/docs/classes/Frontend_Components_Input.DarkForestTextInput.md @@ -0,0 +1,194 @@ +# Class: DarkForestTextInput + +[Frontend/Components/Input](../modules/Frontend_Components_Input.md).DarkForestTextInput + +## Hierarchy + +- `LitElement` + + ↳ **`DarkForestTextInput`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Input.DarkForestTextInput.md#constructor) + +### Properties + +- [\_handleInput](Frontend_Components_Input.DarkForestTextInput.md#_handleinput) +- [\_handleKeyDown](Frontend_Components_Input.DarkForestTextInput.md#_handlekeydown) +- [\_handleKeyUp](Frontend_Components_Input.DarkForestTextInput.md#_handlekeyup) +- [\_inputRef](Frontend_Components_Input.DarkForestTextInput.md#_inputref) +- [disabled](Frontend_Components_Input.DarkForestTextInput.md#disabled) +- [placeholder](Frontend_Components_Input.DarkForestTextInput.md#placeholder) +- [readonly](Frontend_Components_Input.DarkForestTextInput.md#readonly) +- [selected](Frontend_Components_Input.DarkForestTextInput.md#selected) +- [value](Frontend_Components_Input.DarkForestTextInput.md#value) +- [properties](Frontend_Components_Input.DarkForestTextInput.md#properties) +- [styles](Frontend_Components_Input.DarkForestTextInput.md#styles) +- [tagName](Frontend_Components_Input.DarkForestTextInput.md#tagname) + +### Methods + +- [firstUpdated](Frontend_Components_Input.DarkForestTextInput.md#firstupdated) +- [focus](Frontend_Components_Input.DarkForestTextInput.md#focus) +- [render](Frontend_Components_Input.DarkForestTextInput.md#render) +- [select](Frontend_Components_Input.DarkForestTextInput.md#select) + +## Constructors + +### constructor + +• **new DarkForestTextInput**() + +#### Inherited from + +LitElement.constructor + +## Properties + +### \_handleInput + +• `Private` **\_handleInput**: `any` + +--- + +### \_handleKeyDown + +• `Private` **\_handleKeyDown**: `any` + +--- + +### \_handleKeyUp + +• `Private` **\_handleKeyUp**: `any` + +--- + +### \_inputRef + +• `Private` **\_inputRef**: `any` + +--- + +### disabled + +• `Optional` **disabled**: `boolean` + +--- + +### placeholder + +• **placeholder**: `string` + +--- + +### readonly + +• **readonly**: `boolean` + +--- + +### selected + +• **selected**: `boolean` + +--- + +### value + +• **value**: `string` + +--- + +### properties + +▪ `Static` **properties**: `Object` + +#### Type declaration + +| Name | Type | +| :----------------- | :------------------------------- | +| `disabled` | { `type`: `BooleanConstructor` } | +| `disabled.type` | `BooleanConstructor` | +| `placeholder` | { `type`: `StringConstructor` } | +| `placeholder.type` | `StringConstructor` | +| `readonly` | { `type`: `BooleanConstructor` } | +| `readonly.type` | `BooleanConstructor` | +| `selected` | { `type`: `BooleanConstructor` } | +| `selected.type` | `BooleanConstructor` | +| `value` | { `type`: `StringConstructor` } | +| `value.type` | `StringConstructor` | + +#### Overrides + +LitElement.properties + +--- + +### styles + +▪ `Static` **styles**: `CSSResult` + +#### Overrides + +LitElement.styles + +--- + +### tagName + +▪ `Static` **tagName**: `string` + +## Methods + +### firstUpdated + +▸ **firstUpdated**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.firstUpdated + +--- + +### focus + +▸ **focus**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.focus + +--- + +### render + +▸ **render**(): `TemplateResult`<`1`\> + +#### Returns + +`TemplateResult`<`1`\> + +#### Overrides + +LitElement.render + +--- + +### select + +▸ **select**(): `void` + +#### Returns + +`void` diff --git a/docs/classes/Frontend_Components_Modal.DarkForestModal.md b/docs/classes/Frontend_Components_Modal.DarkForestModal.md new file mode 100644 index 00000000..f22d1719 --- /dev/null +++ b/docs/classes/Frontend_Components_Modal.DarkForestModal.md @@ -0,0 +1,283 @@ +# Class: DarkForestModal + +[Frontend/Components/Modal](../modules/Frontend_Components_Modal.md).DarkForestModal + +## Hierarchy + +- `LitElement` + + ↳ **`DarkForestModal`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Modal.DarkForestModal.md#constructor) + +### Properties + +- [\_coords](Frontend_Components_Modal.DarkForestModal.md#_coords) +- [\_delCoords](Frontend_Components_Modal.DarkForestModal.md#_delcoords) +- [\_dragging](Frontend_Components_Modal.DarkForestModal.md#_dragging) +- [\_handleMouseMove](Frontend_Components_Modal.DarkForestModal.md#_handlemousemove) +- [\_handleMoveEnd](Frontend_Components_Modal.DarkForestModal.md#_handlemoveend) +- [\_handleResize](Frontend_Components_Modal.DarkForestModal.md#_handleresize) +- [\_mousedownCoords](Frontend_Components_Modal.DarkForestModal.md#_mousedowncoords) +- [\_setDragging](Frontend_Components_Modal.DarkForestModal.md#_setdragging) +- [\_unsetDragging](Frontend_Components_Modal.DarkForestModal.md#_unsetdragging) +- [contain](Frontend_Components_Modal.DarkForestModal.md#contain) +- [index](Frontend_Components_Modal.DarkForestModal.md#index) +- [initialX](Frontend_Components_Modal.DarkForestModal.md#initialx) +- [initialY](Frontend_Components_Modal.DarkForestModal.md#initialy) +- [minimized](Frontend_Components_Modal.DarkForestModal.md#minimized) +- [renderContent](Frontend_Components_Modal.DarkForestModal.md#rendercontent) +- [renderTitleBar](Frontend_Components_Modal.DarkForestModal.md#rendertitlebar) +- [width](Frontend_Components_Modal.DarkForestModal.md#width) +- [properties](Frontend_Components_Modal.DarkForestModal.md#properties) +- [styles](Frontend_Components_Modal.DarkForestModal.md#styles) +- [tagName](Frontend_Components_Modal.DarkForestModal.md#tagname) + +### Methods + +- [connectedCallback](Frontend_Components_Modal.DarkForestModal.md#connectedcallback) +- [disconnectedCallback](Frontend_Components_Modal.DarkForestModal.md#disconnectedcallback) +- [firstUpdated](Frontend_Components_Modal.DarkForestModal.md#firstupdated) +- [render](Frontend_Components_Modal.DarkForestModal.md#render) +- [updated](Frontend_Components_Modal.DarkForestModal.md#updated) + +## Constructors + +### constructor + +• **new DarkForestModal**() + +#### Inherited from + +LitElement.constructor + +## Properties + +### \_coords + +• `Private` `Optional` **\_coords**: `any` + +--- + +### \_delCoords + +• `Private` `Optional` **\_delCoords**: `any` + +--- + +### \_dragging + +• `Private` **\_dragging**: `any` + +--- + +### \_handleMouseMove + +• `Private` **\_handleMouseMove**: `any` + +--- + +### \_handleMoveEnd + +• `Private` **\_handleMoveEnd**: `any` + +--- + +### \_handleResize + +• `Private` **\_handleResize**: `any` + +--- + +### \_mousedownCoords + +• `Private` `Optional` **\_mousedownCoords**: `any` + +--- + +### \_setDragging + +• `Private` **\_setDragging**: `any` + +--- + +### \_unsetDragging + +• `Private` **\_unsetDragging**: `any` + +--- + +### contain + +• **contain**: `Contain`[] + +--- + +### index + +• `Optional` **index**: `number` + +--- + +### initialX + +• `Optional` **initialX**: `number` + +--- + +### initialY + +• `Optional` **initialY**: `number` + +--- + +### minimized + +• **minimized**: `boolean` + +--- + +### renderContent + +• `Private` **renderContent**: `any` + +--- + +### renderTitleBar + +• `Private` **renderTitleBar**: `any` + +--- + +### width + +• `Optional` **width**: `string` + +--- + +### properties + +▪ `Static` **properties**: `Object` + +#### Type declaration + +| Name | Type | +| :----------------------- | :------------------------------- | +| `_delCoords` | { `state`: `boolean` } | +| `_delCoords.state` | `boolean` | +| `_dragging` | { `state`: `boolean` } | +| `_dragging.state` | `boolean` | +| `_mousedownCoords` | { `state`: `boolean` } | +| `_mousedownCoords.state` | `boolean` | +| `contain` | { `type`: `ArrayConstructor` } | +| `contain.type` | `ArrayConstructor` | +| `index` | { `type`: `NumberConstructor` } | +| `index.type` | `NumberConstructor` | +| `initialX` | { `type`: `NumberConstructor` } | +| `initialX.type` | `NumberConstructor` | +| `initialY` | { `type`: `NumberConstructor` } | +| `initialY.type` | `NumberConstructor` | +| `minimized` | { `type`: `BooleanConstructor` } | +| `minimized.type` | `BooleanConstructor` | +| `width` | { `type`: `StringConstructor` } | +| `width.type` | `StringConstructor` | + +#### Overrides + +LitElement.properties + +--- + +### styles + +▪ `Static` **styles**: `CSSResult` + +#### Overrides + +LitElement.styles + +--- + +### tagName + +▪ `Static` **tagName**: `string` + +## Methods + +### connectedCallback + +▸ **connectedCallback**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.connectedCallback + +--- + +### disconnectedCallback + +▸ **disconnectedCallback**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.disconnectedCallback + +--- + +### firstUpdated + +▸ **firstUpdated**(): `void` + +#### Returns + +`void` + +#### Overrides + +LitElement.firstUpdated + +--- + +### render + +▸ **render**(): `TemplateResult`<`1`\> + +#### Returns + +`TemplateResult`<`1`\> + +#### Overrides + +LitElement.render + +--- + +### updated + +▸ **updated**(`changedProperties`): `void` + +#### Parameters + +| Name | Type | +| :------------------ | :-------------------------------------------------- | +| `changedProperties` | `Map`<`string` \| `number` \| `symbol`, `unknown`\> | + +#### Returns + +`void` + +#### Overrides + +LitElement.updated diff --git a/docs/classes/Frontend_Components_Modal.PositionChangedEvent.md b/docs/classes/Frontend_Components_Modal.PositionChangedEvent.md new file mode 100644 index 00000000..f09336be --- /dev/null +++ b/docs/classes/Frontend_Components_Modal.PositionChangedEvent.md @@ -0,0 +1,42 @@ +# Class: PositionChangedEvent + +[Frontend/Components/Modal](../modules/Frontend_Components_Modal.md).PositionChangedEvent + +## Hierarchy + +- `Event` + + ↳ **`PositionChangedEvent`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Modal.PositionChangedEvent.md#constructor) + +### Properties + +- [coords](Frontend_Components_Modal.PositionChangedEvent.md#coords) + +## Constructors + +### constructor + +• **new PositionChangedEvent**(`x`, `y`) + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `x` | `number` | +| `y` | `number` | + +#### Overrides + +Event.constructor + +## Properties + +### coords + +• **coords**: `Coords` diff --git a/docs/classes/Frontend_Components_Slider.DarkForestSlider.md b/docs/classes/Frontend_Components_Slider.DarkForestSlider.md new file mode 100644 index 00000000..d79cd17b --- /dev/null +++ b/docs/classes/Frontend_Components_Slider.DarkForestSlider.md @@ -0,0 +1,163 @@ +# Class: DarkForestSlider + +[Frontend/Components/Slider](../modules/Frontend_Components_Slider.md).DarkForestSlider + +## Hierarchy + +- `Slider` + + ↳ **`DarkForestSlider`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Slider.DarkForestSlider.md#constructor) + +### Properties + +- [\_handleKeyDown](Frontend_Components_Slider.DarkForestSlider.md#_handlekeydown) +- [\_handleKeyUp](Frontend_Components_Slider.DarkForestSlider.md#_handlekeyup) +- [tagName](Frontend_Components_Slider.DarkForestSlider.md#tagname) + +### Accessors + +- [styles](Frontend_Components_Slider.DarkForestSlider.md#styles) + +### Methods + +- [connectedCallback](Frontend_Components_Slider.DarkForestSlider.md#connectedcallback) +- [disconnectedCallback](Frontend_Components_Slider.DarkForestSlider.md#disconnectedcallback) +- [handlePointerdown](Frontend_Components_Slider.DarkForestSlider.md#handlepointerdown) +- [handlePointermove](Frontend_Components_Slider.DarkForestSlider.md#handlepointermove) +- [handlePointerup](Frontend_Components_Slider.DarkForestSlider.md#handlepointerup) + +## Constructors + +### constructor + +• **new DarkForestSlider**() + +#### Inherited from + +Slider.constructor + +## Properties + +### \_handleKeyDown + +• `Private` **\_handleKeyDown**: `any` + +--- + +### \_handleKeyUp + +• `Private` **\_handleKeyUp**: `any` + +--- + +### tagName + +▪ `Static` **tagName**: `string` + +## Accessors + +### styles + +• `Static` `get` **styles**(): `CSSResultArray` + +#### Returns + +`CSSResultArray` + +#### Overrides + +Slider.styles + +## Methods + +### connectedCallback + +▸ **connectedCallback**(): `void` + +#### Returns + +`void` + +#### Overrides + +Slider.connectedCallback + +--- + +### disconnectedCallback + +▸ **disconnectedCallback**(): `void` + +#### Returns + +`void` + +#### Overrides + +Slider.disconnectedCallback + +--- + +### handlePointerdown + +▸ **handlePointerdown**(`event`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------------- | +| `event` | `PointerEvent` | + +#### Returns + +`void` + +#### Overrides + +Slider.handlePointerdown + +--- + +### handlePointermove + +▸ **handlePointermove**(`event`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------------- | +| `event` | `PointerEvent` | + +#### Returns + +`void` + +#### Overrides + +Slider.handlePointermove + +--- + +### handlePointerup + +▸ **handlePointerup**(`event`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------------- | +| `event` | `PointerEvent` | + +#### Returns + +`void` + +#### Overrides + +Slider.handlePointerup diff --git a/docs/classes/Frontend_Components_Slider.DarkForestSliderHandle.md b/docs/classes/Frontend_Components_Slider.DarkForestSliderHandle.md new file mode 100644 index 00000000..2b011a00 --- /dev/null +++ b/docs/classes/Frontend_Components_Slider.DarkForestSliderHandle.md @@ -0,0 +1,75 @@ +# Class: DarkForestSliderHandle + +[Frontend/Components/Slider](../modules/Frontend_Components_Slider.md).DarkForestSliderHandle + +## Hierarchy + +- `SliderHandle` + + ↳ **`DarkForestSliderHandle`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Components_Slider.DarkForestSliderHandle.md#constructor) + +### Properties + +- [\_handleChange](Frontend_Components_Slider.DarkForestSliderHandle.md#_handlechange) +- [tagName](Frontend_Components_Slider.DarkForestSliderHandle.md#tagname) + +### Methods + +- [connectedCallback](Frontend_Components_Slider.DarkForestSliderHandle.md#connectedcallback) +- [disconnectedCallback](Frontend_Components_Slider.DarkForestSliderHandle.md#disconnectedcallback) + +## Constructors + +### constructor + +• **new DarkForestSliderHandle**() + +#### Inherited from + +SliderHandle.constructor + +## Properties + +### \_handleChange + +• `Private` **\_handleChange**: `any` + +--- + +### tagName + +▪ `Static` **tagName**: `string` + +## Methods + +### connectedCallback + +▸ **connectedCallback**(): `void` + +#### Returns + +`void` + +#### Overrides + +SliderHandle.connectedCallback + +--- + +### disconnectedCallback + +▸ **disconnectedCallback**(): `void` + +#### Returns + +`void` + +#### Overrides + +SliderHandle.disconnectedCallback diff --git a/docs/classes/Frontend_Game_ModalManager.default.md b/docs/classes/Frontend_Game_ModalManager.default.md new file mode 100644 index 00000000..9e8105cf --- /dev/null +++ b/docs/classes/Frontend_Game_ModalManager.default.md @@ -0,0 +1,254 @@ +# Class: default + +[Frontend/Game/ModalManager](../modules/Frontend_Game_ModalManager.md).default + +## Hierarchy + +- `EventEmitter` + + ↳ **`default`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Game_ModalManager.default.md#constructor) + +### Properties + +- [activeModalId$](Frontend_Game_ModalManager.default.md#activemodalid$) +- [cursorState](Frontend_Game_ModalManager.default.md#cursorstate) +- [lastIndex](Frontend_Game_ModalManager.default.md#lastindex) +- [modalPositionChanged$](Frontend_Game_ModalManager.default.md#modalpositionchanged$) +- [modalPositions](Frontend_Game_ModalManager.default.md#modalpositions) +- [modalPositions$](Frontend_Game_ModalManager.default.md#modalpositions$) +- [persistentChunkStore](Frontend_Game_ModalManager.default.md#persistentchunkstore) +- [instance](Frontend_Game_ModalManager.default.md#instance) + +### Methods + +- [acceptInputForTarget](Frontend_Game_ModalManager.default.md#acceptinputfortarget) +- [clearModalPosition](Frontend_Game_ModalManager.default.md#clearmodalposition) +- [getCursorState](Frontend_Game_ModalManager.default.md#getcursorstate) +- [getIndex](Frontend_Game_ModalManager.default.md#getindex) +- [getModalPosition](Frontend_Game_ModalManager.default.md#getmodalposition) +- [getModalPositions](Frontend_Game_ModalManager.default.md#getmodalpositions) +- [setCursorState](Frontend_Game_ModalManager.default.md#setcursorstate) +- [setModalPosition](Frontend_Game_ModalManager.default.md#setmodalposition) +- [setModalState](Frontend_Game_ModalManager.default.md#setmodalstate) +- [create](Frontend_Game_ModalManager.default.md#create) + +## Constructors + +### constructor + +• `Private` **new default**(`persistentChunkStore`, `modalPositions`) + +#### Parameters + +| Name | Type | +| :--------------------- | :----------------------------------------------------------- | +| `persistentChunkStore` | [`default`](Backend_Storage_PersistentChunkStore.default.md) | +| `modalPositions` | `Map`<`ModalId`, `ModalPosition`\> | + +#### Overrides + +EventEmitter.constructor + +## Properties + +### activeModalId$ + +• `Readonly` **activeModalId$**: `Monomitter`<`string`\> + +--- + +### cursorState + +• `Private` **cursorState**: `CursorState` + +--- + +### lastIndex + +• `Private` **lastIndex**: `number` + +--- + +### modalPositionChanged$ + +• `Readonly` **modalPositionChanged$**: `Monomitter`<`ModalId`\> + +--- + +### modalPositions + +• `Private` **modalPositions**: `Map`<`ModalId`, `ModalPosition`\> + +--- + +### modalPositions$ + +• **modalPositions$**: `Monomitter`<`Map`<`ModalId`, `ModalPosition`\>\> + +--- + +### persistentChunkStore + +• `Private` **persistentChunkStore**: [`default`](Backend_Storage_PersistentChunkStore.default.md) + +--- + +### instance + +▪ `Static` **instance**: [`default`](Frontend_Game_ModalManager.default.md) + +## Methods + +### acceptInputForTarget + +▸ **acceptInputForTarget**(`input`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------------ | +| `input` | `WorldCoords` | + +#### Returns + +`void` + +--- + +### clearModalPosition + +▸ **clearModalPosition**(`modalId`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :-------- | +| `modalId` | `ModalId` | + +#### Returns + +`void` + +--- + +### getCursorState + +▸ **getCursorState**(): `CursorState` + +#### Returns + +`CursorState` + +--- + +### getIndex + +▸ **getIndex**(): `number` + +#### Returns + +`number` + +--- + +### getModalPosition + +▸ **getModalPosition**(`modalId`): `undefined` \| `ModalPosition` + +#### Parameters + +| Name | Type | +| :-------- | :-------- | +| `modalId` | `ModalId` | + +#### Returns + +`undefined` \| `ModalPosition` + +--- + +### getModalPositions + +▸ **getModalPositions**(`modalIds?`): `Map`<`ModalId`, `ModalPosition`\> + +#### Parameters + +| Name | Type | Default value | +| :--------- | :---------- | :------------ | +| `modalIds` | `ModalId`[] | `[]` | + +#### Returns + +`Map`<`ModalId`, `ModalPosition`\> + +--- + +### setCursorState + +▸ **setCursorState**(`newstate`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :------------ | +| `newstate` | `CursorState` | + +#### Returns + +`void` + +--- + +### setModalPosition + +▸ **setModalPosition**(`modalId`, `pos`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :-------------- | +| `modalId` | `ModalId` | +| `pos` | `ModalPosition` | + +#### Returns + +`void` + +--- + +### setModalState + +▸ **setModalState**(`modalId`, `state`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :-------------------------------------- | +| `modalId` | `ModalId` | +| `state` | `"open"` \| `"minimized"` \| `"closed"` | + +#### Returns + +`void` + +--- + +### create + +▸ `Static` **create**(`persistentChunkStore`): `Promise`<[`default`](Frontend_Game_ModalManager.default.md)\> + +#### Parameters + +| Name | Type | +| :--------------------- | :----------------------------------------------------------- | +| `persistentChunkStore` | [`default`](Backend_Storage_PersistentChunkStore.default.md) | + +#### Returns + +`Promise`<[`default`](Frontend_Game_ModalManager.default.md)\> diff --git a/docs/classes/Frontend_Game_NotificationManager.default.md b/docs/classes/Frontend_Game_NotificationManager.default.md new file mode 100644 index 00000000..d9b073ef --- /dev/null +++ b/docs/classes/Frontend_Game_NotificationManager.default.md @@ -0,0 +1,442 @@ +# Class: default + +[Frontend/Game/NotificationManager](../modules/Frontend_Game_NotificationManager.md).default + +## Hierarchy + +- `EventEmitter` + + ↳ **`default`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Game_NotificationManager.default.md#constructor) + +### Properties + +- [instance](Frontend_Game_NotificationManager.default.md#instance) + +### Methods + +- [artifactFound](Frontend_Game_NotificationManager.default.md#artifactfound) +- [artifactProspected](Frontend_Game_NotificationManager.default.md#artifactprospected) +- [balanceEmpty](Frontend_Game_NotificationManager.default.md#balanceempty) +- [clearNotification](Frontend_Game_NotificationManager.default.md#clearnotification) +- [foundBiome](Frontend_Game_NotificationManager.default.md#foundbiome) +- [foundComet](Frontend_Game_NotificationManager.default.md#foundcomet) +- [foundDeadSpace](Frontend_Game_NotificationManager.default.md#founddeadspace) +- [foundDeepSpace](Frontend_Game_NotificationManager.default.md#founddeepspace) +- [foundFoundry](Frontend_Game_NotificationManager.default.md#foundfoundry) +- [foundPirates](Frontend_Game_NotificationManager.default.md#foundpirates) +- [foundSilver](Frontend_Game_NotificationManager.default.md#foundsilver) +- [foundSilverBank](Frontend_Game_NotificationManager.default.md#foundsilverbank) +- [foundSpace](Frontend_Game_NotificationManager.default.md#foundspace) +- [foundTradingPost](Frontend_Game_NotificationManager.default.md#foundtradingpost) +- [getIcon](Frontend_Game_NotificationManager.default.md#geticon) +- [notify](Frontend_Game_NotificationManager.default.md#notify) +- [planetAttacked](Frontend_Game_NotificationManager.default.md#planetattacked) +- [planetCanUpgrade](Frontend_Game_NotificationManager.default.md#planetcanupgrade) +- [planetConquered](Frontend_Game_NotificationManager.default.md#planetconquered) +- [planetLost](Frontend_Game_NotificationManager.default.md#planetlost) +- [reallyLongNotification](Frontend_Game_NotificationManager.default.md#reallylongnotification) +- [receivedPlanet](Frontend_Game_NotificationManager.default.md#receivedplanet) +- [txInitError](Frontend_Game_NotificationManager.default.md#txiniterror) +- [welcomePlayer](Frontend_Game_NotificationManager.default.md#welcomeplayer) +- [getInstance](Frontend_Game_NotificationManager.default.md#getinstance) + +## Constructors + +### constructor + +• `Private` **new default**() + +#### Overrides + +EventEmitter.constructor + +## Properties + +### instance + +▪ `Static` **instance**: [`default`](Frontend_Game_NotificationManager.default.md) + +## Methods + +### artifactFound + +▸ **artifactFound**(`planet`, `artifact`): `void` + +#### Parameters + +| Name | Type | +| :--------- | :---------------- | +| `planet` | `LocatablePlanet` | +| `artifact` | `Artifact` | + +#### Returns + +`void` + +--- + +### artifactProspected + +▸ **artifactProspected**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :---------------- | +| `planet` | `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### balanceEmpty + +▸ **balanceEmpty**(): `void` + +#### Returns + +`void` + +--- + +### clearNotification + +▸ **clearNotification**(`id`): `void` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `id` | `string` | + +#### Returns + +`void` + +--- + +### foundBiome + +▸ **foundBiome**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :---------------- | +| `planet` | `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### foundComet + +▸ **foundComet**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### foundDeadSpace + +▸ **foundDeadSpace**(`chunk`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +`void` + +--- + +### foundDeepSpace + +▸ **foundDeepSpace**(`chunk`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +`void` + +--- + +### foundFoundry + +▸ **foundFoundry**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :---------------- | +| `planet` | `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### foundPirates + +▸ **foundPirates**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### foundSilver + +▸ **foundSilver**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### foundSilverBank + +▸ **foundSilverBank**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### foundSpace + +▸ **foundSpace**(`chunk`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +`void` + +--- + +### foundTradingPost + +▸ **foundTradingPost**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### getIcon + +▸ `Private` **getIcon**(`type`): `Element` + +#### Parameters + +| Name | Type | +| :----- | :----------------------------------------------------------------------------------- | +| `type` | [`NotificationType`](../enums/Frontend_Game_NotificationManager.NotificationType.md) | + +#### Returns + +`Element` + +--- + +### notify + +▸ **notify**(`type`, `message`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :----------------------------------------------------------------------------------- | +| `type` | [`NotificationType`](../enums/Frontend_Game_NotificationManager.NotificationType.md) | +| `message` | `ReactNode` | + +#### Returns + +`void` + +--- + +### planetAttacked + +▸ **planetAttacked**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :---------------- | +| `planet` | `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### planetCanUpgrade + +▸ **planetCanUpgrade**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### planetConquered + +▸ **planetConquered**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :---------------- | +| `planet` | `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### planetLost + +▸ **planetLost**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :---------------- | +| `planet` | `LocatablePlanet` | + +#### Returns + +`void` + +--- + +### reallyLongNotification + +▸ **reallyLongNotification**(): `void` + +#### Returns + +`void` + +--- + +### receivedPlanet + +▸ **receivedPlanet**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`void` + +--- + +### txInitError + +▸ **txInitError**(`methodName`, `failureReason`): `void` + +#### Parameters + +| Name | Type | +| :-------------- | :------------------- | +| `methodName` | `ContractMethodName` | +| `failureReason` | `string` | + +#### Returns + +`void` + +--- + +### welcomePlayer + +▸ **welcomePlayer**(): `void` + +#### Returns + +`void` + +--- + +### getInstance + +▸ `Static` **getInstance**(): [`default`](Frontend_Game_NotificationManager.default.md) + +#### Returns + +[`default`](Frontend_Game_NotificationManager.default.md) diff --git a/docs/classes/Frontend_Game_Viewport.default.md b/docs/classes/Frontend_Game_Viewport.default.md new file mode 100644 index 00000000..a33f3a4c --- /dev/null +++ b/docs/classes/Frontend_Game_Viewport.default.md @@ -0,0 +1,868 @@ +# Class: default + +[Frontend/Game/Viewport](../modules/Frontend_Game_Viewport.md).default + +## Table of contents + +### Constructors + +- [constructor](Frontend_Game_Viewport.default.md#constructor) + +### Properties + +- [canvas](Frontend_Game_Viewport.default.md#canvas) +- [centerWorldCoords](Frontend_Game_Viewport.default.md#centerworldcoords) +- [diagnosticUpdater](Frontend_Game_Viewport.default.md#diagnosticupdater) +- [frameRequestId](Frontend_Game_Viewport.default.md#framerequestid) +- [gameUIManager](Frontend_Game_Viewport.default.md#gameuimanager) +- [heightInWorldUnits](Frontend_Game_Viewport.default.md#heightinworldunits) +- [intervalId](Frontend_Game_Viewport.default.md#intervalid) +- [isFirefox](Frontend_Game_Viewport.default.md#isfirefox) +- [isPanning](Frontend_Game_Viewport.default.md#ispanning) +- [isSending](Frontend_Game_Viewport.default.md#issending) +- [momentum](Frontend_Game_Viewport.default.md#momentum) +- [mouseLastCoords](Frontend_Game_Viewport.default.md#mouselastcoords) +- [mouseSensitivity](Frontend_Game_Viewport.default.md#mousesensitivity) +- [mousedownCoords](Frontend_Game_Viewport.default.md#mousedowncoords) +- [scale](Frontend_Game_Viewport.default.md#scale) +- [velocity](Frontend_Game_Viewport.default.md#velocity) +- [viewportHeight](Frontend_Game_Viewport.default.md#viewportheight) +- [viewportWidth](Frontend_Game_Viewport.default.md#viewportwidth) +- [widthInWorldUnits](Frontend_Game_Viewport.default.md#widthinworldunits) +- [instance](Frontend_Game_Viewport.default.md#instance) + +### Accessors + +- [maxWorldWidth](Frontend_Game_Viewport.default.md#maxworldwidth) +- [minWorldWidth](Frontend_Game_Viewport.default.md#minworldwidth) + +### Methods + +- [canvasToWorldCoords](Frontend_Game_Viewport.default.md#canvastoworldcoords) +- [canvasToWorldDist](Frontend_Game_Viewport.default.md#canvastoworlddist) +- [canvasToWorldX](Frontend_Game_Viewport.default.md#canvastoworldx) +- [canvasToWorldY](Frontend_Game_Viewport.default.md#canvastoworldy) +- [centerChunk](Frontend_Game_Viewport.default.md#centerchunk) +- [centerCoords](Frontend_Game_Viewport.default.md#centercoords) +- [centerPlanet](Frontend_Game_Viewport.default.md#centerplanet) +- [getBottomBound](Frontend_Game_Viewport.default.md#getbottombound) +- [getLeftBound](Frontend_Game_Viewport.default.md#getleftbound) +- [getRightBound](Frontend_Game_Viewport.default.md#getrightbound) +- [getStorage](Frontend_Game_Viewport.default.md#getstorage) +- [getStorageKey](Frontend_Game_Viewport.default.md#getstoragekey) +- [getTopBound](Frontend_Game_Viewport.default.md#gettopbound) +- [getViewportPosition](Frontend_Game_Viewport.default.md#getviewportposition) +- [getViewportWorldHeight](Frontend_Game_Viewport.default.md#getviewportworldheight) +- [getViewportWorldWidth](Frontend_Game_Viewport.default.md#getviewportworldwidth) +- [intersectsViewport](Frontend_Game_Viewport.default.md#intersectsviewport) +- [isInOrAroundViewport](Frontend_Game_Viewport.default.md#isinoraroundviewport) +- [isInViewport](Frontend_Game_Viewport.default.md#isinviewport) +- [isValidWorldWidth](Frontend_Game_Viewport.default.md#isvalidworldwidth) +- [onMouseDown](Frontend_Game_Viewport.default.md#onmousedown) +- [onMouseMove](Frontend_Game_Viewport.default.md#onmousemove) +- [onMouseOut](Frontend_Game_Viewport.default.md#onmouseout) +- [onMouseUp](Frontend_Game_Viewport.default.md#onmouseup) +- [onResize](Frontend_Game_Viewport.default.md#onresize) +- [onScroll](Frontend_Game_Viewport.default.md#onscroll) +- [onSendComplete](Frontend_Game_Viewport.default.md#onsendcomplete) +- [onSendInit](Frontend_Game_Viewport.default.md#onsendinit) +- [onWindowResize](Frontend_Game_Viewport.default.md#onwindowresize) +- [setData](Frontend_Game_Viewport.default.md#setdata) +- [setDiagnosticUpdater](Frontend_Game_Viewport.default.md#setdiagnosticupdater) +- [setMouseSensitivty](Frontend_Game_Viewport.default.md#setmousesensitivty) +- [setStorage](Frontend_Game_Viewport.default.md#setstorage) +- [setWorldHeight](Frontend_Game_Viewport.default.md#setworldheight) +- [setWorldWidth](Frontend_Game_Viewport.default.md#setworldwidth) +- [updateDiagnostics](Frontend_Game_Viewport.default.md#updatediagnostics) +- [worldToCanvasCoords](Frontend_Game_Viewport.default.md#worldtocanvascoords) +- [worldToCanvasDist](Frontend_Game_Viewport.default.md#worldtocanvasdist) +- [worldToCanvasX](Frontend_Game_Viewport.default.md#worldtocanvasx) +- [worldToCanvasY](Frontend_Game_Viewport.default.md#worldtocanvasy) +- [zoomIn](Frontend_Game_Viewport.default.md#zoomin) +- [zoomOut](Frontend_Game_Viewport.default.md#zoomout) +- [zoomPlanet](Frontend_Game_Viewport.default.md#zoomplanet) +- [destroyInstance](Frontend_Game_Viewport.default.md#destroyinstance) +- [getInstance](Frontend_Game_Viewport.default.md#getinstance) +- [initialize](Frontend_Game_Viewport.default.md#initialize) + +## Constructors + +### constructor + +• `Private` **new default**(`gameUIManager`, `centerWorldCoords`, `widthInWorldUnits`, `viewportWidth`, `viewportHeight`, `canvas`) + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------ | +| `gameUIManager` | [`default`](Backend_GameLogic_GameUIManager.default.md) | +| `centerWorldCoords` | `WorldCoords` | +| `widthInWorldUnits` | `number` | +| `viewportWidth` | `number` | +| `viewportHeight` | `number` | +| `canvas` | `HTMLCanvasElement` | + +## Properties + +### canvas + +• **canvas**: `HTMLCanvasElement` + +--- + +### centerWorldCoords + +• **centerWorldCoords**: `WorldCoords` + +--- + +### diagnosticUpdater + +• `Optional` **diagnosticUpdater**: `DiagnosticUpdater` + +--- + +### frameRequestId + +• **frameRequestId**: `number` + +--- + +### gameUIManager + +• **gameUIManager**: [`default`](Backend_GameLogic_GameUIManager.default.md) + +--- + +### heightInWorldUnits + +• **heightInWorldUnits**: `number` + +--- + +### intervalId + +• **intervalId**: `Timeout` + +--- + +### isFirefox + +• **isFirefox**: `boolean` + +--- + +### isPanning + +• **isPanning**: `boolean` = `false` + +--- + +### isSending + +• `Private` **isSending**: `boolean` = `false` + +--- + +### momentum + +• **momentum**: `boolean` = `false` + +--- + +### mouseLastCoords + +• **mouseLastCoords**: `undefined` \| `CanvasCoords` + +--- + +### mouseSensitivity + +• **mouseSensitivity**: `number` + +--- + +### mousedownCoords + +• **mousedownCoords**: `undefined` \| `CanvasCoords` = `undefined` + +--- + +### scale + +• **scale**: `number` + +--- + +### velocity + +• **velocity**: `undefined` \| `WorldCoords` = `undefined` + +--- + +### viewportHeight + +• **viewportHeight**: `number` + +--- + +### viewportWidth + +• **viewportWidth**: `number` + +--- + +### widthInWorldUnits + +• **widthInWorldUnits**: `number` + +--- + +### instance + +▪ `Static` **instance**: `undefined` \| [`default`](Frontend_Game_Viewport.default.md) + +## Accessors + +### maxWorldWidth + +• `get` **maxWorldWidth**(): `number` + +#### Returns + +`number` + +--- + +### minWorldWidth + +• `get` **minWorldWidth**(): `number` + +#### Returns + +`number` + +## Methods + +### canvasToWorldCoords + +▸ **canvasToWorldCoords**(`canvasCoords`): `WorldCoords` + +#### Parameters + +| Name | Type | +| :------------- | :------------- | +| `canvasCoords` | `CanvasCoords` | + +#### Returns + +`WorldCoords` + +--- + +### canvasToWorldDist + +▸ **canvasToWorldDist**(`d`): `number` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `d` | `number` | + +#### Returns + +`number` + +--- + +### canvasToWorldX + +▸ `Private` **canvasToWorldX**(`x`): `number` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `x` | `number` | + +#### Returns + +`number` + +--- + +### canvasToWorldY + +▸ `Private` **canvasToWorldY**(`y`): `number` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `y` | `number` | + +#### Returns + +`number` + +--- + +### centerChunk + +▸ **centerChunk**(`chunk`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +`void` + +--- + +### centerCoords + +▸ **centerCoords**(`coords`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`void` + +--- + +### centerPlanet + +▸ **centerPlanet**(`planet`): `void` + +#### Parameters + +| Name | Type | +| :------- | :---------------------- | +| `planet` | `undefined` \| `Planet` | + +#### Returns + +`void` + +--- + +### getBottomBound + +▸ **getBottomBound**(): `number` + +#### Returns + +`number` + +--- + +### getLeftBound + +▸ **getLeftBound**(): `number` + +#### Returns + +`number` + +--- + +### getRightBound + +▸ **getRightBound**(): `number` + +#### Returns + +`number` + +--- + +### getStorage + +▸ **getStorage**(): `undefined` \| `ViewportData` + +#### Returns + +`undefined` \| `ViewportData` + +--- + +### getStorageKey + +▸ `Private` **getStorageKey**(): `string` + +#### Returns + +`string` + +--- + +### getTopBound + +▸ **getTopBound**(): `number` + +#### Returns + +`number` + +--- + +### getViewportPosition + +▸ **getViewportPosition**(): `Object` + +#### Returns + +`Object` + +| Name | Type | +| :--- | :------- | +| `x` | `number` | +| `y` | `number` | + +--- + +### getViewportWorldHeight + +▸ **getViewportWorldHeight**(): `number` + +#### Returns + +`number` + +--- + +### getViewportWorldWidth + +▸ **getViewportWorldWidth**(): `number` + +#### Returns + +`number` + +--- + +### intersectsViewport + +▸ **intersectsViewport**(`chunk`): `boolean` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +`boolean` + +--- + +### isInOrAroundViewport + +▸ **isInOrAroundViewport**(`coords`): `boolean` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`boolean` + +--- + +### isInViewport + +▸ **isInViewport**(`coords`): `boolean` + +#### Parameters + +| Name | Type | +| :------- | :------------ | +| `coords` | `WorldCoords` | + +#### Returns + +`boolean` + +--- + +### isValidWorldWidth + +▸ `Private` **isValidWorldWidth**(`width`): `boolean` + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `width` | `number` | + +#### Returns + +`boolean` + +--- + +### onMouseDown + +▸ **onMouseDown**(`canvasCoords`): `void` + +#### Parameters + +| Name | Type | +| :------------- | :------------- | +| `canvasCoords` | `CanvasCoords` | + +#### Returns + +`void` + +--- + +### onMouseMove + +▸ **onMouseMove**(`canvasCoords`): `void` + +#### Parameters + +| Name | Type | +| :------------- | :------------- | +| `canvasCoords` | `CanvasCoords` | + +#### Returns + +`void` + +--- + +### onMouseOut + +▸ **onMouseOut**(): `void` + +#### Returns + +`void` + +--- + +### onMouseUp + +▸ **onMouseUp**(`canvasCoords`): `void` + +#### Parameters + +| Name | Type | +| :------------- | :------------- | +| `canvasCoords` | `CanvasCoords` | + +#### Returns + +`void` + +--- + +### onResize + +▸ **onResize**(): `void` + +#### Returns + +`void` + +--- + +### onScroll + +▸ **onScroll**(`deltaY`, `forceZoom?`): `void` + +#### Parameters + +| Name | Type | Default value | +| :---------- | :-------- | :------------ | +| `deltaY` | `number` | `undefined` | +| `forceZoom` | `boolean` | `false` | + +#### Returns + +`void` + +--- + +### onSendComplete + +▸ **onSendComplete**(): `void` + +#### Returns + +`void` + +--- + +### onSendInit + +▸ **onSendInit**(): `void` + +#### Returns + +`void` + +--- + +### onWindowResize + +▸ **onWindowResize**(): `void` + +#### Returns + +`void` + +--- + +### setData + +▸ **setData**(`data`): `void` + +#### Parameters + +| Name | Type | +| :----- | :------------- | +| `data` | `ViewportData` | + +#### Returns + +`void` + +--- + +### setDiagnosticUpdater + +▸ **setDiagnosticUpdater**(`diagnosticUpdater`): `void` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------ | +| `diagnosticUpdater` | `DiagnosticUpdater` | + +#### Returns + +`void` + +--- + +### setMouseSensitivty + +▸ **setMouseSensitivty**(`mouseSensitivity`): `void` + +#### Parameters + +| Name | Type | +| :----------------- | :------- | +| `mouseSensitivity` | `number` | + +#### Returns + +`void` + +--- + +### setStorage + +▸ **setStorage**(): `void` + +#### Returns + +`void` + +--- + +### setWorldHeight + +▸ **setWorldHeight**(`height`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `height` | `number` | + +#### Returns + +`void` + +--- + +### setWorldWidth + +▸ `Private` **setWorldWidth**(`width`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `width` | `number` | + +#### Returns + +`void` + +--- + +### updateDiagnostics + +▸ `Private` **updateDiagnostics**(): `void` + +#### Returns + +`void` + +--- + +### worldToCanvasCoords + +▸ **worldToCanvasCoords**(`worldCoords`): `CanvasCoords` + +#### Parameters + +| Name | Type | +| :------------ | :------------ | +| `worldCoords` | `WorldCoords` | + +#### Returns + +`CanvasCoords` + +--- + +### worldToCanvasDist + +▸ **worldToCanvasDist**(`d`): `number` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `d` | `number` | + +#### Returns + +`number` + +--- + +### worldToCanvasX + +▸ `Private` **worldToCanvasX**(`x`): `number` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `x` | `number` | + +#### Returns + +`number` + +--- + +### worldToCanvasY + +▸ `Private` **worldToCanvasY**(`y`): `number` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `y` | `number` | + +#### Returns + +`number` + +--- + +### zoomIn + +▸ **zoomIn**(): `void` + +#### Returns + +`void` + +--- + +### zoomOut + +▸ **zoomOut**(): `void` + +#### Returns + +`void` + +--- + +### zoomPlanet + +▸ **zoomPlanet**(`planet?`, `radii?`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `planet?` | `Planet` | +| `radii?` | `number` | + +#### Returns + +`void` + +--- + +### destroyInstance + +▸ `Static` **destroyInstance**(): `void` + +#### Returns + +`void` + +--- + +### getInstance + +▸ `Static` **getInstance**(): [`default`](Frontend_Game_Viewport.default.md) + +#### Returns + +[`default`](Frontend_Game_Viewport.default.md) + +--- + +### initialize + +▸ `Static` **initialize**(`gameUIManager`, `widthInWorldUnits`, `canvas`): [`default`](Frontend_Game_Viewport.default.md) + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------ | +| `gameUIManager` | [`default`](Backend_GameLogic_GameUIManager.default.md) | +| `widthInWorldUnits` | `number` | +| `canvas` | `HTMLCanvasElement` | + +#### Returns + +[`default`](Frontend_Game_Viewport.default.md) diff --git a/docs/classes/Frontend_Panes_Lobbies_Reducer.InvalidConfigError.md b/docs/classes/Frontend_Panes_Lobbies_Reducer.InvalidConfigError.md new file mode 100644 index 00000000..ec55556d --- /dev/null +++ b/docs/classes/Frontend_Panes_Lobbies_Reducer.InvalidConfigError.md @@ -0,0 +1,50 @@ +# Class: InvalidConfigError + +[Frontend/Panes/Lobbies/Reducer](../modules/Frontend_Panes_Lobbies_Reducer.md).InvalidConfigError + +## Hierarchy + +- `Error` + + ↳ **`InvalidConfigError`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Panes_Lobbies_Reducer.InvalidConfigError.md#constructor) + +### Properties + +- [key](Frontend_Panes_Lobbies_Reducer.InvalidConfigError.md#key) +- [value](Frontend_Panes_Lobbies_Reducer.InvalidConfigError.md#value) + +## Constructors + +### constructor + +• **new InvalidConfigError**(`msg`, `key`, `value`) + +#### Parameters + +| Name | Type | +| :------ | :-------- | +| `msg` | `string` | +| `key` | `string` | +| `value` | `unknown` | + +#### Overrides + +Error.constructor + +## Properties + +### key + +• **key**: `string` + +--- + +### value + +• **value**: `unknown` diff --git a/docs/classes/Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md b/docs/classes/Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md new file mode 100644 index 00000000..fb03791f --- /dev/null +++ b/docs/classes/Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md @@ -0,0 +1,344 @@ +# Class: ArtifactRenderer + +[Frontend/Renderers/Artifacts/ArtifactRenderer](../modules/Frontend_Renderers_Artifacts_ArtifactRenderer.md).ArtifactRenderer + +## Hierarchy + +- `WebGLManager` + + ↳ **`ArtifactRenderer`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#constructor) + +### Properties + +- [artifacts](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#artifacts) +- [canvas](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#canvas) +- [frameRequestId](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#framerequestid) +- [gl](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#gl) +- [isDex](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#isdex) +- [projectionMatrix](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#projectionmatrix) +- [scroll](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#scroll) +- [spriteRenderer](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#spriterenderer) +- [visible](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#visible) + +### Methods + +- [clear](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#clear) +- [containsArtifact](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#containsartifact) +- [destroy](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#destroy) +- [draw](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#draw) +- [drawDex](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#drawdex) +- [drawList](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#drawlist) +- [getTexIdx](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#gettexidx) +- [loop](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#loop) +- [queueArtifactColumn](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#queueartifactcolumn) +- [queueRarityColumn](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#queueraritycolumn) +- [setArtifacts](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#setartifacts) +- [setIsDex](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#setisdex) +- [setProjectionMatrix](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#setprojectionmatrix) +- [setScroll](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#setscroll) +- [setVisible](Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md#setvisible) + +## Constructors + +### constructor + +• **new ArtifactRenderer**(`canvas`, `isDex?`) + +#### Parameters + +| Name | Type | Default value | +| :------- | :------------------ | :------------ | +| `canvas` | `HTMLCanvasElement` | `undefined` | +| `isDex` | `boolean` | `true` | + +#### Overrides + +WebGLManager.constructor + +## Properties + +### artifacts + +• `Private` **artifacts**: `Artifact`[] + +--- + +### canvas + +• **canvas**: `HTMLCanvasElement` + +#### Inherited from + +WebGLManager.canvas + +--- + +### frameRequestId + +• `Private` **frameRequestId**: `number` + +--- + +### gl + +• **gl**: `WebGL2RenderingContext` + +#### Inherited from + +WebGLManager.gl + +--- + +### isDex + +• `Private` **isDex**: `boolean` + +--- + +### projectionMatrix + +• **projectionMatrix**: `mat4` + +#### Inherited from + +WebGLManager.projectionMatrix + +--- + +### scroll + +• `Private` **scroll**: `number` = `0` + +--- + +### spriteRenderer + +• `Private` **spriteRenderer**: `SpriteRenderer` + +--- + +### visible + +• `Private` **visible**: `boolean` = `false` + +## Methods + +### clear + +▸ **clear**(`bits?`, `color?`): `void` + +#### Parameters + +| Name | Type | +| :------- | :-------- | +| `bits?` | `number` | +| `color?` | `RGBAVec` | + +#### Returns + +`void` + +#### Inherited from + +WebGLManager.clear + +--- + +### containsArtifact + +▸ `Private` **containsArtifact**(`biome`, `rarity`, `type`): `boolean` + +#### Parameters + +| Name | Type | +| :------- | :--------------- | +| `biome` | `Biome` | +| `rarity` | `ArtifactRarity` | +| `type` | `ArtifactType` | + +#### Returns + +`boolean` + +--- + +### destroy + +▸ **destroy**(): `void` + +#### Returns + +`void` + +--- + +### draw + +▸ `Private` **draw**(): `void` + +#### Returns + +`void` + +--- + +### drawDex + +▸ `Private` **drawDex**(): `void` + +#### Returns + +`void` + +--- + +### drawList + +▸ `Private` **drawList**(): `void` + +#### Returns + +`void` + +--- + +### getTexIdx + +▸ **getTexIdx**(): `number` + +#### Returns + +`number` + +#### Inherited from + +WebGLManager.getTexIdx + +--- + +### loop + +▸ `Private` **loop**(): `void` + +#### Returns + +`void` + +--- + +### queueArtifactColumn + +▸ `Private` **queueArtifactColumn**(`type`, `rarity`, `startX`): `void` + +#### Parameters + +| Name | Type | +| :------- | :--------------- | +| `type` | `ArtifactType` | +| `rarity` | `ArtifactRarity` | +| `startX` | `number` | + +#### Returns + +`void` + +--- + +### queueRarityColumn + +▸ `Private` **queueRarityColumn**(`rarity`, `startX`): `void` + +#### Parameters + +| Name | Type | +| :------- | :--------------- | +| `rarity` | `ArtifactRarity` | +| `startX` | `number` | + +#### Returns + +`void` + +--- + +### setArtifacts + +▸ **setArtifacts**(`artifacts`): `void` + +#### Parameters + +| Name | Type | +| :---------- | :----------- | +| `artifacts` | `Artifact`[] | + +#### Returns + +`void` + +--- + +### setIsDex + +▸ **setIsDex**(`isDex`): `void` + +#### Parameters + +| Name | Type | +| :------ | :-------- | +| `isDex` | `boolean` | + +#### Returns + +`void` + +--- + +### setProjectionMatrix + +▸ **setProjectionMatrix**(): `void` + +#### Returns + +`void` + +#### Inherited from + +WebGLManager.setProjectionMatrix + +--- + +### setScroll + +▸ **setScroll**(`scroll`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `scroll` | `number` | + +#### Returns + +`void` + +--- + +### setVisible + +▸ **setVisible**(`visible`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :-------- | +| `visible` | `boolean` | + +#### Returns + +`void` diff --git a/docs/classes/Frontend_Renderers_GifRenderer.GifRenderer.md b/docs/classes/Frontend_Renderers_GifRenderer.GifRenderer.md new file mode 100644 index 00000000..9bc1dffe --- /dev/null +++ b/docs/classes/Frontend_Renderers_GifRenderer.GifRenderer.md @@ -0,0 +1,343 @@ +# Class: GifRenderer + +[Frontend/Renderers/GifRenderer](../modules/Frontend_Renderers_GifRenderer.md).GifRenderer + +## Hierarchy + +- `WebGLManager` + + ↳ **`GifRenderer`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Renderers_GifRenderer.GifRenderer.md#constructor) + +### Properties + +- [artifactDim](Frontend_Renderers_GifRenderer.GifRenderer.md#artifactdim) +- [canvas](Frontend_Renderers_GifRenderer.GifRenderer.md#canvas) +- [canvasDim](Frontend_Renderers_GifRenderer.GifRenderer.md#canvasdim) +- [gl](Frontend_Renderers_GifRenderer.GifRenderer.md#gl) +- [margin](Frontend_Renderers_GifRenderer.GifRenderer.md#margin) +- [projectionMatrix](Frontend_Renderers_GifRenderer.GifRenderer.md#projectionmatrix) +- [resolution](Frontend_Renderers_GifRenderer.GifRenderer.md#resolution) +- [spriteRenderer](Frontend_Renderers_GifRenderer.GifRenderer.md#spriterenderer) +- [thumb](Frontend_Renderers_GifRenderer.GifRenderer.md#thumb) + +### Methods + +- [addAncient](Frontend_Renderers_GifRenderer.GifRenderer.md#addancient) +- [addBiomes](Frontend_Renderers_GifRenderer.GifRenderer.md#addbiomes) +- [addSprite](Frontend_Renderers_GifRenderer.GifRenderer.md#addsprite) +- [addVideo](Frontend_Renderers_GifRenderer.GifRenderer.md#addvideo) +- [clear](Frontend_Renderers_GifRenderer.GifRenderer.md#clear) +- [drawSprite](Frontend_Renderers_GifRenderer.GifRenderer.md#drawsprite) +- [getAll](Frontend_Renderers_GifRenderer.GifRenderer.md#getall) +- [getAllSprites](Frontend_Renderers_GifRenderer.GifRenderer.md#getallsprites) +- [getAllVideos](Frontend_Renderers_GifRenderer.GifRenderer.md#getallvideos) +- [getBase64](Frontend_Renderers_GifRenderer.GifRenderer.md#getbase64) +- [getFileName](Frontend_Renderers_GifRenderer.GifRenderer.md#getfilename) +- [getTexIdx](Frontend_Renderers_GifRenderer.GifRenderer.md#gettexidx) +- [setDim](Frontend_Renderers_GifRenderer.GifRenderer.md#setdim) +- [setProjectionMatrix](Frontend_Renderers_GifRenderer.GifRenderer.md#setprojectionmatrix) + +## Constructors + +### constructor + +• **new GifRenderer**(`canvas`, `dim`, `isThumb`) + +#### Parameters + +| Name | Type | +| :-------- | :------------------ | +| `canvas` | `HTMLCanvasElement` | +| `dim` | `number` | +| `isThumb` | `boolean` | + +#### Overrides + +WebGLManager.constructor + +## Properties + +### artifactDim + +• `Private` **artifactDim**: `number` + +--- + +### canvas + +• **canvas**: `HTMLCanvasElement` + +#### Inherited from + +WebGLManager.canvas + +--- + +### canvasDim + +• `Private` **canvasDim**: `number` + +--- + +### gl + +• **gl**: `WebGL2RenderingContext` + +#### Inherited from + +WebGLManager.gl + +--- + +### margin + +• `Private` **margin**: `number` + +--- + +### projectionMatrix + +• **projectionMatrix**: `mat4` + +#### Overrides + +WebGLManager.projectionMatrix + +--- + +### resolution + +• `Private` **resolution**: `number` + +--- + +### spriteRenderer + +• `Private` **spriteRenderer**: `SpriteRenderer` + +--- + +### thumb + +• `Private` **thumb**: `boolean` + +## Methods + +### addAncient + +▸ `Private` **addAncient**(`videoMode`, `dir`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :---------- | :-------- | +| `videoMode` | `boolean` | +| `dir` | `JSZip` | + +#### Returns + +`Promise`<`void`\> + +--- + +### addBiomes + +▸ `Private` **addBiomes**(`videoMode`, `dir`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :---------- | :-------- | +| `videoMode` | `boolean` | +| `dir` | `JSZip` | + +#### Returns + +`Promise`<`void`\> + +--- + +### addSprite + +▸ `Private` **addSprite**(`dir`, `type`, `biome`, `rarity`, `ancient?`): `void` + +#### Parameters + +| Name | Type | Default value | +| :-------- | :--------------- | :------------ | +| `dir` | `JSZip` | `undefined` | +| `type` | `ArtifactType` | `undefined` | +| `biome` | `Biome` | `undefined` | +| `rarity` | `ArtifactRarity` | `undefined` | +| `ancient` | `boolean` | `false` | + +#### Returns + +`void` + +--- + +### addVideo + +▸ `Private` **addVideo**(`dir`, `type`, `biome`, `rarity`, `ancient?`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | Default value | +| :-------- | :--------------- | :------------ | +| `dir` | `JSZip` | `undefined` | +| `type` | `ArtifactType` | `undefined` | +| `biome` | `Biome` | `undefined` | +| `rarity` | `ArtifactRarity` | `undefined` | +| `ancient` | `boolean` | `false` | + +#### Returns + +`Promise`<`void`\> + +--- + +### clear + +▸ **clear**(): `void` + +#### Returns + +`void` + +#### Overrides + +WebGLManager.clear + +--- + +### drawSprite + +▸ `Private` **drawSprite**(`artifact`, `atFrame?`): `void` + +#### Parameters + +| Name | Type | Default value | +| :--------- | :---------------------- | :------------ | +| `artifact` | `Artifact` | `undefined` | +| `atFrame` | `undefined` \| `number` | `undefined` | + +#### Returns + +`void` + +--- + +### getAll + +▸ `Private` **getAll**(`videoMode?`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | Default value | +| :---------- | :-------- | :------------ | +| `videoMode` | `boolean` | `false` | + +#### Returns + +`Promise`<`void`\> + +--- + +### getAllSprites + +▸ **getAllSprites**(): `void` + +#### Returns + +`void` + +--- + +### getAllVideos + +▸ **getAllVideos**(): `void` + +#### Returns + +`void` + +--- + +### getBase64 + +▸ `Private` **getBase64**(): `string` + +#### Returns + +`string` + +--- + +### getFileName + +▸ `Private` **getFileName**(`video`, `type`, `biome`, `rarity`, `ancient`): `string` + +#### Parameters + +| Name | Type | +| :-------- | :--------------- | +| `video` | `boolean` | +| `type` | `ArtifactType` | +| `biome` | `Biome` | +| `rarity` | `ArtifactRarity` | +| `ancient` | `boolean` | + +#### Returns + +`string` + +--- + +### getTexIdx + +▸ **getTexIdx**(): `number` + +#### Returns + +`number` + +#### Inherited from + +WebGLManager.getTexIdx + +--- + +### setDim + +▸ `Private` **setDim**(`dim`): `void` + +#### Parameters + +| Name | Type | +| :---- | :------- | +| `dim` | `number` | + +#### Returns + +`void` + +--- + +### setProjectionMatrix + +▸ **setProjectionMatrix**(): `void` + +#### Returns + +`void` + +#### Inherited from + +WebGLManager.setProjectionMatrix diff --git a/docs/classes/Frontend_Utils_UIEmitter.default.md b/docs/classes/Frontend_Utils_UIEmitter.default.md new file mode 100644 index 00000000..6e45498d --- /dev/null +++ b/docs/classes/Frontend_Utils_UIEmitter.default.md @@ -0,0 +1,60 @@ +# Class: default + +[Frontend/Utils/UIEmitter](../modules/Frontend_Utils_UIEmitter.md).default + +## Hierarchy + +- `EventEmitter` + + ↳ **`default`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Utils_UIEmitter.default.md#constructor) + +### Properties + +- [instance](Frontend_Utils_UIEmitter.default.md#instance) + +### Methods + +- [getInstance](Frontend_Utils_UIEmitter.default.md#getinstance) +- [initialize](Frontend_Utils_UIEmitter.default.md#initialize) + +## Constructors + +### constructor + +• `Private` **new default**() + +#### Overrides + +EventEmitter.constructor + +## Properties + +### instance + +▪ `Static` **instance**: [`default`](Frontend_Utils_UIEmitter.default.md) + +## Methods + +### getInstance + +▸ `Static` **getInstance**(): [`default`](Frontend_Utils_UIEmitter.default.md) + +#### Returns + +[`default`](Frontend_Utils_UIEmitter.default.md) + +--- + +### initialize + +▸ `Static` **initialize**(): [`default`](Frontend_Utils_UIEmitter.default.md) + +#### Returns + +[`default`](Frontend_Utils_UIEmitter.default.md) diff --git a/docs/classes/Frontend_Views_DFErrorBoundary.DFErrorBoundary.md b/docs/classes/Frontend_Views_DFErrorBoundary.DFErrorBoundary.md new file mode 100644 index 00000000..b4ababdc --- /dev/null +++ b/docs/classes/Frontend_Views_DFErrorBoundary.DFErrorBoundary.md @@ -0,0 +1,92 @@ +# Class: DFErrorBoundary + +[Frontend/Views/DFErrorBoundary](../modules/Frontend_Views_DFErrorBoundary.md).DFErrorBoundary + +## Hierarchy + +- `Component`<`unknown`, { `hasError`: `boolean` }\> + + ↳ **`DFErrorBoundary`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Views_DFErrorBoundary.DFErrorBoundary.md#constructor) + +### Methods + +- [componentDidCatch](Frontend_Views_DFErrorBoundary.DFErrorBoundary.md#componentdidcatch) +- [render](Frontend_Views_DFErrorBoundary.DFErrorBoundary.md#render) +- [getDerivedStateFromError](Frontend_Views_DFErrorBoundary.DFErrorBoundary.md#getderivedstatefromerror) + +## Constructors + +### constructor + +• **new DFErrorBoundary**(`props`) + +#### Parameters + +| Name | Type | +| :------ | :-------- | +| `props` | `unknown` | + +#### Overrides + +React.Component<unknown, { hasError: boolean }\>.constructor + +## Methods + +### componentDidCatch + +▸ **componentDidCatch**(`error`, `_errorInfo`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :---------- | +| `error` | `Error` | +| `_errorInfo` | `ErrorInfo` | + +#### Returns + +`void` + +#### Overrides + +React.Component.componentDidCatch + +--- + +### render + +▸ **render**(): `ReactNode` + +#### Returns + +`ReactNode` + +#### Overrides + +React.Component.render + +--- + +### getDerivedStateFromError + +▸ `Static` **getDerivedStateFromError**(`_error`): `Object` + +#### Parameters + +| Name | Type | +| :------- | :------ | +| `_error` | `Error` | + +#### Returns + +`Object` + +| Name | Type | +| :--------- | :-------- | +| `hasError` | `boolean` | diff --git a/docs/classes/Frontend_Views_GenericErrorBoundary.GenericErrorBoundary.md b/docs/classes/Frontend_Views_GenericErrorBoundary.GenericErrorBoundary.md new file mode 100644 index 00000000..12fc846d --- /dev/null +++ b/docs/classes/Frontend_Views_GenericErrorBoundary.GenericErrorBoundary.md @@ -0,0 +1,95 @@ +# Class: GenericErrorBoundary + +[Frontend/Views/GenericErrorBoundary](../modules/Frontend_Views_GenericErrorBoundary.md).GenericErrorBoundary + +## Hierarchy + +- `Component`<`GenericErrorBoundaryProps`, { `hasError`: `boolean` }\> + + ↳ **`GenericErrorBoundary`** + +## Table of contents + +### Constructors + +- [constructor](Frontend_Views_GenericErrorBoundary.GenericErrorBoundary.md#constructor) + +### Methods + +- [componentDidCatch](Frontend_Views_GenericErrorBoundary.GenericErrorBoundary.md#componentdidcatch) +- [render](Frontend_Views_GenericErrorBoundary.GenericErrorBoundary.md#render) +- [getDerivedStateFromError](Frontend_Views_GenericErrorBoundary.GenericErrorBoundary.md#getderivedstatefromerror) + +## Constructors + +### constructor + +• **new GenericErrorBoundary**(`props`) + +#### Parameters + +| Name | Type | +| :------ | :-------------------------- | +| `props` | `GenericErrorBoundaryProps` | + +#### Overrides + +React.Component< +GenericErrorBoundaryProps, +{ hasError: boolean } +\>.constructor + +## Methods + +### componentDidCatch + +▸ **componentDidCatch**(`error`, `_errorInfo`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :---------- | +| `error` | `Error` | +| `_errorInfo` | `ErrorInfo` | + +#### Returns + +`void` + +#### Overrides + +React.Component.componentDidCatch + +--- + +### render + +▸ **render**(): `ReactNode` + +#### Returns + +`ReactNode` + +#### Overrides + +React.Component.render + +--- + +### getDerivedStateFromError + +▸ `Static` **getDerivedStateFromError**(`_error`): `Object` + +#### Parameters + +| Name | Type | +| :------- | :------ | +| `_error` | `Error` | + +#### Returns + +`Object` + +| Name | Type | +| :--------- | :-------- | +| `hasError` | `boolean` | diff --git a/docs/classes/_types_global_globaltypes.chunk.md b/docs/classes/_types_global_globaltypes.chunk.md deleted file mode 100644 index 4dd5a6cd..00000000 --- a/docs/classes/_types_global_globaltypes.chunk.md +++ /dev/null @@ -1,43 +0,0 @@ -# Class: Chunk - -[\_types/global/GlobalTypes](../modules/_types_global_globaltypes.md).Chunk - -Represents a fully mined aligned square. - -## Table of contents - -### Constructors - -- [constructor](_types_global_globaltypes.chunk.md#constructor) - -### Properties - -- [chunkFootprint](_types_global_globaltypes.chunk.md#chunkfootprint) -- [perlin](_types_global_globaltypes.chunk.md#perlin) -- [planetLocations](_types_global_globaltypes.chunk.md#planetlocations) - -## Constructors - -### constructor - -\+ **new Chunk**(): [_Chunk_](_types_global_globaltypes.chunk.md) - -**Returns:** [_Chunk_](_types_global_globaltypes.chunk.md) - -## Properties - -### chunkFootprint - -• **chunkFootprint**: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - ---- - -### perlin - -• **perlin**: _number_ - ---- - -### planetLocations - -• **planetLocations**: WorldLocation[] diff --git a/docs/classes/_types_worker_loader_workertypes.default.md b/docs/classes/_types_worker_loader_workertypes.default.md deleted file mode 100644 index f63956aa..00000000 --- a/docs/classes/_types_worker_loader_workertypes.default.md +++ /dev/null @@ -1,25 +0,0 @@ -# Class: default - -[\_types/worker-loader/WorkerTypes](../modules/_types_worker_loader_workertypes.md).default - -## Hierarchy - -- _Worker_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](_types_worker_loader_workertypes.default.md#constructor) - -## Constructors - -### constructor - -\+ **new default**(): [_default_](_types_worker_loader_workertypes.default.md) - -**Returns:** [_default_](_types_worker_loader_workertypes.default.md) - -Overrides: Worker.constructor diff --git a/docs/classes/backend_gamelogic_contractcaller.contractcaller.md b/docs/classes/backend_gamelogic_contractcaller.contractcaller.md deleted file mode 100644 index a76e7abc..00000000 --- a/docs/classes/backend_gamelogic_contractcaller.contractcaller.md +++ /dev/null @@ -1,81 +0,0 @@ -# Class: ContractCaller - -[Backend/GameLogic/ContractCaller](../modules/backend_gamelogic_contractcaller.md).ContractCaller - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_contractcaller.contractcaller.md#constructor) - -### Properties - -- [callQueue](backend_gamelogic_contractcaller.contractcaller.md#callqueue) -- [diagnosticsUpdater](backend_gamelogic_contractcaller.contractcaller.md#diagnosticsupdater) -- [MAX_RETRIES](backend_gamelogic_contractcaller.contractcaller.md#max_retries) - -### Methods - -- [makeCall](backend_gamelogic_contractcaller.contractcaller.md#makecall) -- [setDiagnosticUpdater](backend_gamelogic_contractcaller.contractcaller.md#setdiagnosticupdater) - -## Constructors - -### constructor - -\+ **new ContractCaller**(): [_ContractCaller_](backend_gamelogic_contractcaller.contractcaller.md) - -**Returns:** [_ContractCaller_](backend_gamelogic_contractcaller.contractcaller.md) - -## Properties - -### callQueue - -• `Private` `Readonly` **callQueue**: [_ThrottledConcurrentQueue_](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md) - ---- - -### diagnosticsUpdater - -• `Private` `Optional` **diagnosticsUpdater**: [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md) - ---- - -### MAX_RETRIES - -▪ `Static` `Private` `Readonly` **MAX_RETRIES**: `12`= 12 - -## Methods - -### makeCall - -▸ **makeCall**(`contractViewFunction`: _ContractFunction_, `args?`: _unknown_[]): _Promise_ - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | Default value | -| :--------------------- | :--------------------- | :------------ | -| `contractViewFunction` | _ContractFunction_ | - | -| `args` | _unknown_[] | [] | - -**Returns:** _Promise_ - ---- - -### setDiagnosticUpdater - -▸ **setDiagnosticUpdater**(`diagnosticUpdater?`: [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md)): _void_ - -#### Parameters - -| Name | Type | -| :------------------- | :--------------------------------------------------------------------------------------------- | -| `diagnosticUpdater?` | [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md) | - -**Returns:** _void_ diff --git a/docs/classes/backend_gamelogic_contractsapi.default.md b/docs/classes/backend_gamelogic_contractsapi.default.md deleted file mode 100644 index 33adfe6a..00000000 --- a/docs/classes/backend_gamelogic_contractsapi.default.md +++ /dev/null @@ -1,722 +0,0 @@ -# Class: default - -[Backend/GameLogic/ContractsAPI](../modules/backend_gamelogic_contractsapi.md).default - -Roughly contains methods that map 1:1 with functions that live -in the contract. - -## Hierarchy - -- _EventEmitter_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_contractsapi.default.md#constructor) - -### Properties - -- [contractCaller](backend_gamelogic_contractsapi.default.md#contractcaller) -- [coreContract](backend_gamelogic_contractsapi.default.md#corecontract) -- [diagnosticsUpdater](backend_gamelogic_contractsapi.default.md#diagnosticsupdater) -- [ethConnection](backend_gamelogic_contractsapi.default.md#ethconnection) -- [gettersContract](backend_gamelogic_contractsapi.default.md#getterscontract) -- [gptCreditContract](backend_gamelogic_contractsapi.default.md#gptcreditcontract) -- [txRequestExecutor](backend_gamelogic_contractsapi.default.md#txrequestexecutor) - -### Methods - -- [activateArtifact](backend_gamelogic_contractsapi.default.md#activateartifact) -- [bulkGetArtifacts](backend_gamelogic_contractsapi.default.md#bulkgetartifacts) -- [bulkGetArtifactsOnPlanets](backend_gamelogic_contractsapi.default.md#bulkgetartifactsonplanets) -- [bulkGetPlanets](backend_gamelogic_contractsapi.default.md#bulkgetplanets) -- [buyGPTCredits](backend_gamelogic_contractsapi.default.md#buygptcredits) -- [buyHat](backend_gamelogic_contractsapi.default.md#buyhat) -- [deactivateArtifact](backend_gamelogic_contractsapi.default.md#deactivateartifact) -- [depositArtifact](backend_gamelogic_contractsapi.default.md#depositartifact) -- [destroy](backend_gamelogic_contractsapi.default.md#destroy) -- [findArtifact](backend_gamelogic_contractsapi.default.md#findartifact) -- [getAccount](backend_gamelogic_contractsapi.default.md#getaccount) -- [getAllArrivals](backend_gamelogic_contractsapi.default.md#getallarrivals) -- [getArrival](backend_gamelogic_contractsapi.default.md#getarrival) -- [getArrivalsForPlanet](backend_gamelogic_contractsapi.default.md#getarrivalsforplanet) -- [getArtifactById](backend_gamelogic_contractsapi.default.md#getartifactbyid) -- [getBalance](backend_gamelogic_contractsapi.default.md#getbalance) -- [getConstants](backend_gamelogic_contractsapi.default.md#getconstants) -- [getContractAddress](backend_gamelogic_contractsapi.default.md#getcontractaddress) -- [getContractBalance](backend_gamelogic_contractsapi.default.md#getcontractbalance) -- [getGPTCreditBalance](backend_gamelogic_contractsapi.default.md#getgptcreditbalance) -- [getGPTCreditPriceEther](backend_gamelogic_contractsapi.default.md#getgptcreditpriceether) -- [getPlanetById](backend_gamelogic_contractsapi.default.md#getplanetbyid) -- [getPlayerArtifacts](backend_gamelogic_contractsapi.default.md#getplayerartifacts) -- [getPlayerById](backend_gamelogic_contractsapi.default.md#getplayerbyid) -- [getPlayers](backend_gamelogic_contractsapi.default.md#getplayers) -- [getRevealedCoordsByIdIfExists](backend_gamelogic_contractsapi.default.md#getrevealedcoordsbyidifexists) -- [getRevealedPlanetsCoords](backend_gamelogic_contractsapi.default.md#getrevealedplanetscoords) -- [getTokenMintEndTimestamp](backend_gamelogic_contractsapi.default.md#gettokenmintendtimestamp) -- [getTouchedPlanetIds](backend_gamelogic_contractsapi.default.md#gettouchedplanetids) -- [getWorldRadius](backend_gamelogic_contractsapi.default.md#getworldradius) -- [initializePlayer](backend_gamelogic_contractsapi.default.md#initializeplayer) -- [makeCall](backend_gamelogic_contractsapi.default.md#makecall) -- [move](backend_gamelogic_contractsapi.default.md#move) -- [prospectPlanet](backend_gamelogic_contractsapi.default.md#prospectplanet) -- [removeEventListeners](backend_gamelogic_contractsapi.default.md#removeeventlisteners) -- [reveal](backend_gamelogic_contractsapi.default.md#reveal) -- [setDiagnosticUpdater](backend_gamelogic_contractsapi.default.md#setdiagnosticupdater) -- [setupEventListeners](backend_gamelogic_contractsapi.default.md#setupeventlisteners) -- [transferOwnership](backend_gamelogic_contractsapi.default.md#transferownership) -- [upgradePlanet](backend_gamelogic_contractsapi.default.md#upgradeplanet) -- [waitFor](backend_gamelogic_contractsapi.default.md#waitfor) -- [withdrawArtifact](backend_gamelogic_contractsapi.default.md#withdrawartifact) -- [withdrawSilver](backend_gamelogic_contractsapi.default.md#withdrawsilver) -- [create](backend_gamelogic_contractsapi.default.md#create) - -## Constructors - -### constructor - -\+ `Private` **new default**(`ethConnection`: [_default_](backend_network_ethconnection.default.md), `coreContract`: _DarkForestCore_, `gettersContract`: _DarkForestGetters_, `gptCreditContract`: _DarkForestGPTCredit_, `nonce`: _number_): [_default_](backend_gamelogic_contractsapi.default.md) - -#### Parameters - -| Name | Type | -| :------------------ | :---------------------------------------------------- | -| `ethConnection` | [_default_](backend_network_ethconnection.default.md) | -| `coreContract` | _DarkForestCore_ | -| `gettersContract` | _DarkForestGetters_ | -| `gptCreditContract` | _DarkForestGPTCredit_ | -| `nonce` | _number_ | - -**Returns:** [_default_](backend_gamelogic_contractsapi.default.md) - -Overrides: EventEmitter.constructor - -## Properties - -### contractCaller - -• `Private` `Readonly` **contractCaller**: [_ContractCaller_](backend_gamelogic_contractcaller.contractcaller.md) - ---- - -### coreContract - -• `Private` **coreContract**: _DarkForestCore_ - ---- - -### diagnosticsUpdater - -• `Private` `Optional` **diagnosticsUpdater**: [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md) - ---- - -### ethConnection - -• `Private` **ethConnection**: [_default_](backend_network_ethconnection.default.md) - ---- - -### gettersContract - -• `Private` **gettersContract**: _DarkForestGetters_ - ---- - -### gptCreditContract - -• `Private` **gptCreditContract**: _DarkForestGPTCredit_ - ---- - -### txRequestExecutor - -• `Private` `Readonly` **txRequestExecutor**: _undefined_ \| [_TxExecutor_](backend_network_txexecutor.txexecutor.md) - -## Methods - -### activateArtifact - -▸ **activateArtifact**(`action`: UnconfirmedActivateArtifact): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------------- | -| `action` | UnconfirmedActivateArtifact | - -**Returns:** _Promise_ - ---- - -### bulkGetArtifacts - -▸ **bulkGetArtifacts**(`artifactIds`: ArtifactId[], `onProgress?`: (`fractionCompleted`: _number_) => _void_): _Promise_ - -#### Parameters - -| Name | Type | -| :------------ | :---------------------------------------- | -| `artifactIds` | ArtifactId[] | -| `onProgress?` | (`fractionCompleted`: _number_) => _void_ | - -**Returns:** _Promise_ - ---- - -### bulkGetArtifactsOnPlanets - -▸ **bulkGetArtifactsOnPlanets**(`locationIds`: LocationId[], `onProgress?`: (`fractionCompleted`: _number_) => _void_): _Promise_ - -#### Parameters - -| Name | Type | -| :------------ | :---------------------------------------- | -| `locationIds` | LocationId[] | -| `onProgress?` | (`fractionCompleted`: _number_) => _void_ | - -**Returns:** _Promise_ - ---- - -### bulkGetPlanets - -▸ **bulkGetPlanets**(`toLoadPlanets`: LocationId[], `onProgressPlanet?`: (`fractionCompleted`: _number_) => _void_, `onProgressMetadata?`: (`fractionCompleted`: _number_) => _void_): _Promise_\> - -#### Parameters - -| Name | Type | -| :-------------------- | :---------------------------------------- | -| `toLoadPlanets` | LocationId[] | -| `onProgressPlanet?` | (`fractionCompleted`: _number_) => _void_ | -| `onProgressMetadata?` | (`fractionCompleted`: _number_) => _void_ | - -**Returns:** _Promise_\> - ---- - -### buyGPTCredits - -▸ **buyGPTCredits**(`amount`: _number_, `actionId`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `amount` | _number_ | -| `actionId` | _string_ | - -**Returns:** _Promise_ - ---- - -### buyHat - -▸ **buyHat**(`planetIdDecStr`: _string_, `currentHatLevel`: _number_, `actionId`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :---------------- | :------- | -| `planetIdDecStr` | _string_ | -| `currentHatLevel` | _number_ | -| `actionId` | _string_ | - -**Returns:** _Promise_ - ---- - -### deactivateArtifact - -▸ **deactivateArtifact**(`action`: UnconfirmedDeactivateArtifact): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :---------------------------- | -| `action` | UnconfirmedDeactivateArtifact | - -**Returns:** _Promise_ - ---- - -### depositArtifact - -▸ **depositArtifact**(`action`: UnconfirmedDepositArtifact): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :------------------------- | -| `action` | UnconfirmedDepositArtifact | - -**Returns:** _Promise_ - ---- - -### destroy - -▸ **destroy**(): _void_ - -**Returns:** _void_ - ---- - -### findArtifact - -▸ **findArtifact**(`location`: WorldLocation, `biomeSnarkArgs`: BiomebaseSnarkContractCallArgs, `actionId`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :--------------- | :----------------------------- | -| `location` | WorldLocation | -| `biomeSnarkArgs` | BiomebaseSnarkContractCallArgs | -| `actionId` | _string_ | - -**Returns:** _Promise_ - ---- - -### getAccount - -▸ **getAccount**(): EthAddress - -**Returns:** EthAddress - ---- - -### getAllArrivals - -▸ **getAllArrivals**(`planetsToLoad`: LocationId[], `onProgress?`: (`fractionCompleted`: _number_) => _void_): _Promise_ - -#### Parameters - -| Name | Type | -| :-------------- | :---------------------------------------- | -| `planetsToLoad` | LocationId[] | -| `onProgress?` | (`fractionCompleted`: _number_) => _void_ | - -**Returns:** _Promise_ - ---- - -### getArrival - -▸ **getArrival**(`arrivalId`: _number_): _Promise_ - -#### Parameters - -| Name | Type | -| :---------- | :------- | -| `arrivalId` | _number_ | - -**Returns:** _Promise_ - ---- - -### getArrivalsForPlanet - -▸ **getArrivalsForPlanet**(`planetId`: LocationId): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _Promise_ - ---- - -### getArtifactById - -▸ **getArtifactById**(`artifactId`: ArtifactId): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### getBalance - -▸ **getBalance**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### getConstants - -▸ **getConstants**(): _Promise_<[_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md)\> - -**Returns:** _Promise_<[_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md)\> - ---- - -### getContractAddress - -▸ **getContractAddress**(): EthAddress - -**Returns:** EthAddress - ---- - -### getContractBalance - -▸ **getContractBalance**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### getGPTCreditBalance - -▸ **getGPTCreditBalance**(`address`: EthAddress): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `address` | EthAddress | - -**Returns:** _Promise_ - ---- - -### getGPTCreditPriceEther - -▸ **getGPTCreditPriceEther**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### getPlanetById - -▸ **getPlanetById**(`planetId`: LocationId): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _Promise_ - ---- - -### getPlayerArtifacts - -▸ **getPlayerArtifacts**(`playerId`: EthAddress, `onProgress?`: (`percent`: _number_) => _void_): _Promise_ - -#### Parameters - -| Name | Type | -| :------------ | :------------------------------ | -| `playerId` | EthAddress | -| `onProgress?` | (`percent`: _number_) => _void_ | - -**Returns:** _Promise_ - ---- - -### getPlayerById - -▸ **getPlayerById**(`playerId`: EthAddress): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `playerId` | EthAddress | - -**Returns:** _Promise_ - ---- - -### getPlayers - -▸ **getPlayers**(`onProgress?`: (`fractionCompleted`: _number_) => _void_): _Promise_\> - -#### Parameters - -| Name | Type | -| :------------ | :---------------------------------------- | -| `onProgress?` | (`fractionCompleted`: _number_) => _void_ | - -**Returns:** _Promise_\> - ---- - -### getRevealedCoordsByIdIfExists - -▸ **getRevealedCoordsByIdIfExists**(`planetId`: LocationId): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _Promise_ - ---- - -### getRevealedPlanetsCoords - -▸ **getRevealedPlanetsCoords**(`startingAt`: _number_, `onProgressIds?`: (`fractionCompleted`: _number_) => _void_, `onProgressCoords?`: (`fractionCompleted`: _number_) => _void_): _Promise_ - -#### Parameters - -| Name | Type | -| :------------------ | :---------------------------------------- | -| `startingAt` | _number_ | -| `onProgressIds?` | (`fractionCompleted`: _number_) => _void_ | -| `onProgressCoords?` | (`fractionCompleted`: _number_) => _void_ | - -**Returns:** _Promise_ - ---- - -### getTokenMintEndTimestamp - -▸ **getTokenMintEndTimestamp**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### getTouchedPlanetIds - -▸ **getTouchedPlanetIds**(`startingAt`: _number_, `onProgress?`: (`fractionCompleted`: _number_) => _void_): _Promise_ - -#### Parameters - -| Name | Type | -| :------------ | :---------------------------------------- | -| `startingAt` | _number_ | -| `onProgress?` | (`fractionCompleted`: _number_) => _void_ | - -**Returns:** _Promise_ - ---- - -### getWorldRadius - -▸ **getWorldRadius**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### initializePlayer - -▸ **initializePlayer**(`args`: InitSnarkContractCallArgs, `action`: UnconfirmedInit): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :------------------------ | -| `args` | InitSnarkContractCallArgs | -| `action` | UnconfirmedInit | - -**Returns:** _Promise_ - ---- - -### makeCall - -▸ `Private` **makeCall**(`contractViewFunction`: _ContractFunction_, `args?`: _unknown_[]): _Promise_ - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | Default value | -| :--------------------- | :--------------------- | :------------ | -| `contractViewFunction` | _ContractFunction_ | - | -| `args` | _unknown_[] | [] | - -**Returns:** _Promise_ - ---- - -### move - -▸ **move**(`actionId`: _string_, `snarkArgs`: MoveSnarkContractCallArgs, `shipsMoved`: _number_, `silverMoved`: _number_, `artifactMoved?`: ArtifactId): _Promise_ - -#### Parameters - -| Name | Type | -| :--------------- | :------------------------ | -| `actionId` | _string_ | -| `snarkArgs` | MoveSnarkContractCallArgs | -| `shipsMoved` | _number_ | -| `silverMoved` | _number_ | -| `artifactMoved?` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### prospectPlanet - -▸ **prospectPlanet**(`planetId`: LocationId, `actionId`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | -| `actionId` | _string_ | - -**Returns:** _Promise_ - ---- - -### removeEventListeners - -▸ **removeEventListeners**(): _void_ - -**Returns:** _void_ - ---- - -### reveal - -▸ **reveal**(`args`: RevealSnarkContractCallArgs, `action`: UnconfirmedReveal): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------------- | -| `args` | RevealSnarkContractCallArgs | -| `action` | UnconfirmedReveal | - -**Returns:** _Promise_ - ---- - -### setDiagnosticUpdater - -▸ **setDiagnosticUpdater**(`diagnosticUpdater?`: [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md)): _void_ - -#### Parameters - -| Name | Type | -| :------------------- | :--------------------------------------------------------------------------------------------- | -| `diagnosticUpdater?` | [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md) | - -**Returns:** _void_ - ---- - -### setupEventListeners - -▸ **setupEventListeners**(): _void_ - -**Returns:** _void_ - ---- - -### transferOwnership - -▸ **transferOwnership**(`planetId`: LocationId, `newOwner`: EthAddress, `actionId`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | -| `newOwner` | EthAddress | -| `actionId` | _string_ | - -**Returns:** _Promise_ - ---- - -### upgradePlanet - -▸ **upgradePlanet**(`args`: [_UpgradeArgs_](../modules/_types_darkforest_api_contractsapitypes.md#upgradeargs), `actionId`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------------------------------------------- | -| `args` | [_UpgradeArgs_](../modules/_types_darkforest_api_contractsapitypes.md#upgradeargs) | -| `actionId` | _string_ | - -**Returns:** _Promise_ - ---- - -### waitFor - -▸ **waitFor**(`submitted`: SubmittedTx, `receiptPromise`: _Promise_): _Promise_ - -Given an unconfirmed (but submitted) transaction, emits the appropriate -[ContractsAPIEvent](../enums/_types_darkforest_api_contractsapitypes.contractsapievent.md). - -#### Parameters - -| Name | Type | -| :--------------- | :----------------------------- | -| `submitted` | SubmittedTx | -| `receiptPromise` | _Promise_ | - -**Returns:** _Promise_ - ---- - -### withdrawArtifact - -▸ **withdrawArtifact**(`action`: UnconfirmedWithdrawArtifact): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------------- | -| `action` | UnconfirmedWithdrawArtifact | - -**Returns:** _Promise_ - ---- - -### withdrawSilver - -▸ **withdrawSilver**(`action`: UnconfirmedWithdrawSilver): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :------------------------ | -| `action` | UnconfirmedWithdrawSilver | - -**Returns:** _Promise_ - ---- - -### create - -▸ `Static` **create**(`ethConnection`: [_default_](backend_network_ethconnection.default.md)): _Promise_<[_default_](backend_gamelogic_contractsapi.default.md)\> - -#### Parameters - -| Name | Type | -| :-------------- | :---------------------------------------------------- | -| `ethConnection` | [_default_](backend_network_ethconnection.default.md) | - -**Returns:** _Promise_<[_default_](backend_gamelogic_contractsapi.default.md)\> diff --git a/docs/classes/backend_gamelogic_conversationmanager.conversationmanager.md b/docs/classes/backend_gamelogic_conversationmanager.conversationmanager.md deleted file mode 100644 index 12209330..00000000 --- a/docs/classes/backend_gamelogic_conversationmanager.conversationmanager.md +++ /dev/null @@ -1,147 +0,0 @@ -# Class: ConversationManager - -[Backend/GameLogic/ConversationManager](../modules/backend_gamelogic_conversationmanager.md).ConversationManager - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_conversationmanager.conversationmanager.md#constructor) - -### Properties - -- [artifact](backend_gamelogic_conversationmanager.conversationmanager.md#artifact) -- [artifactId](backend_gamelogic_conversationmanager.conversationmanager.md#artifactid) -- [conversation](backend_gamelogic_conversationmanager.conversationmanager.md#conversation) -- [setConversation](backend_gamelogic_conversationmanager.conversationmanager.md#setconversation) -- [setLoading](backend_gamelogic_conversationmanager.conversationmanager.md#setloading) -- [terminal](backend_gamelogic_conversationmanager.conversationmanager.md#terminal) -- [username](backend_gamelogic_conversationmanager.conversationmanager.md#username) - -### Methods - -- [printClean](backend_gamelogic_conversationmanager.conversationmanager.md#printclean) -- [printLastMessage](backend_gamelogic_conversationmanager.conversationmanager.md#printlastmessage) -- [start](backend_gamelogic_conversationmanager.conversationmanager.md#start) - -## Constructors - -### constructor - -\+ **new ConversationManager**(`terminal`: _MutableRefObject_, `setConversation`: (`conversation`: Conversation) => _void_, `setLoading`: (`loading`: _boolean_) => _void_, `artifactType`: ArtifactType, `artifactRarity`: ArtifactRarity): [_ConversationManager_](backend_gamelogic_conversationmanager.conversationmanager.md) - -#### Parameters - -| Name | Type | -| :---------------- | :------------------------------------------------------------------------------------------------------------ | -| `terminal` | _MutableRefObject_ | -| `setConversation` | (`conversation`: Conversation) => _void_ | -| `setLoading` | (`loading`: _boolean_) => _void_ | -| `artifactType` | ArtifactType | -| `artifactRarity` | ArtifactRarity | - -**Returns:** [_ConversationManager_](backend_gamelogic_conversationmanager.conversationmanager.md) - -## Properties - -### artifact - -• `Private` **artifact**: ConversationArtifact - ---- - -### artifactId - -• `Private` **artifactId**: _string_ - ---- - -### conversation - -• `Private` **conversation**: Conversation - ---- - -### setConversation - -• `Private` **setConversation**: (`conversation`: Conversation) => _void_ - -#### Type declaration - -▸ (`conversation`: Conversation): _void_ - -#### Parameters - -| Name | Type | -| :------------- | :----------- | -| `conversation` | Conversation | - -**Returns:** _void_ - ---- - -### setLoading - -• `Private` **setLoading**: (`loading`: _boolean_) => _void_ - -#### Type declaration - -▸ (`loading`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :-------- | -| `loading` | _boolean_ | - -**Returns:** _void_ - ---- - -### terminal - -• `Private` **terminal**: _MutableRefObject_ - ---- - -### username - -• `Private` **username**: _string_ - -## Methods - -### printClean - -▸ `Private` **printClean**(`message`: _string_, `style?`: [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable), `hoverContents?`: () => _Element_): _void_ - -#### Parameters - -| Name | Type | -| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `message` | _string_ | -| `style?` | [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable) | -| `hoverContents?` | () => _Element_ | - -**Returns:** _void_ - ---- - -### printLastMessage - -▸ `Private` **printLastMessage**(`message`: Message): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :------ | -| `message` | Message | - -**Returns:** _void_ - ---- - -### start - -▸ **start**(): _Promise_ - -**Returns:** _Promise_ diff --git a/docs/classes/backend_gamelogic_gamemanager.default.md b/docs/classes/backend_gamelogic_gamemanager.default.md deleted file mode 100644 index f0ab6cf2..00000000 --- a/docs/classes/backend_gamelogic_gamemanager.default.md +++ /dev/null @@ -1,2508 +0,0 @@ -# Class: default - -[Backend/GameLogic/GameManager](../modules/backend_gamelogic_gamemanager.md).default - -## Hierarchy - -- _EventEmitter_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_gamemanager.default.md#constructor) - -### Properties - -- [account](backend_gamelogic_gamemanager.default.md#account) -- [balance](backend_gamelogic_gamemanager.default.md#balance) -- [balanceInterval](backend_gamelogic_gamemanager.default.md#balanceinterval) -- [contractConstants](backend_gamelogic_gamemanager.default.md#contractconstants) -- [contractsAPI](backend_gamelogic_gamemanager.default.md#contractsapi) -- [diagnostics](backend_gamelogic_gamemanager.default.md#diagnostics) -- [endTimeSeconds](backend_gamelogic_gamemanager.default.md#endtimeseconds) -- [entityStore](backend_gamelogic_gamemanager.default.md#entitystore) -- [ethConnection](backend_gamelogic_gamemanager.default.md#ethconnection) -- [gptCreditPriceEther](backend_gamelogic_gamemanager.default.md#gptcreditpriceether) -- [gptCreditPriceEtherEmitter$](backend_gamelogic_gamemanager.default.md#gptcreditpriceetheremitter$) -- [hashConfig](backend_gamelogic_gamemanager.default.md#hashconfig) -- [hashRate](backend_gamelogic_gamemanager.default.md#hashrate) -- [homeLocation](backend_gamelogic_gamemanager.default.md#homelocation) -- [minerManager](backend_gamelogic_gamemanager.default.md#minermanager) -- [myBalance$](backend_gamelogic_gamemanager.default.md#mybalance$) -- [myGPTCredits](backend_gamelogic_gamemanager.default.md#mygptcredits) -- [myGPTCredits$](backend_gamelogic_gamemanager.default.md#mygptcredits$) -- [persistentChunkStore](backend_gamelogic_gamemanager.default.md#persistentchunkstore) -- [planetHashMimc](backend_gamelogic_gamemanager.default.md#planethashmimc) -- [playerInterval](backend_gamelogic_gamemanager.default.md#playerinterval) -- [players](backend_gamelogic_gamemanager.default.md#players) -- [settingsSubscription](backend_gamelogic_gamemanager.default.md#settingssubscription) -- [snarkHelper](backend_gamelogic_gamemanager.default.md#snarkhelper) -- [terminal](backend_gamelogic_gamemanager.default.md#terminal) -- [useMockHash](backend_gamelogic_gamemanager.default.md#usemockhash) -- [worldRadius](backend_gamelogic_gamemanager.default.md#worldradius) - -### Accessors - -- [planetRarity](backend_gamelogic_gamemanager.default.md#planetrarity) - -### Methods - -- [activateArtifact](backend_gamelogic_gamemanager.default.md#activateartifact) -- [addAccount](backend_gamelogic_gamemanager.default.md#addaccount) -- [addNewChunk](backend_gamelogic_gamemanager.default.md#addnewchunk) -- [biomebasePerlin](backend_gamelogic_gamemanager.default.md#biomebaseperlin) -- [bulkAddNewChunks](backend_gamelogic_gamemanager.default.md#bulkaddnewchunks) -- [bulkHardRefreshPlanets](backend_gamelogic_gamemanager.default.md#bulkhardrefreshplanets) -- [buyGPTCredits](backend_gamelogic_gamemanager.default.md#buygptcredits) -- [buyHat](backend_gamelogic_gamemanager.default.md#buyhat) -- [checkGameHasEnded](backend_gamelogic_gamemanager.default.md#checkgamehasended) -- [clearEmoji](backend_gamelogic_gamemanager.default.md#clearemoji) -- [deactivateArtifact](backend_gamelogic_gamemanager.default.md#deactivateartifact) -- [depositArtifact](backend_gamelogic_gamemanager.default.md#depositartifact) -- [destroy](backend_gamelogic_gamemanager.default.md#destroy) -- [findArtifact](backend_gamelogic_gamemanager.default.md#findartifact) -- [getAccount](backend_gamelogic_gamemanager.default.md#getaccount) -- [getActiveArtifact](backend_gamelogic_gamemanager.default.md#getactiveartifact) -- [getAllOwnedPlanets](backend_gamelogic_gamemanager.default.md#getallownedplanets) -- [getAllPlanets](backend_gamelogic_gamemanager.default.md#getallplanets) -- [getAllPlayers](backend_gamelogic_gamemanager.default.md#getallplayers) -- [getAllVoyages](backend_gamelogic_gamemanager.default.md#getallvoyages) -- [getArtifactMap](backend_gamelogic_gamemanager.default.md#getartifactmap) -- [getArtifactUpdated$](backend_gamelogic_gamemanager.default.md#getartifactupdated$) -- [getArtifactWithId](backend_gamelogic_gamemanager.default.md#getartifactwithid) -- [getArtifactsWithIds](backend_gamelogic_gamemanager.default.md#getartifactswithids) -- [getChunk](backend_gamelogic_gamemanager.default.md#getchunk) -- [getChunkStore](backend_gamelogic_gamemanager.default.md#getchunkstore) -- [getConstructors](backend_gamelogic_gamemanager.default.md#getconstructors) -- [getContractAddress](backend_gamelogic_gamemanager.default.md#getcontractaddress) -- [getContractConstants](backend_gamelogic_gamemanager.default.md#getcontractconstants) -- [getConversation](backend_gamelogic_gamemanager.default.md#getconversation) -- [getCurrentlyExploringChunk](backend_gamelogic_gamemanager.default.md#getcurrentlyexploringchunk) -- [getDiagnostics](backend_gamelogic_gamemanager.default.md#getdiagnostics) -- [getDist](backend_gamelogic_gamemanager.default.md#getdist) -- [getDistCoords](backend_gamelogic_gamemanager.default.md#getdistcoords) -- [getEndTimeSeconds](backend_gamelogic_gamemanager.default.md#getendtimeseconds) -- [getEnergyArrivingForMove](backend_gamelogic_gamemanager.default.md#getenergyarrivingformove) -- [getEnergyCurveAtPercent](backend_gamelogic_gamemanager.default.md#getenergycurveatpercent) -- [getEnergyNeededForMove](backend_gamelogic_gamemanager.default.md#getenergyneededformove) -- [getEnergyOfPlayer](backend_gamelogic_gamemanager.default.md#getenergyofplayer) -- [getEthConnection](backend_gamelogic_gamemanager.default.md#getethconnection) -- [getExploredChunks](backend_gamelogic_gamemanager.default.md#getexploredchunks) -- [getGameObjects](backend_gamelogic_gamemanager.default.md#getgameobjects) -- [getGptCreditBalanceEmitter](backend_gamelogic_gamemanager.default.md#getgptcreditbalanceemitter) -- [getGptCreditPriceEmitter](backend_gamelogic_gamemanager.default.md#getgptcreditpriceemitter) -- [getHashConfig](backend_gamelogic_gamemanager.default.md#gethashconfig) -- [getHashesPerSec](backend_gamelogic_gamemanager.default.md#gethashespersec) -- [getHomeCoords](backend_gamelogic_gamemanager.default.md#gethomecoords) -- [getHomeHash](backend_gamelogic_gamemanager.default.md#gethomehash) -- [getIsBuyingCreditsEmitter](backend_gamelogic_gamemanager.default.md#getisbuyingcreditsemitter) -- [getLocationOfPlanet](backend_gamelogic_gamemanager.default.md#getlocationofplanet) -- [getMaxMoveDist](backend_gamelogic_gamemanager.default.md#getmaxmovedist) -- [getMiningPattern](backend_gamelogic_gamemanager.default.md#getminingpattern) -- [getMyArtifactMap](backend_gamelogic_gamemanager.default.md#getmyartifactmap) -- [getMyArtifacts](backend_gamelogic_gamemanager.default.md#getmyartifacts) -- [getMyArtifactsUpdated$](backend_gamelogic_gamemanager.default.md#getmyartifactsupdated$) -- [getMyBalance](backend_gamelogic_gamemanager.default.md#getmybalance) -- [getMyBalanceEmitter](backend_gamelogic_gamemanager.default.md#getmybalanceemitter) -- [getMyPlanetMap](backend_gamelogic_gamemanager.default.md#getmyplanetmap) -- [getMyPlanets](backend_gamelogic_gamemanager.default.md#getmyplanets) -- [getMyPlanetsUpdated$](backend_gamelogic_gamemanager.default.md#getmyplanetsupdated$) -- [getMyScore](backend_gamelogic_gamemanager.default.md#getmyscore) -- [getNextBroadcastAvailableTimestamp](backend_gamelogic_gamemanager.default.md#getnextbroadcastavailabletimestamp) -- [getNextRevealCountdownInfo](backend_gamelogic_gamemanager.default.md#getnextrevealcountdowninfo) -- [getNotificationsManager](backend_gamelogic_gamemanager.default.md#getnotificationsmanager) -- [getPerlinThresholds](backend_gamelogic_gamemanager.default.md#getperlinthresholds) -- [getPlanetLevel](backend_gamelogic_gamemanager.default.md#getplanetlevel) -- [getPlanetMap](backend_gamelogic_gamemanager.default.md#getplanetmap) -- [getPlanetRarity](backend_gamelogic_gamemanager.default.md#getplanetrarity) -- [getPlanetUpdated$](backend_gamelogic_gamemanager.default.md#getplanetupdated$) -- [getPlanetWithCoords](backend_gamelogic_gamemanager.default.md#getplanetwithcoords) -- [getPlanetWithId](backend_gamelogic_gamemanager.default.md#getplanetwithid) -- [getPlanetsInRange](backend_gamelogic_gamemanager.default.md#getplanetsinrange) -- [getPlanetsInWorldRectangle](backend_gamelogic_gamemanager.default.md#getplanetsinworldrectangle) -- [getPlanetsWithIds](backend_gamelogic_gamemanager.default.md#getplanetswithids) -- [getPrivateKey](backend_gamelogic_gamemanager.default.md#getprivatekey) -- [getProcgenUtils](backend_gamelogic_gamemanager.default.md#getprocgenutils) -- [getRandomHomePlanetCoords](backend_gamelogic_gamemanager.default.md#getrandomhomeplanetcoords) -- [getRevealedLocations](backend_gamelogic_gamemanager.default.md#getrevealedlocations) -- [getSignedTwitter](backend_gamelogic_gamemanager.default.md#getsignedtwitter) -- [getSilverCurveAtPercent](backend_gamelogic_gamemanager.default.md#getsilvercurveatpercent) -- [getSilverOfPlayer](backend_gamelogic_gamemanager.default.md#getsilverofplayer) -- [getStalePlanetWithId](backend_gamelogic_gamemanager.default.md#getstaleplanetwithid) -- [getTemperature](backend_gamelogic_gamemanager.default.md#gettemperature) -- [getTimeForMove](backend_gamelogic_gamemanager.default.md#gettimeformove) -- [getTokenMintEndTimeSeconds](backend_gamelogic_gamemanager.default.md#gettokenmintendtimeseconds) -- [getTwitter](backend_gamelogic_gamemanager.default.md#gettwitter) -- [getUIEventEmitter](backend_gamelogic_gamemanager.default.md#getuieventemitter) -- [getUnconfirmedMoves](backend_gamelogic_gamemanager.default.md#getunconfirmedmoves) -- [getUnconfirmedUpgrades](backend_gamelogic_gamemanager.default.md#getunconfirmedupgrades) -- [getUnconfirmedWormholeActivations](backend_gamelogic_gamemanager.default.md#getunconfirmedwormholeactivations) -- [getUniverseTotalEnergy](backend_gamelogic_gamemanager.default.md#getuniversetotalenergy) -- [getUpgrade](backend_gamelogic_gamemanager.default.md#getupgrade) -- [getWithdrawnSilverOfPlayer](backend_gamelogic_gamemanager.default.md#getwithdrawnsilverofplayer) -- [getWorldRadius](backend_gamelogic_gamemanager.default.md#getworldradius) -- [getWorldSilver](backend_gamelogic_gamemanager.default.md#getworldsilver) -- [getWormholeFactors](backend_gamelogic_gamemanager.default.md#getwormholefactors) -- [getWormholes](backend_gamelogic_gamemanager.default.md#getwormholes) -- [handleTxIntent](backend_gamelogic_gamemanager.default.md#handletxintent) -- [hardRefreshArtifact](backend_gamelogic_gamemanager.default.md#hardrefreshartifact) -- [hardRefreshPlanet](backend_gamelogic_gamemanager.default.md#hardrefreshplanet) -- [hardRefreshPlayer](backend_gamelogic_gamemanager.default.md#hardrefreshplayer) -- [hasJoinedGame](backend_gamelogic_gamemanager.default.md#hasjoinedgame) -- [hasMinedChunk](backend_gamelogic_gamemanager.default.md#hasminedchunk) -- [initMiningManager](backend_gamelogic_gamemanager.default.md#initminingmanager) -- [isMining](backend_gamelogic_gamemanager.default.md#ismining) -- [isPlanetMineable](backend_gamelogic_gamemanager.default.md#isplanetmineable) -- [isRoundOver](backend_gamelogic_gamemanager.default.md#isroundover) -- [joinGame](backend_gamelogic_gamemanager.default.md#joingame) -- [loadContract](backend_gamelogic_gamemanager.default.md#loadcontract) -- [loadPlugins](backend_gamelogic_gamemanager.default.md#loadplugins) -- [locationFromCoords](backend_gamelogic_gamemanager.default.md#locationfromcoords) -- [move](backend_gamelogic_gamemanager.default.md#move) -- [onTxConfirmed](backend_gamelogic_gamemanager.default.md#ontxconfirmed) -- [onTxIntentFail](backend_gamelogic_gamemanager.default.md#ontxintentfail) -- [onTxReverted](backend_gamelogic_gamemanager.default.md#ontxreverted) -- [onTxSubmit](backend_gamelogic_gamemanager.default.md#ontxsubmit) -- [prospectPlanet](backend_gamelogic_gamemanager.default.md#prospectplanet) -- [refreshMyGPTCredits](backend_gamelogic_gamemanager.default.md#refreshmygptcredits) -- [refreshServerPlanetStates](backend_gamelogic_gamemanager.default.md#refreshserverplanetstates) -- [refreshTwitters](backend_gamelogic_gamemanager.default.md#refreshtwitters) -- [revealLocation](backend_gamelogic_gamemanager.default.md#reveallocation) -- [savePlugins](backend_gamelogic_gamemanager.default.md#saveplugins) -- [setMinerCores](backend_gamelogic_gamemanager.default.md#setminercores) -- [setMiningPattern](backend_gamelogic_gamemanager.default.md#setminingpattern) -- [setPlanetEmoji](backend_gamelogic_gamemanager.default.md#setplanetemoji) -- [setRadius](backend_gamelogic_gamemanager.default.md#setradius) -- [setSnarkCacheSize](backend_gamelogic_gamemanager.default.md#setsnarkcachesize) -- [signMessage](backend_gamelogic_gamemanager.default.md#signmessage) -- [softRefreshPlanet](backend_gamelogic_gamemanager.default.md#softrefreshplanet) -- [spaceTypeFromPerlin](backend_gamelogic_gamemanager.default.md#spacetypefromperlin) -- [spaceTypePerlin](backend_gamelogic_gamemanager.default.md#spacetypeperlin) -- [startConversation](backend_gamelogic_gamemanager.default.md#startconversation) -- [startExplore](backend_gamelogic_gamemanager.default.md#startexplore) -- [stepConversation](backend_gamelogic_gamemanager.default.md#stepconversation) -- [stopExplore](backend_gamelogic_gamemanager.default.md#stopexplore) -- [submitPlanetMessage](backend_gamelogic_gamemanager.default.md#submitplanetmessage) -- [transferOwnership](backend_gamelogic_gamemanager.default.md#transferownership) -- [updateDiagnostics](backend_gamelogic_gamemanager.default.md#updatediagnostics) -- [upgrade](backend_gamelogic_gamemanager.default.md#upgrade) -- [verifyMessage](backend_gamelogic_gamemanager.default.md#verifymessage) -- [verifyTwitter](backend_gamelogic_gamemanager.default.md#verifytwitter) -- [withdrawArtifact](backend_gamelogic_gamemanager.default.md#withdrawartifact) -- [withdrawSilver](backend_gamelogic_gamemanager.default.md#withdrawsilver) -- [create](backend_gamelogic_gamemanager.default.md#create) - -## Constructors - -### constructor - -\+ `Private` **new default**(`terminal`: _MutableRefObject_, `account`: _undefined_ \| EthAddress, `balance`: _number_, `players`: _Map_, `touchedPlanets`: _Map_, `allTouchedPlanetIds`: _Set_, `revealedCoords`: _Map_, `worldRadius`: _number_, `unprocessedArrivals`: _Map_, `unprocessedPlanetArrivalIds`: _Map_, `contractsAPI`: [_default_](backend_gamelogic_contractsapi.default.md), `contractConstants`: [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md), `persistentChunkStore`: [_default_](backend_storage_persistentchunkstore.default.md), `snarkHelper`: [_default_](backend_utils_snarkargshelper.default.md), `homeLocation`: _undefined_ \| WorldLocation, `useMockHash`: _boolean_, `artifacts`: _Map_, `ethConnection`: [_default_](backend_network_ethconnection.default.md), `gptCreditPriceEther`: _number_, `myGPTCredits`: _number_): [_default_](backend_gamelogic_gamemanager.default.md) - -#### Parameters - -| Name | Type | -| :---------------------------- | :------------------------------------------------------------------------------------------------------------ | -| `terminal` | _MutableRefObject_ | -| `account` | _undefined_ \| EthAddress | -| `balance` | _number_ | -| `players` | _Map_ | -| `touchedPlanets` | _Map_ | -| `allTouchedPlanetIds` | _Set_ | -| `revealedCoords` | _Map_ | -| `worldRadius` | _number_ | -| `unprocessedArrivals` | _Map_ | -| `unprocessedPlanetArrivalIds` | _Map_ | -| `contractsAPI` | [_default_](backend_gamelogic_contractsapi.default.md) | -| `contractConstants` | [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) | -| `persistentChunkStore` | [_default_](backend_storage_persistentchunkstore.default.md) | -| `snarkHelper` | [_default_](backend_utils_snarkargshelper.default.md) | -| `homeLocation` | _undefined_ \| WorldLocation | -| `useMockHash` | _boolean_ | -| `artifacts` | _Map_ | -| `ethConnection` | [_default_](backend_network_ethconnection.default.md) | -| `gptCreditPriceEther` | _number_ | -| `myGPTCredits` | _number_ | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - -Overrides: EventEmitter.constructor - -## Properties - -### account - -• `Private` `Readonly` **account**: _undefined_ \| EthAddress - -The ethereum address of the player who is currently logged in. We support 'no account', -represented by `undefined` in the case when you want to simply load the game state from the -contract and view it without be able to make any moves. - ---- - -### balance - -• `Private` **balance**: _number_ - -This is kept relatively up-to-date with the balance of the player's wallet on the latest block -of whatever blockchain we're connected to. - -**`todo`** move this into a new `PlayerState` class. - ---- - -### balanceInterval - -• `Private` **balanceInterval**: _Timeout_ - -Handle to an interval that periodically refreshes the player's balance. - -**`todo`** move this into a new `PlayerState` class. - ---- - -### contractConstants - -• `Private` `Readonly` **contractConstants**: [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) - -Game parameters set by the contract. Stuff like perlin keys, which are important for mining the -correct universe, or the time multiplier, which allows us to tune how quickly voyages go. - -**`todo`** move this into a separate `GameConfiguration` class. - ---- - -### contractsAPI - -• `Private` `Readonly` **contractsAPI**: [_default_](backend_gamelogic_contractsapi.default.md) - -Allows us to make contract calls, and execute transactions. Be careful about how you use this -guy. You don't want to cause your client to send an excessive amount of traffic to whatever -node you're connected to. - -Interacting with the blockchain isn't free, and we need to be mindful about about the way our -application interacts with the blockchain. The current rate limiting strategy consists of three -points: - -- data that needs to be fetched often should be fetched in bulk. -- rate limit smart contract calls (reads from the blockchain), implemented by - [ContractCaller](backend_gamelogic_contractcaller.contractcaller.md) and transactions (writes to the blockchain on behalf of the player), - implemented by [TxExecutor](backend_network_txexecutor.txexecutor.md) via two separately tuned [ThrottledConcurrentQueue](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md)s. - ---- - -### diagnostics - -• `Private` **diagnostics**: [_Diagnostics_](../interfaces/frontend_panes_diagnosticspane.diagnostics.md) - -Diagnostic information about the game. - ---- - -### endTimeSeconds - -• `Private` `Readonly` **endTimeSeconds**: _number_= 1643587533 - -**`todo`** change this to the correct timestamp each round. - ---- - -### entityStore - -• `Private` `Readonly` **entityStore**: [_GameObjects_](backend_gamelogic_gameobjects.gameobjects.md) - -This variable contains the internal state of objects that live in the game world. - ---- - -### ethConnection - -• `Private` `Readonly` **ethConnection**: [_default_](backend_network_ethconnection.default.md) - -An interface to the blockchain that is a little bit lower-level than {@link ContractsAPI}. It -allows us to do basic operations such as wait for a transaction to complete, check the player's -address and balance, etc. - ---- - -### gptCreditPriceEther - -• `Private` **gptCreditPriceEther**: _number_ - -Price of a single gpt credit, which buys you a single interaction with the GPT-powered AI -Artifact Chat Bots. - -**`todo`** move this into a new `GameConfiguration` class. - ---- - -### gptCreditPriceEtherEmitter$ - -• `Private` **gptCreditPriceEtherEmitter$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -Whenever the price of single GPT credit changes, we emit that event here. - ---- - -### hashConfig - -• `Private` `Readonly` **hashConfig**: [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) - -Each round we change the hash configuration of the game. The hash configuration is download -from the blockchain, and essentially acts as a salt, permuting the universe into a unique -configuration for each new round. - -**`todo`** deduplicate this and `useMockHash` somehow. - ---- - -### hashRate - -• `Private` **hashRate**: _number_ - -Continuously updated value representing the total hashes per second that the game is currently -mining the universe at. - -**`todo`** keep this in {@link MinerManager} - ---- - -### homeLocation - -• `Private` **homeLocation**: _undefined_ \| WorldLocation - -The spawn location of the current player. - -**`todo,`** make this smarter somehow. It's really annoying to have to import world coordinates, and -get them wrong or something. Maybe we need to mark a planet, once it's been initialized -contract-side, as the homeworld of the user who initialized on it. That way, when you import a -new account into the game, and you import map data that contains your home planet, the client -would be able to automatically detect which planet is the player's home planet. - -**`todo`** move this into a new `PlayerState` class. - ---- - -### minerManager - -• `Private` `Optional` **minerManager**: [_default_](backend_miner_minermanager.default.md) - -Manages the process of mining new space territory. - ---- - -### myBalance$ - -• `Private` **myBalance$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -Any time the balance of the player's address changes, we publish an event here. - -**`todo`** move this into a new `PlayerState` class. - ---- - -### myGPTCredits - -• `Private` **myGPTCredits**: _number_ - -The total amount of GPT credits that belong to the current player. - -**`todo`** move this into a new `PlayerState` class. - ---- - -### myGPTCredits$ - -• `Private` **myGPTCredits$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -Whenever the amount of the GPT credits that this player owns changes, we publish an event here. - -**`todo`** move this into a new `PlayerState` class. - ---- - -### persistentChunkStore - -• `Private` `Readonly` **persistentChunkStore**: [_default_](backend_storage_persistentchunkstore.default.md) - -An object that syncs any newly added or deleted chunks to the player's IndexedDB. - -**`todo`** it also persists other game data to IndexedDB. This class needs to be renamed `GameSaver` -or something like that. - ---- - -### planetHashMimc - -• `Private` `Readonly` **planetHashMimc**: (...`inputs`: _number_[]) => BigInteger - -The aforementioned hash function. In debug mode where `DISABLE_ZK_CHECKS` is on, we use a -faster hash function. Othewise, in production mode, use MiMC hash (https://byt3bit.github.io/primesym/). - -#### Type declaration - -▸ (...`inputs`: _number_[]): BigInteger - -#### Parameters - -| Name | Type | -| :---------- | :--------- | -| `...inputs` | _number_[] | - -**Returns:** BigInteger - ---- - -### playerInterval - -• `Private` **playerInterval**: _Timeout_ - -Handle to an interval that periodically refreshes some information about the player from the -blockchain. - -**`todo`** move this into a new `PlayerState` class. - ---- - -### players - -• `Private` `Readonly` **players**: _Map_ - -Map from ethereum addresses to player objects. This isn't stored in [GameObjects](backend_gamelogic_gameobjects.gameobjects.md), -because it's not techincally an entity that exists in the world. A player just controls planets -and artifacts that do exist in the world. - -**`todo`** move this into a new `Players` class. - ---- - -### settingsSubscription - -• `Private` **settingsSubscription**: _undefined_ \| [_Subscription_](../modules/frontend_utils_monomitter.md#subscription) - -Subscription to act on setting changes - ---- - -### snarkHelper - -• `Private` `Readonly` **snarkHelper**: [_default_](backend_utils_snarkargshelper.default.md) - -Responsible for generating snark proofs. - ---- - -### terminal - -• `Private` `Readonly` **terminal**: _MutableRefObject_ - -Kind of hacky, but we store a reference to the terminal that the player sees when the initially -load into the game. This is the same exact terminal that appears inside the collapsable right -bar of the game. - ---- - -### useMockHash - -• `Private` `Readonly` **useMockHash**: _boolean_ - -In debug builds of the game, we can connect to a set of contracts deployed to a local -blockchain, which are tweaked to not verify planet hashes, meaning we can use a faster hash -function with similar properties to mimc. This allows us to mine the map faster in debug mode. - -**`todo`** move this into a separate `GameConfiguration` class. - ---- - -### worldRadius - -• `Private` **worldRadius**: _number_ - -Sometimes the universe gets bigger... Sometimes it doesn't. - -**`todo`** move this into a new `GameConfiguration` class. - -## Accessors - -### planetRarity - -• get **planetRarity**(): _number_ - -**Returns:** _number_ - -## Methods - -### activateArtifact - -▸ **activateArtifact**(`locationId`: LocationId, `artifactId`: ArtifactId, `wormholeTo`: _undefined_ \| LocationId, `bypassChecks?`: _boolean_): [_default_](backend_gamelogic_gamemanager.default.md) - -#### Parameters - -| Name | Type | Default value | -| :------------- | :------------------------ | :------------ | -| `locationId` | LocationId | - | -| `artifactId` | ArtifactId | - | -| `wormholeTo` | _undefined_ \| LocationId | - | -| `bypassChecks` | _boolean_ | false | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### addAccount - -▸ **addAccount**(`coords`: WorldCoords): _Promise_ - -Initializes a new player's game to start at the given home planet. Must have already -initialized the player on the contract. - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _Promise_ - ---- - -### addNewChunk - -▸ **addNewChunk**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): [_default_](backend_gamelogic_gamemanager.default.md) - -Makes this game manager aware of a new chunk - which includes its location, size, -as well as all of the planets contained in that chunk. Causes the client to load -all of the information about those planets from the blockchain. - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### biomebasePerlin - -▸ **biomebasePerlin**(`coords`: WorldCoords, `floor`: _boolean_): _number_ - -Gets the biome perlin valie at the given location in the world. - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | -| `floor` | _boolean_ | - -**Returns:** _number_ - ---- - -### bulkAddNewChunks - -▸ **bulkAddNewChunks**(`chunks`: [_Chunk_](_types_global_globaltypes.chunk.md)[]): _Promise_ - -To add multiple chunks at once, use this function rather than `addNewChunk`, in order -to load all of the associated planet data in an efficient manner. - -#### Parameters - -| Name | Type | -| :------- | :---------------------------------------------- | -| `chunks` | [_Chunk_](_types_global_globaltypes.chunk.md)[] | - -**Returns:** _Promise_ - ---- - -### bulkHardRefreshPlanets - -▸ `Private` **bulkHardRefreshPlanets**(`planetIds`: LocationId[]): _Promise_ - -#### Parameters - -| Name | Type | -| :---------- | :----------- | -| `planetIds` | LocationId[] | - -**Returns:** _Promise_ - ---- - -### buyGPTCredits - -▸ **buyGPTCredits**(`amount`: _number_): [_default_](backend_gamelogic_gamemanager.default.md) - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `amount` | _number_ | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### buyHat - -▸ **buyHat**(`planetId`: LocationId, `_bypassChecks?`: _boolean_): [_default_](backend_gamelogic_gamemanager.default.md) - -Submits a transaction to the blockchain to buy a hat for the given planet. You -must own the planet. Warning costs real xdai. Hats are permanently locked to a -planet. They are purely cosmetic and a great way to BM your opponents or just -look your best. Just like in the real world, more money means more hat. - -#### Parameters - -| Name | Type | Default value | -| :-------------- | :--------- | :------------ | -| `planetId` | LocationId | - | -| `_bypassChecks` | _boolean_ | false | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### checkGameHasEnded - -▸ `Private` **checkGameHasEnded**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### clearEmoji - -▸ **clearEmoji**(`locationId`: LocationId): _Promise_ - -If you are the owner of this planet, you can delete the emoji that is hovering above the -planet. - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `locationId` | LocationId | - -**Returns:** _Promise_ - ---- - -### deactivateArtifact - -▸ **deactivateArtifact**(`locationId`: LocationId, `artifactId`: ArtifactId, `bypassChecks?`: _boolean_): _undefined_ \| [_default_](backend_gamelogic_gamemanager.default.md) - -#### Parameters - -| Name | Type | Default value | -| :------------- | :--------- | :------------ | -| `locationId` | LocationId | - | -| `artifactId` | ArtifactId | - | -| `bypassChecks` | _boolean_ | false | - -**Returns:** _undefined_ \| [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### depositArtifact - -▸ **depositArtifact**(`locationId`: LocationId, `artifactId`: ArtifactId, `bypassChecks?`: _boolean_): [_default_](backend_gamelogic_gamemanager.default.md) - -Submits a transaction to the blockchain to deposit an artifact on a given planet. -You must own the planet and you must own the artifact directly (can't be locked in contract) - -#### Parameters - -| Name | Type | Default value | -| :------------- | :--------- | :------------ | -| `locationId` | LocationId | - | -| `artifactId` | ArtifactId | - | -| `bypassChecks` | _boolean_ | true | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### destroy - -▸ **destroy**(): _void_ - -**Returns:** _void_ - ---- - -### findArtifact - -▸ **findArtifact**(`planetId`: LocationId, `bypassChecks?`: _boolean_): [_default_](backend_gamelogic_gamemanager.default.md) - -Calls the contract to find an artifact on the given planet. - -#### Parameters - -| Name | Type | Default value | -| :------------- | :--------- | :------------ | -| `planetId` | LocationId | - | -| `bypassChecks` | _boolean_ | false | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### getAccount - -▸ **getAccount**(): _undefined_ \| EthAddress - -Gets the address of the player logged into this game manager. - -**Returns:** _undefined_ \| EthAddress - ---- - -### getActiveArtifact - -▸ **getActiveArtifact**(`planet`: Planet): _undefined_ \| Artifact - -Gets the active artifact on this planet, if one exists. - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _undefined_ \| Artifact - ---- - -### getAllOwnedPlanets - -▸ **getAllOwnedPlanets**(): Planet[] - -Gets a list of planets that have an owner. - -**Returns:** Planet[] - ---- - -### getAllPlanets - -▸ **getAllPlanets**(): _Iterable_ - -Gets all planets. This means all planets that are in the contract, and also all -planets that have been mined locally. Does not update planets if they are stale. -NOT PERFORMANT - for scripting only. - -**Returns:** _Iterable_ - ---- - -### getAllPlayers - -▸ **getAllPlayers**(): Player[] - -Gets a list of all the players in the game (not just the ones you've -encounterd) - -**Returns:** Player[] - ---- - -### getAllVoyages - -▸ **getAllVoyages**(): QueuedArrival[] - -Gets all voyages that have not completed. - -**Returns:** QueuedArrival[] - ---- - -### getArtifactMap - -▸ **getArtifactMap**(): _Map_ - -Return a reference to the artifact map - -**Returns:** _Map_ - ---- - -### getArtifactUpdated$ - -▸ **getArtifactUpdated$**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getArtifactWithId - -▸ **getArtifactWithId**(`artifactId`: ArtifactId): _undefined_ \| Artifact - -Gets the artifact with the given id. Null if no artifact with id exists. - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _undefined_ \| Artifact - ---- - -### getArtifactsWithIds - -▸ **getArtifactsWithIds**(`artifactIds`: ArtifactId[]): (_undefined_ \| Artifact)[] - -Gets the artifacts with the given ids, including ones we know exist but haven't been loaded, -represented by `undefined`. - -#### Parameters - -| Name | Type | -| :------------ | :----------- | -| `artifactIds` | ArtifactId[] | - -**Returns:** (_undefined_ \| Artifact)[] - ---- - -### getChunk - -▸ **getChunk**(`chunkFootprint`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): _undefined_ \| [_Chunk_](_types_global_globaltypes.chunk.md) - -#### Parameters - -| Name | Type | -| :--------------- | :------------------------------------------------------------------ | -| `chunkFootprint` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** _undefined_ \| [_Chunk_](_types_global_globaltypes.chunk.md) - ---- - -### getChunkStore - -▸ **getChunkStore**(): [_default_](backend_storage_persistentchunkstore.default.md) - -**Returns:** [_default_](backend_storage_persistentchunkstore.default.md) - ---- - -### getConstructors - -▸ **getConstructors**(): _object_ - -Returns constructors of classes that may be useful for developing plugins. - -**Returns:** _object_ - -| Name | Type | -| :------------------- | :---------------------------------------------------------------------------------- | -| `MinerManager` | _typeof_ [_default_](backend_miner_minermanager.default.md) | -| `SpiralPattern` | _typeof_ [_SpiralPattern_](backend_miner_miningpatterns.spiralpattern.md) | -| `SwissCheesePattern` | _typeof_ [_SwissCheesePattern_](backend_miner_miningpatterns.swisscheesepattern.md) | - ---- - -### getContractAddress - -▸ **getContractAddress**(): EthAddress - -Gets the address of the `DarkForestCore` contract, which is essentially -the 'backend' of the game. - -**Returns:** EthAddress - ---- - -### getContractConstants - -▸ **getContractConstants**(): [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) - -**Returns:** [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) - ---- - -### getConversation - -▸ **getConversation**(`artifactId`: ArtifactId): _Promise_ - -Gets the GPT conversation with an artifact; undefined if there is none so far - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### getCurrentlyExploringChunk - -▸ **getCurrentlyExploringChunk**(): _undefined_ \| [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - -Gets the rectangle bounding the chunk that the miner is currently in the process -of hashing. - -**Returns:** _undefined_ \| [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - ---- - -### getDiagnostics - -▸ **getDiagnostics**(): [_Diagnostics_](../interfaces/frontend_panes_diagnosticspane.diagnostics.md) - -Gets some diagnostic information about the game. Returns a copy, you can't modify it. - -**Returns:** [_Diagnostics_](../interfaces/frontend_panes_diagnosticspane.diagnostics.md) - ---- - -### getDist - -▸ **getDist**(`fromId`: LocationId, `toId`: LocationId): _number_ - -Gets the distance between two planets. Throws an exception if you don't -know the location of either planet. - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `fromId` | LocationId | -| `toId` | LocationId | - -**Returns:** _number_ - ---- - -### getDistCoords - -▸ **getDistCoords**(`fromCoords`: WorldCoords, `toCoords`: WorldCoords): _number_ - -Gets the distance between two coordinates in space. - -#### Parameters - -| Name | Type | -| :----------- | :---------- | -| `fromCoords` | WorldCoords | -| `toCoords` | WorldCoords | - -**Returns:** _number_ - ---- - -### getEndTimeSeconds - -▸ **getEndTimeSeconds**(): _number_ - -The game ends at a particular time in the future - get this time measured -in seconds from the epoch. - -**Returns:** _number_ - ---- - -### getEnergyArrivingForMove - -▸ **getEnergyArrivingForMove**(`fromId`: LocationId, `toId`: _undefined_ \| LocationId, `distance`: _undefined_ \| _number_, `sentEnergy`: _number_): _number_ - -Gets the amount of energy that would arrive if a voyage with the given parameters -was to occur. The toPlanet is optional, in case you want an estimate that doesn't include -wormhole speedups. - -#### Parameters - -| Name | Type | -| :----------- | :------------------------ | -| `fromId` | LocationId | -| `toId` | _undefined_ \| LocationId | -| `distance` | _undefined_ \| _number_ | -| `sentEnergy` | _number_ | - -**Returns:** _number_ - ---- - -### getEnergyCurveAtPercent - -▸ **getEnergyCurveAtPercent**(`planet`: Planet, `percent`: _number_): _number_ - -returns timestamp (seconds) that planet will reach percent% of energycap -time may be in the past - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `planet` | Planet | -| `percent` | _number_ | - -**Returns:** _number_ - ---- - -### getEnergyNeededForMove - -▸ **getEnergyNeededForMove**(`fromId`: LocationId, `toId`: LocationId, `arrivingEnergy`: _number_): _number_ - -Gets the amount of energy needed in order for a voyage from the given to the given -planet to arrive with your desired amount of energy. - -#### Parameters - -| Name | Type | -| :--------------- | :--------- | -| `fromId` | LocationId | -| `toId` | LocationId | -| `arrivingEnergy` | _number_ | - -**Returns:** _number_ - ---- - -### getEnergyOfPlayer - -▸ **getEnergyOfPlayer**(`player`: EthAddress): _number_ - -Gets the total amount of energy that lives on planets that the given player owns. - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `player` | EthAddress | - -**Returns:** _number_ - ---- - -### getEthConnection - -▸ **getEthConnection**(): [_default_](backend_network_ethconnection.default.md) - -**Returns:** [_default_](backend_network_ethconnection.default.md) - ---- - -### getExploredChunks - -▸ **getExploredChunks**(): _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\> - -Gets all the map chunks that this client is aware of. Chunks may have come from -mining, or from importing map data. - -**Returns:** _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\> - ---- - -### getGameObjects - -▸ **getGameObjects**(): [_GameObjects_](backend_gamelogic_gameobjects.gameobjects.md) - -Gets a reference to the game's internal representation of the world state. This includes -voyages, planets, artifacts, and active wormholes, - -**Returns:** [_GameObjects_](backend_gamelogic_gameobjects.gameobjects.md) - ---- - -### getGptCreditBalanceEmitter - -▸ **getGptCreditBalanceEmitter**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getGptCreditPriceEmitter - -▸ **getGptCreditPriceEmitter**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getHashConfig - -▸ **getHashConfig**(): [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) - -Gets the HASH CONFIG - -**Returns:** [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) - ---- - -### getHashesPerSec - -▸ **getHashesPerSec**(): _number_ - -Gets the amount of hashes per second that the miner manager is calculating. - -**Returns:** _number_ - ---- - -### getHomeCoords - -▸ **getHomeCoords**(): _undefined_ \| WorldCoords - -Gets the location of your home planet. - -**Returns:** _undefined_ \| WorldCoords - ---- - -### getHomeHash - -▸ **getHomeHash**(): _undefined_ \| LocationId - -Gets the hash of the location of your home planet. - -**Returns:** _undefined_ \| LocationId - ---- - -### getIsBuyingCreditsEmitter - -▸ **getIsBuyingCreditsEmitter**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getLocationOfPlanet - -▸ **getLocationOfPlanet**(`planetId`: LocationId): _undefined_ \| WorldLocation - -Gets the location of the given planet. Returns undefined if the planet does not exist, or if -we do not know the location of this planet NOT update the planet if the planet is stale, -which means this function is fast. - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| WorldLocation - ---- - -### getMaxMoveDist - -▸ **getMaxMoveDist**(`planetId`: LocationId, `sendingPercent`: _number_): _number_ - -Gets the maximuim distance that you can send your energy from the given planet, -using the given percentage of that planet's current silver. - -#### Parameters - -| Name | Type | -| :--------------- | :--------- | -| `planetId` | LocationId | -| `sendingPercent` | _number_ | - -**Returns:** _number_ - ---- - -### getMiningPattern - -▸ **getMiningPattern**(): _undefined_ \| [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) - -Gets the mining pattern that the miner is currently using. - -**Returns:** _undefined_ \| [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) - ---- - -### getMyArtifactMap - -▸ **getMyArtifactMap**(): _Map_ - -Return a reference to the map of my artifacts - -**Returns:** _Map_ - ---- - -### getMyArtifacts - -▸ **getMyArtifacts**(): Artifact[] - -gets both deposited artifacts that are on planets i own as well as artifacts i own - -**Returns:** Artifact[] - ---- - -### getMyArtifactsUpdated$ - -▸ **getMyArtifactsUpdated$**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter)\> - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter)\> - ---- - -### getMyBalance - -▸ **getMyBalance**(): _number_ - -Gets the balance of the account - -**Returns:** _number_ - ---- - -### getMyBalanceEmitter - -▸ **getMyBalanceEmitter**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getMyPlanetMap - -▸ **getMyPlanetMap**(): _Map_ - -Return a reference to the map of my planets - -**Returns:** _Map_ - ---- - -### getMyPlanets - -▸ **getMyPlanets**(): Planet[] - -Gets a list of the planets that the player logged into this `GameManager` owns. - -**Returns:** Planet[] - ---- - -### getMyPlanetsUpdated$ - -▸ **getMyPlanetsUpdated$**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter)\> - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter)\> - ---- - -### getMyScore - -▸ **getMyScore**(): _number_ - -Get the score of the currently logged-in account. - -**Returns:** _number_ - ---- - -### getNextBroadcastAvailableTimestamp - -▸ **getNextBroadcastAvailableTimestamp**(): _number_ - -Gets the timestamp (ms) of the next time that we can broadcast the coordinates of a planet. - -**Returns:** _number_ - ---- - -### getNextRevealCountdownInfo - -▸ **getNextRevealCountdownInfo**(): [_RevealCountdownInfo_](../interfaces/_types_global_globaltypes.revealcountdowninfo.md) - -Returns info about the next time you can broadcast coordinates - -**Returns:** [_RevealCountdownInfo_](../interfaces/_types_global_globaltypes.revealcountdowninfo.md) - ---- - -### getNotificationsManager - -▸ **getNotificationsManager**(): [_default_](frontend_game_notificationmanager.default.md) - -**Returns:** [_default_](frontend_game_notificationmanager.default.md) - ---- - -### getPerlinThresholds - -▸ **getPerlinThresholds**(): [*number*, *number*, *number*] - -The perlin value at each coordinate determines the space type. There are four space -types, which means there are four ranges on the number line that correspond to -each space type. This function returns the boundary values between each of these -four ranges: `PERLIN_THRESHOLD_1`, `PERLIN_THRESHOLD_2`, `PERLIN_THRESHOLD_3`. - -**Returns:** [*number*, *number*, *number*] - ---- - -### getPlanetLevel - -▸ **getPlanetLevel**(`planetId`: LocationId): _undefined_ \| ZERO \| ONE \| TWO \| THREE \| FOUR \| FIVE \| SIX \| SEVEN \| EIGHT \| NINE - -Gets the level of the given planet. Returns undefined if the planet does not exist. Does -NOT update the planet if the planet is stale, which means this function is fast. - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| ZERO \| ONE \| TWO \| THREE \| FOUR \| FIVE \| SIX \| SEVEN \| EIGHT \| NINE - ---- - -### getPlanetMap - -▸ **getPlanetMap**(): _Map_ - -Return a reference to the planet map - -**Returns:** _Map_ - ---- - -### getPlanetRarity - -▸ **getPlanetRarity**(): _number_ - -Gets the rarity of planets in the universe - -**Returns:** _number_ - ---- - -### getPlanetUpdated$ - -▸ **getPlanetUpdated$**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getPlanetWithCoords - -▸ **getPlanetWithCoords**(`coords`: WorldCoords): _undefined_ \| Planet - -Gets the planet that is located at the given coordinates. Returns undefined if not a valid -location or if no planet exists at location. If the planet needs to be updated (because -some time has passed since we last updated the planet), then updates that planet first. - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _undefined_ \| Planet - ---- - -### getPlanetWithId - -▸ **getPlanetWithId**(`planetId`: _undefined_ \| LocationId): _undefined_ \| Planet - -Gets the planet with the given hash. Returns undefined if the planet is neither in the contract -nor has been discovered locally. If the planet needs to be updated (because some time has -passed since we last updated the planet), then updates that planet first. - -#### Parameters - -| Name | Type | -| :--------- | :------------------------ | -| `planetId` | _undefined_ \| LocationId | - -**Returns:** _undefined_ \| Planet - ---- - -### getPlanetsInRange - -▸ **getPlanetsInRange**(`planetId`: LocationId, `sendingPercent`: _number_): Planet[] - -Gets all the planets that you can reach with at least 1 energy from -the given planet. - -#### Parameters - -| Name | Type | -| :--------------- | :--------- | -| `planetId` | LocationId | -| `sendingPercent` | _number_ | - -**Returns:** Planet[] - ---- - -### getPlanetsInWorldRectangle - -▸ **getPlanetsInWorldRectangle**(`worldX`: _number_, `worldY`: _number_, `worldWidth`: _number_, `worldHeight`: _number_, `levels`: _number_[], `planetLevelToRadii`: _Map_, `updateIfStale?`: _boolean_): LocatablePlanet[] - -Gets the ids of all the planets that are both within the given bounding box (defined by its bottom -left coordinate, width, and height) in the world and of a level that was passed in via the -`planetLevels` parameter. - -#### Parameters - -| Name | Type | Default value | -| :------------------- | :----------------------------------------------------------------------------------- | :------------ | -| `worldX` | _number_ | - | -| `worldY` | _number_ | - | -| `worldWidth` | _number_ | - | -| `worldHeight` | _number_ | - | -| `levels` | _number_[] | - | -| `planetLevelToRadii` | _Map_ | - | -| `updateIfStale` | _boolean_ | true | - -**Returns:** LocatablePlanet[] - ---- - -### getPlanetsWithIds - -▸ **getPlanetsWithIds**(`planetId`: LocationId[]): Planet[] - -Gets a list of planets in the client's memory with the given ids. If a planet with the given id -doesn't exist, no entry for that planet will be returned in the result. - -#### Parameters - -| Name | Type | -| :--------- | :----------- | -| `planetId` | LocationId[] | - -**Returns:** Planet[] - ---- - -### getPrivateKey - -▸ **getPrivateKey**(): _string_ - -Gets the private key of the burner wallet used by this account. - -**Returns:** _string_ - ---- - -### getProcgenUtils - -▸ **getProcgenUtils**(): _typeof_ [_ProcgenUtils_](backend_procedural_procgenutils.procgenutils.md) - -Helpful functions for getting the names, descriptions, and colors of in-game entities. - -**Returns:** _typeof_ [_ProcgenUtils_](backend_procedural_procgenutils.procgenutils.md) - ---- - -### getRandomHomePlanetCoords - -▸ `Private` **getRandomHomePlanetCoords**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### getRevealedLocations - -▸ **getRevealedLocations**(): _Map_ - -Gets a map of all location IDs whose coords have been publicly revealed - -**Returns:** _Map_ - ---- - -### getSignedTwitter - -▸ **getSignedTwitter**(`twitter`: _string_): _Promise_ - -Signs the given twitter handle with the private key of the current user. Used to -verify that the person who owns the Dark Forest account was the one that attempted -to link a twitter to their account. - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `twitter` | _string_ | - -**Returns:** _Promise_ - ---- - -### getSilverCurveAtPercent - -▸ **getSilverCurveAtPercent**(`planet`: Planet, `percent`: _number_): _undefined_ \| _number_ - -returns timestamp (seconds) that planet will reach percent% of silcap if -doesn't produce silver, returns undefined if already over percent% of silcap, - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `planet` | Planet | -| `percent` | _number_ | - -**Returns:** _undefined_ \| _number_ - ---- - -### getSilverOfPlayer - -▸ **getSilverOfPlayer**(`player`: EthAddress): _number_ - -Gets the total amount of silver that lives on planets that the given player owns. - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `player` | EthAddress | - -**Returns:** _number_ - ---- - -### getStalePlanetWithId - -▸ **getStalePlanetWithId**(`planetId`: LocationId): _undefined_ \| Planet - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| Planet - ---- - -### getTemperature - -▸ **getTemperature**(`coords`: WorldCoords): _number_ - -Gets the temperature of a given location. - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _number_ - ---- - -### getTimeForMove - -▸ **getTimeForMove**(`fromId`: LocationId, `toId`: LocationId): _number_ - -Gets the amount of time, in seconds that a voyage between from the first to the -second planet would take. - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `fromId` | LocationId | -| `toId` | LocationId | - -**Returns:** _number_ - ---- - -### getTokenMintEndTimeSeconds - -▸ **getTokenMintEndTimeSeconds**(): _number_ - -Dark Forest tokens can only be minted up to a certain time - get this time measured in seconds from epoch. - -**Returns:** _number_ - ---- - -### getTwitter - -▸ **getTwitter**(`address`: _undefined_ \| EthAddress): _undefined_ \| _string_ - -Gets the twitter handle of the given ethereum account which is associated -with Dark Forest. - -#### Parameters - -| Name | Type | -| :-------- | :------------------------ | -| `address` | _undefined_ \| EthAddress | - -**Returns:** _undefined_ \| _string_ - ---- - -### getUIEventEmitter - -▸ **getUIEventEmitter**(): [_default_](frontend_utils_uiemitter.default.md) - -Helpful for listening to user input events. - -**Returns:** [_default_](frontend_utils_uiemitter.default.md) - ---- - -### getUnconfirmedMoves - -▸ **getUnconfirmedMoves**(): UnconfirmedMove[] - -Gets all moves that this client has queued to be uploaded to the contract, but -have not been successfully confirmed yet. - -**Returns:** UnconfirmedMove[] - ---- - -### getUnconfirmedUpgrades - -▸ **getUnconfirmedUpgrades**(): UnconfirmedUpgrade[] - -Gets all upgrades that this client has queued to be uploaded to the contract, but -have not been successfully confirmed yet. - -**Returns:** UnconfirmedUpgrade[] - ---- - -### getUnconfirmedWormholeActivations - -▸ **getUnconfirmedWormholeActivations**(): UnconfirmedActivateArtifact[] - -**Returns:** UnconfirmedActivateArtifact[] - ---- - -### getUniverseTotalEnergy - -▸ **getUniverseTotalEnergy**(): _number_ - -Gets the total amount of energy that lives on a planet that somebody owns. - -**Returns:** _number_ - ---- - -### getUpgrade - -▸ **getUpgrade**(`branch`: _number_, `level`: _number_): Upgrade - -Returns the upgrade that would be applied to a planet given a particular -upgrade branch (defense, range, speed) and level of upgrade. - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `branch` | _number_ | -| `level` | _number_ | - -**Returns:** Upgrade - ---- - -### getWithdrawnSilverOfPlayer - -▸ **getWithdrawnSilverOfPlayer**(`addr`: EthAddress): _number_ - -#### Parameters - -| Name | Type | -| :----- | :--------- | -| `addr` | EthAddress | - -**Returns:** _number_ - ---- - -### getWorldRadius - -▸ **getWorldRadius**(): _number_ - -Gets the radius of the playable area of the universe. - -**Returns:** _number_ - ---- - -### getWorldSilver - -▸ **getWorldSilver**(): _number_ - -Gets the total amount of silver that lives on a planet that somebody owns. - -**Returns:** _number_ - ---- - -### getWormholeFactors - -▸ **getWormholeFactors**(`fromPlanet`: Planet, `toPlanet`: Planet): _undefined_ \| { `distanceFactor`: _number_ ; `speedFactor`: _number_ } - -If there's an active artifact on either of these planets which happens to be a wormhole which -is active and targetting the other planet, return the wormhole boost which is greater. Values -represent a multiplier. - -#### Parameters - -| Name | Type | -| :----------- | :----- | -| `fromPlanet` | Planet | -| `toPlanet` | Planet | - -**Returns:** _undefined_ \| { `distanceFactor`: _number_ ; `speedFactor`: _number_ } - ---- - -### getWormholes - -▸ **getWormholes**(): _Iterable_<[_Wormhole_](../modules/_types_global_globaltypes.md#wormhole)\> - -**Returns:** _Iterable_<[_Wormhole_](../modules/_types_global_globaltypes.md#wormhole)\> - ---- - -### handleTxIntent - -▸ `Private` **handleTxIntent**(`txIntent`: TxIntent): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** _void_ - ---- - -### hardRefreshArtifact - -▸ `Private` **hardRefreshArtifact**(`artifactId`: ArtifactId): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### hardRefreshPlanet - -▸ `Private` **hardRefreshPlanet**(`planetId`: LocationId): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _Promise_ - ---- - -### hardRefreshPlayer - -▸ `Private` **hardRefreshPlayer**(`address`: EthAddress): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `address` | EthAddress | - -**Returns:** _Promise_ - ---- - -### hasJoinedGame - -▸ **hasJoinedGame**(): _boolean_ - -Whether or not this client has successfully found and landed on a home planet. - -**Returns:** _boolean_ - ---- - -### hasMinedChunk - -▸ **hasMinedChunk**(`chunkLocation`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): _boolean_ - -Whether or not the given rectangle has been mined. - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------------------ | -| `chunkLocation` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** _boolean_ - ---- - -### initMiningManager - -▸ `Private` **initMiningManager**(`homeCoords`: WorldCoords): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :---------- | -| `homeCoords` | WorldCoords | - -**Returns:** _void_ - ---- - -### isMining - -▸ **isMining**(): _boolean_ - -Whether or not the miner is currently exploring space. - -**Returns:** _boolean_ - ---- - -### isPlanetMineable - -▸ **isPlanetMineable**(`p`: Planet): _boolean_ - -Whether or not the given planet is capable of minting an artifact. - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** _boolean_ - ---- - -### isRoundOver - -▸ **isRoundOver**(): _boolean_ - -Returns whether or not the current round has ended. - -**Returns:** _boolean_ - ---- - -### joinGame - -▸ **joinGame**(`beforeRetry`: (`e`: Error) => _Promise_): [_default_](backend_gamelogic_gamemanager.default.md) - -Attempts to join the game. Should not be called once you've already joined. - -#### Parameters - -| Name | Type | -| :------------ | :---------------------------------- | -| `beforeRetry` | (`e`: Error) => _Promise_ | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### loadContract - -▸ **loadContract**(`contractAddress`: _string_, `contractABI`: ContractInterface): _Promise_ - -Returns an instance of a `Contract` from the ethersjs library. This is the library we use to -connect to the blockchain. For documentation about how `Contract` works, see: -https://docs.ethers.io/v5/api/contract/contract/ - -#### Parameters - -| Name | Type | -| :---------------- | :---------------- | -| `contractAddress` | _string_ | -| `contractABI` | ContractInterface | - -**Returns:** _Promise_ - ---- - -### loadPlugins - -▸ **loadPlugins**(): _Promise_<[_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[]\> - -Load the serialized versions of all the plugins that this player has. - -**Returns:** _Promise_<[_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[]\> - ---- - -### locationFromCoords - -▸ `Private` **locationFromCoords**(`coords`: WorldCoords): WorldLocation - -computes the WorldLocation object corresponding to a set of coordinates -very slow since it actually calculates the hash; do not use in render loop - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** WorldLocation - ---- - -### move - -▸ **move**(`from`: LocationId, `to`: LocationId, `forces`: _number_, `silver`: _number_, `artifactMoved?`: ArtifactId, `bypassChecks?`: _boolean_): [_default_](backend_gamelogic_gamemanager.default.md) - -Submits a transaction to the blockchain to move the given amount of resources from -the given planet to the given planet. - -#### Parameters - -| Name | Type | Default value | -| :--------------- | :--------- | :------------ | -| `from` | LocationId | - | -| `to` | LocationId | - | -| `forces` | _number_ | - | -| `silver` | _number_ | - | -| `artifactMoved?` | ArtifactId | - | -| `bypassChecks` | _boolean_ | false | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### onTxConfirmed - -▸ `Private` **onTxConfirmed**(`unminedTx`: SubmittedTx): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :---------- | -| `unminedTx` | SubmittedTx | - -**Returns:** _void_ - ---- - -### onTxIntentFail - -▸ `Private` **onTxIntentFail**(`txIntent`: TxIntent, `e`: Error): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | -| `e` | Error | - -**Returns:** _void_ - ---- - -### onTxReverted - -▸ `Private` **onTxReverted**(`unminedTx`: SubmittedTx): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :---------- | -| `unminedTx` | SubmittedTx | - -**Returns:** _void_ - ---- - -### onTxSubmit - -▸ `Private` **onTxSubmit**(`unminedTx`: SubmittedTx): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :---------- | -| `unminedTx` | SubmittedTx | - -**Returns:** _void_ - ---- - -### prospectPlanet - -▸ **prospectPlanet**(`planetId`: LocationId, `bypassChecks?`: _boolean_): _Promise_ - -#### Parameters - -| Name | Type | Default value | -| :------------- | :--------- | :------------ | -| `planetId` | LocationId | - | -| `bypassChecks` | _boolean_ | false | - -**Returns:** _Promise_ - ---- - -### refreshMyGPTCredits - -▸ `Private` **refreshMyGPTCredits**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### refreshServerPlanetStates - -▸ **refreshServerPlanetStates**(`planetIds`: LocationId[]): _Promise_ - -We have two locations which planet state can live: on the server, and on the blockchain. We use -the blockchain for the 'physics' of the universe, and the webserver for optional 'add-on' -features, which are cryptographically secure, but live off-chain. - -This function loads the planet states which live on the server. Plays nicely with our -notifications system and sets the appropriate loading state values on the planet. - -#### Parameters - -| Name | Type | -| :---------- | :----------- | -| `planetIds` | LocationId[] | - -**Returns:** _Promise_ - ---- - -### refreshTwitters - -▸ `Private` **refreshTwitters**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### revealLocation - -▸ **revealLocation**(`planetId`: LocationId): [_default_](backend_gamelogic_gamemanager.default.md) - -Reveals a planet's location on-chain. - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### savePlugins - -▸ **savePlugins**(`savedPlugins`: [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[]): _Promise_ - -Overwrites all the saved plugins to equal the given array of plugins. - -#### Parameters - -| Name | Type | -| :------------- | :----------------------------------------------------------------------------------------- | -| `savedPlugins` | [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[] | - -**Returns:** _Promise_ - ---- - -### setMinerCores - -▸ **setMinerCores**(`nCores`: _number_): _void_ - -Set the amount of cores to mine the universe with. More cores equals faster! - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `nCores` | _number_ | - -**Returns:** _void_ - ---- - -### setMiningPattern - -▸ **setMiningPattern**(`pattern`: [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md)): _void_ - -Sets the mining pattern of the miner. This kills the old miner and starts this one. - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------- | -| `pattern` | [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) | - -**Returns:** _void_ - ---- - -### setPlanetEmoji - -▸ **setPlanetEmoji**(`locationId`: LocationId, `emojiStr`: _string_): _Promise_ - -If you are the owner of this planet, you can set an 'emoji' to hover above the planet. -`emojiStr` must be a string that contains a single emoji, otherwise this function will throw an -error. - -The emoji is stored off-chain in a postgres database. We verify planet ownership via a contract -call from the webserver, and by verifying that the request to add (or remove) an emoji from a -planet was signed by the owner. - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `locationId` | LocationId | -| `emojiStr` | _string_ | - -**Returns:** _Promise_ - ---- - -### setRadius - -▸ `Private` **setRadius**(`worldRadius`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------------ | :------- | -| `worldRadius` | _number_ | - -**Returns:** _void_ - ---- - -### setSnarkCacheSize - -▸ **setSnarkCacheSize**(`size`: _number_): _void_ - -Changes the amount of move snark proofs that are cached. - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `size` | _number_ | - -**Returns:** _void_ - ---- - -### signMessage - -▸ `Private` **signMessage**(`obj`: T): _Promise_\> - -Returns a signed version of this message. - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | -| :---- | :--- | -| `obj` | T | - -**Returns:** _Promise_\> - ---- - -### softRefreshPlanet - -▸ `Private` **softRefreshPlanet**(`planetId`: LocationId): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _Promise_ - ---- - -### spaceTypeFromPerlin - -▸ **spaceTypeFromPerlin**(`perlin`: _number_): SpaceType - -Each coordinate lives in a particular type of space, determined by a smooth random -function called 'perlin noise. - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `perlin` | _number_ | - -**Returns:** SpaceType - ---- - -### spaceTypePerlin - -▸ **spaceTypePerlin**(`coords`: WorldCoords, `floor`: _boolean_): _number_ - -Gets the perlin value at the given location in the world. SpaceType is based -on this value. - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | -| `floor` | _boolean_ | - -**Returns:** _number_ - ---- - -### startConversation - -▸ **startConversation**(`artifactId`: ArtifactId): _Promise_ - -Starts a GPT conversation with an artifact - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### startExplore - -▸ **startExplore**(): _void_ - -Starts the miner. - -**Returns:** _void_ - ---- - -### stepConversation - -▸ **stepConversation**(`artifactId`: ArtifactId, `message`: _string_): _Promise_ - -Sends a message to an artifact you are having a GPT conversation with - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | -| `message` | _string_ | - -**Returns:** _Promise_ - ---- - -### stopExplore - -▸ **stopExplore**(): _void_ - -Stops the miner. - -**Returns:** _void_ - ---- - -### submitPlanetMessage - -▸ `Private` **submitPlanetMessage**(`locationId`: LocationId, `type`: EmojiFlag, `body`: _unknown_): _Promise_ - -The planet emoji feature is built on top of a more general 'Planet Message' system, which -allows players to upload pieces of data called 'Message's to planets that they own. Emojis are -just one type of message. Their implementation leaves the door open to more off-chain data. - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `locationId` | LocationId | -| `type` | EmojiFlag | -| `body` | _unknown_ | - -**Returns:** _Promise_ - ---- - -### transferOwnership - -▸ **transferOwnership**(`planetId`: LocationId, `newOwner`: EthAddress, `bypassChecks?`: _boolean_): [_default_](backend_gamelogic_gamemanager.default.md) - -#### Parameters - -| Name | Type | Default value | -| :------------- | :--------- | :------------ | -| `planetId` | LocationId | - | -| `newOwner` | EthAddress | - | -| `bypassChecks` | _boolean_ | false | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### updateDiagnostics - -▸ **updateDiagnostics**(`updateFn`: (`d`: [_Diagnostics_](../interfaces/frontend_panes_diagnosticspane.diagnostics.md)) => _void_): _void_ - -Updates the diagnostic info of the game using the supplied function. Ideally, each spot in the -codebase that would like to record a metric is able to update its specific metric in a -convenient manner. - -#### Parameters - -| Name | Type | -| :--------- | :-------------------------------------------------------------------------------------------- | -| `updateFn` | (`d`: [_Diagnostics_](../interfaces/frontend_panes_diagnosticspane.diagnostics.md)) => _void_ | - -**Returns:** _void_ - ---- - -### upgrade - -▸ **upgrade**(`planetId`: LocationId, `branch`: _number_, `_bypassChecks?`: _boolean_): [_default_](backend_gamelogic_gamemanager.default.md) - -Submits a transaction to the blockchain to upgrade the given planet with the given -upgrade branch. You must own the planet, and have enough silver on it to complete -the upgrade. - -#### Parameters - -| Name | Type | Default value | -| :-------------- | :--------- | :------------ | -| `planetId` | LocationId | - | -| `branch` | _number_ | - | -| `_bypassChecks` | _boolean_ | false | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### verifyMessage - -▸ `Private` **verifyMessage**(`message`: _SignedMessage_): _Promise_ - -Checks that a message signed by {@link GameManager#signMessage} was signed by the address that -it claims it was signed by. - -#### Parameters - -| Name | Type | -| :-------- | :------------------------ | -| `message` | _SignedMessage_ | - -**Returns:** _Promise_ - ---- - -### verifyTwitter - -▸ **verifyTwitter**(`twitter`: _string_): _Promise_ - -Once you have posted the verificatoin tweet - complete the twitter-account-linking -process by telling the Dark Forest webserver to look at that tweet. - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `twitter` | _string_ | - -**Returns:** _Promise_ - ---- - -### withdrawArtifact - -▸ **withdrawArtifact**(`locationId`: LocationId, `artifactId`: ArtifactId, `bypassChecks?`: _boolean_): [_default_](backend_gamelogic_gamemanager.default.md) - -Withdraws the artifact that is locked up on the given planet. - -#### Parameters - -| Name | Type | Default value | -| :------------- | :--------- | :------------ | -| `locationId` | LocationId | - | -| `artifactId` | ArtifactId | - | -| `bypassChecks` | _boolean_ | true | - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### withdrawSilver - -▸ **withdrawSilver**(`locationId`: LocationId, `amount`: _number_, `bypassChecks?`: _boolean_): _undefined_ \| [_default_](backend_gamelogic_gamemanager.default.md) - -#### Parameters - -| Name | Type | Default value | -| :------------- | :--------- | :------------ | -| `locationId` | LocationId | - | -| `amount` | _number_ | - | -| `bypassChecks` | _boolean_ | false | - -**Returns:** _undefined_ \| [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### create - -▸ `Static` **create**(`ethConnection`: [_default_](backend_network_ethconnection.default.md), `terminal`: _MutableRefObject_): _Promise_<[_default_](backend_gamelogic_gamemanager.default.md)\> - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------------------------------------------------------------ | -| `ethConnection` | [_default_](backend_network_ethconnection.default.md) | -| `terminal` | _MutableRefObject_ | - -**Returns:** _Promise_<[_default_](backend_gamelogic_gamemanager.default.md)\> diff --git a/docs/classes/backend_gamelogic_gameobjects.gameobjects.md b/docs/classes/backend_gamelogic_gameobjects.gameobjects.md deleted file mode 100644 index 4b072267..00000000 --- a/docs/classes/backend_gamelogic_gameobjects.gameobjects.md +++ /dev/null @@ -1,1123 +0,0 @@ -# Class: GameObjects - -[Backend/GameLogic/GameObjects](../modules/backend_gamelogic_gameobjects.md).GameObjects - -Representation of the objects which exist in the world. - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_gameobjects.gameobjects.md#constructor) - -### Properties - -- [address](backend_gamelogic_gameobjects.gameobjects.md#address) -- [arrivals](backend_gamelogic_gameobjects.gameobjects.md#arrivals) -- [artifactUpdated$](backend_gamelogic_gameobjects.gameobjects.md#artifactupdated$) -- [artifacts](backend_gamelogic_gameobjects.gameobjects.md#artifacts) -- [contractConstants](backend_gamelogic_gameobjects.gameobjects.md#contractconstants) -- [coordsToLocation](backend_gamelogic_gameobjects.gameobjects.md#coordstolocation) -- [isBuyingCredits$](backend_gamelogic_gameobjects.gameobjects.md#isbuyingcredits$) -- [layeredMap](backend_gamelogic_gameobjects.gameobjects.md#layeredmap) -- [myArtifacts](backend_gamelogic_gameobjects.gameobjects.md#myartifacts) -- [myArtifactsUpdated$](backend_gamelogic_gameobjects.gameobjects.md#myartifactsupdated$) -- [myPlanets](backend_gamelogic_gameobjects.gameobjects.md#myplanets) -- [myPlanetsUpdated$](backend_gamelogic_gameobjects.gameobjects.md#myplanetsupdated$) -- [planetArrivalIds](backend_gamelogic_gameobjects.gameobjects.md#planetarrivalids) -- [planetLocationMap](backend_gamelogic_gameobjects.gameobjects.md#planetlocationmap) -- [planetUpdated$](backend_gamelogic_gameobjects.gameobjects.md#planetupdated$) -- [planets](backend_gamelogic_gameobjects.gameobjects.md#planets) -- [revealedLocations](backend_gamelogic_gameobjects.gameobjects.md#revealedlocations) -- [touchedPlanetIds](backend_gamelogic_gameobjects.gameobjects.md#touchedplanetids) -- [unconfirmedBuyGPTCredits](backend_gamelogic_gameobjects.gameobjects.md#unconfirmedbuygptcredits) -- [unconfirmedBuyHats](backend_gamelogic_gameobjects.gameobjects.md#unconfirmedbuyhats) -- [unconfirmedMoves](backend_gamelogic_gameobjects.gameobjects.md#unconfirmedmoves) -- [unconfirmedPlanetTransfers](backend_gamelogic_gameobjects.gameobjects.md#unconfirmedplanettransfers) -- [unconfirmedReveal](backend_gamelogic_gameobjects.gameobjects.md#unconfirmedreveal) -- [unconfirmedUpgrades](backend_gamelogic_gameobjects.gameobjects.md#unconfirmedupgrades) -- [unconfirmedWormholeActivations](backend_gamelogic_gameobjects.gameobjects.md#unconfirmedwormholeactivations) -- [wormholes](backend_gamelogic_gameobjects.gameobjects.md#wormholes) - -### Methods - -- [addPlanetLocation](backend_gamelogic_gameobjects.gameobjects.md#addplanetlocation) -- [calculateSilverSpent](backend_gamelogic_gameobjects.gameobjects.md#calculatesilverspent) -- [clearOldArrivals](backend_gamelogic_gameobjects.gameobjects.md#clearoldarrivals) -- [clearUnconfirmedTxIntent](backend_gamelogic_gameobjects.gameobjects.md#clearunconfirmedtxintent) -- [defaultPlanetFromLocation](backend_gamelogic_gameobjects.gameobjects.md#defaultplanetfromlocation) -- [getAllOwnedPlanets](backend_gamelogic_gameobjects.gameobjects.md#getallownedplanets) -- [getAllPlanets](backend_gamelogic_gameobjects.gameobjects.md#getallplanets) -- [getAllPlanetsMap](backend_gamelogic_gameobjects.gameobjects.md#getallplanetsmap) -- [getAllVoyages](backend_gamelogic_gameobjects.gameobjects.md#getallvoyages) -- [getArtifactById](backend_gamelogic_gameobjects.gameobjects.md#getartifactbyid) -- [getArtifactController](backend_gamelogic_gameobjects.gameobjects.md#getartifactcontroller) -- [getArtifactMap](backend_gamelogic_gameobjects.gameobjects.md#getartifactmap) -- [getArtifactsOnPlanetsOwnedBy](backend_gamelogic_gameobjects.gameobjects.md#getartifactsonplanetsownedby) -- [getArtifactsOwnedBy](backend_gamelogic_gameobjects.gameobjects.md#getartifactsownedby) -- [getBiome](backend_gamelogic_gameobjects.gameobjects.md#getbiome) -- [getEnergyCurveAtPercent](backend_gamelogic_gameobjects.gameobjects.md#getenergycurveatpercent) -- [getIsBuyingCreditsEmitter](backend_gamelogic_gameobjects.gameobjects.md#getisbuyingcreditsemitter) -- [getLocationOfPlanet](backend_gamelogic_gameobjects.gameobjects.md#getlocationofplanet) -- [getMyArtifactMap](backend_gamelogic_gameobjects.gameobjects.md#getmyartifactmap) -- [getMyPlanetMap](backend_gamelogic_gameobjects.gameobjects.md#getmyplanetmap) -- [getPlanetArtifacts](backend_gamelogic_gameobjects.gameobjects.md#getplanetartifacts) -- [getPlanetDetailLevel](backend_gamelogic_gameobjects.gameobjects.md#getplanetdetaillevel) -- [getPlanetLevel](backend_gamelogic_gameobjects.gameobjects.md#getplanetlevel) -- [getPlanetMap](backend_gamelogic_gameobjects.gameobjects.md#getplanetmap) -- [getPlanetWithCoords](backend_gamelogic_gameobjects.gameobjects.md#getplanetwithcoords) -- [getPlanetWithId](backend_gamelogic_gameobjects.gameobjects.md#getplanetwithid) -- [getPlanetWithLocation](backend_gamelogic_gameobjects.gameobjects.md#getplanetwithlocation) -- [getPlanetsInWorldRectangle](backend_gamelogic_gameobjects.gameobjects.md#getplanetsinworldrectangle) -- [getRevealedLocations](backend_gamelogic_gameobjects.gameobjects.md#getrevealedlocations) -- [getSilverCurveAtPercent](backend_gamelogic_gameobjects.gameobjects.md#getsilvercurveatpercent) -- [getUnconfirmedBuyGPTCredits](backend_gamelogic_gameobjects.gameobjects.md#getunconfirmedbuygptcredits) -- [getUnconfirmedMoves](backend_gamelogic_gameobjects.gameobjects.md#getunconfirmedmoves) -- [getUnconfirmedReveal](backend_gamelogic_gameobjects.gameobjects.md#getunconfirmedreveal) -- [getUnconfirmedUpgrades](backend_gamelogic_gameobjects.gameobjects.md#getunconfirmedupgrades) -- [getUnconfirmedWormholeActivations](backend_gamelogic_gameobjects.gameobjects.md#getunconfirmedwormholeactivations) -- [getWormholes](backend_gamelogic_gameobjects.gameobjects.md#getwormholes) -- [isPlanetInContract](backend_gamelogic_gameobjects.gameobjects.md#isplanetincontract) -- [markLocationRevealed](backend_gamelogic_gameobjects.gameobjects.md#marklocationrevealed) -- [onTxIntent](backend_gamelogic_gameobjects.gameobjects.md#ontxintent) -- [planetLevelFromHexPerlin](backend_gamelogic_gameobjects.gameobjects.md#planetlevelfromhexperlin) -- [planetTypeFromHexPerlin](backend_gamelogic_gameobjects.gameobjects.md#planettypefromhexperlin) -- [processArrivalsForPlanet](backend_gamelogic_gameobjects.gameobjects.md#processarrivalsforplanet) -- [replaceArtifactFromContractData](backend_gamelogic_gameobjects.gameobjects.md#replaceartifactfromcontractdata) -- [replaceArtifactsFromContractData](backend_gamelogic_gameobjects.gameobjects.md#replaceartifactsfromcontractdata) -- [replacePlanetFromContractData](backend_gamelogic_gameobjects.gameobjects.md#replaceplanetfromcontractdata) -- [setArtifact](backend_gamelogic_gameobjects.gameobjects.md#setartifact) -- [setPlanet](backend_gamelogic_gameobjects.gameobjects.md#setplanet) -- [spaceTypeFromPerlin](backend_gamelogic_gameobjects.gameobjects.md#spacetypefromperlin) -- [updatePlanet](backend_gamelogic_gameobjects.gameobjects.md#updateplanet) -- [updatePlanetIfStale](backend_gamelogic_gameobjects.gameobjects.md#updateplanetifstale) -- [updateScore](backend_gamelogic_gameobjects.gameobjects.md#updatescore) -- [getSilverNeeded](backend_gamelogic_gameobjects.gameobjects.md#getsilverneeded) -- [planetCanUpgrade](backend_gamelogic_gameobjects.gameobjects.md#planetcanupgrade) - -## Constructors - -### constructor - -\+ **new GameObjects**(`address`: _undefined_ \| EthAddress, `touchedPlanets`: _Map_, `allTouchedPlanetIds`: _Set_, `revealedLocations`: _Map_, `artifacts`: _Map_, `allChunks`: _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\>, `unprocessedArrivals`: _Map_, `unprocessedPlanetArrivalIds`: _Map_, `contractConstants`: [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md), `worldRadius`: _number_): [_GameObjects_](backend_gamelogic_gameobjects.gameobjects.md) - -#### Parameters - -| Name | Type | -| :---------------------------- | :------------------------------------------------------------------------------------------------ | -| `address` | _undefined_ \| EthAddress | -| `touchedPlanets` | _Map_ | -| `allTouchedPlanetIds` | _Set_ | -| `revealedLocations` | _Map_ | -| `artifacts` | _Map_ | -| `allChunks` | _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\> | -| `unprocessedArrivals` | _Map_ | -| `unprocessedPlanetArrivalIds` | _Map_ | -| `contractConstants` | [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) | -| `worldRadius` | _number_ | - -**Returns:** [_GameObjects_](backend_gamelogic_gameobjects.gameobjects.md) - -## Properties - -### address - -• `Private` `Readonly` **address**: _undefined_ \| EthAddress - -This address of the player that is currently logged in. - -**`todo`** move this, along with all other objects relating to the currently logged-on player into a -new field: {@code player: PlayerInfo} - ---- - -### arrivals - -• `Private` `Readonly` **arrivals**: _Map_ - -Map of arrivals to timers that fire when an arrival arrives, in case that handler needs to be -cancelled for whatever reason. - ---- - -### artifactUpdated$ - -• `Readonly` **artifactUpdated$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -Event emitter which publishes whenever an artifact has been updated. - ---- - -### artifacts - -• `Private` `Readonly` **artifacts**: _Map_ - -Cached index of all known artifact data. - -**`see`** The same warning applys as the one on [GameObjects.planets](backend_gamelogic_gameobjects.gameobjects.md#planets) - ---- - -### contractConstants - -• `Private` `Readonly` **contractConstants**: [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) - -Some of the game's parameters are downloaded from the blockchain. This allows the client to be -flexible, and connect to any compatible set of Dark Forest contracts, download the parameters, -and join the game, taking into account the unique configuration of those specific Dark Forest -contracts. - ---- - -### coordsToLocation - -• `Private` `Readonly` **coordsToLocation**: _Map_ - -Map from a stringified representation of an x-y coordinate to an object that contains some more -information about the world at that location. - ---- - -### isBuyingCredits$ - -• `Readonly` **isBuyingCredits$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -Event emitter which publishes whenever the player begins and finishes (whether with a success -or an error) buying gpt credits. - -**`todo`** move into `PlayerInfo` - ---- - -### layeredMap - -• `Private` `Readonly` **layeredMap**: [_LayeredMap_](backend_gamelogic_layeredmap.layeredmap.md) - -This is a data structure that allows us to efficiently calculate which planets are visible on -the player's screen given the viewport's position and size. - ---- - -### myArtifacts - -• `Private` `Readonly` **myArtifacts**: _Map_ - -Cached index of artifacts owned by the player. - -**`see`** The same warning applys as the one on [GameObjects.planets](backend_gamelogic_gameobjects.gameobjects.md#planets) - ---- - -### myArtifactsUpdated$ - -• `Readonly` **myArtifactsUpdated$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter)\> - -Whenever one of the player's artifacts are updated, this event emitter publishes. See -[GameObjects.myPlanetsUpdated$](backend_gamelogic_gameobjects.gameobjects.md#myplanetsupdated$) for more info. - ---- - -### myPlanets - -• `Private` `Readonly` **myPlanets**: _Map_ - -Cached index of planets owned by the player. - -**`see`** The same warning applys as the one on [GameObjects.planets](backend_gamelogic_gameobjects.gameobjects.md#planets) - ---- - -### myPlanetsUpdated$ - -• `Readonly` **myPlanetsUpdated$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter)\> - -Whenever a planet is updated, we publish to this event with a reference to a map from location -id to planet. We need to rethink this event emitter because it currently publishes every time -that any planet is updated, and if a lot of them are updated at once (which i think is the case -once every two minutes) then this event emitter will publish a shitton of events. -TODO: rethink this - ---- - -### planetArrivalIds - -• `Private` `Readonly` **planetArrivalIds**: _Map_ - -Map from a location id (think of it as the unique id of each planet) to all the ids of the -voyages that are arriving on that planet. These include both the player's own voyages, and also -any potential invader's voyages. - ---- - -### planetLocationMap - -• `Private` `Readonly` **planetLocationMap**: _Map_ - -Map from location id (unique id of each planet) to some information about the location at which -this planet is located, if this client happens to know the coordinates of this planet. - ---- - -### planetUpdated$ - -• `Readonly` **planetUpdated$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -Event emitter which publishes whenever a planet is updated. - ---- - -### planets - -• `Private` `Readonly` **planets**: _Map_ - -Cached index of all known planet data. - -Warning! - -This should NEVER be set to directly! Any time you want to update a planet, you must call the -{@link GameObjects#setPlanet()} function. Following this rule enables us to reliably notify -other parts of the client when a particular object has been updated. TODO: what is the best way -to do this? - -**`todo`** extract the pattern we're using for the field tuples - -- {planets, myPlanets, myPlanetsUpdated, planetUpdated$} -- {artifacts, myArtifacts, myArtifactsUpdated, artifactUpdated$} - -into some sort of class. - ---- - -### revealedLocations - -• `Private` `Readonly` **revealedLocations**: _Map_ - -Map from location ids to, if that location id has been revealed on-chain, the world coordinates -of that location id, as well as some extra information regarding the circumstances of the -revealing of this planet. - ---- - -### touchedPlanetIds - -• `Private` `Readonly` **touchedPlanetIds**: _Set_ - -Set of all planet ids that we know have been interacted-with on-chain. - ---- - -### unconfirmedBuyGPTCredits - -• `Private` `Optional` **unconfirmedBuyGPTCredits**: UnconfirmedBuyGPTCredits - ---- - -### unconfirmedBuyHats - -• `Private` `Readonly` **unconfirmedBuyHats**: _Record_ - ---- - -### unconfirmedMoves - -• `Private` `Readonly` **unconfirmedMoves**: _Record_ - ---- - -### unconfirmedPlanetTransfers - -• `Private` `Readonly` **unconfirmedPlanetTransfers**: _Record_ - ---- - -### unconfirmedReveal - -• `Private` `Optional` **unconfirmedReveal**: UnconfirmedReveal - -The following set of fields represent actions which the user has initiated on the blockchain, -and have not yet completed. The nature of the blockchain is that transactions could take up to -several minutes to confirm (depending on network congestion). This means that we need to make -it clear to players that the action that they have initiated is indeed in progress, and that -something is actually happening. See `Prospect.tsx` for example. - -The storage and retrieval of unconfirmed transactions could, and -probablu should be abstracted into some sort of class which keeps in sync both _these_ fields -and each of these fields counterparts in their corresponding entity objects (Planet, Artifact, -etc.) - -**`todo`** these are good candidates for being in the `PlayerInfo` class. - ---- - -### unconfirmedUpgrades - -• `Private` `Readonly` **unconfirmedUpgrades**: _Record_ - ---- - -### unconfirmedWormholeActivations - -• `Private` `Readonly` **unconfirmedWormholeActivations**: UnconfirmedActivateArtifact[] - ---- - -### wormholes - -• `Private` `Readonly` **wormholes**: _Map_ - -Map from artifact ids to wormholes. - -## Methods - -### addPlanetLocation - -▸ **addPlanetLocation**(`planetLocation`: WorldLocation): _void_ - -Called when we load chunk data into memory (on startup), when we're loading all revealed locations (on startup), -when miner has mined a new chunk while exploring, and when a planet's location is revealed onchain during the course of play -Adds a WorldLocation to the planetLocationMap, making it known to the player locally -Sets an unsynced default planet in the PlanetMap this.planets -IMPORTANT: This is the only way a LocatablePlanet gets constructed -IMPORTANT: Idempotent - -#### Parameters - -| Name | Type | -| :--------------- | :------------ | -| `planetLocation` | WorldLocation | - -**Returns:** _void_ - ---- - -### calculateSilverSpent - -▸ `Private` **calculateSilverSpent**(`planet`: Planet): _number_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _number_ - ---- - -### clearOldArrivals - -▸ `Private` **clearOldArrivals**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### clearUnconfirmedTxIntent - -▸ **clearUnconfirmedTxIntent**(`txIntent`: TxIntent): _void_ - -Whenever a transaction that the user initiated either succeeds or fails, we need to clear the -fact that it was in progress from the event's corresponding entities. For example, whenever a -transaction that sends a voyage from one planet to another either succeeds or fails, we need to -remove the dashed line that connected them. - -Making sure that we never miss something here is very tedious. - -**`todo`** Make this less tedious. - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** _void_ - ---- - -### defaultPlanetFromLocation - -▸ `Private` **defaultPlanetFromLocation**(`location`: WorldLocation): LocatablePlanet - -returns the data for an unowned, untouched planet at location -most planets in the game are untouched and not stored in the contract, -so we need to generate their data optimistically in the client - -#### Parameters - -| Name | Type | -| :--------- | :------------ | -| `location` | WorldLocation | - -**Returns:** LocatablePlanet - ---- - -### getAllOwnedPlanets - -▸ **getAllOwnedPlanets**(): Planet[] - -Returns all the planets in the game which this client is aware of that have an owner, as a map -from their id to the planet - -**`tutorial`** For plugin developers! - -**`see`** Warning in {@link GameObjects.getAllPlanets()} - -**Returns:** Planet[] - ---- - -### getAllPlanets - -▸ **getAllPlanets**(): _Iterable_ - -Returns all planets in the game. - -Warning! Simply iterating over this is not performant, and is meant for scripting. - -**`tutorial`** For plugin developers! - -**Returns:** _Iterable_ - ---- - -### getAllPlanetsMap - -▸ **getAllPlanetsMap**(): _Map_ - -Returns all planets in the game, as a map from their location id to the planet. - -**`tutorial`** For plugin developers! - -**`see`** Warning in {@link GameObjects.getAllPlanets()} - -**Returns:** _Map_ - ---- - -### getAllVoyages - -▸ **getAllVoyages**(): QueuedArrival[] - -Returns all voyages that are scheduled to arrive at some point in the future. - -**`tutorial`** For plugin developers! - -**`see`** Warning in {@link GameObjects.getAllPlanets()} - -**Returns:** QueuedArrival[] - ---- - -### getArtifactById - -▸ **getArtifactById**(`artifactId`: ArtifactId): _undefined_ \| Artifact - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _undefined_ \| Artifact - ---- - -### getArtifactController - -▸ **getArtifactController**(`artifactId`: ArtifactId): _undefined_ \| EthAddress - -Returns the EthAddress of the player who can control the owner: -if the artifact is on a planet, this is the owner of the planet -if the artifact is on a voyage, this is the initiator of the voyage -if the artifact is not on either, then it is the owner of the artifact NFT - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _undefined_ \| EthAddress - ---- - -### getArtifactMap - -▸ **getArtifactMap**(): _Map_ - -**Returns:** _Map_ - ---- - -### getArtifactsOnPlanetsOwnedBy - -▸ **getArtifactsOnPlanetsOwnedBy**(`addr`: EthAddress): Artifact[] - -#### Parameters - -| Name | Type | -| :----- | :--------- | -| `addr` | EthAddress | - -**Returns:** Artifact[] - ---- - -### getArtifactsOwnedBy - -▸ **getArtifactsOwnedBy**(`addr`: EthAddress): Artifact[] - -#### Parameters - -| Name | Type | -| :----- | :--------- | -| `addr` | EthAddress | - -**Returns:** Artifact[] - ---- - -### getBiome - -▸ `Private` **getBiome**(`loc`: WorldLocation): Biome - -#### Parameters - -| Name | Type | -| :---- | :------------ | -| `loc` | WorldLocation | - -**Returns:** Biome - ---- - -### getEnergyCurveAtPercent - -▸ **getEnergyCurveAtPercent**(`planet`: Planet, `percent`: _number_): _number_ - -returns timestamp (seconds) that planet will reach percent% of energycap -time may be in the past - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `planet` | Planet | -| `percent` | _number_ | - -**Returns:** _number_ - ---- - -### getIsBuyingCreditsEmitter - -▸ **getIsBuyingCreditsEmitter**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getLocationOfPlanet - -▸ **getLocationOfPlanet**(`planetId`: LocationId): _undefined_ \| WorldLocation - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| WorldLocation - ---- - -### getMyArtifactMap - -▸ **getMyArtifactMap**(): _Map_ - -**Returns:** _Map_ - ---- - -### getMyPlanetMap - -▸ **getMyPlanetMap**(): _Map_ - -**Returns:** _Map_ - ---- - -### getPlanetArtifacts - -▸ **getPlanetArtifacts**(`planetId`: LocationId): Artifact[] - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** Artifact[] - ---- - -### getPlanetDetailLevel - -▸ **getPlanetDetailLevel**(`planetId`: LocationId): _undefined_ \| _number_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| _number_ - ---- - -### getPlanetLevel - -▸ **getPlanetLevel**(`planetId`: LocationId): _undefined_ \| ZERO \| ONE \| TWO \| THREE \| FOUR \| FIVE \| SIX \| SEVEN \| EIGHT \| NINE - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| ZERO \| ONE \| TWO \| THREE \| FOUR \| FIVE \| SIX \| SEVEN \| EIGHT \| NINE - ---- - -### getPlanetMap - -▸ **getPlanetMap**(): _Map_ - -**Returns:** _Map_ - ---- - -### getPlanetWithCoords - -▸ **getPlanetWithCoords**(`coords`: WorldCoords): _undefined_ \| Planet - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _undefined_ \| Planet - ---- - -### getPlanetWithId - -▸ **getPlanetWithId**(`planetId`: LocationId, `updateIfStale?`: _boolean_): _undefined_ \| Planet - -#### Parameters - -| Name | Type | Default value | -| :-------------- | :--------- | :------------ | -| `planetId` | LocationId | - | -| `updateIfStale` | _boolean_ | true | - -**Returns:** _undefined_ \| Planet - ---- - -### getPlanetWithLocation - -▸ **getPlanetWithLocation**(`location`: WorldLocation): _undefined_ \| Planet - -#### Parameters - -| Name | Type | -| :--------- | :------------ | -| `location` | WorldLocation | - -**Returns:** _undefined_ \| Planet - ---- - -### getPlanetsInWorldRectangle - -▸ **getPlanetsInWorldRectangle**(`worldX`: _number_, `worldY`: _number_, `worldWidth`: _number_, `worldHeight`: _number_, `levels`: _number_[], `planetLevelToRadii`: _Map_, `updateIfStale?`: _boolean_): LocatablePlanet[] - -Gets the ids of all the planets that are both within the given bounding box (defined by its bottom -left coordinate, width, and height) in the world and of a level that was passed in via the -`planetLevels` parameter. - -#### Parameters - -| Name | Type | Default value | -| :------------------- | :----------------------------------------------------------------------------------- | :------------ | -| `worldX` | _number_ | - | -| `worldY` | _number_ | - | -| `worldWidth` | _number_ | - | -| `worldHeight` | _number_ | - | -| `levels` | _number_[] | - | -| `planetLevelToRadii` | _Map_ | - | -| `updateIfStale` | _boolean_ | true | - -**Returns:** LocatablePlanet[] - ---- - -### getRevealedLocations - -▸ **getRevealedLocations**(): _Map_ - -**Returns:** _Map_ - ---- - -### getSilverCurveAtPercent - -▸ **getSilverCurveAtPercent**(`planet`: Planet, `percent`: _number_): _undefined_ \| _number_ - -returns timestamp (seconds) that planet will reach percent% of silcap if -doesn't produce silver, returns undefined if already over percent% of silcap, -returns undefined - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `planet` | Planet | -| `percent` | _number_ | - -**Returns:** _undefined_ \| _number_ - ---- - -### getUnconfirmedBuyGPTCredits - -▸ **getUnconfirmedBuyGPTCredits**(): _undefined_ \| UnconfirmedBuyGPTCredits - -**Returns:** _undefined_ \| UnconfirmedBuyGPTCredits - ---- - -### getUnconfirmedMoves - -▸ **getUnconfirmedMoves**(): UnconfirmedMove[] - -**Returns:** UnconfirmedMove[] - ---- - -### getUnconfirmedReveal - -▸ **getUnconfirmedReveal**(): _undefined_ \| UnconfirmedReveal - -**Returns:** _undefined_ \| UnconfirmedReveal - ---- - -### getUnconfirmedUpgrades - -▸ **getUnconfirmedUpgrades**(): UnconfirmedUpgrade[] - -**Returns:** UnconfirmedUpgrade[] - ---- - -### getUnconfirmedWormholeActivations - -▸ **getUnconfirmedWormholeActivations**(): UnconfirmedActivateArtifact[] - -**Returns:** UnconfirmedActivateArtifact[] - ---- - -### getWormholes - -▸ **getWormholes**(): _Iterable_<[_Wormhole_](../modules/_types_global_globaltypes.md#wormhole)\> - -**Returns:** _Iterable_<[_Wormhole_](../modules/_types_global_globaltypes.md#wormhole)\> - ---- - -### isPlanetInContract - -▸ **isPlanetInContract**(`planetId`: LocationId): _boolean_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _boolean_ - ---- - -### markLocationRevealed - -▸ **markLocationRevealed**(`revealedLocation`: RevealedLocation): _void_ - -#### Parameters - -| Name | Type | -| :----------------- | :--------------- | -| `revealedLocation` | RevealedLocation | - -**Returns:** _void_ - ---- - -### onTxIntent - -▸ **onTxIntent**(`txIntent`: TxIntent): _void_ - -We call this function whenever the user requests that we send a transaction to the blockchain -with their localstorage wallet. You can think of it as one of the hubs which connects -`GameObjects` to the rest of the world. - -Inside this function, we update the relevant internal game objects to reflect that the user has -requested a particular action. Additionally, we publish the appropriate events to the relevant -[Monomitter](../modules/frontend_utils_monomitter.md#monomitter) instances that are stored in this class. - -In the case of something like prospecting for an artifact, this allows us to display a spinner -text which says "Prospecting..." - -In the case of the user sending energy from one planet to another planet, this allows us to -display a dashed line between the two planets in their new voyage. - -Whenever we update an entity, we must do it via that entity's type's corresponding -`set` function, in order for us to publish these events. - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** _void_ - ---- - -### planetLevelFromHexPerlin - -▸ **planetLevelFromHexPerlin**(`hex`: LocationId, `perlin`: _number_): PlanetLevel - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `hex` | LocationId | -| `perlin` | _number_ | - -**Returns:** PlanetLevel - ---- - -### planetTypeFromHexPerlin - -▸ **planetTypeFromHexPerlin**(`hex`: LocationId, `perlin`: _number_): PlanetType - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `hex` | LocationId | -| `perlin` | _number_ | - -**Returns:** PlanetType - ---- - -### processArrivalsForPlanet - -▸ `Private` **processArrivalsForPlanet**(`planetId`: LocationId, `arrivals`: QueuedArrival[]): ArrivalWithTimer[] - -#### Parameters - -| Name | Type | -| :--------- | :-------------- | -| `planetId` | LocationId | -| `arrivals` | QueuedArrival[] | - -**Returns:** ArrivalWithTimer[] - ---- - -### replaceArtifactFromContractData - -▸ **replaceArtifactFromContractData**(`artifact`: Artifact): _void_ - -received some artifact data from the contract. update our stores - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `artifact` | Artifact | - -**Returns:** _void_ - ---- - -### replaceArtifactsFromContractData - -▸ **replaceArtifactsFromContractData**(`artifacts`: _Iterable_): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :-------------------- | -| `artifacts` | _Iterable_ | - -**Returns:** _void_ - ---- - -### replacePlanetFromContractData - -▸ **replacePlanetFromContractData**(`planet`: Planet, `updatedArrivals?`: QueuedArrival[], `updatedArtifactsOnPlanet?`: ArtifactId[], `revealedLocation?`: RevealedLocation): _void_ - -received some planet data from the contract. update our stores - -#### Parameters - -| Name | Type | -| :-------------------------- | :--------------- | -| `planet` | Planet | -| `updatedArrivals?` | QueuedArrival[] | -| `updatedArtifactsOnPlanet?` | ArtifactId[] | -| `revealedLocation?` | RevealedLocation | - -**Returns:** _void_ - ---- - -### setArtifact - -▸ `Private` **setArtifact**(`artifact`: Artifact): _void_ - -Set an artifact into our cached store. Should ALWAYS call this when setting an artifact. -`this.artifacts` and `this.myArtifacts` should NEVER be accessed directly! -This function also handles managing artifact update messages and indexing the map of owned artifacts. - -#### Parameters - -| Name | Type | Description | -| :--------- | :------- | :------------------ | -| `artifact` | Artifact | the artifact to set | - -**Returns:** _void_ - ---- - -### setPlanet - -▸ `Private` **setPlanet**(`planet`: Planet): _void_ - -Set a planet into our cached store. Should ALWAYS call this when setting a planet. -`this.planets` and `this.myPlanets` should NEVER be accessed directly! -This function also handles managing planet update messages and indexing the map of owned planets. - -#### Parameters - -| Name | Type | Description | -| :------- | :----- | :---------------- | -| `planet` | Planet | the planet to set | - -**Returns:** _void_ - ---- - -### spaceTypeFromPerlin - -▸ **spaceTypeFromPerlin**(`perlin`: _number_): SpaceType - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `perlin` | _number_ | - -**Returns:** SpaceType - ---- - -### updatePlanet - -▸ **updatePlanet**(`id`: LocationId, `updateFn`: (`p`: Planet) => _void_): _void_ - -Given a planet id, update the state of the given planet by calling the given update function. -If the planet was updated, then also publish the appropriate event. - -#### Parameters - -| Name | Type | -| :--------- | :---------------------- | -| `id` | LocationId | -| `updateFn` | (`p`: Planet) => _void_ | - -**Returns:** _void_ - ---- - -### updatePlanetIfStale - -▸ `Private` **updatePlanetIfStale**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### updateScore - -▸ `Private` **updateScore**(`planetId`: LocationId): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _void_ - ---- - -### getSilverNeeded - -▸ `Static` **getSilverNeeded**(`planet`: Planet): _number_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _number_ - ---- - -### planetCanUpgrade - -▸ `Static` **planetCanUpgrade**(`planet`: Planet): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _boolean_ diff --git a/docs/classes/backend_gamelogic_gameuimanager.default.md b/docs/classes/backend_gamelogic_gameuimanager.default.md deleted file mode 100644 index 6b5d3723..00000000 --- a/docs/classes/backend_gamelogic_gameuimanager.default.md +++ /dev/null @@ -1,2034 +0,0 @@ -# Class: default - -[Backend/GameLogic/GameUIManager](../modules/backend_gamelogic_gameuimanager.md).default - -## Hierarchy - -- _EventEmitter_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_gameuimanager.default.md#constructor) - -### Properties - -- [artifactSending](backend_gamelogic_gameuimanager.default.md#artifactsending) -- [extraMinerLocations](backend_gamelogic_gameuimanager.default.md#extraminerlocations) -- [forcesSending](backend_gamelogic_gameuimanager.default.md#forcessending) -- [gameManager](backend_gamelogic_gameuimanager.default.md#gamemanager) -- [hoverPlanet$](backend_gamelogic_gameuimanager.default.md#hoverplanet$) -- [hoverPlanetId$](backend_gamelogic_gameuimanager.default.md#hoverplanetid$) -- [isChoosingTargetPlanet](backend_gamelogic_gameuimanager.default.md#ischoosingtargetplanet) -- [isSending](backend_gamelogic_gameuimanager.default.md#issending) -- [minerLocation](backend_gamelogic_gameuimanager.default.md#minerlocation) -- [mouseDownOverCoords](backend_gamelogic_gameuimanager.default.md#mousedownovercoords) -- [mouseDownOverPlanet](backend_gamelogic_gameuimanager.default.md#mousedownoverplanet) -- [mouseHoveringOverCoords](backend_gamelogic_gameuimanager.default.md#mousehoveringovercoords) -- [mouseHoveringOverPlanet](backend_gamelogic_gameuimanager.default.md#mousehoveringoverplanet) -- [myArtifacts$](backend_gamelogic_gameuimanager.default.md#myartifacts$) -- [onChooseTargetPlanet](backend_gamelogic_gameuimanager.default.md#onchoosetargetplanet) -- [plugins](backend_gamelogic_gameuimanager.default.md#plugins) -- [previousSelectedPlanet](backend_gamelogic_gameuimanager.default.md#previousselectedplanet) -- [radiusMap](backend_gamelogic_gameuimanager.default.md#radiusmap) -- [selectedArtifact$](backend_gamelogic_gameuimanager.default.md#selectedartifact$) -- [selectedArtifactId$](backend_gamelogic_gameuimanager.default.md#selectedartifactid$) -- [selectedCoords](backend_gamelogic_gameuimanager.default.md#selectedcoords) -- [selectedPlanet](backend_gamelogic_gameuimanager.default.md#selectedplanet) -- [selectedPlanet$](backend_gamelogic_gameuimanager.default.md#selectedplanet$) -- [selectedPlanetId$](backend_gamelogic_gameuimanager.default.md#selectedplanetid$) -- [sendingCoords](backend_gamelogic_gameuimanager.default.md#sendingcoords) -- [sendingPlanet](backend_gamelogic_gameuimanager.default.md#sendingplanet) -- [silverSending](backend_gamelogic_gameuimanager.default.md#silversending) -- [terminal](backend_gamelogic_gameuimanager.default.md#terminal) -- [viewportEntities](backend_gamelogic_gameuimanager.default.md#viewportentities) - -### Methods - -- [activateArtifact](backend_gamelogic_gameuimanager.default.md#activateartifact) -- [addAccount](backend_gamelogic_gameuimanager.default.md#addaccount) -- [addNewChunk](backend_gamelogic_gameuimanager.default.md#addnewchunk) -- [bulkAddNewChunks](backend_gamelogic_gameuimanager.default.md#bulkaddnewchunks) -- [buyGPTCredits](backend_gamelogic_gameuimanager.default.md#buygptcredits) -- [buyHat](backend_gamelogic_gameuimanager.default.md#buyhat) -- [centerCoords](backend_gamelogic_gameuimanager.default.md#centercoords) -- [centerLocationId](backend_gamelogic_gameuimanager.default.md#centerlocationid) -- [centerPlanet](backend_gamelogic_gameuimanager.default.md#centerplanet) -- [deactivateArtifact](backend_gamelogic_gameuimanager.default.md#deactivateartifact) -- [depositArtifact](backend_gamelogic_gameuimanager.default.md#depositartifact) -- [destroy](backend_gamelogic_gameuimanager.default.md#destroy) -- [discoverBiome](backend_gamelogic_gameuimanager.default.md#discoverbiome) -- [findArtifact](backend_gamelogic_gameuimanager.default.md#findartifact) -- [generateVerificationTweet](backend_gamelogic_gameuimanager.default.md#generateverificationtweet) -- [getAccount](backend_gamelogic_gameuimanager.default.md#getaccount) -- [getAllMinerLocations](backend_gamelogic_gameuimanager.default.md#getallminerlocations) -- [getAllOwnedPlanets](backend_gamelogic_gameuimanager.default.md#getallownedplanets) -- [getAllPlayers](backend_gamelogic_gameuimanager.default.md#getallplayers) -- [getAllVoyages](backend_gamelogic_gameuimanager.default.md#getallvoyages) -- [getArtifactMap](backend_gamelogic_gameuimanager.default.md#getartifactmap) -- [getArtifactPlanet](backend_gamelogic_gameuimanager.default.md#getartifactplanet) -- [getArtifactSending](backend_gamelogic_gameuimanager.default.md#getartifactsending) -- [getArtifactWithId](backend_gamelogic_gameuimanager.default.md#getartifactwithid) -- [getArtifactsWithIds](backend_gamelogic_gameuimanager.default.md#getartifactswithids) -- [getBiomeKey](backend_gamelogic_gameuimanager.default.md#getbiomekey) -- [getBiomePerlin](backend_gamelogic_gameuimanager.default.md#getbiomeperlin) -- [getBooleanSetting](backend_gamelogic_gameuimanager.default.md#getbooleansetting) -- [getChunk](backend_gamelogic_gameuimanager.default.md#getchunk) -- [getContractAddress](backend_gamelogic_gameuimanager.default.md#getcontractaddress) -- [getContractConstants](backend_gamelogic_gameuimanager.default.md#getcontractconstants) -- [getConversation](backend_gamelogic_gameuimanager.default.md#getconversation) -- [getDiagnostics](backend_gamelogic_gameuimanager.default.md#getdiagnostics) -- [getDiscoverBiomeName](backend_gamelogic_gameuimanager.default.md#getdiscoverbiomename) -- [getDistCoords](backend_gamelogic_gameuimanager.default.md#getdistcoords) -- [getEndTimeSeconds](backend_gamelogic_gameuimanager.default.md#getendtimeseconds) -- [getEnergyArrivingForMove](backend_gamelogic_gameuimanager.default.md#getenergyarrivingformove) -- [getEnergyCurveAtPercent](backend_gamelogic_gameuimanager.default.md#getenergycurveatpercent) -- [getEnergyOfPlayer](backend_gamelogic_gameuimanager.default.md#getenergyofplayer) -- [getEthConnection](backend_gamelogic_gameuimanager.default.md#getethconnection) -- [getExploredChunks](backend_gamelogic_gameuimanager.default.md#getexploredchunks) -- [getForcesSending](backend_gamelogic_gameuimanager.default.md#getforcessending) -- [getGameManager](backend_gamelogic_gameuimanager.default.md#getgamemanager) -- [getGameObjects](backend_gamelogic_gameuimanager.default.md#getgameobjects) -- [getGptCreditBalanceEmitter](backend_gamelogic_gameuimanager.default.md#getgptcreditbalanceemitter) -- [getGptCreditPriceEmitter](backend_gamelogic_gameuimanager.default.md#getgptcreditpriceemitter) -- [getHashConfig](backend_gamelogic_gameuimanager.default.md#gethashconfig) -- [getHashesPerSec](backend_gamelogic_gameuimanager.default.md#gethashespersec) -- [getHomeCoords](backend_gamelogic_gameuimanager.default.md#gethomecoords) -- [getHomeHash](backend_gamelogic_gameuimanager.default.md#gethomehash) -- [getHomePlanet](backend_gamelogic_gameuimanager.default.md#gethomeplanet) -- [getHoveringOverCoords](backend_gamelogic_gameuimanager.default.md#gethoveringovercoords) -- [getHoveringOverPlanet](backend_gamelogic_gameuimanager.default.md#gethoveringoverplanet) -- [getIsBuyingCreditsEmitter](backend_gamelogic_gameuimanager.default.md#getisbuyingcreditsemitter) -- [getIsChoosingTargetPlanet](backend_gamelogic_gameuimanager.default.md#getischoosingtargetplanet) -- [getIsHighPerfMode](backend_gamelogic_gameuimanager.default.md#getishighperfmode) -- [getLocationOfPlanet](backend_gamelogic_gameuimanager.default.md#getlocationofplanet) -- [getLocationsAndChunks](backend_gamelogic_gameuimanager.default.md#getlocationsandchunks) -- [getMinerLocation](backend_gamelogic_gameuimanager.default.md#getminerlocation) -- [getMiningPattern](backend_gamelogic_gameuimanager.default.md#getminingpattern) -- [getMouseDownCoords](backend_gamelogic_gameuimanager.default.md#getmousedowncoords) -- [getMouseDownPlanet](backend_gamelogic_gameuimanager.default.md#getmousedownplanet) -- [getMyArtifactMap](backend_gamelogic_gameuimanager.default.md#getmyartifactmap) -- [getMyArtifacts](backend_gamelogic_gameuimanager.default.md#getmyartifacts) -- [getMyArtifactsNotOnPlanet](backend_gamelogic_gameuimanager.default.md#getmyartifactsnotonplanet) -- [getMyBalance](backend_gamelogic_gameuimanager.default.md#getmybalance) -- [getMyBalanceEmitter](backend_gamelogic_gameuimanager.default.md#getmybalanceemitter) -- [getMyPlanetMap](backend_gamelogic_gameuimanager.default.md#getmyplanetmap) -- [getMyScore](backend_gamelogic_gameuimanager.default.md#getmyscore) -- [getNextBroadcastAvailableTimestamp](backend_gamelogic_gameuimanager.default.md#getnextbroadcastavailabletimestamp) -- [getPerlinConfig](backend_gamelogic_gameuimanager.default.md#getperlinconfig) -- [getPerlinThresholds](backend_gamelogic_gameuimanager.default.md#getperlinthresholds) -- [getPlanetLevel](backend_gamelogic_gameuimanager.default.md#getplanetlevel) -- [getPlanetMap](backend_gamelogic_gameuimanager.default.md#getplanetmap) -- [getPlanetWithCoords](backend_gamelogic_gameuimanager.default.md#getplanetwithcoords) -- [getPlanetWithId](backend_gamelogic_gameuimanager.default.md#getplanetwithid) -- [getPlanetsInViewport](backend_gamelogic_gameuimanager.default.md#getplanetsinviewport) -- [getPluginManager](backend_gamelogic_gameuimanager.default.md#getpluginmanager) -- [getPreviousSelectedPlanet](backend_gamelogic_gameuimanager.default.md#getpreviousselectedplanet) -- [getPrivateKey](backend_gamelogic_gameuimanager.default.md#getprivatekey) -- [getRadiusOfPlanetLevel](backend_gamelogic_gameuimanager.default.md#getradiusofplanetlevel) -- [getSelectedCoords](backend_gamelogic_gameuimanager.default.md#getselectedcoords) -- [getSelectedPlanet](backend_gamelogic_gameuimanager.default.md#getselectedplanet) -- [getSilverCurveAtPercent](backend_gamelogic_gameuimanager.default.md#getsilvercurveatpercent) -- [getSilverOfPlayer](backend_gamelogic_gameuimanager.default.md#getsilverofplayer) -- [getSilverSending](backend_gamelogic_gameuimanager.default.md#getsilversending) -- [getSpaceTypePerlin](backend_gamelogic_gameuimanager.default.md#getspacetypeperlin) -- [getStringSetting](backend_gamelogic_gameuimanager.default.md#getstringsetting) -- [getTerminal](backend_gamelogic_gameuimanager.default.md#getterminal) -- [getTwitter](backend_gamelogic_gameuimanager.default.md#gettwitter) -- [getUnconfirmedMoves](backend_gamelogic_gameuimanager.default.md#getunconfirmedmoves) -- [getUnconfirmedUpgrades](backend_gamelogic_gameuimanager.default.md#getunconfirmedupgrades) -- [getUnconfirmedWormholeActivations](backend_gamelogic_gameuimanager.default.md#getunconfirmedwormholeactivations) -- [getUniverseTotalEnergy](backend_gamelogic_gameuimanager.default.md#getuniversetotalenergy) -- [getUpgrade](backend_gamelogic_gameuimanager.default.md#getupgrade) -- [getViewport](backend_gamelogic_gameuimanager.default.md#getviewport) -- [getWithdrawnSilverOfPlayer](backend_gamelogic_gameuimanager.default.md#getwithdrawnsilverofplayer) -- [getWorldRadius](backend_gamelogic_gameuimanager.default.md#getworldradius) -- [getWorldSilver](backend_gamelogic_gameuimanager.default.md#getworldsilver) -- [getWormholes](backend_gamelogic_gameuimanager.default.md#getwormholes) -- [hasMinedChunk](backend_gamelogic_gameuimanager.default.md#hasminedchunk) -- [isCurrentlyRevealing](backend_gamelogic_gameuimanager.default.md#iscurrentlyrevealing) -- [isMining](backend_gamelogic_gameuimanager.default.md#ismining) -- [isOverOwnPlanet](backend_gamelogic_gameuimanager.default.md#isoverownplanet) -- [isOwnedByMe](backend_gamelogic_gameuimanager.default.md#isownedbyme) -- [isRoundOver](backend_gamelogic_gameuimanager.default.md#isroundover) -- [joinGame](backend_gamelogic_gameuimanager.default.md#joingame) -- [onDiscoveredChunk](backend_gamelogic_gameuimanager.default.md#ondiscoveredchunk) -- [onEmitInitializedPlayer](backend_gamelogic_gameuimanager.default.md#onemitinitializedplayer) -- [onEmitInitializedPlayerError](backend_gamelogic_gameuimanager.default.md#onemitinitializedplayererror) -- [onMouseClick](backend_gamelogic_gameuimanager.default.md#onmouseclick) -- [onMouseDown](backend_gamelogic_gameuimanager.default.md#onmousedown) -- [onMouseMove](backend_gamelogic_gameuimanager.default.md#onmousemove) -- [onMouseOut](backend_gamelogic_gameuimanager.default.md#onmouseout) -- [onMouseUp](backend_gamelogic_gameuimanager.default.md#onmouseup) -- [onSendCancel](backend_gamelogic_gameuimanager.default.md#onsendcancel) -- [onSendInit](backend_gamelogic_gameuimanager.default.md#onsendinit) -- [prospectPlanet](backend_gamelogic_gameuimanager.default.md#prospectplanet) -- [removeExtraMinerLocation](backend_gamelogic_gameuimanager.default.md#removeextraminerlocation) -- [revealLocation](backend_gamelogic_gameuimanager.default.md#reveallocation) -- [setArtifactSending](backend_gamelogic_gameuimanager.default.md#setartifactsending) -- [setExtraMinerLocation](backend_gamelogic_gameuimanager.default.md#setextraminerlocation) -- [setForcesSending](backend_gamelogic_gameuimanager.default.md#setforcessending) -- [setHoveringOverPlanet](backend_gamelogic_gameuimanager.default.md#sethoveringoverplanet) -- [setMiningPattern](backend_gamelogic_gameuimanager.default.md#setminingpattern) -- [setSelectedId](backend_gamelogic_gameuimanager.default.md#setselectedid) -- [setSelectedPlanet](backend_gamelogic_gameuimanager.default.md#setselectedplanet) -- [setSilverSending](backend_gamelogic_gameuimanager.default.md#setsilversending) -- [spaceTypeFromPerlin](backend_gamelogic_gameuimanager.default.md#spacetypefromperlin) -- [startConversation](backend_gamelogic_gameuimanager.default.md#startconversation) -- [startExplore](backend_gamelogic_gameuimanager.default.md#startexplore) -- [startWormholeFrom](backend_gamelogic_gameuimanager.default.md#startwormholefrom) -- [stepConversation](backend_gamelogic_gameuimanager.default.md#stepconversation) -- [stopExplore](backend_gamelogic_gameuimanager.default.md#stopexplore) -- [updateDiagnostics](backend_gamelogic_gameuimanager.default.md#updatediagnostics) -- [updateMouseHoveringOverCoords](backend_gamelogic_gameuimanager.default.md#updatemousehoveringovercoords) -- [updatePlanets](backend_gamelogic_gameuimanager.default.md#updateplanets) -- [upgrade](backend_gamelogic_gameuimanager.default.md#upgrade) -- [verifyTwitter](backend_gamelogic_gameuimanager.default.md#verifytwitter) -- [withdrawArtifact](backend_gamelogic_gameuimanager.default.md#withdrawartifact) -- [withdrawSilver](backend_gamelogic_gameuimanager.default.md#withdrawsilver) -- [create](backend_gamelogic_gameuimanager.default.md#create) - -## Constructors - -### constructor - -\+ `Private` **new default**(`gameManager`: [_default_](backend_gamelogic_gamemanager.default.md), `terminalHandle`: _MutableRefObject_): [_default_](backend_gamelogic_gameuimanager.default.md) - -#### Parameters - -| Name | Type | -| :--------------- | :------------------------------------------------------------------------------------------------------------ | -| `gameManager` | [_default_](backend_gamelogic_gamemanager.default.md) | -| `terminalHandle` | _MutableRefObject_ | - -**Returns:** [_default_](backend_gamelogic_gameuimanager.default.md) - -Overrides: EventEmitter.constructor - -## Properties - -### artifactSending - -• `Private` **artifactSending**: _object_= {} - -#### Type declaration - ---- - -### extraMinerLocations - -• `Private` **extraMinerLocations**: WorldCoords[]= [] - ---- - -### forcesSending - -• `Private` **forcesSending**: _object_= {} - -#### Type declaration - ---- - -### gameManager - -• `Private` `Readonly` **gameManager**: [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### hoverPlanet$ - -• `Readonly` **hoverPlanet$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### hoverPlanetId$ - -• `Readonly` **hoverPlanetId$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### isChoosingTargetPlanet - -• `Private` **isChoosingTargetPlanet**: _boolean_= false - -The Wormhole artifact requires you to choose a target planet. This value -indicates whether or not the player is currently selecting a target planet. - ---- - -### isSending - -• `Private` **isSending**: _boolean_= false - ---- - -### minerLocation - -• `Private` **minerLocation**: _undefined_ \| WorldCoords - ---- - -### mouseDownOverCoords - -• `Private` **mouseDownOverCoords**: _undefined_ \| WorldCoords - ---- - -### mouseDownOverPlanet - -• `Private` **mouseDownOverPlanet**: _undefined_ \| Planet - ---- - -### mouseHoveringOverCoords - -• `Private` **mouseHoveringOverCoords**: _undefined_ \| WorldCoords - ---- - -### mouseHoveringOverPlanet - -• `Private` **mouseHoveringOverPlanet**: _undefined_ \| Planet - ---- - -### myArtifacts$ - -• `Readonly` **myArtifacts$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter)\> - ---- - -### onChooseTargetPlanet - -• `Private` `Optional` **onChooseTargetPlanet**: (`planet`: _undefined_ \| LocatablePlanet) => _void_ - -#### Type declaration - -▸ (`planet`: _undefined_ \| LocatablePlanet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----------------------------- | -| `planet` | _undefined_ \| LocatablePlanet | - -**Returns:** _void_ - ---- - -### plugins - -• `Private` **plugins**: [_PluginManager_](backend_gamelogic_pluginmanager.pluginmanager.md) - ---- - -### previousSelectedPlanet - -• `Private` **previousSelectedPlanet**: _undefined_ \| Planet - ---- - -### radiusMap - -• `Private` `Readonly` **radiusMap**: _Record_ - ---- - -### selectedArtifact$ - -• `Readonly` **selectedArtifact$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### selectedArtifactId$ - -• `Readonly` **selectedArtifactId$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### selectedCoords - -• `Private` **selectedCoords**: _undefined_ \| WorldCoords - ---- - -### selectedPlanet - -• `Private` **selectedPlanet**: _undefined_ \| Planet - ---- - -### selectedPlanet$ - -• `Readonly` **selectedPlanet$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### selectedPlanetId$ - -• `Readonly` **selectedPlanetId$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### sendingCoords - -• `Private` **sendingCoords**: _undefined_ \| WorldCoords - ---- - -### sendingPlanet - -• `Private` **sendingPlanet**: _undefined_ \| Planet - ---- - -### silverSending - -• `Private` **silverSending**: _object_= {} - -#### Type declaration - ---- - -### terminal - -• `Private` **terminal**: _MutableRefObject_ - ---- - -### viewportEntities - -• `Private` **viewportEntities**: [_ViewportEntities_](backend_gamelogic_viewportentities.viewportentities.md) - -## Methods - -### activateArtifact - -▸ **activateArtifact**(`locationId`: LocationId, `id`: ArtifactId, `wormholeTo?`: LocationId): _void_ - -#### Parameters - -| Name | Type | -| :------------ | :--------- | -| `locationId` | LocationId | -| `id` | ArtifactId | -| `wormholeTo?` | LocationId | - -**Returns:** _void_ - ---- - -### addAccount - -▸ **addAccount**(`coords`: WorldCoords): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _Promise_ - ---- - -### addNewChunk - -▸ **addNewChunk**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### bulkAddNewChunks - -▸ **bulkAddNewChunks**(`chunks`: [_Chunk_](_types_global_globaltypes.chunk.md)[]): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :---------------------------------------------- | -| `chunks` | [_Chunk_](_types_global_globaltypes.chunk.md)[] | - -**Returns:** _Promise_ - ---- - -### buyGPTCredits - -▸ **buyGPTCredits**(`amount`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `amount` | _number_ | - -**Returns:** _void_ - ---- - -### buyHat - -▸ **buyHat**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### centerCoords - -▸ **centerCoords**(`coords`: WorldCoords): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _void_ - ---- - -### centerLocationId - -▸ **centerLocationId**(`planetId`: LocationId): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _void_ - ---- - -### centerPlanet - -▸ **centerPlanet**(`planet`: _undefined_ \| Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _void_ - ---- - -### deactivateArtifact - -▸ **deactivateArtifact**(`locationId`: LocationId, `artifactId`: ArtifactId): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `locationId` | LocationId | -| `artifactId` | ArtifactId | - -**Returns:** _void_ - ---- - -### depositArtifact - -▸ **depositArtifact**(`locationId`: LocationId, `artifactId`: ArtifactId): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `locationId` | LocationId | -| `artifactId` | ArtifactId | - -**Returns:** _void_ - ---- - -### destroy - -▸ **destroy**(): _void_ - -**Returns:** _void_ - ---- - -### discoverBiome - -▸ **discoverBiome**(`planet`: LocatablePlanet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------- | -| `planet` | LocatablePlanet | - -**Returns:** _void_ - ---- - -### findArtifact - -▸ **findArtifact**(`planetId`: LocationId): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _void_ - ---- - -### generateVerificationTweet - -▸ **generateVerificationTweet**(`twitter`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `twitter` | _string_ | - -**Returns:** _Promise_ - ---- - -### getAccount - -▸ **getAccount**(): _undefined_ \| EthAddress - -**Returns:** _undefined_ \| EthAddress - ---- - -### getAllMinerLocations - -▸ **getAllMinerLocations**(): WorldCoords[] - -**Returns:** WorldCoords[] - ---- - -### getAllOwnedPlanets - -▸ **getAllOwnedPlanets**(): Planet[] - -**Returns:** Planet[] - ---- - -### getAllPlayers - -▸ **getAllPlayers**(): Player[] - -**Returns:** Player[] - ---- - -### getAllVoyages - -▸ **getAllVoyages**(): QueuedArrival[] - -**Returns:** QueuedArrival[] - ---- - -### getArtifactMap - -▸ **getArtifactMap**(): _Map_ - -**Returns:** _Map_ - ---- - -### getArtifactPlanet - -▸ **getArtifactPlanet**(`artifact`: Artifact): _undefined_ \| Planet - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `artifact` | Artifact | - -**Returns:** _undefined_ \| Planet - ---- - -### getArtifactSending - -▸ **getArtifactSending**(`planetId`: LocationId): _undefined_ \| Artifact - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| Artifact - ---- - -### getArtifactWithId - -▸ **getArtifactWithId**(`artifactId`: ArtifactId): _undefined_ \| Artifact - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _undefined_ \| Artifact - ---- - -### getArtifactsWithIds - -▸ **getArtifactsWithIds**(`artifactIds`: ArtifactId[]): (_undefined_ \| Artifact)[] - -#### Parameters - -| Name | Type | -| :------------ | :----------- | -| `artifactIds` | ArtifactId[] | - -**Returns:** (_undefined_ \| Artifact)[] - ---- - -### getBiomeKey - -▸ `Private` **getBiomeKey**(`biome`: Biome): _string_ - -#### Parameters - -| Name | Type | -| :------ | :---- | -| `biome` | Biome | - -**Returns:** _string_ - ---- - -### getBiomePerlin - -▸ **getBiomePerlin**(`coords`: WorldCoords, `floor`: _boolean_): _number_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | -| `floor` | _boolean_ | - -**Returns:** _number_ - ---- - -### getBooleanSetting - -▸ **getBooleanSetting**(`setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md)): _boolean_ - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | - -**Returns:** _boolean_ - ---- - -### getChunk - -▸ **getChunk**(`chunkFootprint`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): _undefined_ \| [_Chunk_](_types_global_globaltypes.chunk.md) - -#### Parameters - -| Name | Type | -| :--------------- | :------------------------------------------------------------------ | -| `chunkFootprint` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** _undefined_ \| [_Chunk_](_types_global_globaltypes.chunk.md) - ---- - -### getContractAddress - -▸ **getContractAddress**(): EthAddress - -**Returns:** EthAddress - ---- - -### getContractConstants - -▸ **getContractConstants**(): [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) - -**Returns:** [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) - ---- - -### getConversation - -▸ **getConversation**(`artifactId`: ArtifactId): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### getDiagnostics - -▸ **getDiagnostics**(): [_Diagnostics_](../interfaces/frontend_panes_diagnosticspane.diagnostics.md) - -**Returns:** [_Diagnostics_](../interfaces/frontend_panes_diagnosticspane.diagnostics.md) - ---- - -### getDiscoverBiomeName - -▸ **getDiscoverBiomeName**(`biome`: Biome): _string_ - -#### Parameters - -| Name | Type | -| :------ | :---- | -| `biome` | Biome | - -**Returns:** _string_ - ---- - -### getDistCoords - -▸ **getDistCoords**(`from`: WorldCoords, `to`: WorldCoords): _number_ - -#### Parameters - -| Name | Type | -| :----- | :---------- | -| `from` | WorldCoords | -| `to` | WorldCoords | - -**Returns:** _number_ - ---- - -### getEndTimeSeconds - -▸ **getEndTimeSeconds**(): _number_ - -**Returns:** _number_ - ---- - -### getEnergyArrivingForMove - -▸ **getEnergyArrivingForMove**(`from`: LocationId, `to`: _undefined_ \| LocationId, `dist`: _undefined_ \| _number_, `energy`: _number_): _number_ - -#### Parameters - -| Name | Type | -| :------- | :------------------------ | -| `from` | LocationId | -| `to` | _undefined_ \| LocationId | -| `dist` | _undefined_ \| _number_ | -| `energy` | _number_ | - -**Returns:** _number_ - ---- - -### getEnergyCurveAtPercent - -▸ **getEnergyCurveAtPercent**(`planet`: Planet, `percent`: _number_): _number_ - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `planet` | Planet | -| `percent` | _number_ | - -**Returns:** _number_ - ---- - -### getEnergyOfPlayer - -▸ **getEnergyOfPlayer**(`player`: EthAddress): _number_ - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `player` | EthAddress | - -**Returns:** _number_ - ---- - -### getEthConnection - -▸ **getEthConnection**(): [_default_](backend_network_ethconnection.default.md) - -**Returns:** [_default_](backend_network_ethconnection.default.md) - ---- - -### getExploredChunks - -▸ **getExploredChunks**(): _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\> - -**Returns:** _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\> - ---- - -### getForcesSending - -▸ **getForcesSending**(`planetId`: LocationId): _number_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _number_ - ---- - -### getGameManager - -▸ **getGameManager**(): [_default_](backend_gamelogic_gamemanager.default.md) - -**Returns:** [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### getGameObjects - -▸ **getGameObjects**(): [_GameObjects_](backend_gamelogic_gameobjects.gameobjects.md) - -Gets a reference to the game's internal representation of the world state. Beware! Use this for -reading only, otherwise you might mess up the state of the game. You can try modifying the game -state in some way - -**Returns:** [_GameObjects_](backend_gamelogic_gameobjects.gameobjects.md) - ---- - -### getGptCreditBalanceEmitter - -▸ **getGptCreditBalanceEmitter**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getGptCreditPriceEmitter - -▸ **getGptCreditPriceEmitter**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getHashConfig - -▸ **getHashConfig**(): [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) - -**Returns:** [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) - ---- - -### getHashesPerSec - -▸ **getHashesPerSec**(): _number_ - -**Returns:** _number_ - ---- - -### getHomeCoords - -▸ **getHomeCoords**(): WorldCoords - -**Returns:** WorldCoords - ---- - -### getHomeHash - -▸ **getHomeHash**(): _undefined_ \| LocationId - -**Returns:** _undefined_ \| LocationId - ---- - -### getHomePlanet - -▸ **getHomePlanet**(): _undefined_ \| Planet - -**Returns:** _undefined_ \| Planet - ---- - -### getHoveringOverCoords - -▸ **getHoveringOverCoords**(): _undefined_ \| WorldCoords - -**Returns:** _undefined_ \| WorldCoords - ---- - -### getHoveringOverPlanet - -▸ **getHoveringOverPlanet**(): _undefined_ \| Planet - -**Returns:** _undefined_ \| Planet - ---- - -### getIsBuyingCreditsEmitter - -▸ **getIsBuyingCreditsEmitter**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getIsChoosingTargetPlanet - -▸ **getIsChoosingTargetPlanet**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### getIsHighPerfMode - -▸ **getIsHighPerfMode**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### getLocationOfPlanet - -▸ **getLocationOfPlanet**(`planetId`: LocationId): _undefined_ \| WorldLocation - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| WorldLocation - ---- - -### getLocationsAndChunks - -▸ **getLocationsAndChunks**(): _object_ - -**Returns:** _object_ - -| Name | Type | -| :-------------- | :------------------------------------------------------------------------------------------------------------- | -| `cachedPlanets` | _Map_ | -| `chunks` | _Set_<[_Chunk_](_types_global_globaltypes.chunk.md)\> | - ---- - -### getMinerLocation - -▸ **getMinerLocation**(): _undefined_ \| WorldCoords - -**Returns:** _undefined_ \| WorldCoords - ---- - -### getMiningPattern - -▸ **getMiningPattern**(): _undefined_ \| [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) - -**Returns:** _undefined_ \| [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) - ---- - -### getMouseDownCoords - -▸ **getMouseDownCoords**(): _undefined_ \| WorldCoords - -**Returns:** _undefined_ \| WorldCoords - ---- - -### getMouseDownPlanet - -▸ **getMouseDownPlanet**(): _undefined_ \| Planet - -**Returns:** _undefined_ \| Planet - ---- - -### getMyArtifactMap - -▸ **getMyArtifactMap**(): _Map_ - -**Returns:** _Map_ - ---- - -### getMyArtifacts - -▸ **getMyArtifacts**(): Artifact[] - -**Returns:** Artifact[] - ---- - -### getMyArtifactsNotOnPlanet - -▸ **getMyArtifactsNotOnPlanet**(): Artifact[] - -**Returns:** Artifact[] - ---- - -### getMyBalance - -▸ **getMyBalance**(): _number_ - -**Returns:** _number_ - ---- - -### getMyBalanceEmitter - -▸ **getMyBalanceEmitter**(): [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - -**Returns:** [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### getMyPlanetMap - -▸ **getMyPlanetMap**(): _Map_ - -**Returns:** _Map_ - ---- - -### getMyScore - -▸ **getMyScore**(): _number_ - -**Returns:** _number_ - ---- - -### getNextBroadcastAvailableTimestamp - -▸ **getNextBroadcastAvailableTimestamp**(): _number_ - -**Returns:** _number_ - ---- - -### getPerlinConfig - -▸ **getPerlinConfig**(`isBiome?`: _boolean_): PerlinConfig - -#### Parameters - -| Name | Type | Default value | -| :-------- | :-------- | :------------ | -| `isBiome` | _boolean_ | false | - -**Returns:** PerlinConfig - ---- - -### getPerlinThresholds - -▸ **getPerlinThresholds**(): [*number*, *number*, *number*] - -**Returns:** [*number*, *number*, *number*] - ---- - -### getPlanetLevel - -▸ **getPlanetLevel**(`planetId`: LocationId): _undefined_ \| ZERO \| ONE \| TWO \| THREE \| FOUR \| FIVE \| SIX \| SEVEN \| EIGHT \| NINE - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| ZERO \| ONE \| TWO \| THREE \| FOUR \| FIVE \| SIX \| SEVEN \| EIGHT \| NINE - ---- - -### getPlanetMap - -▸ **getPlanetMap**(): _Map_ - -**Returns:** _Map_ - ---- - -### getPlanetWithCoords - -▸ **getPlanetWithCoords**(`coords`: _undefined_ \| WorldCoords): _undefined_ \| Planet - -#### Parameters - -| Name | Type | -| :------- | :------------------------- | -| `coords` | _undefined_ \| WorldCoords | - -**Returns:** _undefined_ \| Planet - ---- - -### getPlanetWithId - -▸ **getPlanetWithId**(`planetId`: LocationId): _undefined_ \| Planet - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _undefined_ \| Planet - ---- - -### getPlanetsInViewport - -▸ **getPlanetsInViewport**(): Planet[] - -**Returns:** Planet[] - ---- - -### getPluginManager - -▸ **getPluginManager**(): [_PluginManager_](backend_gamelogic_pluginmanager.pluginmanager.md) - -**Returns:** [_PluginManager_](backend_gamelogic_pluginmanager.pluginmanager.md) - ---- - -### getPreviousSelectedPlanet - -▸ **getPreviousSelectedPlanet**(): _undefined_ \| Planet - -**Returns:** _undefined_ \| Planet - ---- - -### getPrivateKey - -▸ **getPrivateKey**(): _string_ - -**Returns:** _string_ - ---- - -### getRadiusOfPlanetLevel - -▸ **getRadiusOfPlanetLevel**(`planetRarity`: PlanetLevel): _number_ - -#### Parameters - -| Name | Type | -| :------------- | :---------- | -| `planetRarity` | PlanetLevel | - -**Returns:** _number_ - ---- - -### getSelectedCoords - -▸ **getSelectedCoords**(): _undefined_ \| WorldCoords - -**Returns:** _undefined_ \| WorldCoords - ---- - -### getSelectedPlanet - -▸ **getSelectedPlanet**(): _undefined_ \| Planet - -**Returns:** _undefined_ \| Planet - ---- - -### getSilverCurveAtPercent - -▸ **getSilverCurveAtPercent**(`planet`: Planet, `percent`: _number_): _undefined_ \| _number_ - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `planet` | Planet | -| `percent` | _number_ | - -**Returns:** _undefined_ \| _number_ - ---- - -### getSilverOfPlayer - -▸ **getSilverOfPlayer**(`player`: EthAddress): _number_ - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `player` | EthAddress | - -**Returns:** _number_ - ---- - -### getSilverSending - -▸ **getSilverSending**(`planetId`: LocationId): _number_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _number_ - ---- - -### getSpaceTypePerlin - -▸ **getSpaceTypePerlin**(`coords`: WorldCoords, `floor`: _boolean_): _number_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | -| `floor` | _boolean_ | - -**Returns:** _number_ - ---- - -### getStringSetting - -▸ **getStringSetting**(`setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md)): _undefined_ \| _string_ - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | - -**Returns:** _undefined_ \| _string_ - ---- - -### getTerminal - -▸ **getTerminal**(): _undefined_ \| [_TerminalHandle_](../interfaces/frontend_views_terminal.terminalhandle.md) - -**Returns:** _undefined_ \| [_TerminalHandle_](../interfaces/frontend_views_terminal.terminalhandle.md) - ---- - -### getTwitter - -▸ **getTwitter**(`address`: _undefined_ \| EthAddress): _undefined_ \| _string_ - -#### Parameters - -| Name | Type | -| :-------- | :------------------------ | -| `address` | _undefined_ \| EthAddress | - -**Returns:** _undefined_ \| _string_ - ---- - -### getUnconfirmedMoves - -▸ **getUnconfirmedMoves**(): UnconfirmedMove[] - -**`todo`** delete this. now that [GameObjects](backend_gamelogic_gameobjects.gameobjects.md) is publically accessible, we shouldn't need to -drill fields like this anymore. - -**`tutorial`** Plugin developers, please access fields like this with something like {@code df.getGameObjects().} - -**`deprecated`** - -**Returns:** UnconfirmedMove[] - ---- - -### getUnconfirmedUpgrades - -▸ **getUnconfirmedUpgrades**(): UnconfirmedUpgrade[] - -**Returns:** UnconfirmedUpgrade[] - ---- - -### getUnconfirmedWormholeActivations - -▸ **getUnconfirmedWormholeActivations**(): UnconfirmedActivateArtifact[] - -**Returns:** UnconfirmedActivateArtifact[] - ---- - -### getUniverseTotalEnergy - -▸ **getUniverseTotalEnergy**(): _number_ - -**Returns:** _number_ - ---- - -### getUpgrade - -▸ **getUpgrade**(`branch`: UpgradeBranchName, `level`: _number_): Upgrade - -#### Parameters - -| Name | Type | -| :------- | :---------------- | -| `branch` | UpgradeBranchName | -| `level` | _number_ | - -**Returns:** Upgrade - ---- - -### getViewport - -▸ **getViewport**(): [_default_](frontend_game_viewport.default.md) - -**Returns:** [_default_](frontend_game_viewport.default.md) - ---- - -### getWithdrawnSilverOfPlayer - -▸ **getWithdrawnSilverOfPlayer**(`player`: EthAddress): _number_ - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `player` | EthAddress | - -**Returns:** _number_ - ---- - -### getWorldRadius - -▸ **getWorldRadius**(): _number_ - -**Returns:** _number_ - ---- - -### getWorldSilver - -▸ **getWorldSilver**(): _number_ - -**Returns:** _number_ - ---- - -### getWormholes - -▸ **getWormholes**(): _Iterable_<[_Wormhole_](../modules/_types_global_globaltypes.md#wormhole)\> - -**Returns:** _Iterable_<[_Wormhole_](../modules/_types_global_globaltypes.md#wormhole)\> - ---- - -### hasMinedChunk - -▸ **hasMinedChunk**(`chunkLocation`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): _boolean_ - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------------------ | -| `chunkLocation` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** _boolean_ - ---- - -### isCurrentlyRevealing - -▸ **isCurrentlyRevealing**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### isMining - -▸ **isMining**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### isOverOwnPlanet - -▸ **isOverOwnPlanet**(`coords`: WorldCoords): _undefined_ \| Planet - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _undefined_ \| Planet - ---- - -### isOwnedByMe - -▸ **isOwnedByMe**(`planet`: Planet): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _boolean_ - ---- - -### isRoundOver - -▸ **isRoundOver**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### joinGame - -▸ **joinGame**(`beforeRetry`: (`e`: Error) => _Promise_): [_default_](backend_gamelogic_gameuimanager.default.md) - -#### Parameters - -| Name | Type | -| :------------ | :---------------------------------- | -| `beforeRetry` | (`e`: Error) => _Promise_ | - -**Returns:** [_default_](backend_gamelogic_gameuimanager.default.md) - ---- - -### onDiscoveredChunk - -▸ **onDiscoveredChunk**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### onEmitInitializedPlayer - -▸ `Private` **onEmitInitializedPlayer**(): _void_ - -**Returns:** _void_ - ---- - -### onEmitInitializedPlayerError - -▸ `Private` **onEmitInitializedPlayerError**(`err`: ReactNode): _void_ - -#### Parameters - -| Name | Type | -| :---- | :-------- | -| `err` | ReactNode | - -**Returns:** _void_ - ---- - -### onMouseClick - -▸ **onMouseClick**(`_coords`: WorldCoords): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `_coords` | WorldCoords | - -**Returns:** _void_ - ---- - -### onMouseDown - -▸ **onMouseDown**(`coords`: WorldCoords): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _void_ - ---- - -### onMouseMove - -▸ **onMouseMove**(`coords`: WorldCoords): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _void_ - ---- - -### onMouseOut - -▸ **onMouseOut**(): _void_ - -**Returns:** _void_ - ---- - -### onMouseUp - -▸ **onMouseUp**(`coords`: WorldCoords): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _void_ - ---- - -### onSendCancel - -▸ **onSendCancel**(): _void_ - -**Returns:** _void_ - ---- - -### onSendInit - -▸ **onSendInit**(`planet`: _undefined_ \| Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _void_ - ---- - -### prospectPlanet - -▸ **prospectPlanet**(`planetId`: LocationId): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _void_ - ---- - -### removeExtraMinerLocation - -▸ **removeExtraMinerLocation**(`idx`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :---- | :------- | -| `idx` | _number_ | - -**Returns:** _void_ - ---- - -### revealLocation - -▸ **revealLocation**(`locationId`: LocationId): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `locationId` | LocationId | - -**Returns:** _void_ - ---- - -### setArtifactSending - -▸ **setArtifactSending**(`planetId`: LocationId, `artifact?`: Artifact): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :--------- | -| `planetId` | LocationId | -| `artifact?` | Artifact | - -**Returns:** _void_ - ---- - -### setExtraMinerLocation - -▸ **setExtraMinerLocation**(`idx`: _number_, `coords`: WorldCoords): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `idx` | _number_ | -| `coords` | WorldCoords | - -**Returns:** _void_ - ---- - -### setForcesSending - -▸ **setForcesSending**(`planetId`: LocationId, `percentage`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `planetId` | LocationId | -| `percentage` | _number_ | - -**Returns:** _void_ - ---- - -### setHoveringOverPlanet - -▸ `Private` **setHoveringOverPlanet**(`planet`: _undefined_ \| Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _void_ - ---- - -### setMiningPattern - -▸ **setMiningPattern**(`pattern`: [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md)): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------- | -| `pattern` | [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) | - -**Returns:** _void_ - ---- - -### setSelectedId - -▸ **setSelectedId**(`id`: LocationId): _void_ - -#### Parameters - -| Name | Type | -| :--- | :--------- | -| `id` | LocationId | - -**Returns:** _void_ - ---- - -### setSelectedPlanet - -▸ **setSelectedPlanet**(`planet`: _undefined_ \| Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _void_ - ---- - -### setSilverSending - -▸ **setSilverSending**(`planetId`: LocationId, `percentage`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `planetId` | LocationId | -| `percentage` | _number_ | - -**Returns:** _void_ - ---- - -### spaceTypeFromPerlin - -▸ **spaceTypeFromPerlin**(`perlin`: _number_): SpaceType - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `perlin` | _number_ | - -**Returns:** SpaceType - ---- - -### startConversation - -▸ **startConversation**(`artifactId`: ArtifactId): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### startExplore - -▸ **startExplore**(): _void_ - -**Returns:** _void_ - ---- - -### startWormholeFrom - -▸ **startWormholeFrom**(`planet`: LocatablePlanet): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :-------------- | -| `planet` | LocatablePlanet | - -**Returns:** _Promise_ - ---- - -### stepConversation - -▸ **stepConversation**(`artifactId`: ArtifactId, `message`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | -| `message` | _string_ | - -**Returns:** _Promise_ - ---- - -### stopExplore - -▸ **stopExplore**(): _void_ - -**Returns:** _void_ - ---- - -### updateDiagnostics - -▸ **updateDiagnostics**(`updateFn`: (`d`: [_Diagnostics_](../interfaces/frontend_panes_diagnosticspane.diagnostics.md)) => _void_): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :-------------------------------------------------------------------------------------------- | -| `updateFn` | (`d`: [_Diagnostics_](../interfaces/frontend_panes_diagnosticspane.diagnostics.md)) => _void_ | - -**Returns:** _void_ - ---- - -### updateMouseHoveringOverCoords - -▸ `Private` **updateMouseHoveringOverCoords**(`coords`: WorldCoords): WorldCoords - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** WorldCoords - ---- - -### updatePlanets - -▸ `Private` **updatePlanets**(): _void_ - -**Returns:** _void_ - ---- - -### upgrade - -▸ **upgrade**(`planet`: Planet, `branch`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `planet` | Planet | -| `branch` | _number_ | - -**Returns:** _void_ - ---- - -### verifyTwitter - -▸ **verifyTwitter**(`twitter`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `twitter` | _string_ | - -**Returns:** _Promise_ - ---- - -### withdrawArtifact - -▸ **withdrawArtifact**(`locationId`: LocationId, `artifactId`: ArtifactId): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `locationId` | LocationId | -| `artifactId` | ArtifactId | - -**Returns:** _void_ - ---- - -### withdrawSilver - -▸ **withdrawSilver**(`locationId`: LocationId, `amount`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `locationId` | LocationId | -| `amount` | _number_ | - -**Returns:** _void_ - ---- - -### create - -▸ `Static` **create**(`gameManager`: [_default_](backend_gamelogic_gamemanager.default.md), `terminalHandle`: _MutableRefObject_): _Promise_<[_default_](backend_gamelogic_gameuimanager.default.md)\> - -#### Parameters - -| Name | Type | -| :--------------- | :------------------------------------------------------------------------------------------------------------ | -| `gameManager` | [_default_](backend_gamelogic_gamemanager.default.md) | -| `terminalHandle` | _MutableRefObject_ | - -**Returns:** _Promise_<[_default_](backend_gamelogic_gameuimanager.default.md)\> diff --git a/docs/classes/backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md b/docs/classes/backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md deleted file mode 100644 index fce41e0f..00000000 --- a/docs/classes/backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md +++ /dev/null @@ -1,67 +0,0 @@ -# Class: InitialGameStateDownloader - -[Backend/GameLogic/InitialGameStateDownloader](../modules/backend_gamelogic_initialgamestatedownloader.md).InitialGameStateDownloader - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md#constructor) - -### Properties - -- [terminal](backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md#terminal) - -### Methods - -- [download](backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md#download) -- [makeProgressListener](backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md#makeprogresslistener) - -## Constructors - -### constructor - -\+ **new InitialGameStateDownloader**(`terminal`: [_TerminalHandle_](../interfaces/frontend_views_terminal.terminalhandle.md)): [_InitialGameStateDownloader_](backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md) - -#### Parameters - -| Name | Type | -| :--------- | :-------------------------------------------------------------------------- | -| `terminal` | [_TerminalHandle_](../interfaces/frontend_views_terminal.terminalhandle.md) | - -**Returns:** [_InitialGameStateDownloader_](backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md) - -## Properties - -### terminal - -• `Private` **terminal**: [_TerminalHandle_](../interfaces/frontend_views_terminal.terminalhandle.md) - -## Methods - -### download - -▸ **download**(`contractsAPI`: [_default_](backend_gamelogic_contractsapi.default.md), `persistentChunkStore`: [_default_](backend_storage_persistentchunkstore.default.md)): _Promise_<[_InitialGameState_](../interfaces/backend_gamelogic_initialgamestatedownloader.initialgamestate.md)\> - -#### Parameters - -| Name | Type | -| :--------------------- | :----------------------------------------------------------- | -| `contractsAPI` | [_default_](backend_gamelogic_contractsapi.default.md) | -| `persistentChunkStore` | [_default_](backend_storage_persistentchunkstore.default.md) | - -**Returns:** _Promise_<[_InitialGameState_](../interfaces/backend_gamelogic_initialgamestatedownloader.initialgamestate.md)\> - ---- - -### makeProgressListener - -▸ `Private` **makeProgressListener**(`prettyEntityName`: _string_): _function_ - -#### Parameters - -| Name | Type | -| :----------------- | :------- | -| `prettyEntityName` | _string_ | - -**Returns:** (`percent`: _number_) => _void_ diff --git a/docs/classes/backend_gamelogic_layeredmap.layeredmap.md b/docs/classes/backend_gamelogic_layeredmap.layeredmap.md deleted file mode 100644 index 4b47b65b..00000000 --- a/docs/classes/backend_gamelogic_layeredmap.layeredmap.md +++ /dev/null @@ -1,89 +0,0 @@ -# Class: LayeredMap - -[Backend/GameLogic/LayeredMap](../modules/backend_gamelogic_layeredmap.md).LayeredMap - -Data structure which allows us to efficiently query for "which planets between level X and X + n -(for positive n) are present in the given world rectangle", as well as, in the future, "which -chunks are visible in the vieport". - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_layeredmap.layeredmap.md#constructor) - -### Properties - -- [insertedLocations](backend_gamelogic_layeredmap.layeredmap.md#insertedlocations) -- [perLevelPlanetQuadtrees](backend_gamelogic_layeredmap.layeredmap.md#perlevelplanetquadtrees) - -### Methods - -- [getPlanets](backend_gamelogic_layeredmap.layeredmap.md#getplanets) -- [insertPlanet](backend_gamelogic_layeredmap.layeredmap.md#insertplanet) - -## Constructors - -### constructor - -\+ **new LayeredMap**(`worldRadius`: _number_): [_LayeredMap_](backend_gamelogic_layeredmap.layeredmap.md) - -#### Parameters - -| Name | Type | -| :------------ | :------- | -| `worldRadius` | _number_ | - -**Returns:** [_LayeredMap_](backend_gamelogic_layeredmap.layeredmap.md) - -## Properties - -### insertedLocations - -• `Private` **insertedLocations**: _Set_ - ---- - -### perLevelPlanetQuadtrees - -• `Private` **perLevelPlanetQuadtrees**: _Map_ - -## Methods - -### getPlanets - -▸ **getPlanets**(`worldX`: _number_, `worldY`: _number_, `worldWidth`: _number_, `worldHeight`: _number_, `planetLevels`: _number_[], `planetLevelToRadii`: _Map_): LocationId[] - -Gets the ids of all the planets that are both within the given bounding box (defined by its bottom -left coordinate, width, and height) in the world and of a level that was passed in via the -`planetLevels` parameter. - -#### Parameters - -| Name | Type | -| :------------------- | :----------------------------------------------------------------------------------- | -| `worldX` | _number_ | -| `worldY` | _number_ | -| `worldWidth` | _number_ | -| `worldHeight` | _number_ | -| `planetLevels` | _number_[] | -| `planetLevelToRadii` | _Map_ | - -**Returns:** LocationId[] - ---- - -### insertPlanet - -▸ **insertPlanet**(`location`: WorldLocation, `planetLevel`: _number_): _void_ - -Records the fact that there is a planet at the given world location. - -#### Parameters - -| Name | Type | -| :------------ | :------------ | -| `location` | WorldLocation | -| `planetLevel` | _number_ | - -**Returns:** _void_ diff --git a/docs/classes/backend_gamelogic_paidconversationmanager.paidconversationmanager.md b/docs/classes/backend_gamelogic_paidconversationmanager.paidconversationmanager.md deleted file mode 100644 index 5299d0cc..00000000 --- a/docs/classes/backend_gamelogic_paidconversationmanager.paidconversationmanager.md +++ /dev/null @@ -1,158 +0,0 @@ -# Class: PaidConversationManager - -[Backend/GameLogic/PaidConversationManager](../modules/backend_gamelogic_paidconversationmanager.md).PaidConversationManager - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#constructor) - -### Properties - -- [artifact](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#artifact) -- [conversation](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#conversation) -- [gameUIManager](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#gameuimanager) -- [setConversation](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#setconversation) -- [setLoading](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#setloading) -- [terminal](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#terminal) - -### Methods - -- [getQuestionsRemaining](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#getquestionsremaining) -- [printAllMessages](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#printallmessages) -- [printClean](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#printclean) -- [printMessage](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#printmessage) -- [start](backend_gamelogic_paidconversationmanager.paidconversationmanager.md#start) - -## Constructors - -### constructor - -\+ **new PaidConversationManager**(`gameUIManager`: [_default_](backend_gamelogic_gameuimanager.default.md), `terminal`: _MutableRefObject_, `setConversation`: (`conversation`: Conversation) => _void_, `setLoading`: (`loading`: _boolean_) => _void_, `artifact`: Artifact): [_PaidConversationManager_](backend_gamelogic_paidconversationmanager.paidconversationmanager.md) - -#### Parameters - -| Name | Type | -| :---------------- | :------------------------------------------------------------------------------------------------------------ | -| `gameUIManager` | [_default_](backend_gamelogic_gameuimanager.default.md) | -| `terminal` | _MutableRefObject_ | -| `setConversation` | (`conversation`: Conversation) => _void_ | -| `setLoading` | (`loading`: _boolean_) => _void_ | -| `artifact` | Artifact | - -**Returns:** [_PaidConversationManager_](backend_gamelogic_paidconversationmanager.paidconversationmanager.md) - -## Properties - -### artifact - -• `Private` **artifact**: Artifact - ---- - -### conversation - -• `Private` **conversation**: _undefined_ \| Conversation - ---- - -### gameUIManager - -• `Private` **gameUIManager**: [_default_](backend_gamelogic_gameuimanager.default.md) - ---- - -### setConversation - -• `Private` **setConversation**: (`conversation`: _undefined_ \| Conversation) => _void_ - -#### Type declaration - -▸ (`conversation`: _undefined_ \| Conversation): _void_ - -#### Parameters - -| Name | Type | -| :------------- | :-------------------------- | -| `conversation` | _undefined_ \| Conversation | - -**Returns:** _void_ - ---- - -### setLoading - -• `Private` **setLoading**: (`loading`: _boolean_) => _void_ - -#### Type declaration - -▸ (`loading`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :-------- | -| `loading` | _boolean_ | - -**Returns:** _void_ - ---- - -### terminal - -• `Private` **terminal**: _MutableRefObject_ - -## Methods - -### getQuestionsRemaining - -▸ **getQuestionsRemaining**(): _undefined_ \| _number_ - -**Returns:** _undefined_ \| _number_ - ---- - -### printAllMessages - -▸ `Private` **printAllMessages**(): _void_ - -**Returns:** _void_ - ---- - -### printClean - -▸ `Private` **printClean**(`message`: _string_, `style?`: [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable), `hoverContents?`: () => _Element_): _void_ - -#### Parameters - -| Name | Type | -| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `message` | _string_ | -| `style?` | [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable) | -| `hoverContents?` | () => _Element_ | - -**Returns:** _void_ - ---- - -### printMessage - -▸ `Private` **printMessage**(`message`: Message): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :------ | -| `message` | Message | - -**Returns:** _void_ - ---- - -### start - -▸ **start**(): _Promise_ - -**Returns:** _Promise_ diff --git a/docs/classes/backend_gamelogic_pluginmanager.pluginmanager.md b/docs/classes/backend_gamelogic_pluginmanager.pluginmanager.md deleted file mode 100644 index 803e386c..00000000 --- a/docs/classes/backend_gamelogic_pluginmanager.pluginmanager.md +++ /dev/null @@ -1,373 +0,0 @@ -# Class: PluginManager - -[Backend/GameLogic/PluginManager](../modules/backend_gamelogic_pluginmanager.md).PluginManager - -This class keeps track of all the plugins that this player has loaded -into their game. Acts as a task manager, supports all CRUD operations -for plugins, as well as instantiating and destroying running plugins. -All library operations are also persisted to IndexDB. - -Important! Does not run plugins until the user clicks 'run' somewhere in -this UI. This is important, because if someone develops a buggy plugin, -it would suck if that bricked their game. - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_pluginmanager.pluginmanager.md#constructor) - -### Properties - -- [gameManager](backend_gamelogic_pluginmanager.pluginmanager.md#gamemanager) -- [pluginLibrary](backend_gamelogic_pluginmanager.pluginmanager.md#pluginlibrary) -- [pluginProcessInfos](backend_gamelogic_pluginmanager.pluginmanager.md#pluginprocessinfos) -- [pluginProcesses](backend_gamelogic_pluginmanager.pluginmanager.md#pluginprocesses) -- [plugins$](backend_gamelogic_pluginmanager.pluginmanager.md#plugins$) - -### Methods - -- [addPluginToLibrary](backend_gamelogic_pluginmanager.pluginmanager.md#addplugintolibrary) -- [deletePlugin](backend_gamelogic_pluginmanager.pluginmanager.md#deleteplugin) -- [destroy](backend_gamelogic_pluginmanager.pluginmanager.md#destroy) -- [drawAllRunningPlugins](backend_gamelogic_pluginmanager.pluginmanager.md#drawallrunningplugins) -- [getAllProcessInfos](backend_gamelogic_pluginmanager.pluginmanager.md#getallprocessinfos) -- [getLibrary](backend_gamelogic_pluginmanager.pluginmanager.md#getlibrary) -- [getPluginFromLibrary](backend_gamelogic_pluginmanager.pluginmanager.md#getpluginfromlibrary) -- [getProcessInfo](backend_gamelogic_pluginmanager.pluginmanager.md#getprocessinfo) -- [hasPlugin](backend_gamelogic_pluginmanager.pluginmanager.md#hasplugin) -- [load](backend_gamelogic_pluginmanager.pluginmanager.md#load) -- [notifyPluginLibraryUpdated](backend_gamelogic_pluginmanager.pluginmanager.md#notifypluginlibraryupdated) -- [onNewEmbeddedPlugins](backend_gamelogic_pluginmanager.pluginmanager.md#onnewembeddedplugins) -- [overwritePlugin](backend_gamelogic_pluginmanager.pluginmanager.md#overwriteplugin) -- [render](backend_gamelogic_pluginmanager.pluginmanager.md#render) -- [reorderPlugins](backend_gamelogic_pluginmanager.pluginmanager.md#reorderplugins) -- [spawn](backend_gamelogic_pluginmanager.pluginmanager.md#spawn) -- [copy](backend_gamelogic_pluginmanager.pluginmanager.md#copy) - -## Constructors - -### constructor - -\+ **new PluginManager**(`gameManager`: [_default_](backend_gamelogic_gamemanager.default.md)): [_PluginManager_](backend_gamelogic_pluginmanager.pluginmanager.md) - -#### Parameters - -| Name | Type | -| :------------ | :---------------------------------------------------- | -| `gameManager` | [_default_](backend_gamelogic_gamemanager.default.md) | - -**Returns:** [_PluginManager_](backend_gamelogic_pluginmanager.pluginmanager.md) - -## Properties - -### gameManager - -• `Private` **gameManager**: [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### pluginLibrary - -• `Private` **pluginLibrary**: [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[] - -All the plugins in the player's library. Not all of the player's plugins -are running, and therefore not all exist in `pluginInstances`. -`PluginsManager` keeps this field in sync with the plugins the user has -saved in the IndexDB via {@link PersistentChunkStore} - ---- - -### pluginProcessInfos - -• `Private` **pluginProcessInfos**: _Record_ - -parallel to pluginProcesses - ---- - -### pluginProcesses - -• `Private` **pluginProcesses**: _Record_ - -Plugins that are currently loaded into the game, and are rendering into a -window. `PluginsManager` makes sure that when a plugin starts executing, it -is added into `pluginInstances`, and that once a plugin is unloaded, its -`.destroy()` method is called, and that the plugin is removed from -`pluginInstances`. - ---- - -### plugins$ - -• **plugins$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter)<[_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[]\> - -Event emitter that publishes whenever the set of plugins changes. - -## Methods - -### addPluginToLibrary - -▸ **addPluginToLibrary**(`id`: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid), `name`: _string_, `code`: _string_): [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md) - -adds a new plugin into the plugin library. - -#### Parameters - -| Name | Type | -| :----- | :-------------------------------------------------------------------- | -| `id` | [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) | -| `name` | _string_ | -| `code` | _string_ | - -**Returns:** [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md) - ---- - -### deletePlugin - -▸ **deletePlugin**(`pluginId`: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid)): _Promise_ - -Remove the given plugin both from the player's library, and kills -the plugin if it is running. - -#### Parameters - -| Name | Type | -| :--------- | :-------------------------------------------------------------------- | -| `pluginId` | [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) | - -**Returns:** _Promise_ - ---- - -### destroy - -▸ **destroy**(`id`: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid)): _void_ - -If a plugin with the given id is running, call its `.destroy()` method, -and remove it from `pluginInstances`. Stop listening for new local plugins. - -#### Parameters - -| Name | Type | -| :--- | :-------------------------------------------------------------------- | -| `id` | [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) | - -**Returns:** _void_ - ---- - -### drawAllRunningPlugins - -▸ **drawAllRunningPlugins**(`ctx`: CanvasRenderingContext2D): _void_ - -For each currently running plugin, if the plugin has a 'draw' -function, then draw that plugin to the screen. - -#### Parameters - -| Name | Type | -| :---- | :----------------------- | -| `ctx` | CanvasRenderingContext2D | - -**Returns:** _void_ - ---- - -### getAllProcessInfos - -▸ **getAllProcessInfos**(): _Map_<[_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid), [_ProcessInfo_](backend_gamelogic_pluginmanager.processinfo.md)\> - -Gets a map of all the currently running processes - -**Returns:** _Map_<[_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid), [_ProcessInfo_](backend_gamelogic_pluginmanager.processinfo.md)\> - ---- - -### getLibrary - -▸ **getLibrary**(): [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[] - -Gets all the plugins in this player's library. - -**Returns:** [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[] - ---- - -### getPluginFromLibrary - -▸ **getPluginFromLibrary**(`id?`: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid)): _undefined_ \| [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md) - -Gets the serialized plugin with the given id from the player's plugin -library. `undefined` if no plugin exists. - -#### Parameters - -| Name | Type | -| :---- | :-------------------------------------------------------------------- | -| `id?` | [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) | - -**Returns:** _undefined_ \| [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md) - ---- - -### getProcessInfo - -▸ **getProcessInfo**(`id`: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid)): [_ProcessInfo_](backend_gamelogic_pluginmanager.processinfo.md) - -If this process has been started, gets its info - -#### Parameters - -| Name | Type | -| :--- | :-------------------------------------------------------------------- | -| `id` | [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) | - -**Returns:** [_ProcessInfo_](backend_gamelogic_pluginmanager.processinfo.md) - ---- - -### hasPlugin - -▸ `Private` **hasPlugin**(`plugin`: [_EmbeddedPlugin_](../interfaces/backend_plugins_embeddedpluginloader.embeddedplugin.md)): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :--------------------------------------------------------------------------------------- | -| `plugin` | [_EmbeddedPlugin_](../interfaces/backend_plugins_embeddedpluginloader.embeddedplugin.md) | - -**Returns:** _boolean_ - ---- - -### load - -▸ **load**(): _Promise_ - -Load all plugins from this disk into `pluginLibrary`. Insert the default -plugins into the player's library if the default plugins have never been -added before. Effectively idempotent after the first time you call it. - -**Returns:** _Promise_ - ---- - -### notifyPluginLibraryUpdated - -▸ `Private` **notifyPluginLibraryUpdated**(): _void_ - -**Returns:** _void_ - ---- - -### onNewEmbeddedPlugins - -▸ `Private` **onNewEmbeddedPlugins**(`newPlugins`: [_EmbeddedPlugin_](../interfaces/backend_plugins_embeddedpluginloader.embeddedplugin.md)[]): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :----------------------------------------------------------------------------------------- | -| `newPlugins` | [_EmbeddedPlugin_](../interfaces/backend_plugins_embeddedpluginloader.embeddedplugin.md)[] | - -**Returns:** _void_ - ---- - -### overwritePlugin - -▸ **overwritePlugin**(`newName`: _string_, `pluginCode`: _string_, `id`: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid)): _void_ - -1. kills the plugin if it's running -2. edits the plugin-library version of this plugin -3. if a plugin was edited, save the plugin library to disk - -#### Parameters - -| Name | Type | -| :----------- | :-------------------------------------------------------------------- | -| `newName` | _string_ | -| `pluginCode` | _string_ | -| `id` | [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) | - -**Returns:** _void_ - ---- - -### render - -▸ **render**(`id`: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid), `element`: HTMLDivElement): _Promise_ - -If this plugin's `render` method has not been called yet, then -call it! Remembers that this plugin has been rendered. - -#### Parameters - -| Name | Type | -| :-------- | :-------------------------------------------------------------------- | -| `id` | [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) | -| `element` | HTMLDivElement | - -**Returns:** _Promise_ - ---- - -### reorderPlugins - -▸ **reorderPlugins**(`newPluginIdOrder`: _string_[]): _void_ - -Reorders the current plugins. plugin ids in `newPluginIdOrder` must correspond -1:1 to plugins in the plugin library. - -#### Parameters - -| Name | Type | -| :----------------- | :--------- | -| `newPluginIdOrder` | _string_[] | - -**Returns:** _void_ - ---- - -### spawn - -▸ **spawn**(`id`: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid)): _Promise_ - -Either spawns the given plugin by evaluating its `pluginCode`, or -returns the already running plugin instance. If starting a plugin -throws an error then returns `undefined`. - -#### Parameters - -| Name | Type | -| :--- | :-------------------------------------------------------------------- | -| `id` | [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) | - -**Returns:** _Promise_ - ---- - -### copy - -▸ `Static` `Private` **copy**(`plugin`: T): T - -To prevent users of this class from modifying our plugins library, -we return clones of the plugins. This should probably be a function -in a Utils file somewhere, but I thought I should leave a good comment -about why we return copies of the plugins from the library. - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | -| :------- | :--- | -| `plugin` | T | - -**Returns:** T diff --git a/docs/classes/backend_gamelogic_pluginmanager.processinfo.md b/docs/classes/backend_gamelogic_pluginmanager.processinfo.md deleted file mode 100644 index ff80019b..00000000 --- a/docs/classes/backend_gamelogic_pluginmanager.processinfo.md +++ /dev/null @@ -1,38 +0,0 @@ -# Class: ProcessInfo - -[Backend/GameLogic/PluginManager](../modules/backend_gamelogic_pluginmanager.md).ProcessInfo - -Represents book-keeping information about a running process. We keep it -separate from the process code, so that the plugin doesn't accidentally -overwrite this information. - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_pluginmanager.processinfo.md#constructor) - -### Properties - -- [hasError](backend_gamelogic_pluginmanager.processinfo.md#haserror) -- [rendered](backend_gamelogic_pluginmanager.processinfo.md#rendered) - -## Constructors - -### constructor - -\+ **new ProcessInfo**(): [_ProcessInfo_](backend_gamelogic_pluginmanager.processinfo.md) - -**Returns:** [_ProcessInfo_](backend_gamelogic_pluginmanager.processinfo.md) - -## Properties - -### hasError - -• **hasError**: _boolean_= false - ---- - -### rendered - -• **rendered**: _boolean_= false diff --git a/docs/classes/backend_gamelogic_tutorialmanager.default.md b/docs/classes/backend_gamelogic_tutorialmanager.default.md deleted file mode 100644 index 37f43e00..00000000 --- a/docs/classes/backend_gamelogic_tutorialmanager.default.md +++ /dev/null @@ -1,123 +0,0 @@ -# Class: default - -[Backend/GameLogic/TutorialManager](../modules/backend_gamelogic_tutorialmanager.md).default - -## Hierarchy - -- _EventEmitter_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_tutorialmanager.default.md#constructor) - -### Properties - -- [tutorialState](backend_gamelogic_tutorialmanager.default.md#tutorialstate) -- [instance](backend_gamelogic_tutorialmanager.default.md#instance) - -### Methods - -- [acceptInput](backend_gamelogic_tutorialmanager.default.md#acceptinput) -- [advance](backend_gamelogic_tutorialmanager.default.md#advance) -- [complete](backend_gamelogic_tutorialmanager.default.md#complete) -- [reset](backend_gamelogic_tutorialmanager.default.md#reset) -- [setTutorialState](backend_gamelogic_tutorialmanager.default.md#settutorialstate) -- [getInstance](backend_gamelogic_tutorialmanager.default.md#getinstance) - -## Constructors - -### constructor - -\+ `Private` **new default**(): [_default_](backend_gamelogic_tutorialmanager.default.md) - -**Returns:** [_default_](backend_gamelogic_tutorialmanager.default.md) - -Overrides: EventEmitter.constructor - -## Properties - -### tutorialState - -• `Private` **tutorialState**: [_TutorialState_](../enums/backend_gamelogic_tutorialmanager.tutorialstate.md) - ---- - -### instance - -▪ `Static` **instance**: [_default_](backend_gamelogic_tutorialmanager.default.md) - -## Methods - -### acceptInput - -▸ **acceptInput**(`state`: [_TutorialState_](../enums/backend_gamelogic_tutorialmanager.tutorialstate.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :----------------------------------------------------------------------------- | -| `state` | [_TutorialState_](../enums/backend_gamelogic_tutorialmanager.tutorialstate.md) | - -**Returns:** _void_ - ---- - -### advance - -▸ `Private` **advance**(): _void_ - -**Returns:** _void_ - ---- - -### complete - -▸ **complete**(`gameUiManager`: [_default_](backend_gamelogic_gameuimanager.default.md)): _void_ - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------ | -| `gameUiManager` | [_default_](backend_gamelogic_gameuimanager.default.md) | - -**Returns:** _void_ - ---- - -### reset - -▸ **reset**(`account`: _undefined_ \| EthAddress): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :------------------------ | -| `account` | _undefined_ \| EthAddress | - -**Returns:** _void_ - ---- - -### setTutorialState - -▸ `Private` **setTutorialState**(`newState`: [_TutorialState_](../enums/backend_gamelogic_tutorialmanager.tutorialstate.md)): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :----------------------------------------------------------------------------- | -| `newState` | [_TutorialState_](../enums/backend_gamelogic_tutorialmanager.tutorialstate.md) | - -**Returns:** _void_ - ---- - -### getInstance - -▸ `Static` **getInstance**(): [_default_](backend_gamelogic_tutorialmanager.default.md) - -**Returns:** [_default_](backend_gamelogic_tutorialmanager.default.md) diff --git a/docs/classes/backend_gamelogic_viewportentities.viewportentities.md b/docs/classes/backend_gamelogic_viewportentities.viewportentities.md deleted file mode 100644 index fb402533..00000000 --- a/docs/classes/backend_gamelogic_viewportentities.viewportentities.md +++ /dev/null @@ -1,213 +0,0 @@ -# Class: ViewportEntities - -[Backend/GameLogic/ViewportEntities](../modules/backend_gamelogic_viewportentities.md).ViewportEntities - -Efficiently calculates which planets are in the viewport, and allows you to find the nearest -visible planet to the mouse. - -## Table of contents - -### Constructors - -- [constructor](backend_gamelogic_viewportentities.viewportentities.md#constructor) - -### Properties - -- [cachedExploredChunks](backend_gamelogic_viewportentities.viewportentities.md#cachedexploredchunks) -- [cachedPlanets](backend_gamelogic_viewportentities.viewportentities.md#cachedplanets) -- [cachedPlanetsAsList](backend_gamelogic_viewportentities.viewportentities.md#cachedplanetsaslist) -- [gameManager](backend_gamelogic_viewportentities.viewportentities.md#gamemanager) -- [uiManager](backend_gamelogic_viewportentities.viewportentities.md#uimanager) - -### Methods - -- [getNearestVisiblePlanet](backend_gamelogic_viewportentities.viewportentities.md#getnearestvisibleplanet) -- [getPlanetRadii](backend_gamelogic_viewportentities.viewportentities.md#getplanetradii) -- [getPlanetsAndChunks](backend_gamelogic_viewportentities.viewportentities.md#getplanetsandchunks) -- [getVisiblePlanetLevels](backend_gamelogic_viewportentities.viewportentities.md#getvisibleplanetlevels) -- [loadPlanetMessages](backend_gamelogic_viewportentities.viewportentities.md#loadplanetmessages) -- [recalculateViewportChunks](backend_gamelogic_viewportentities.viewportentities.md#recalculateviewportchunks) -- [recalculateViewportPlanets](backend_gamelogic_viewportentities.viewportentities.md#recalculateviewportplanets) -- [replacePlanets](backend_gamelogic_viewportentities.viewportentities.md#replaceplanets) -- [startRefreshing](backend_gamelogic_viewportentities.viewportentities.md#startrefreshing) -- [updateLocationsAndChunks](backend_gamelogic_viewportentities.viewportentities.md#updatelocationsandchunks) - -## Constructors - -### constructor - -\+ **new ViewportEntities**(`gameManager`: [_default_](backend_gamelogic_gamemanager.default.md), `gameUIManager`: [_default_](backend_gamelogic_gameuimanager.default.md)): [_ViewportEntities_](backend_gamelogic_viewportentities.viewportentities.md) - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------ | -| `gameManager` | [_default_](backend_gamelogic_gamemanager.default.md) | -| `gameUIManager` | [_default_](backend_gamelogic_gameuimanager.default.md) | - -**Returns:** [_ViewportEntities_](backend_gamelogic_viewportentities.viewportentities.md) - -## Properties - -### cachedExploredChunks - -• `Private` **cachedExploredChunks**: _Set_<[_Chunk_](_types_global_globaltypes.chunk.md)\> - ---- - -### cachedPlanets - -• `Private` **cachedPlanets**: _Map_ - ---- - -### cachedPlanetsAsList - -• `Private` **cachedPlanetsAsList**: [_PlanetRenderInfo_](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md)[]= [] - ---- - -### gameManager - -• `Private` `Readonly` **gameManager**: [_default_](backend_gamelogic_gamemanager.default.md) - ---- - -### uiManager - -• `Private` `Readonly` **uiManager**: [_default_](backend_gamelogic_gameuimanager.default.md) - -## Methods - -### getNearestVisiblePlanet - -▸ **getNearestVisiblePlanet**(`coords`: WorldCoords): _undefined_ \| LocatablePlanet - -Gets the planet that is closest to the given coordinates. Filters out irrelevant planets -using the `radiusMap` parameter, which specifies how close a planet must be in order to -be returned from this function, given that planet's level. Smaller planets have a smaller -radius, and larger planets have a larger radius. - -If a smaller and a larger planet are both within respective radii of coords, the smaller -planet is returned. - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _undefined_ \| LocatablePlanet - ---- - -### getPlanetRadii - -▸ `Private` **getPlanetRadii**(`viewport`: [_default_](frontend_game_viewport.default.md)): _Map_ - -One entry per planet level - radius in screen pixels of that planet level given the current -viewport configuration, as well as the world radius. - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------- | -| `viewport` | [_default_](frontend_game_viewport.default.md) | - -**Returns:** _Map_ - ---- - -### getPlanetsAndChunks - -▸ **getPlanetsAndChunks**(): _object_ - -**Returns:** _object_ - -| Name | Type | -| :-------------- | :------------------------------------------------------------------------------------------------------------- | -| `cachedPlanets` | _Map_ | -| `chunks` | _Set_<[_Chunk_](_types_global_globaltypes.chunk.md)\> | - ---- - -### getVisiblePlanetLevels - -▸ `Private` **getVisiblePlanetLevels**(`viewport`: [_default_](frontend_game_viewport.default.md)): _number_[] - -Returns a list of planet levels which, when rendered, would result in a planet that has a size -larger than one pixel. - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------- | -| `viewport` | [_default_](frontend_game_viewport.default.md) | - -**Returns:** _number_[] - ---- - -### loadPlanetMessages - -▸ `Private` **loadPlanetMessages**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### recalculateViewportChunks - -▸ `Private` **recalculateViewportChunks**(`viewport`: [_default_](frontend_game_viewport.default.md)): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------- | -| `viewport` | [_default_](frontend_game_viewport.default.md) | - -**Returns:** _void_ - ---- - -### recalculateViewportPlanets - -▸ `Private` **recalculateViewportPlanets**(`viewport`: [_default_](frontend_game_viewport.default.md)): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------- | -| `viewport` | [_default_](frontend_game_viewport.default.md) | - -**Returns:** _void_ - ---- - -### replacePlanets - -▸ `Private` **replacePlanets**(`newPlanetsInViewport`: LocatablePlanet[]): _void_ - -#### Parameters - -| Name | Type | -| :--------------------- | :---------------- | -| `newPlanetsInViewport` | LocatablePlanet[] | - -**Returns:** _void_ - ---- - -### startRefreshing - -▸ **startRefreshing**(): _void_ - -**Returns:** _void_ - ---- - -### updateLocationsAndChunks - -▸ `Private` **updateLocationsAndChunks**(): _void_ - -**Returns:** _void_ diff --git a/docs/classes/backend_miner_minermanager.default.md b/docs/classes/backend_miner_minermanager.default.md deleted file mode 100644 index c14a00a4..00000000 --- a/docs/classes/backend_miner_minermanager.default.md +++ /dev/null @@ -1,399 +0,0 @@ -# Class: default - -[Backend/Miner/MinerManager](../modules/backend_miner_minermanager.md).default - -## Hierarchy - -- _EventEmitter_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](backend_miner_minermanager.default.md#constructor) - -### Properties - -- [WorkerCtor](backend_miner_minermanager.default.md#workerctor) -- [cores](backend_miner_minermanager.default.md#cores) -- [currentJobId](backend_miner_minermanager.default.md#currentjobid) -- [exploringChunk](backend_miner_minermanager.default.md#exploringchunk) -- [exploringChunkStart](backend_miner_minermanager.default.md#exploringchunkstart) -- [hashConfig](backend_miner_minermanager.default.md#hashconfig) -- [isExploring](backend_miner_minermanager.default.md#isexploring) -- [minedChunksStore](backend_miner_minermanager.default.md#minedchunksstore) -- [minersComplete](backend_miner_minermanager.default.md#minerscomplete) -- [miningPattern](backend_miner_minermanager.default.md#miningpattern) -- [perlinOptions](backend_miner_minermanager.default.md#perlinoptions) -- [planetRarity](backend_miner_minermanager.default.md#planetrarity) -- [useMockHash](backend_miner_minermanager.default.md#usemockhash) -- [workers](backend_miner_minermanager.default.md#workers) -- [worldRadius](backend_miner_minermanager.default.md#worldradius) - -### Methods - -- [chunkKeyToLocation](backend_miner_minermanager.default.md#chunkkeytolocation) -- [chunkLocationToKey](backend_miner_minermanager.default.md#chunklocationtokey) -- [destroy](backend_miner_minermanager.default.md#destroy) -- [exploreNext](backend_miner_minermanager.default.md#explorenext) -- [getCurrentlyExploringChunk](backend_miner_minermanager.default.md#getcurrentlyexploringchunk) -- [getMiningPattern](backend_miner_minermanager.default.md#getminingpattern) -- [initWorker](backend_miner_minermanager.default.md#initworker) -- [isMining](backend_miner_minermanager.default.md#ismining) -- [isValidExploreTarget](backend_miner_minermanager.default.md#isvalidexploretarget) -- [nextValidExploreTarget](backend_miner_minermanager.default.md#nextvalidexploretarget) -- [onDiscovered](backend_miner_minermanager.default.md#ondiscovered) -- [sendMessageToWorkers](backend_miner_minermanager.default.md#sendmessagetoworkers) -- [setCores](backend_miner_minermanager.default.md#setcores) -- [setMiningPattern](backend_miner_minermanager.default.md#setminingpattern) -- [setRadius](backend_miner_minermanager.default.md#setradius) -- [startExplore](backend_miner_minermanager.default.md#startexplore) -- [stopExplore](backend_miner_minermanager.default.md#stopexplore) -- [create](backend_miner_minermanager.default.md#create) - -## Constructors - -### constructor - -\+ `Private` **new default**(`minedChunksStore`: [_ChunkStore_](../interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md), `miningPattern`: [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md), `worldRadius`: _number_, `planetRarity`: _number_, `hashConfig`: [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig), `useMockHash`: _boolean_, `WorkerCtor`: _typeof_ [_default_](_types_worker_loader_workertypes.default.md)): [_default_](backend_miner_minermanager.default.md) - -#### Parameters - -| Name | Type | -| :----------------- | :-------------------------------------------------------------------------------- | -| `minedChunksStore` | [_ChunkStore_](../interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md) | -| `miningPattern` | [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) | -| `worldRadius` | _number_ | -| `planetRarity` | _number_ | -| `hashConfig` | [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) | -| `useMockHash` | _boolean_ | -| `WorkerCtor` | _typeof_ [_default_](_types_worker_loader_workertypes.default.md) | - -**Returns:** [_default_](backend_miner_minermanager.default.md) - -Overrides: EventEmitter.constructor - -## Properties - -### WorkerCtor - -• `Private` **WorkerCtor**: _typeof_ [_default_](_types_worker_loader_workertypes.default.md) - ---- - -### cores - -• `Private` **cores**: _number_= 1 - ---- - -### currentJobId - -• `Private` **currentJobId**: _number_= 0 - ---- - -### exploringChunk - -• `Private` **exploringChunk**: _object_= {} - -#### Type declaration - ---- - -### exploringChunkStart - -• `Private` **exploringChunkStart**: _object_= {} - -#### Type declaration - ---- - -### hashConfig - -• `Private` **hashConfig**: [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) - ---- - -### isExploring - -• `Private` **isExploring**: _boolean_= false - ---- - -### minedChunksStore - -• `Private` `Readonly` **minedChunksStore**: [_ChunkStore_](../interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md) - ---- - -### minersComplete - -• `Private` **minersComplete**: _object_= {} - -#### Type declaration - ---- - -### miningPattern - -• `Private` **miningPattern**: [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) - ---- - -### perlinOptions - -• `Private` **perlinOptions**: PerlinConfig - ---- - -### planetRarity - -• `Private` `Readonly` **planetRarity**: _number_ - ---- - -### useMockHash - -• `Private` **useMockHash**: _boolean_ - ---- - -### workers - -• `Private` **workers**: [_default_](_types_worker_loader_workertypes.default.md)[] - ---- - -### worldRadius - -• `Private` **worldRadius**: _number_ - -## Methods - -### chunkKeyToLocation - -▸ `Private` **chunkKeyToLocation**(`chunkKey`: _string_): _undefined_ \| [[_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), _number_] - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `chunkKey` | _string_ | - -**Returns:** _undefined_ \| [[_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), _number_] - ---- - -### chunkLocationToKey - -▸ `Private` **chunkLocationToKey**(`chunkLocation`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), `jobId`: _number_): _string_ - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------------------ | -| `chunkLocation` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | -| `jobId` | _number_ | - -**Returns:** _string_ - ---- - -### destroy - -▸ **destroy**(): _void_ - -**Returns:** _void_ - ---- - -### exploreNext - -▸ `Private` **exploreNext**(`fromChunk`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), `jobId`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :------------------------------------------------------------------ | -| `fromChunk` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | -| `jobId` | _number_ | - -**Returns:** _void_ - ---- - -### getCurrentlyExploringChunk - -▸ **getCurrentlyExploringChunk**(): _undefined_ \| [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - -**Returns:** _undefined_ \| [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - ---- - -### getMiningPattern - -▸ **getMiningPattern**(): [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) - -**Returns:** [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) - ---- - -### initWorker - -▸ `Private` **initWorker**(`index`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------ | :------- | -| `index` | _number_ | - -**Returns:** _void_ - ---- - -### isMining - -▸ **isMining**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### isValidExploreTarget - -▸ `Private` **isValidExploreTarget**(`chunkLocation`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): _boolean_ - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------------------ | -| `chunkLocation` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** _boolean_ - ---- - -### nextValidExploreTarget - -▸ `Private` **nextValidExploreTarget**(`chunkLocation`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), `jobId`: _number_): _Promise_ - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------------------ | -| `chunkLocation` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | -| `jobId` | _number_ | - -**Returns:** _Promise_ - ---- - -### onDiscovered - -▸ `Private` **onDiscovered**(`exploredChunk`: [_Chunk_](_types_global_globaltypes.chunk.md), `jobId`: _number_): _Promise_ - -#### Parameters - -| Name | Type | -| :-------------- | :-------------------------------------------- | -| `exploredChunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | -| `jobId` | _number_ | - -**Returns:** _Promise_ - ---- - -### sendMessageToWorkers - -▸ `Private` **sendMessageToWorkers**(`chunkToExplore`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), `jobId`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :--------------- | :------------------------------------------------------------------ | -| `chunkToExplore` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | -| `jobId` | _number_ | - -**Returns:** _void_ - ---- - -### setCores - -▸ **setCores**(`nCores`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `nCores` | _number_ | - -**Returns:** _void_ - ---- - -### setMiningPattern - -▸ **setMiningPattern**(`pattern`: [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md)): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------- | -| `pattern` | [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) | - -**Returns:** _void_ - ---- - -### setRadius - -▸ **setRadius**(`radius`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `radius` | _number_ | - -**Returns:** _void_ - ---- - -### startExplore - -▸ **startExplore**(): _void_ - -**Returns:** _void_ - ---- - -### stopExplore - -▸ **stopExplore**(): _void_ - -**Returns:** _void_ - ---- - -### create - -▸ `Static` **create**(`chunkStore`: [_ChunkStore_](../interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md), `miningPattern`: [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md), `worldRadius`: _number_, `planetRarity`: _number_, `hashConfig`: [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig), `useMockHash?`: _boolean_, `WorkerCtor?`: _typeof_ [_default_](_types_worker_loader_workertypes.default.md)): [_default_](backend_miner_minermanager.default.md) - -#### Parameters - -| Name | Type | Default value | -| :-------------- | :-------------------------------------------------------------------------------- | :------------ | -| `chunkStore` | [_ChunkStore_](../interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md) | - | -| `miningPattern` | [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) | - | -| `worldRadius` | _number_ | - | -| `planetRarity` | _number_ | - | -| `hashConfig` | [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) | - | -| `useMockHash` | _boolean_ | false | -| `WorkerCtor` | _typeof_ [_default_](_types_worker_loader_workertypes.default.md) | - | - -**Returns:** [_default_](backend_miner_minermanager.default.md) diff --git a/docs/classes/backend_miner_minermanager.homeplanetminerchunkstore.md b/docs/classes/backend_miner_minermanager.homeplanetminerchunkstore.md deleted file mode 100644 index a9c7e592..00000000 --- a/docs/classes/backend_miner_minermanager.homeplanetminerchunkstore.md +++ /dev/null @@ -1,95 +0,0 @@ -# Class: HomePlanetMinerChunkStore - -[Backend/Miner/MinerManager](../modules/backend_miner_minermanager.md).HomePlanetMinerChunkStore - -## Implements - -- [_ChunkStore_](../interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md) - -## Table of contents - -### Constructors - -- [constructor](backend_miner_minermanager.homeplanetminerchunkstore.md#constructor) - -### Properties - -- [initPerlinMax](backend_miner_minermanager.homeplanetminerchunkstore.md#initperlinmax) -- [initPerlinMin](backend_miner_minermanager.homeplanetminerchunkstore.md#initperlinmin) -- [minedChunkKeys](backend_miner_minermanager.homeplanetminerchunkstore.md#minedchunkkeys) -- [perlinOptions](backend_miner_minermanager.homeplanetminerchunkstore.md#perlinoptions) - -### Methods - -- [addChunk](backend_miner_minermanager.homeplanetminerchunkstore.md#addchunk) -- [hasMinedChunk](backend_miner_minermanager.homeplanetminerchunkstore.md#hasminedchunk) - -## Constructors - -### constructor - -\+ **new HomePlanetMinerChunkStore**(`initPerlinMin`: _number_, `initPerlinMax`: _number_, `hashConfig`: [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig)): [_HomePlanetMinerChunkStore_](backend_miner_minermanager.homeplanetminerchunkstore.md) - -#### Parameters - -| Name | Type | -| :-------------- | :----------------------------------------------------------------- | -| `initPerlinMin` | _number_ | -| `initPerlinMax` | _number_ | -| `hashConfig` | [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) | - -**Returns:** [_HomePlanetMinerChunkStore_](backend_miner_minermanager.homeplanetminerchunkstore.md) - -## Properties - -### initPerlinMax - -• `Private` **initPerlinMax**: _number_ - ---- - -### initPerlinMin - -• `Private` **initPerlinMin**: _number_ - ---- - -### minedChunkKeys - -• `Private` **minedChunkKeys**: _Set_ - ---- - -### perlinOptions - -• `Private` **perlinOptions**: PerlinConfig - -## Methods - -### addChunk - -▸ **addChunk**(`exploredChunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :-------------- | :-------------------------------------------- | -| `exploredChunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### hasMinedChunk - -▸ **hasMinedChunk**(`chunkFootprint`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): _boolean_ - -#### Parameters - -| Name | Type | -| :--------------- | :------------------------------------------------------------------ | -| `chunkFootprint` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** _boolean_ - -Implementation of: ChunkStore.hasMinedChunk diff --git a/docs/classes/backend_miner_miningpatterns.spiralpattern.md b/docs/classes/backend_miner_miningpatterns.spiralpattern.md deleted file mode 100644 index c734d186..00000000 --- a/docs/classes/backend_miner_miningpatterns.spiralpattern.md +++ /dev/null @@ -1,76 +0,0 @@ -# Class: SpiralPattern - -[Backend/Miner/MiningPatterns](../modules/backend_miner_miningpatterns.md).SpiralPattern - -## Implements - -- [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) - -## Table of contents - -### Constructors - -- [constructor](backend_miner_miningpatterns.spiralpattern.md#constructor) - -### Properties - -- [chunkSideLength](backend_miner_miningpatterns.spiralpattern.md#chunksidelength) -- [fromChunk](backend_miner_miningpatterns.spiralpattern.md#fromchunk) -- [type](backend_miner_miningpatterns.spiralpattern.md#type) - -### Methods - -- [nextChunk](backend_miner_miningpatterns.spiralpattern.md#nextchunk) - -## Constructors - -### constructor - -\+ **new SpiralPattern**(`center`: WorldCoords, `chunkSize`: _number_): [_SpiralPattern_](backend_miner_miningpatterns.spiralpattern.md) - -#### Parameters - -| Name | Type | -| :---------- | :---------- | -| `center` | WorldCoords | -| `chunkSize` | _number_ | - -**Returns:** [_SpiralPattern_](backend_miner_miningpatterns.spiralpattern.md) - -## Properties - -### chunkSideLength - -• **chunkSideLength**: _number_ - ---- - -### fromChunk - -• **fromChunk**: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - -Implementation of: [MiningPattern](../interfaces/backend_miner_miningpatterns.miningpattern.md).[fromChunk](../interfaces/backend_miner_miningpatterns.miningpattern.md#fromchunk) - ---- - -### type - -• **type**: [_MiningPatternType_](../enums/backend_miner_miningpatterns.miningpatterntype.md) - -Implementation of: [MiningPattern](../interfaces/backend_miner_miningpatterns.miningpattern.md).[type](../interfaces/backend_miner_miningpatterns.miningpattern.md#type) - -## Methods - -### nextChunk - -▸ **nextChunk**(`chunk`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - -#### Parameters - -| Name | Type | -| :------ | :------------------------------------------------------------------ | -| `chunk` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - -Implementation of: MiningPattern.nextChunk diff --git a/docs/classes/backend_miner_miningpatterns.swisscheesepattern.md b/docs/classes/backend_miner_miningpatterns.swisscheesepattern.md deleted file mode 100644 index c3205a83..00000000 --- a/docs/classes/backend_miner_miningpatterns.swisscheesepattern.md +++ /dev/null @@ -1,76 +0,0 @@ -# Class: SwissCheesePattern - -[Backend/Miner/MiningPatterns](../modules/backend_miner_miningpatterns.md).SwissCheesePattern - -## Implements - -- [_MiningPattern_](../interfaces/backend_miner_miningpatterns.miningpattern.md) - -## Table of contents - -### Constructors - -- [constructor](backend_miner_miningpatterns.swisscheesepattern.md#constructor) - -### Properties - -- [chunkSideLength](backend_miner_miningpatterns.swisscheesepattern.md#chunksidelength) -- [fromChunk](backend_miner_miningpatterns.swisscheesepattern.md#fromchunk) -- [type](backend_miner_miningpatterns.swisscheesepattern.md#type) - -### Methods - -- [nextChunk](backend_miner_miningpatterns.swisscheesepattern.md#nextchunk) - -## Constructors - -### constructor - -\+ **new SwissCheesePattern**(`center`: WorldCoords, `chunkSize`: _number_): [_SwissCheesePattern_](backend_miner_miningpatterns.swisscheesepattern.md) - -#### Parameters - -| Name | Type | -| :---------- | :---------- | -| `center` | WorldCoords | -| `chunkSize` | _number_ | - -**Returns:** [_SwissCheesePattern_](backend_miner_miningpatterns.swisscheesepattern.md) - -## Properties - -### chunkSideLength - -• **chunkSideLength**: _number_ - ---- - -### fromChunk - -• **fromChunk**: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - -Implementation of: [MiningPattern](../interfaces/backend_miner_miningpatterns.miningpattern.md).[fromChunk](../interfaces/backend_miner_miningpatterns.miningpattern.md#fromchunk) - ---- - -### type - -• **type**: [_MiningPatternType_](../enums/backend_miner_miningpatterns.miningpatterntype.md) - -Implementation of: [MiningPattern](../interfaces/backend_miner_miningpatterns.miningpattern.md).[type](../interfaces/backend_miner_miningpatterns.miningpattern.md#type) - -## Methods - -### nextChunk - -▸ **nextChunk**(`chunk`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - -#### Parameters - -| Name | Type | -| :------ | :------------------------------------------------------------------ | -| `chunk` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - -Implementation of: MiningPattern.nextChunk diff --git a/docs/classes/backend_network_ethconnection.default.md b/docs/classes/backend_network_ethconnection.default.md deleted file mode 100644 index 6d4b860b..00000000 --- a/docs/classes/backend_network_ethconnection.default.md +++ /dev/null @@ -1,364 +0,0 @@ -# Class: default - -[Backend/Network/EthConnection](../modules/backend_network_ethconnection.md).default - -Responsible for - -1. loading the contract -2. the in-memory wallet -3. connecting to the correct network - -## Hierarchy - -- _EventEmitter_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](backend_network_ethconnection.default.md#constructor) - -### Properties - -- [blockNumber](backend_network_ethconnection.default.md#blocknumber) -- [blockNumber$](backend_network_ethconnection.default.md#blocknumber$) -- [knownAddresses](backend_network_ethconnection.default.md#knownaddresses) -- [provider](backend_network_ethconnection.default.md#provider) -- [rpcURL](backend_network_ethconnection.default.md#rpcurl) -- [signer](backend_network_ethconnection.default.md#signer) -- [XDAI_DEFAULT_URL](backend_network_ethconnection.default.md#xdai_default_url) - -### Methods - -- [addAccount](backend_network_ethconnection.default.md#addaccount) -- [adjustPollRateBasedOnVisibility](backend_network_ethconnection.default.md#adjustpollratebasedonvisibility) -- [getAddress](backend_network_ethconnection.default.md#getaddress) -- [getBalance](backend_network_ethconnection.default.md#getbalance) -- [getKnownAccounts](backend_network_ethconnection.default.md#getknownaccounts) -- [getNonce](backend_network_ethconnection.default.md#getnonce) -- [getPrivateKey](backend_network_ethconnection.default.md#getprivatekey) -- [getRpcEndpoint](backend_network_ethconnection.default.md#getrpcendpoint) -- [hasSigner](backend_network_ethconnection.default.md#hassigner) -- [isWhitelisted](backend_network_ethconnection.default.md#iswhitelisted) -- [loadContract](backend_network_ethconnection.default.md#loadcontract) -- [loadCoreContract](backend_network_ethconnection.default.md#loadcorecontract) -- [loadGPTCreditContract](backend_network_ethconnection.default.md#loadgptcreditcontract) -- [loadGettersContract](backend_network_ethconnection.default.md#loadgetterscontract) -- [loadWhitelistContract](backend_network_ethconnection.default.md#loadwhitelistcontract) -- [processEvents](backend_network_ethconnection.default.md#processevents) -- [setAccount](backend_network_ethconnection.default.md#setaccount) -- [setRpcEndpoint](backend_network_ethconnection.default.md#setrpcendpoint) -- [signMessage](backend_network_ethconnection.default.md#signmessage) -- [subscribeToEvents](backend_network_ethconnection.default.md#subscribetoevents) -- [verifySignature](backend_network_ethconnection.default.md#verifysignature) -- [waitForTransaction](backend_network_ethconnection.default.md#waitfortransaction) - -## Constructors - -### constructor - -\+ **new default**(): [_default_](backend_network_ethconnection.default.md) - -**Returns:** [_default_](backend_network_ethconnection.default.md) - -Overrides: EventEmitter.constructor - -## Properties - -### blockNumber - -• `Private` **blockNumber**: _number_ - ---- - -### blockNumber$ - -• `Readonly` **blockNumber$**: [_Monomitter_](../modules/frontend_utils_monomitter.md#monomitter) - ---- - -### knownAddresses - -• `Private` `Readonly` **knownAddresses**: EthAddress[] - ---- - -### provider - -• `Private` **provider**: _JsonRpcProvider_ - ---- - -### rpcURL - -• `Private` **rpcURL**: _string_ - ---- - -### signer - -• `Private` **signer**: _undefined_ \| _Wallet_ - ---- - -### XDAI_DEFAULT_URL - -▪ `Static` `Private` `Readonly` **XDAI_DEFAULT_URL**: _string_ - -## Methods - -### addAccount - -▸ **addAccount**(`skey`: _string_): _void_ - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `skey` | _string_ | - -**Returns:** _void_ - ---- - -### adjustPollRateBasedOnVisibility - -▸ `Private` **adjustPollRateBasedOnVisibility**(): _void_ - -**Returns:** _void_ - ---- - -### getAddress - -▸ **getAddress**(): EthAddress - -**Returns:** EthAddress - ---- - -### getBalance - -▸ **getBalance**(`address`: EthAddress): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `address` | EthAddress | - -**Returns:** _Promise_ - ---- - -### getKnownAccounts - -▸ **getKnownAccounts**(): EthAddress[] - -**Returns:** EthAddress[] - ---- - -### getNonce - -▸ **getNonce**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### getPrivateKey - -▸ **getPrivateKey**(): _string_ - -**Returns:** _string_ - ---- - -### getRpcEndpoint - -▸ **getRpcEndpoint**(): _string_ - -**Returns:** _string_ - ---- - -### hasSigner - -▸ **hasSigner**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### isWhitelisted - -▸ **isWhitelisted**(`address`: EthAddress): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `address` | EthAddress | - -**Returns:** _Promise_ - ---- - -### loadContract - -▸ **loadContract**(`contractAddress`: _string_, `contractABI`: ContractInterface): _Promise_ - -#### Type parameters - -| Name | Type | -| :--- | :------------- | -| `C` | _Contract_ | - -#### Parameters - -| Name | Type | -| :---------------- | :---------------- | -| `contractAddress` | _string_ | -| `contractABI` | ContractInterface | - -**Returns:** _Promise_ - ---- - -### loadCoreContract - -▸ **loadCoreContract**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### loadGPTCreditContract - -▸ **loadGPTCreditContract**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### loadGettersContract - -▸ **loadGettersContract**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### loadWhitelistContract - -▸ **loadWhitelistContract**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### processEvents - -▸ `Private` **processEvents**(`startBlock`: _number_, `endBlock`: _number_, `eventFilter`: EventFilter, `contract`: _DarkForestCore_, `handlers`: _Partial_\>): _Promise_ - -#### Parameters - -| Name | Type | -| :------------ | :------------------------------------------------------------------------------------------------------------- | -| `startBlock` | _number_ | -| `endBlock` | _number_ | -| `eventFilter` | EventFilter | -| `contract` | _DarkForestCore_ | -| `handlers` | _Partial_\> | - -**Returns:** _Promise_ - ---- - -### setAccount - -▸ **setAccount**(`address`: EthAddress): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `address` | EthAddress | - -**Returns:** _void_ - ---- - -### setRpcEndpoint - -▸ **setRpcEndpoint**(`url`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :---- | :------- | -| `url` | _string_ | - -**Returns:** _Promise_ - ---- - -### signMessage - -▸ **signMessage**(`message`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `message` | _string_ | - -**Returns:** _Promise_ - ---- - -### subscribeToEvents - -▸ **subscribeToEvents**(`contract`: _DarkForestCore_, `handlers`: _Partial_\>): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :------------------------------------------------------------------------------------------------------------- | -| `contract` | _DarkForestCore_ | -| `handlers` | _Partial_\> | - -**Returns:** _void_ - ---- - -### verifySignature - -▸ **verifySignature**(`message`: _string_, `signature`: _string_, `address`: EthAddress): _boolean_ - -#### Parameters - -| Name | Type | -| :---------- | :--------- | -| `message` | _string_ | -| `signature` | _string_ | -| `address` | EthAddress | - -**Returns:** _boolean_ - ---- - -### waitForTransaction - -▸ **waitForTransaction**(`txHash`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `txHash` | _string_ | - -**Returns:** _Promise_ diff --git a/docs/classes/backend_network_eventlogger.eventlogger.md b/docs/classes/backend_network_eventlogger.eventlogger.md deleted file mode 100644 index 192be452..00000000 --- a/docs/classes/backend_network_eventlogger.eventlogger.md +++ /dev/null @@ -1,69 +0,0 @@ -# Class: EventLogger - -[Backend/Network/EventLogger](../modules/backend_network_eventlogger.md).EventLogger - -## Table of contents - -### Constructors - -- [constructor](backend_network_eventlogger.eventlogger.md#constructor) - -### Properties - -- [instance](backend_network_eventlogger.eventlogger.md#instance) - -### Methods - -- [logEvent](backend_network_eventlogger.eventlogger.md#logevent) -- [augmentEvent](backend_network_eventlogger.eventlogger.md#augmentevent) -- [getInstance](backend_network_eventlogger.eventlogger.md#getinstance) - -## Constructors - -### constructor - -\+ **new EventLogger**(): [_EventLogger_](backend_network_eventlogger.eventlogger.md) - -**Returns:** [_EventLogger_](backend_network_eventlogger.eventlogger.md) - -## Properties - -### instance - -▪ `Static` `Private` **instance**: [_EventLogger_](backend_network_eventlogger.eventlogger.md) - -## Methods - -### logEvent - -▸ **logEvent**(`event`: _unknown_): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------- | -| `event` | _unknown_ | - -**Returns:** _void_ - ---- - -### augmentEvent - -▸ `Static` **augmentEvent**(`event`: _unknown_): _object_ - -#### Parameters - -| Name | Type | -| :------ | :-------- | -| `event` | _unknown_ | - -**Returns:** _object_ - ---- - -### getInstance - -▸ `Static` **getInstance**(): [_EventLogger_](backend_network_eventlogger.eventlogger.md) - -**Returns:** [_EventLogger_](backend_network_eventlogger.eventlogger.md) diff --git a/docs/classes/backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md b/docs/classes/backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md deleted file mode 100644 index 5ff283e6..00000000 --- a/docs/classes/backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md +++ /dev/null @@ -1,203 +0,0 @@ -# Class: ThrottledConcurrentQueue - -[Backend/Network/ThrottledConcurrentQueue](../modules/backend_network_throttledconcurrentqueue.md).ThrottledConcurrentQueue - -A queue that executes promises with a max throughput, and optionally max -concurrency. - -## Table of contents - -### Constructors - -- [constructor](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#constructor) - -### Properties - -- [concurrency](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#concurrency) -- [executionTimeout](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#executiontimeout) -- [executionTimestamps](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#executiontimestamps) -- [invocationIntervalMs](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#invocationintervalms) -- [maxConcurrency](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#maxconcurrency) -- [taskQueue](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#taskqueue) - -### Methods - -- [add](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#add) -- [concurrencyQuotaRemaining](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#concurrencyquotaremaining) -- [deleteOutdatedExecutionTimestamps](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#deleteoutdatedexecutiontimestamps) -- [executeNextTasks](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#executenexttasks) -- [next](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#next) -- [nextPossibleExecution](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#nextpossibleexecution) -- [size](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#size) -- [throttleQuotaRemaining](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#throttlequotaremaining) - -## Constructors - -### constructor - -\+ **new ThrottledConcurrentQueue**(`maxInvocationsPerIntervalMs`: _number_, `invocationIntervalMs`: _number_, `maxConcurrency?`: _number_): [_ThrottledConcurrentQueue_](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md) - -#### Parameters - -| Name | Type | -| :---------------------------- | :------- | -| `maxInvocationsPerIntervalMs` | _number_ | -| `invocationIntervalMs` | _number_ | -| `maxConcurrency` | _number_ | - -**Returns:** [_ThrottledConcurrentQueue_](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md) - -## Properties - -### concurrency - -• `Private` **concurrency**: _number_= 0 - -Amount of tasks being executed right now. - ---- - -### executionTimeout - -• `Private` **executionTimeout**: _Timeout_ - -When we schedule an attempt at executing another task in the future, -we don't want to schedule it more than once. Therefore, we keep track -of this scheduled attempt. - ---- - -### executionTimestamps - -• `Private` **executionTimestamps**: _default_ - -Each time a task is executed, record the start of its execution time. -Execution timestamps are removed when they become outdated. Used for -keeping the amount of executions under the throttle limit. - ---- - -### invocationIntervalMs - -• `Private` `Readonly` **invocationIntervalMs**: _number_ - -The interval during which we only allow a certain maximum amount of tasks -to be executed. - ---- - -### maxConcurrency - -• `Private` `Readonly` **maxConcurrency**: _number_ - -Maximum amount of tasks that can be executing at the same time. - ---- - -### taskQueue - -• `Private` **taskQueue**: _QueuedTask_[]= [] - -Queue of tasks to execute. Added to the front, popped off the back. - -## Methods - -### add - -▸ **add**(`generator`: () => _Promise_): _Promise_ - -Adds a task to be executed at some point in the future. Returns a promise -that resolves when the task finishes successfully, and rejects when there -is an error. - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :---------- | :------------------ | :------------------------------------------------------ | -| `generator` | () => _Promise_ | a function that returns a promise representing the task | - -**Returns:** _Promise_ - ---- - -### concurrencyQuotaRemaining - -▸ `Private` **concurrencyQuotaRemaining**(): _number_ - -At this moment, how many more tasks we could execute without exceeding the -concurrency quota. - -**Returns:** _number_ - ---- - -### deleteOutdatedExecutionTimestamps - -▸ `Private` **deleteOutdatedExecutionTimestamps**(): _void_ - -Removes all task execution timestamps that are older than [[this.invocationIntervalMs]], -because those invocations have no bearing on whether or not we can execute another task. - -**Returns:** _void_ - ---- - -### executeNextTasks - -▸ `Private` **executeNextTasks**(): _Promise_ - -Runs tasks until it's at either the throttle or concurrency limit. If there are more -tasks to be executed after that, schedules itself to execute again at the soonest -possible moment. - -**Returns:** _Promise_ - ---- - -### next - -▸ `Private` **next**(): _Promise_ - -If there is a next task to execute, executes it. Records the time of execution in -[executionTimestamps](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md#executiontimestamps). Increments and decrements concurrency counter. Neither throttles -nor limits concurrency. - -**Returns:** _Promise_ - ---- - -### nextPossibleExecution - -▸ `Private` **nextPossibleExecution**(): _undefined_ \| _number_ - -Returns the soonest possible time from now we could execute another task without going -over the throttle limit. - -**Returns:** _undefined_ \| _number_ - ---- - -### size - -▸ **size**(): _number_ - -Returns the amount of queued items, not including the ones that are being executed at this moment. - -**Returns:** _number_ - ---- - -### throttleQuotaRemaining - -▸ `Private` **throttleQuotaRemaining**(): _number_ - -At this moment, how many more tasks we could execute without exceeding the -throttle quota. - -**Returns:** _number_ diff --git a/docs/classes/backend_network_txexecutor.txexecutor.md b/docs/classes/backend_network_txexecutor.txexecutor.md deleted file mode 100644 index 6ff6f9be..00000000 --- a/docs/classes/backend_network_txexecutor.txexecutor.md +++ /dev/null @@ -1,178 +0,0 @@ -# Class: TxExecutor - -[Backend/Network/TxExecutor](../modules/backend_network_txexecutor.md).TxExecutor - -## Hierarchy - -- _EventEmitter_ - - ↳ **TxExecutor** - -## Table of contents - -### Constructors - -- [constructor](backend_network_txexecutor.txexecutor.md#constructor) - -### Properties - -- [diagnosticsUpdater](backend_network_txexecutor.txexecutor.md#diagnosticsupdater) -- [eth](backend_network_txexecutor.txexecutor.md#eth) -- [lastTransaction](backend_network_txexecutor.txexecutor.md#lasttransaction) -- [nonce](backend_network_txexecutor.txexecutor.md#nonce) -- [txQueue](backend_network_txexecutor.txexecutor.md#txqueue) -- [MIN_BALANCE_ETH](backend_network_txexecutor.txexecutor.md#min_balance_eth) -- [NONCE_STALE_AFTER_MS](backend_network_txexecutor.txexecutor.md#nonce_stale_after_ms) -- [TX_SUBMIT_TIMEOUT](backend_network_txexecutor.txexecutor.md#tx_submit_timeout) - -### Methods - -- [checkBalance](backend_network_txexecutor.txexecutor.md#checkbalance) -- [execute](backend_network_txexecutor.txexecutor.md#execute) -- [makeRequest](backend_network_txexecutor.txexecutor.md#makerequest) -- [maybeUpdateNonce](backend_network_txexecutor.txexecutor.md#maybeupdatenonce) -- [setDiagnosticUpdater](backend_network_txexecutor.txexecutor.md#setdiagnosticupdater) - -## Constructors - -### constructor - -\+ **new TxExecutor**(`ethConnection`: [_default_](backend_network_ethconnection.default.md), `nonce`: _number_): [_TxExecutor_](backend_network_txexecutor.txexecutor.md) - -#### Parameters - -| Name | Type | -| :-------------- | :---------------------------------------------------- | -| `ethConnection` | [_default_](backend_network_ethconnection.default.md) | -| `nonce` | _number_ | - -**Returns:** [_TxExecutor_](backend_network_txexecutor.txexecutor.md) - -Overrides: EventEmitter.constructor - -## Properties - -### diagnosticsUpdater - -• `Private` `Optional` **diagnosticsUpdater**: [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md) - ---- - -### eth - -• `Private` **eth**: [_default_](backend_network_ethconnection.default.md) - ---- - -### lastTransaction - -• `Private` **lastTransaction**: _number_ - ---- - -### nonce - -• `Private` **nonce**: _number_ - ---- - -### txQueue - -• `Private` **txQueue**: [_ThrottledConcurrentQueue_](backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md) - ---- - -### MIN_BALANCE_ETH - -▪ `Static` `Private` `Readonly` **MIN_BALANCE_ETH**: `0.002`= 0.002 - -don't allow users to submit txs if balance falls below - ---- - -### NONCE_STALE_AFTER_MS - -▪ `Static` `Private` `Readonly` **NONCE_STALE_AFTER_MS**: _number_ - -we refresh the nonce if it hasn't been updated in this amount of time - ---- - -### TX_SUBMIT_TIMEOUT - -▪ `Static` `Private` `Readonly` **TX_SUBMIT_TIMEOUT**: `30000`= 30000 - -tx is considered to have errored if haven't successfully -submitted to mempool within 30s - -## Methods - -### checkBalance - -▸ `Private` **checkBalance**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### execute - -▸ `Private` **execute**(`txRequest`: [_QueuedTxRequest_](../interfaces/backend_network_txexecutor.queuedtxrequest.md)): _Promise_ - -#### Parameters - -| Name | Type | -| :---------- | :------------------------------------------------------------------------------- | -| `txRequest` | [_QueuedTxRequest_](../interfaces/backend_network_txexecutor.queuedtxrequest.md) | - -**Returns:** _Promise_ - ---- - -### makeRequest - -▸ **makeRequest**(`type`: EthTxType, `actionId`: _string_, `contract`: _Contract_, `args`: _unknown_[], `overrides?`: TransactionRequest): [_PendingTransaction_](../interfaces/backend_network_txexecutor.pendingtransaction.md) - -Schedules this transaction to execute once all of the transactions -ahead of it have completed. - -#### Type parameters - -| Name | -| :--- | -| `T` | -| `U` | - -#### Parameters - -| Name | Type | -| :---------- | :----------------- | -| `type` | EthTxType | -| `actionId` | _string_ | -| `contract` | _Contract_ | -| `args` | _unknown_[] | -| `overrides` | TransactionRequest | - -**Returns:** [_PendingTransaction_](../interfaces/backend_network_txexecutor.pendingtransaction.md) - ---- - -### maybeUpdateNonce - -▸ `Private` **maybeUpdateNonce**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### setDiagnosticUpdater - -▸ **setDiagnosticUpdater**(`diagnosticUpdater?`: [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md)): _void_ - -#### Parameters - -| Name | Type | -| :------------------- | :--------------------------------------------------------------------------------------------- | -| `diagnosticUpdater?` | [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md) | - -**Returns:** _void_ diff --git a/docs/classes/backend_procedural_noise.default.md b/docs/classes/backend_procedural_noise.default.md deleted file mode 100644 index 2ef34413..00000000 --- a/docs/classes/backend_procedural_noise.default.md +++ /dev/null @@ -1,71 +0,0 @@ -# Class: default - -[Backend/Procedural/Noise](../modules/backend_procedural_noise.md).default - -## Table of contents - -### Constructors - -- [constructor](backend_procedural_noise.default.md#constructor) - -### Properties - -- [noise](backend_procedural_noise.default.md#noise) -- [instance](backend_procedural_noise.default.md#instance) - -### Methods - -- [simplex2](backend_procedural_noise.default.md#simplex2) -- [getInstance](backend_procedural_noise.default.md#getinstance) -- [initialize](backend_procedural_noise.default.md#initialize) - -## Constructors - -### constructor - -\+ **new default**(): [_default_](backend_procedural_noise.default.md) - -**Returns:** [_default_](backend_procedural_noise.default.md) - -## Properties - -### noise - -• **noise**: _any_ - ---- - -### instance - -▪ `Static` **instance**: [_default_](backend_procedural_noise.default.md) - -## Methods - -### simplex2 - -▸ **simplex2**(`x`: _any_, `y`: _any_): _number_ - -#### Parameters - -| Name | Type | -| :--- | :---- | -| `x` | _any_ | -| `y` | _any_ | - -**Returns:** _number_ - ---- - -### getInstance - -▸ `Static` **getInstance**(): [_default_](backend_procedural_noise.default.md) - -**Returns:** [_default_](backend_procedural_noise.default.md) - ---- - -### initialize - -▸ `Static` **initialize**(): [_default_](backend_procedural_noise.default.md) - -**Returns:** [_default_](backend_procedural_noise.default.md) diff --git a/docs/classes/backend_procedural_procgenutils.procgenutils.md b/docs/classes/backend_procedural_procgenutils.procgenutils.md deleted file mode 100644 index dd6176ea..00000000 --- a/docs/classes/backend_procedural_procgenutils.procgenutils.md +++ /dev/null @@ -1,509 +0,0 @@ -# Class: ProcgenUtils - -[Backend/Procedural/ProcgenUtils](../modules/backend_procedural_procgenutils.md).ProcgenUtils - -## Table of contents - -### Constructors - -- [constructor](backend_procedural_procgenutils.procgenutils.md#constructor) - -### Properties - -- [baseByBiome](backend_procedural_procgenutils.procgenutils.md#basebybiome) -- [blurbs2ById](backend_procedural_procgenutils.procgenutils.md#blurbs2byid) -- [blurbsById](backend_procedural_procgenutils.procgenutils.md#blurbsbyid) -- [cosmeticByLocId](backend_procedural_procgenutils.procgenutils.md#cosmeticbylocid) -- [grayColors](backend_procedural_procgenutils.procgenutils.md#graycolors) -- [huesByHash](backend_procedural_procgenutils.procgenutils.md#huesbyhash) -- [namesById](backend_procedural_procgenutils.procgenutils.md#namesbyid) -- [oceanByBiome](backend_procedural_procgenutils.procgenutils.md#oceanbybiome) -- [rgbsByHash](backend_procedural_procgenutils.procgenutils.md#rgbsbyhash) -- [strByBiome](backend_procedural_procgenutils.procgenutils.md#strbybiome) -- [taglinesById](backend_procedural_procgenutils.procgenutils.md#taglinesbyid) - -### Methods - -- [artifactRandom](backend_procedural_procgenutils.procgenutils.md#artifactrandom) -- [artifactRandomInt](backend_procedural_procgenutils.procgenutils.md#artifactrandomint) -- [ellipsStrEnd](backend_procedural_procgenutils.procgenutils.md#ellipsstrend) -- [ellipsisStr](backend_procedural_procgenutils.procgenutils.md#ellipsisstr) -- [getBiomeRgbStr](backend_procedural_procgenutils.procgenutils.md#getbiomergbstr) -- [getHatSizeName](backend_procedural_procgenutils.procgenutils.md#gethatsizename) -- [getOwnerColor](backend_procedural_procgenutils.procgenutils.md#getownercolor) -- [getOwnerColorVec](backend_procedural_procgenutils.procgenutils.md#getownercolorvec) -- [getPlanetBlurb](backend_procedural_procgenutils.procgenutils.md#getplanetblurb) -- [getPlanetBlurb2](backend_procedural_procgenutils.procgenutils.md#getplanetblurb2) -- [getPlanetClass](backend_procedural_procgenutils.procgenutils.md#getplanetclass) -- [getPlanetCosmetic](backend_procedural_procgenutils.procgenutils.md#getplanetcosmetic) -- [getPlanetName](backend_procedural_procgenutils.procgenutils.md#getplanetname) -- [getPlanetNameHash](backend_procedural_procgenutils.procgenutils.md#getplanetnamehash) -- [getPlanetTagline](backend_procedural_procgenutils.procgenutils.md#getplanettagline) -- [getPlanetTitle](backend_procedural_procgenutils.procgenutils.md#getplanettitle) -- [getPlayerColor](backend_procedural_procgenutils.procgenutils.md#getplayercolor) -- [getPlayerColorVec](backend_procedural_procgenutils.procgenutils.md#getplayercolorvec) -- [getRuinsInfo](backend_procedural_procgenutils.procgenutils.md#getruinsinfo) -- [hashToHue](backend_procedural_procgenutils.procgenutils.md#hashtohue) -- [hashToInt](backend_procedural_procgenutils.procgenutils.md#hashtoint) -- [hslStr](backend_procedural_procgenutils.procgenutils.md#hslstr) -- [hslToRgb](backend_procedural_procgenutils.procgenutils.md#hsltorgb) -- [planetPerlin](backend_procedural_procgenutils.procgenutils.md#planetperlin) -- [planetRandom](backend_procedural_procgenutils.procgenutils.md#planetrandom) -- [planetRandomInt](backend_procedural_procgenutils.procgenutils.md#planetrandomint) -- [rgbStr](backend_procedural_procgenutils.procgenutils.md#rgbstr) - -## Constructors - -### constructor - -\+ **new ProcgenUtils**(): [_ProcgenUtils_](backend_procedural_procgenutils.procgenutils.md) - -**Returns:** [_ProcgenUtils_](backend_procedural_procgenutils.procgenutils.md) - -## Properties - -### baseByBiome - -▪ `Static` `Private` **baseByBiome**: _Record_ - ---- - -### blurbs2ById - -▪ `Static` `Private` **blurbs2ById**: _Map_ - ---- - -### blurbsById - -▪ `Static` `Private` **blurbsById**: _Map_ - ---- - -### cosmeticByLocId - -▪ `Static` `Private` **cosmeticByLocId**: _Map_ - ---- - -### grayColors - -▪ `Static` **grayColors**: [_PlanetCosmeticInfo_](../interfaces/backend_utils_utilstypes.planetcosmeticinfo.md) - ---- - -### huesByHash - -▪ `Static` `Private` **huesByHash**: _Map_ - ---- - -### namesById - -▪ `Static` `Private` **namesById**: _Map_ - ---- - -### oceanByBiome - -▪ `Static` `Private` **oceanByBiome**: _Record_ - ---- - -### rgbsByHash - -▪ `Static` `Private` **rgbsByHash**: _Map_ - ---- - -### strByBiome - -▪ `Static` `Private` **strByBiome**: _Map_ - ---- - -### taglinesById - -▪ `Static` `Private` **taglinesById**: _Map_ - -## Methods - -### artifactRandom - -▸ `Static` **artifactRandom**(`loc`: ArtifactId): _function_ - -#### Parameters - -| Name | Type | -| :---- | :--------- | -| `loc` | ArtifactId | - -**Returns:** () => _number_ - ---- - -### artifactRandomInt - -▸ `Static` **artifactRandomInt**(`loc`: ArtifactId): _function_ - -#### Parameters - -| Name | Type | -| :---- | :--------- | -| `loc` | ArtifactId | - -**Returns:** () => _number_ - ---- - -### ellipsStrEnd - -▸ `Static` **ellipsStrEnd**(`str`: _string_, `maxLen`: _number_): _string_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `str` | _string_ | -| `maxLen` | _number_ | - -**Returns:** _string_ - ---- - -### ellipsisStr - -▸ `Static` **ellipsisStr**(`str`: _string_, `maxLen`: _number_): _string_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `str` | _string_ | -| `maxLen` | _number_ | - -**Returns:** _string_ - ---- - -### getBiomeRgbStr - -▸ `Static` **getBiomeRgbStr**(`biome`: Biome): _string_ - -#### Parameters - -| Name | Type | -| :------ | :---- | -| `biome` | Biome | - -**Returns:** _string_ - ---- - -### getHatSizeName - -▸ `Static` **getHatSizeName**(`planet`: Planet): _string_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _string_ - ---- - -### getOwnerColor - -▸ `Static` **getOwnerColor**(`planet`: Planet): _string_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _string_ - ---- - -### getOwnerColorVec - -▸ `Static` **getOwnerColorVec**(`planet`: Planet): [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) - ---- - -### getPlanetBlurb - -▸ `Static` **getPlanetBlurb**(`planet`: _undefined_ \| Planet): _string_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _string_ - ---- - -### getPlanetBlurb2 - -▸ `Static` **getPlanetBlurb2**(`planet`: _undefined_ \| Planet): _string_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _string_ - ---- - -### getPlanetClass - -▸ `Static` **getPlanetClass**(`planet`: Planet): UpgradeBranchName - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** UpgradeBranchName - ---- - -### getPlanetCosmetic - -▸ `Static` **getPlanetCosmetic**(`planet`: _undefined_ \| Planet): [_PlanetCosmeticInfo_](../interfaces/backend_utils_utilstypes.planetcosmeticinfo.md) - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** [_PlanetCosmeticInfo_](../interfaces/backend_utils_utilstypes.planetcosmeticinfo.md) - ---- - -### getPlanetName - -▸ `Static` **getPlanetName**(`planet`: _undefined_ \| Planet): _string_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _string_ - ---- - -### getPlanetNameHash - -▸ `Static` **getPlanetNameHash**(`locId`: LocationId): _string_ - -#### Parameters - -| Name | Type | -| :------ | :--------- | -| `locId` | LocationId | - -**Returns:** _string_ - ---- - -### getPlanetTagline - -▸ `Static` **getPlanetTagline**(`planet`: _undefined_ \| Planet): _string_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _string_ - ---- - -### getPlanetTitle - -▸ `Static` **getPlanetTitle**(`planet`: _undefined_ \| Planet): _string_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _string_ - ---- - -### getPlayerColor - -▸ `Static` **getPlayerColor**(`player`: EthAddress): _string_ - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `player` | EthAddress | - -**Returns:** _string_ - ---- - -### getPlayerColorVec - -▸ `Static` **getPlayerColorVec**(`player`: EthAddress): [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `player` | EthAddress | - -**Returns:** [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) - ---- - -### getRuinsInfo - -▸ `Static` **getRuinsInfo**(`loc`: LocationId): _Record_ - -#### Parameters - -| Name | Type | -| :---- | :--------- | -| `loc` | LocationId | - -**Returns:** _Record_ - ---- - -### hashToHue - -▸ `Static` **hashToHue**(`hash`: _string_): _number_ - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `hash` | _string_ | - -**Returns:** _number_ - ---- - -### hashToInt - -▸ `Static` **hashToInt**(`hash`: _string_): _number_ - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `hash` | _string_ | - -**Returns:** _number_ - ---- - -### hslStr - -▸ `Static` **hslStr**(`h`: _number_, `s`: _number_, `l`: _number_): _string_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `h` | _number_ | -| `s` | _number_ | -| `l` | _number_ | - -**Returns:** _string_ - ---- - -### hslToRgb - -▸ `Static` **hslToRgb**(`__namedParameters`: [_HSLVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#hslvec)): [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - -#### Parameters - -| Name | Type | -| :------------------ | :--------------------------------------------------------------------------- | -| `__namedParameters` | [_HSLVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#hslvec) | - -**Returns:** [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### planetPerlin - -▸ `Static` **planetPerlin**(`loc`: LocationId): _function_ - -#### Parameters - -| Name | Type | -| :---- | :--------- | -| `loc` | LocationId | - -**Returns:** (`coords`: [_PixelCoords_](../modules/backend_procedural_procgenutils.md#pixelcoords)) => _number_ - ---- - -### planetRandom - -▸ `Static` **planetRandom**(`loc`: LocationId): _function_ - -#### Parameters - -| Name | Type | -| :---- | :--------- | -| `loc` | LocationId | - -**Returns:** () => _number_ - ---- - -### planetRandomInt - -▸ `Static` **planetRandomInt**(`loc`: LocationId): _function_ - -#### Parameters - -| Name | Type | -| :---- | :--------- | -| `loc` | LocationId | - -**Returns:** () => _number_ - ---- - -### rgbStr - -▸ `Static` **rgbStr**(`rgb`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec)): _string_ - -#### Parameters - -| Name | Type | -| :---- | :--------------------------------------------------------------------------- | -| `rgb` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - -**Returns:** _string_ diff --git a/docs/classes/backend_storage_persistentchunkstore.default.md b/docs/classes/backend_storage_persistentchunkstore.default.md deleted file mode 100644 index 8d794882..00000000 --- a/docs/classes/backend_storage_persistentchunkstore.default.md +++ /dev/null @@ -1,495 +0,0 @@ -# Class: default - -[Backend/Storage/PersistentChunkStore](../modules/backend_storage_persistentchunkstore.md).default - -## Implements - -- [_ChunkStore_](../interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md) - -## Table of contents - -### Constructors - -- [constructor](backend_storage_persistentchunkstore.default.md#constructor) - -### Properties - -- [account](backend_storage_persistentchunkstore.default.md#account) -- [chunkMap](backend_storage_persistentchunkstore.default.md#chunkmap) -- [confirmedTxHashes](backend_storage_persistentchunkstore.default.md#confirmedtxhashes) -- [db](backend_storage_persistentchunkstore.default.md#db) -- [diagnosticUpdater](backend_storage_persistentchunkstore.default.md#diagnosticupdater) -- [nUpdatesLastTwoMins](backend_storage_persistentchunkstore.default.md#nupdateslasttwomins) -- [queuedChunkWrites](backend_storage_persistentchunkstore.default.md#queuedchunkwrites) -- [throttledSaveChunkCacheToDisk](backend_storage_persistentchunkstore.default.md#throttledsavechunkcachetodisk) - -### Methods - -- [addChunk](backend_storage_persistentchunkstore.default.md#addchunk) -- [addHomeLocation](backend_storage_persistentchunkstore.default.md#addhomelocation) -- [allChunks](backend_storage_persistentchunkstore.default.md#allchunks) -- [bulkSetKeyInCollection](backend_storage_persistentchunkstore.default.md#bulksetkeyincollection) -- [confirmHomeLocation](backend_storage_persistentchunkstore.default.md#confirmhomelocation) -- [destroy](backend_storage_persistentchunkstore.default.md#destroy) -- [getChunkByFootprint](backend_storage_persistentchunkstore.default.md#getchunkbyfootprint) -- [getChunkById](backend_storage_persistentchunkstore.default.md#getchunkbyid) -- [getHomeLocations](backend_storage_persistentchunkstore.default.md#gethomelocations) -- [getKey](backend_storage_persistentchunkstore.default.md#getkey) -- [getMinedSubChunks](backend_storage_persistentchunkstore.default.md#getminedsubchunks) -- [getSavedRevealedCoords](backend_storage_persistentchunkstore.default.md#getsavedrevealedcoords) -- [getSavedTouchedPlanetIds](backend_storage_persistentchunkstore.default.md#getsavedtouchedplanetids) -- [getUnconfirmedSubmittedEthTxs](backend_storage_persistentchunkstore.default.md#getunconfirmedsubmittedethtxs) -- [hasMinedChunk](backend_storage_persistentchunkstore.default.md#hasminedchunk) -- [loadChunks](backend_storage_persistentchunkstore.default.md#loadchunks) -- [loadPlugins](backend_storage_persistentchunkstore.default.md#loadplugins) -- [onEthTxComplete](backend_storage_persistentchunkstore.default.md#onethtxcomplete) -- [onEthTxSubmit](backend_storage_persistentchunkstore.default.md#onethtxsubmit) -- [persistQueuedChunks](backend_storage_persistentchunkstore.default.md#persistqueuedchunks) -- [recomputeSaveThrottleAfterUpdate](backend_storage_persistentchunkstore.default.md#recomputesavethrottleafterupdate) -- [removeKey](backend_storage_persistentchunkstore.default.md#removekey) -- [savePlugins](backend_storage_persistentchunkstore.default.md#saveplugins) -- [saveRevealedCoords](backend_storage_persistentchunkstore.default.md#saverevealedcoords) -- [saveTouchedPlanetIds](backend_storage_persistentchunkstore.default.md#savetouchedplanetids) -- [setDiagnosticUpdater](backend_storage_persistentchunkstore.default.md#setdiagnosticupdater) -- [setKey](backend_storage_persistentchunkstore.default.md#setkey) -- [create](backend_storage_persistentchunkstore.default.md#create) - -## Constructors - -### constructor - -\+ **new default**(`db`: _IDBPDatabase_, `account`: EthAddress): [_default_](backend_storage_persistentchunkstore.default.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------- | -| `db` | _IDBPDatabase_ | -| `account` | EthAddress | - -**Returns:** [_default_](backend_storage_persistentchunkstore.default.md) - -## Properties - -### account - -• `Private` **account**: EthAddress - ---- - -### chunkMap - -• `Private` **chunkMap**: _Map_<[_ChunkId_](../modules/_types_darkforest_api_chunkstoretypes.md#chunkid), [_Chunk_](_types_global_globaltypes.chunk.md)\> - ---- - -### confirmedTxHashes - -• `Private` **confirmedTxHashes**: _Set_ - ---- - -### db - -• `Private` **db**: _IDBPDatabase_ - ---- - -### diagnosticUpdater - -• `Private` `Optional` **diagnosticUpdater**: [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md) - ---- - -### nUpdatesLastTwoMins - -• `Private` **nUpdatesLastTwoMins**: _number_= 0 - ---- - -### queuedChunkWrites - -• `Private` **queuedChunkWrites**: DBTx[] - ---- - -### throttledSaveChunkCacheToDisk - -• `Private` **throttledSaveChunkCacheToDisk**: _DebouncedFunc_<() => _Promise_\> - -## Methods - -### addChunk - -▸ **addChunk**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md), `persistChunk?`: _boolean_): _void_ - -When a chunk is mined, or a chunk is imported via map import, or a chunk is loaded from -persistent storage for the first time, we need to add this chunk to the game. This function -allows you to add a new chunk to the game, and optionally persist that chunk. The reason you -might not want to persist the chunk is if you are sure that you got it from persistent storage. -i.e. it already exists in persistent storage. - -#### Parameters - -| Name | Type | Default value | -| :------------- | :-------------------------------------------- | :------------ | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - | -| `persistChunk` | _boolean_ | true | - -**Returns:** _void_ - ---- - -### addHomeLocation - -▸ **addHomeLocation**(`location`: WorldLocation): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :------------ | -| `location` | WorldLocation | - -**Returns:** _Promise_ - ---- - -### allChunks - -▸ **allChunks**(): _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\> - -**Returns:** _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\> - ---- - -### bulkSetKeyInCollection - -▸ `Private` **bulkSetKeyInCollection**(`updateChunkTxs`: DBTx[], `collection`: ObjectStore): _Promise_ - -#### Parameters - -| Name | Type | -| :--------------- | :---------- | -| `updateChunkTxs` | DBTx[] | -| `collection` | ObjectStore | - -**Returns:** _Promise_ - ---- - -### confirmHomeLocation - -▸ **confirmHomeLocation**(`location`: WorldLocation): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :------------ | -| `location` | WorldLocation | - -**Returns:** _Promise_ - ---- - -### destroy - -▸ **destroy**(): _void_ - -**Returns:** _void_ - ---- - -### getChunkByFootprint - -▸ **getChunkByFootprint**(`chunkLoc`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): _undefined_ \| [_Chunk_](_types_global_globaltypes.chunk.md) - -Returns the explored chunk data for the given rectangle if that chunk has been mined. If this -chunk is entirely contained within another bigger chunk that has been mined, return that chunk. -`chunkLoc` is an aligned square, as defined in ChunkUtils.ts in the `getSiblingLocations` -function. - -#### Parameters - -| Name | Type | -| :--------- | :------------------------------------------------------------------ | -| `chunkLoc` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** _undefined_ \| [_Chunk_](_types_global_globaltypes.chunk.md) - ---- - -### getChunkById - -▸ `Private` **getChunkById**(`chunkId`: [_ChunkId_](../modules/_types_darkforest_api_chunkstoretypes.md#chunkid)): _undefined_ \| [_Chunk_](_types_global_globaltypes.chunk.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------- | -| `chunkId` | [_ChunkId_](../modules/_types_darkforest_api_chunkstoretypes.md#chunkid) | - -**Returns:** _undefined_ \| [_Chunk_](_types_global_globaltypes.chunk.md) - ---- - -### getHomeLocations - -▸ **getHomeLocations**(): _Promise_ - -we keep a list rather than a single location, since client/contract can -often go out of sync on initialization - if client thinks that init -failed but is wrong, it will prompt user to initialize with new home coords, -which bricks the user's account. - -**Returns:** _Promise_ - ---- - -### getKey - -▸ `Private` **getKey**(`key`: _string_, `objStore?`: ObjectStore): _Promise_ - -Important! This sets the key in indexed db per account and per contract. This means the same -client can connect to multiple different dark forest contracts, with multiple different -accounts, and the persistent storage will not overwrite data that is not relevant for the -current configuration of the client. - -#### Parameters - -| Name | Type | -| :--------- | :---------- | -| `key` | _string_ | -| `objStore` | ObjectStore | - -**Returns:** _Promise_ - ---- - -### getMinedSubChunks - -▸ `Private` **getMinedSubChunks**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): [_Chunk_](_types_global_globaltypes.chunk.md)[] - -Returns all the mined chunks with smaller sidelength strictly contained in the chunk. - -TODO: move this into ChunkUtils, and also make use of it, the way that it is currently used, in -the function named `addToChunkMap`. - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** [_Chunk_](_types_global_globaltypes.chunk.md)[] - ---- - -### getSavedRevealedCoords - -▸ **getSavedRevealedCoords**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### getSavedTouchedPlanetIds - -▸ **getSavedTouchedPlanetIds**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### getUnconfirmedSubmittedEthTxs - -▸ **getUnconfirmedSubmittedEthTxs**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### hasMinedChunk - -▸ **hasMinedChunk**(`chunkLoc`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): _boolean_ - -#### Parameters - -| Name | Type | -| :--------- | :------------------------------------------------------------------ | -| `chunkLoc` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** _boolean_ - -Implementation of: ChunkStore.hasMinedChunk - ---- - -### loadChunks - -▸ `Private` **loadChunks**(): _Promise_ - -This function loads all chunks persisted in the user's storage into the game. - -**Returns:** _Promise_ - ---- - -### loadPlugins - -▸ **loadPlugins**(): _Promise_<[_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[]\> - -**Returns:** _Promise_<[_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[]\> - ---- - -### onEthTxComplete - -▸ **onEthTxComplete**(`txHash`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `txHash` | _string_ | - -**Returns:** _Promise_ - ---- - -### onEthTxSubmit - -▸ **onEthTxSubmit**(`tx`: SubmittedTx): _Promise_ - -#### Parameters - -| Name | Type | -| :--- | :---------- | -| `tx` | SubmittedTx | - -**Returns:** _Promise_ - ---- - -### persistQueuedChunks - -▸ `Private` **persistQueuedChunks**(): _Promise_ - -Rather than saving a chunk immediately after it's mined, we queue up new chunks, and -periodically save them. This function gets all of the queued new chunks, and persists them to -indexed db. - -**Returns:** _Promise_ - ---- - -### recomputeSaveThrottleAfterUpdate - -▸ `Private` **recomputeSaveThrottleAfterUpdate**(): _void_ - -**Returns:** _void_ - ---- - -### removeKey - -▸ `Private` **removeKey**(`key`: _string_, `objStore?`: ObjectStore): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :---------- | -| `key` | _string_ | -| `objStore` | ObjectStore | - -**Returns:** _Promise_ - ---- - -### savePlugins - -▸ **savePlugins**(`plugins`: [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[]): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------------- | -| `plugins` | [_SerializedPlugin_](../interfaces/backend_plugins_serializedplugin.serializedplugin.md)[] | - -**Returns:** _Promise_ - ---- - -### saveRevealedCoords - -▸ **saveRevealedCoords**(`revealedCoordTups`: RevealedCoords[]): _Promise_ - -#### Parameters - -| Name | Type | -| :------------------ | :--------------- | -| `revealedCoordTups` | RevealedCoords[] | - -**Returns:** _Promise_ - ---- - -### saveTouchedPlanetIds - -▸ **saveTouchedPlanetIds**(`ids`: LocationId[]): _Promise_ - -#### Parameters - -| Name | Type | -| :---- | :----------- | -| `ids` | LocationId[] | - -**Returns:** _Promise_ - ---- - -### setDiagnosticUpdater - -▸ **setDiagnosticUpdater**(`diagnosticUpdater?`: [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md)): _void_ - -#### Parameters - -| Name | Type | -| :------------------- | :--------------------------------------------------------------------------------------------- | -| `diagnosticUpdater?` | [_DiagnosticUpdater_](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md) | - -**Returns:** _void_ - ---- - -### setKey - -▸ `Private` **setKey**(`key`: _string_, `value`: _string_, `objStore?`: ObjectStore): _Promise_ - -Important! This sets the key in indexed db per account and per contract. This means the same -client can connect to multiple different dark forest contracts, with multiple different -accounts, and the persistent storage will not overwrite data that is not relevant for the -current configuration of the client. - -#### Parameters - -| Name | Type | -| :--------- | :---------- | -| `key` | _string_ | -| `value` | _string_ | -| `objStore` | ObjectStore | - -**Returns:** _Promise_ - ---- - -### create - -▸ `Static` **create**(`account`: EthAddress): _Promise_<[_default_](backend_storage_persistentchunkstore.default.md)\> - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `account` | EthAddress | - -**Returns:** _Promise_<[_default_](backend_storage_persistentchunkstore.default.md)\> diff --git a/docs/classes/backend_storage_readerdatastore.default.md b/docs/classes/backend_storage_readerdatastore.default.md deleted file mode 100644 index 9cfe7a61..00000000 --- a/docs/classes/backend_storage_readerdatastore.default.md +++ /dev/null @@ -1,197 +0,0 @@ -# Class: default - -[Backend/Storage/ReaderDataStore](../modules/backend_storage_readerdatastore.md).default - -A data store that allows you to retrieve data from the contract, -and combine it with data that is stored in this browser about a -particular user. - -## Table of contents - -### Constructors - -- [constructor](backend_storage_readerdatastore.default.md#constructor) - -### Properties - -- [addressTwitterMap](backend_storage_readerdatastore.default.md#addresstwittermap) -- [contractConstants](backend_storage_readerdatastore.default.md#contractconstants) -- [contractsAPI](backend_storage_readerdatastore.default.md#contractsapi) -- [persistentChunkStore](backend_storage_readerdatastore.default.md#persistentchunkstore) -- [viewer](backend_storage_readerdatastore.default.md#viewer) - -### Methods - -- [destroy](backend_storage_readerdatastore.default.md#destroy) -- [getBiome](backend_storage_readerdatastore.default.md#getbiome) -- [getTwitter](backend_storage_readerdatastore.default.md#gettwitter) -- [getViewer](backend_storage_readerdatastore.default.md#getviewer) -- [loadArtifactFromContract](backend_storage_readerdatastore.default.md#loadartifactfromcontract) -- [loadPlanetFromContract](backend_storage_readerdatastore.default.md#loadplanetfromcontract) -- [setPlanetLocationIfKnown](backend_storage_readerdatastore.default.md#setplanetlocationifknown) -- [spaceTypeFromPerlin](backend_storage_readerdatastore.default.md#spacetypefromperlin) -- [create](backend_storage_readerdatastore.default.md#create) - -## Constructors - -### constructor - -\+ `Private` **new default**(`viewer`: _undefined_ \| EthAddress, `addressTwitterMap`: [_AddressTwitterMap_](../modules/_types_darkforest_api_utilityserverapitypes.md#addresstwittermap), `contractConstants`: [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md), `contractsAPI`: [_default_](backend_gamelogic_contractsapi.default.md), `persistentChunkStore`: _undefined_ \| [_default_](backend_storage_persistentchunkstore.default.md)): [_default_](backend_storage_readerdatastore.default.md) - -#### Parameters - -| Name | Type | -| :--------------------- | :------------------------------------------------------------------------------------------------- | -| `viewer` | _undefined_ \| EthAddress | -| `addressTwitterMap` | [_AddressTwitterMap_](../modules/_types_darkforest_api_utilityserverapitypes.md#addresstwittermap) | -| `contractConstants` | [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) | -| `contractsAPI` | [_default_](backend_gamelogic_contractsapi.default.md) | -| `persistentChunkStore` | _undefined_ \| [_default_](backend_storage_persistentchunkstore.default.md) | - -**Returns:** [_default_](backend_storage_readerdatastore.default.md) - -## Properties - -### addressTwitterMap - -• `Private` `Readonly` **addressTwitterMap**: [_AddressTwitterMap_](../modules/_types_darkforest_api_utilityserverapitypes.md#addresstwittermap) - ---- - -### contractConstants - -• `Private` `Readonly` **contractConstants**: [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) - ---- - -### contractsAPI - -• `Private` `Readonly` **contractsAPI**: [_default_](backend_gamelogic_contractsapi.default.md) - ---- - -### persistentChunkStore - -• `Private` `Readonly` **persistentChunkStore**: _undefined_ \| [_default_](backend_storage_persistentchunkstore.default.md) - ---- - -### viewer - -• `Private` `Readonly` **viewer**: _undefined_ \| EthAddress - -## Methods - -### destroy - -▸ **destroy**(): _void_ - -**Returns:** _void_ - ---- - -### getBiome - -▸ `Private` **getBiome**(`loc`: WorldLocation): Biome - -#### Parameters - -| Name | Type | -| :---- | :------------ | -| `loc` | WorldLocation | - -**Returns:** Biome - ---- - -### getTwitter - -▸ **getTwitter**(`owner`: _undefined_ \| EthAddress): _undefined_ \| _string_ - -#### Parameters - -| Name | Type | -| :------ | :------------------------ | -| `owner` | _undefined_ \| EthAddress | - -**Returns:** _undefined_ \| _string_ - ---- - -### getViewer - -▸ **getViewer**(): _undefined_ \| EthAddress - -**Returns:** _undefined_ \| EthAddress - ---- - -### loadArtifactFromContract - -▸ **loadArtifactFromContract**(`artifactId`: ArtifactId): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### loadPlanetFromContract - -▸ **loadPlanetFromContract**(`planetId`: LocationId): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :--------- | -| `planetId` | LocationId | - -**Returns:** _Promise_ - ---- - -### setPlanetLocationIfKnown - -▸ `Private` **setPlanetLocationIfKnown**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### spaceTypeFromPerlin - -▸ `Private` **spaceTypeFromPerlin**(`perlin`: _number_): SpaceType - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `perlin` | _number_ | - -**Returns:** SpaceType - ---- - -### create - -▸ `Static` **create**(`terminal`: _MutableRefObject_, `ethConnection`: [_default_](backend_network_ethconnection.default.md), `viewer`: _undefined_ \| EthAddress): _Promise_<[_default_](backend_storage_readerdatastore.default.md)\> - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------------------------------------------------------------ | -| `terminal` | _MutableRefObject_ | -| `ethConnection` | [_default_](backend_network_ethconnection.default.md) | -| `viewer` | _undefined_ \| EthAddress | - -**Returns:** _Promise_<[_default_](backend_storage_readerdatastore.default.md)\> diff --git a/docs/classes/backend_utils_blockwaiter.blockwaiter.md b/docs/classes/backend_utils_blockwaiter.blockwaiter.md deleted file mode 100644 index 708015f3..00000000 --- a/docs/classes/backend_utils_blockwaiter.blockwaiter.md +++ /dev/null @@ -1,61 +0,0 @@ -# Class: BlockWaiter - -[Backend/Utils/BlockWaiter](../modules/backend_utils_blockwaiter.md).BlockWaiter - -You can schedule a function to be executed {@code waitThisLong} in the future. If you -schedule again, the previously scheduled function will not be executed. - -## Table of contents - -### Constructors - -- [constructor](backend_utils_blockwaiter.blockwaiter.md#constructor) - -### Properties - -- [timeout](backend_utils_blockwaiter.blockwaiter.md#timeout) -- [waitThisLong](backend_utils_blockwaiter.blockwaiter.md#waitthislong) - -### Methods - -- [schedule](backend_utils_blockwaiter.blockwaiter.md#schedule) - -## Constructors - -### constructor - -\+ **new BlockWaiter**(`waitThisLong`: _number_): [_BlockWaiter_](backend_utils_blockwaiter.blockwaiter.md) - -#### Parameters - -| Name | Type | -| :------------- | :------- | -| `waitThisLong` | _number_ | - -**Returns:** [_BlockWaiter_](backend_utils_blockwaiter.blockwaiter.md) - -## Properties - -### timeout - -• `Private` `Optional` **timeout**: _Timeout_ - ---- - -### waitThisLong - -• `Private` **waitThisLong**: _number_ - -## Methods - -### schedule - -▸ **schedule**(`func`: () => _void_): _void_ - -#### Parameters - -| Name | Type | -| :----- | :----------- | -| `func` | () => _void_ | - -**Returns:** _void_ diff --git a/docs/classes/backend_utils_snarkargshelper.default.md b/docs/classes/backend_utils_snarkargshelper.default.md deleted file mode 100644 index e6879e9e..00000000 --- a/docs/classes/backend_utils_snarkargshelper.default.md +++ /dev/null @@ -1,278 +0,0 @@ -# Class: default - -[Backend/Utils/SnarkArgsHelper](../modules/backend_utils_snarkargshelper.md).default - -## Table of contents - -### Constructors - -- [constructor](backend_utils_snarkargshelper.default.md#constructor) - -### Properties - -- [biomebasePerlinOpts](backend_utils_snarkargshelper.default.md#biomebaseperlinopts) -- [hashConfig](backend_utils_snarkargshelper.default.md#hashconfig) -- [moveSnarkCache](backend_utils_snarkargshelper.default.md#movesnarkcache) -- [planetHashMimc](backend_utils_snarkargshelper.default.md#planethashmimc) -- [snarkProverQueue](backend_utils_snarkargshelper.default.md#snarkproverqueue) -- [spaceTypePerlinOpts](backend_utils_snarkargshelper.default.md#spacetypeperlinopts) -- [terminal](backend_utils_snarkargshelper.default.md#terminal) -- [useMockHash](backend_utils_snarkargshelper.default.md#usemockhash) -- [DEFAULT_SNARK_CACHE_SIZE](backend_utils_snarkargshelper.default.md#default_snark_cache_size) - -### Methods - -- [fakeBiomebaseProof](backend_utils_snarkargshelper.default.md#fakebiomebaseproof) -- [fakeInitProof](backend_utils_snarkargshelper.default.md#fakeinitproof) -- [fakeMoveProof](backend_utils_snarkargshelper.default.md#fakemoveproof) -- [fakeRevealProof](backend_utils_snarkargshelper.default.md#fakerevealproof) -- [getFindArtifactArgs](backend_utils_snarkargshelper.default.md#getfindartifactargs) -- [getInitArgs](backend_utils_snarkargshelper.default.md#getinitargs) -- [getMoveArgs](backend_utils_snarkargshelper.default.md#getmoveargs) -- [getRevealArgs](backend_utils_snarkargshelper.default.md#getrevealargs) -- [setSnarkCacheSize](backend_utils_snarkargshelper.default.md#setsnarkcachesize) -- [create](backend_utils_snarkargshelper.default.md#create) - -## Constructors - -### constructor - -\+ `Private` **new default**(`hashConfig`: [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig), `terminal`: _MutableRefObject_, `useMockHash`: _boolean_): [_default_](backend_utils_snarkargshelper.default.md) - -#### Parameters - -| Name | Type | -| :------------ | :------------------------------------------------------------------------------------------------------------ | -| `hashConfig` | [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) | -| `terminal` | _MutableRefObject_ | -| `useMockHash` | _boolean_ | - -**Returns:** [_default_](backend_utils_snarkargshelper.default.md) - -## Properties - -### biomebasePerlinOpts - -• `Private` `Readonly` **biomebasePerlinOpts**: PerlinConfig - ---- - -### hashConfig - -• `Private` `Readonly` **hashConfig**: [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) - ---- - -### moveSnarkCache - -• `Private` **moveSnarkCache**: _default_ - ---- - -### planetHashMimc - -• `Private` `Readonly` **planetHashMimc**: (...`inputs`: _number_[]) => BigInteger - -#### Type declaration - -▸ (...`inputs`: _number_[]): BigInteger - -#### Parameters - -| Name | Type | -| :---------- | :--------- | -| `...inputs` | _number_[] | - -**Returns:** BigInteger - ---- - -### snarkProverQueue - -• `Private` `Readonly` **snarkProverQueue**: _SnarkProverQueue_ - ---- - -### spaceTypePerlinOpts - -• `Private` `Readonly` **spaceTypePerlinOpts**: PerlinConfig - ---- - -### terminal - -• `Private` `Readonly` **terminal**: _MutableRefObject_ - ---- - -### useMockHash - -• `Private` `Readonly` **useMockHash**: _boolean_ - ---- - -### DEFAULT_SNARK_CACHE_SIZE - -▪ `Static` `Private` `Readonly` **DEFAULT_SNARK_CACHE_SIZE**: `20`= 20 - -How many snark results to keep in an LRU cache. - -## Methods - -### fakeBiomebaseProof - -▸ `Private` **fakeBiomebaseProof**(`x`: _number_, `y`: _number_): SnarkJSProofAndSignals - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | - -**Returns:** SnarkJSProofAndSignals - ---- - -### fakeInitProof - -▸ `Private` **fakeInitProof**(`x`: _number_, `y`: _number_, `r`: _number_): SnarkJSProofAndSignals - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | -| `r` | _number_ | - -**Returns:** SnarkJSProofAndSignals - ---- - -### fakeMoveProof - -▸ `Private` **fakeMoveProof**(`x1`: _number_, `y1`: _number_, `x2`: _number_, `y2`: _number_, `r`: _number_, `distMax`: _number_): SnarkJSProofAndSignals - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `x1` | _number_ | -| `y1` | _number_ | -| `x2` | _number_ | -| `y2` | _number_ | -| `r` | _number_ | -| `distMax` | _number_ | - -**Returns:** SnarkJSProofAndSignals - ---- - -### fakeRevealProof - -▸ `Private` **fakeRevealProof**(`x`: _number_, `y`: _number_): SnarkJSProofAndSignals - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | - -**Returns:** SnarkJSProofAndSignals - ---- - -### getFindArtifactArgs - -▸ **getFindArtifactArgs**(`x`: _number_, `y`: _number_): _Promise_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | - -**Returns:** _Promise_ - ---- - -### getInitArgs - -▸ **getInitArgs**(`x`: _number_, `y`: _number_, `r`: _number_): _Promise_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | -| `r` | _number_ | - -**Returns:** _Promise_ - ---- - -### getMoveArgs - -▸ **getMoveArgs**(`x1`: _number_, `y1`: _number_, `x2`: _number_, `y2`: _number_, `r`: _number_, `distMax`: _number_): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `x1` | _number_ | -| `y1` | _number_ | -| `x2` | _number_ | -| `y2` | _number_ | -| `r` | _number_ | -| `distMax` | _number_ | - -**Returns:** _Promise_ - ---- - -### getRevealArgs - -▸ **getRevealArgs**(`x`: _number_, `y`: _number_): _Promise_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | - -**Returns:** _Promise_ - ---- - -### setSnarkCacheSize - -▸ **setSnarkCacheSize**(`size`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `size` | _number_ | - -**Returns:** _void_ - ---- - -### create - -▸ `Static` **create**(`hashConfig`: [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig), `terminal`: _MutableRefObject_, `fakeHash?`: _boolean_): [_default_](backend_utils_snarkargshelper.default.md) - -#### Parameters - -| Name | Type | Default value | -| :----------- | :------------------------------------------------------------------------------------------------------------ | :------------ | -| `hashConfig` | [_HashConfig_](../modules/_types_global_globaltypes.md#hashconfig) | - | -| `terminal` | _MutableRefObject_ | - | -| `fakeHash` | _boolean_ | false | - -**Returns:** [_default_](backend_utils_snarkargshelper.default.md) diff --git a/docs/classes/backend_utils_wrapper.wrapper.md b/docs/classes/backend_utils_wrapper.wrapper.md deleted file mode 100644 index 28ab4983..00000000 --- a/docs/classes/backend_utils_wrapper.wrapper.md +++ /dev/null @@ -1,49 +0,0 @@ -# Class: Wrapper - -[Backend/Utils/Wrapper](../modules/backend_utils_wrapper.md).Wrapper - -React uses referential identity to detect changes, and rerender. Rather -than copying an object into a new object, to force a rerender, we can -just wrap it in a new {@code Wrapper}, which will force a rerender. - -## Type parameters - -| Name | -| :--- | -| `T` | - -## Table of contents - -### Constructors - -- [constructor](backend_utils_wrapper.wrapper.md#constructor) - -### Properties - -- [value](backend_utils_wrapper.wrapper.md#value) - -## Constructors - -### constructor - -\+ **new Wrapper**(`value`: T): [_Wrapper_](backend_utils_wrapper.wrapper.md) - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | -| :------ | :--- | -| `value` | T | - -**Returns:** [_Wrapper_](backend_utils_wrapper.wrapper.md) - -## Properties - -### value - -• `Readonly` **value**: T diff --git a/docs/classes/frontend_game_notificationmanager.default.md b/docs/classes/frontend_game_notificationmanager.default.md deleted file mode 100644 index f1000e06..00000000 --- a/docs/classes/frontend_game_notificationmanager.default.md +++ /dev/null @@ -1,369 +0,0 @@ -# Class: default - -[Frontend/Game/NotificationManager](../modules/frontend_game_notificationmanager.md).default - -## Hierarchy - -- _EventEmitter_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_game_notificationmanager.default.md#constructor) - -### Properties - -- [instance](frontend_game_notificationmanager.default.md#instance) - -### Methods - -- [balanceEmpty](frontend_game_notificationmanager.default.md#balanceempty) -- [foundArtifact](frontend_game_notificationmanager.default.md#foundartifact) -- [foundBiome](frontend_game_notificationmanager.default.md#foundbiome) -- [foundComet](frontend_game_notificationmanager.default.md#foundcomet) -- [foundDeadSpace](frontend_game_notificationmanager.default.md#founddeadspace) -- [foundDeepSpace](frontend_game_notificationmanager.default.md#founddeepspace) -- [foundPirates](frontend_game_notificationmanager.default.md#foundpirates) -- [foundSilver](frontend_game_notificationmanager.default.md#foundsilver) -- [foundSilverBank](frontend_game_notificationmanager.default.md#foundsilverbank) -- [foundSpace](frontend_game_notificationmanager.default.md#foundspace) -- [foundTradingPost](frontend_game_notificationmanager.default.md#foundtradingpost) -- [getIcon](frontend_game_notificationmanager.default.md#geticon) -- [notify](frontend_game_notificationmanager.default.md#notify) -- [notifyTx](frontend_game_notificationmanager.default.md#notifytx) -- [planetCanUpgrade](frontend_game_notificationmanager.default.md#planetcanupgrade) -- [receivedPlanet](frontend_game_notificationmanager.default.md#receivedplanet) -- [txConfirm](frontend_game_notificationmanager.default.md#txconfirm) -- [txInit](frontend_game_notificationmanager.default.md#txinit) -- [txRevert](frontend_game_notificationmanager.default.md#txrevert) -- [txSubmit](frontend_game_notificationmanager.default.md#txsubmit) -- [unsubmittedTxFail](frontend_game_notificationmanager.default.md#unsubmittedtxfail) -- [welcomePlayer](frontend_game_notificationmanager.default.md#welcomeplayer) -- [getInstance](frontend_game_notificationmanager.default.md#getinstance) - -## Constructors - -### constructor - -\+ `Private` **new default**(): [_default_](frontend_game_notificationmanager.default.md) - -**Returns:** [_default_](frontend_game_notificationmanager.default.md) - -Overrides: EventEmitter.constructor - -## Properties - -### instance - -▪ `Static` **instance**: [_default_](frontend_game_notificationmanager.default.md) - -## Methods - -### balanceEmpty - -▸ **balanceEmpty**(): _void_ - -**Returns:** _void_ - ---- - -### foundArtifact - -▸ **foundArtifact**(`planet`: LocatablePlanet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------- | -| `planet` | LocatablePlanet | - -**Returns:** _void_ - ---- - -### foundBiome - -▸ **foundBiome**(`planet`: LocatablePlanet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------- | -| `planet` | LocatablePlanet | - -**Returns:** _void_ - ---- - -### foundComet - -▸ **foundComet**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### foundDeadSpace - -▸ **foundDeadSpace**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### foundDeepSpace - -▸ **foundDeepSpace**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### foundPirates - -▸ **foundPirates**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### foundSilver - -▸ **foundSilver**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### foundSilverBank - -▸ **foundSilverBank**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### foundSpace - -▸ **foundSpace**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### foundTradingPost - -▸ **foundTradingPost**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### getIcon - -▸ `Private` **getIcon**(`type`: [_NotificationType_](../enums/frontend_game_notificationmanager.notificationtype.md)): _Element_ - -#### Parameters - -| Name | Type | -| :----- | :----------------------------------------------------------------------------------- | -| `type` | [_NotificationType_](../enums/frontend_game_notificationmanager.notificationtype.md) | - -**Returns:** _Element_ - ---- - -### notify - -▸ **notify**(`type`: [_NotificationType_](../enums/frontend_game_notificationmanager.notificationtype.md), `message`: ReactNode): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `type` | [_NotificationType_](../enums/frontend_game_notificationmanager.notificationtype.md) | -| `message` | ReactNode | - -**Returns:** _void_ - ---- - -### notifyTx - -▸ **notifyTx**(`txData`: TxIntent, `message`: ReactNode, `txStatus`: EthTxStatus): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :---------- | -| `txData` | TxIntent | -| `message` | ReactNode | -| `txStatus` | EthTxStatus | - -**Returns:** _void_ - ---- - -### planetCanUpgrade - -▸ **planetCanUpgrade**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### receivedPlanet - -▸ **receivedPlanet**(`planet`: Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _void_ - ---- - -### txConfirm - -▸ **txConfirm**(`tx`: SubmittedTx): _void_ - -#### Parameters - -| Name | Type | -| :--- | :---------- | -| `tx` | SubmittedTx | - -**Returns:** _void_ - ---- - -### txInit - -▸ **txInit**(`txIntent`: TxIntent): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** _void_ - ---- - -### txRevert - -▸ **txRevert**(`tx`: SubmittedTx): _void_ - -#### Parameters - -| Name | Type | -| :--- | :---------- | -| `tx` | SubmittedTx | - -**Returns:** _void_ - ---- - -### txSubmit - -▸ **txSubmit**(`tx`: SubmittedTx): _void_ - -#### Parameters - -| Name | Type | -| :--- | :---------- | -| `tx` | SubmittedTx | - -**Returns:** _void_ - ---- - -### unsubmittedTxFail - -▸ **unsubmittedTxFail**(`txIntent`: TxIntent, `_e`: Error): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | -| `_e` | Error | - -**Returns:** _void_ - ---- - -### welcomePlayer - -▸ **welcomePlayer**(): _void_ - -**Returns:** _void_ - ---- - -### getInstance - -▸ `Static` **getInstance**(): [_default_](frontend_game_notificationmanager.default.md) - -**Returns:** [_default_](frontend_game_notificationmanager.default.md) diff --git a/docs/classes/frontend_game_viewport.default.md b/docs/classes/frontend_game_viewport.default.md deleted file mode 100644 index d46f13d3..00000000 --- a/docs/classes/frontend_game_viewport.default.md +++ /dev/null @@ -1,773 +0,0 @@ -# Class: default - -[Frontend/Game/Viewport](../modules/frontend_game_viewport.md).default - -## Table of contents - -### Constructors - -- [constructor](frontend_game_viewport.default.md#constructor) - -### Properties - -- [animationManager](frontend_game_viewport.default.md#animationmanager) -- [canvas](frontend_game_viewport.default.md#canvas) -- [centerWorldCoords](frontend_game_viewport.default.md#centerworldcoords) -- [frameRequestId](frontend_game_viewport.default.md#framerequestid) -- [gameUIManager](frontend_game_viewport.default.md#gameuimanager) -- [heightInWorldUnits](frontend_game_viewport.default.md#heightinworldunits) -- [intervalId](frontend_game_viewport.default.md#intervalid) -- [isFirefox](frontend_game_viewport.default.md#isfirefox) -- [isPanning](frontend_game_viewport.default.md#ispanning) -- [isSending](frontend_game_viewport.default.md#issending) -- [momentum](frontend_game_viewport.default.md#momentum) -- [mouseLastCoords](frontend_game_viewport.default.md#mouselastcoords) -- [mouseSensitivity](frontend_game_viewport.default.md#mousesensitivity) -- [mousedownCoords](frontend_game_viewport.default.md#mousedowncoords) -- [scale](frontend_game_viewport.default.md#scale) -- [velocity](frontend_game_viewport.default.md#velocity) -- [viewportHeight](frontend_game_viewport.default.md#viewportheight) -- [viewportWidth](frontend_game_viewport.default.md#viewportwidth) -- [widthInWorldUnits](frontend_game_viewport.default.md#widthinworldunits) -- [instance](frontend_game_viewport.default.md#instance) - -### Accessors - -- [maxWorldWidth](frontend_game_viewport.default.md#maxworldwidth) -- [minWorldWidth](frontend_game_viewport.default.md#minworldwidth) - -### Methods - -- [canvasToWorldCoords](frontend_game_viewport.default.md#canvastoworldcoords) -- [canvasToWorldDist](frontend_game_viewport.default.md#canvastoworlddist) -- [canvasToWorldX](frontend_game_viewport.default.md#canvastoworldx) -- [canvasToWorldY](frontend_game_viewport.default.md#canvastoworldy) -- [centerChunk](frontend_game_viewport.default.md#centerchunk) -- [centerCoords](frontend_game_viewport.default.md#centercoords) -- [centerPlanet](frontend_game_viewport.default.md#centerplanet) -- [centerPlanetAnimated](frontend_game_viewport.default.md#centerplanetanimated) -- [getBottomBound](frontend_game_viewport.default.md#getbottombound) -- [getDetailLevel](frontend_game_viewport.default.md#getdetaillevel) -- [getLeftBound](frontend_game_viewport.default.md#getleftbound) -- [getRightBound](frontend_game_viewport.default.md#getrightbound) -- [getStorage](frontend_game_viewport.default.md#getstorage) -- [getStorageKey](frontend_game_viewport.default.md#getstoragekey) -- [getTopBound](frontend_game_viewport.default.md#gettopbound) -- [getViewportPosition](frontend_game_viewport.default.md#getviewportposition) -- [getViewportWorldHeight](frontend_game_viewport.default.md#getviewportworldheight) -- [getViewportWorldWidth](frontend_game_viewport.default.md#getviewportworldwidth) -- [intersectsViewport](frontend_game_viewport.default.md#intersectsviewport) -- [isInOrAroundViewport](frontend_game_viewport.default.md#isinoraroundviewport) -- [isInViewport](frontend_game_viewport.default.md#isinviewport) -- [isValidWorldWidth](frontend_game_viewport.default.md#isvalidworldwidth) -- [onMouseDown](frontend_game_viewport.default.md#onmousedown) -- [onMouseMove](frontend_game_viewport.default.md#onmousemove) -- [onMouseOut](frontend_game_viewport.default.md#onmouseout) -- [onMouseUp](frontend_game_viewport.default.md#onmouseup) -- [onResize](frontend_game_viewport.default.md#onresize) -- [onScroll](frontend_game_viewport.default.md#onscroll) -- [onSendComplete](frontend_game_viewport.default.md#onsendcomplete) -- [onSendInit](frontend_game_viewport.default.md#onsendinit) -- [onWindowResize](frontend_game_viewport.default.md#onwindowresize) -- [setData](frontend_game_viewport.default.md#setdata) -- [setMouseSensitivty](frontend_game_viewport.default.md#setmousesensitivty) -- [setStorage](frontend_game_viewport.default.md#setstorage) -- [setWorldHeight](frontend_game_viewport.default.md#setworldheight) -- [setWorldWidth](frontend_game_viewport.default.md#setworldwidth) -- [worldToCanvasCoords](frontend_game_viewport.default.md#worldtocanvascoords) -- [worldToCanvasDist](frontend_game_viewport.default.md#worldtocanvasdist) -- [worldToCanvasX](frontend_game_viewport.default.md#worldtocanvasx) -- [worldToCanvasY](frontend_game_viewport.default.md#worldtocanvasy) -- [zoomIn](frontend_game_viewport.default.md#zoomin) -- [zoomOut](frontend_game_viewport.default.md#zoomout) -- [zoomPlanet](frontend_game_viewport.default.md#zoomplanet) -- [destroyInstance](frontend_game_viewport.default.md#destroyinstance) -- [getInstance](frontend_game_viewport.default.md#getinstance) -- [initialize](frontend_game_viewport.default.md#initialize) - -## Constructors - -### constructor - -\+ `Private` **new default**(`gameUIManager`: [_default_](backend_gamelogic_gameuimanager.default.md), `centerWorldCoords`: WorldCoords, `widthInWorldUnits`: _number_, `viewportWidth`: _number_, `viewportHeight`: _number_, `canvas`: HTMLCanvasElement): [_default_](frontend_game_viewport.default.md) - -#### Parameters - -| Name | Type | -| :------------------ | :------------------------------------------------------ | -| `gameUIManager` | [_default_](backend_gamelogic_gameuimanager.default.md) | -| `centerWorldCoords` | WorldCoords | -| `widthInWorldUnits` | _number_ | -| `viewportWidth` | _number_ | -| `viewportHeight` | _number_ | -| `canvas` | HTMLCanvasElement | - -**Returns:** [_default_](frontend_game_viewport.default.md) - -## Properties - -### animationManager - -• `Private` **animationManager**: [_AnimationManager_](frontend_game_viewportanimation.animationmanager.md) - ---- - -### canvas - -• **canvas**: HTMLCanvasElement - ---- - -### centerWorldCoords - -• **centerWorldCoords**: WorldCoords - ---- - -### frameRequestId - -• **frameRequestId**: _number_ - ---- - -### gameUIManager - -• **gameUIManager**: [_default_](backend_gamelogic_gameuimanager.default.md) - ---- - -### heightInWorldUnits - -• **heightInWorldUnits**: _number_ - ---- - -### intervalId - -• **intervalId**: _Timeout_ - ---- - -### isFirefox - -• **isFirefox**: _boolean_ - ---- - -### isPanning - -• **isPanning**: _boolean_= false - ---- - -### isSending - -• `Private` **isSending**: _boolean_= false - ---- - -### momentum - -• **momentum**: _boolean_= false - ---- - -### mouseLastCoords - -• **mouseLastCoords**: _undefined_ \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) - ---- - -### mouseSensitivity - -• **mouseSensitivity**: _number_ - ---- - -### mousedownCoords - -• **mousedownCoords**: _undefined_ \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) - ---- - -### scale - -• **scale**: _number_ - ---- - -### velocity - -• **velocity**: _undefined_ \| WorldCoords - ---- - -### viewportHeight - -• **viewportHeight**: _number_ - ---- - -### viewportWidth - -• **viewportWidth**: _number_ - ---- - -### widthInWorldUnits - -• **widthInWorldUnits**: _number_ - ---- - -### instance - -▪ `Static` **instance**: _undefined_ \| [_default_](frontend_game_viewport.default.md) - -## Accessors - -### maxWorldWidth - -• get **maxWorldWidth**(): _number_ - -**Returns:** _number_ - ---- - -### minWorldWidth - -• get **minWorldWidth**(): _number_ - -**Returns:** _number_ - -## Methods - -### canvasToWorldCoords - -▸ **canvasToWorldCoords**(`canvasCoords`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md)): WorldCoords - -#### Parameters - -| Name | Type | -| :------------- | :------------------------------------------------------------------------ | -| `canvasCoords` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - -**Returns:** WorldCoords - ---- - -### canvasToWorldDist - -▸ **canvasToWorldDist**(`d`: _number_): _number_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `d` | _number_ | - -**Returns:** _number_ - ---- - -### canvasToWorldX - -▸ `Private` **canvasToWorldX**(`x`: _number_): _number_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | - -**Returns:** _number_ - ---- - -### canvasToWorldY - -▸ `Private` **canvasToWorldY**(`y`: _number_): _number_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `y` | _number_ | - -**Returns:** _number_ - ---- - -### centerChunk - -▸ **centerChunk**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### centerCoords - -▸ **centerCoords**(`coords`: WorldCoords): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _void_ - ---- - -### centerPlanet - -▸ **centerPlanet**(`planet`: _undefined_ \| Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _void_ - ---- - -### centerPlanetAnimated - -▸ **centerPlanetAnimated**(`planet`: _undefined_ \| Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _void_ - ---- - -### getBottomBound - -▸ **getBottomBound**(): _number_ - -**Returns:** _number_ - ---- - -### getDetailLevel - -▸ `Private` **getDetailLevel**(): _number_ - -**Returns:** _number_ - ---- - -### getLeftBound - -▸ **getLeftBound**(): _number_ - -**Returns:** _number_ - ---- - -### getRightBound - -▸ **getRightBound**(): _number_ - -**Returns:** _number_ - ---- - -### getStorage - -▸ **getStorage**(): _undefined_ \| ViewportData - -**Returns:** _undefined_ \| ViewportData - ---- - -### getStorageKey - -▸ `Private` **getStorageKey**(): _string_ - -**Returns:** _string_ - ---- - -### getTopBound - -▸ **getTopBound**(): _number_ - -**Returns:** _number_ - ---- - -### getViewportPosition - -▸ **getViewportPosition**(): _object_ - -**Returns:** _object_ - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | - ---- - -### getViewportWorldHeight - -▸ **getViewportWorldHeight**(): _number_ - -**Returns:** _number_ - ---- - -### getViewportWorldWidth - -▸ **getViewportWorldWidth**(): _number_ - -**Returns:** _number_ - ---- - -### intersectsViewport - -▸ **intersectsViewport**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _boolean_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _boolean_ - ---- - -### isInOrAroundViewport - -▸ **isInOrAroundViewport**(`coords`: WorldCoords): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _boolean_ - ---- - -### isInViewport - -▸ **isInViewport**(`coords`: WorldCoords): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | - -**Returns:** _boolean_ - ---- - -### isValidWorldWidth - -▸ `Private` **isValidWorldWidth**(`width`: _number_): _boolean_ - -#### Parameters - -| Name | Type | -| :------ | :------- | -| `width` | _number_ | - -**Returns:** _boolean_ - ---- - -### onMouseDown - -▸ **onMouseDown**(`canvasCoords`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md)): _void_ - -#### Parameters - -| Name | Type | -| :------------- | :------------------------------------------------------------------------ | -| `canvasCoords` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - -**Returns:** _void_ - ---- - -### onMouseMove - -▸ **onMouseMove**(`canvasCoords`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md)): _void_ - -#### Parameters - -| Name | Type | -| :------------- | :------------------------------------------------------------------------ | -| `canvasCoords` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - -**Returns:** _void_ - ---- - -### onMouseOut - -▸ **onMouseOut**(): _void_ - -**Returns:** _void_ - ---- - -### onMouseUp - -▸ **onMouseUp**(`canvasCoords`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md)): _void_ - -#### Parameters - -| Name | Type | -| :------------- | :------------------------------------------------------------------------ | -| `canvasCoords` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - -**Returns:** _void_ - ---- - -### onResize - -▸ **onResize**(): _void_ - -**Returns:** _void_ - ---- - -### onScroll - -▸ **onScroll**(`deltaY`: _number_, `forceZoom?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :---------- | :-------- | :------------ | -| `deltaY` | _number_ | - | -| `forceZoom` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### onSendComplete - -▸ **onSendComplete**(): _void_ - -**Returns:** _void_ - ---- - -### onSendInit - -▸ **onSendInit**(): _void_ - -**Returns:** _void_ - ---- - -### onWindowResize - -▸ **onWindowResize**(): _void_ - -**Returns:** _void_ - ---- - -### setData - -▸ **setData**(`data`: ViewportData): _void_ - -#### Parameters - -| Name | Type | -| :----- | :----------- | -| `data` | ViewportData | - -**Returns:** _void_ - ---- - -### setMouseSensitivty - -▸ **setMouseSensitivty**(`mouseSensitivity`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :----------------- | :------- | -| `mouseSensitivity` | _number_ | - -**Returns:** _void_ - ---- - -### setStorage - -▸ **setStorage**(): _void_ - -**Returns:** _void_ - ---- - -### setWorldHeight - -▸ **setWorldHeight**(`height`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `height` | _number_ | - -**Returns:** _void_ - ---- - -### setWorldWidth - -▸ `Private` **setWorldWidth**(`width`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------ | :------- | -| `width` | _number_ | - -**Returns:** _void_ - ---- - -### worldToCanvasCoords - -▸ **worldToCanvasCoords**(`worldCoords`: WorldCoords): [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) - -#### Parameters - -| Name | Type | -| :------------ | :---------- | -| `worldCoords` | WorldCoords | - -**Returns:** [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) - ---- - -### worldToCanvasDist - -▸ **worldToCanvasDist**(`d`: _number_): _number_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `d` | _number_ | - -**Returns:** _number_ - ---- - -### worldToCanvasX - -▸ `Private` **worldToCanvasX**(`x`: _number_): _number_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | - -**Returns:** _number_ - ---- - -### worldToCanvasY - -▸ `Private` **worldToCanvasY**(`y`: _number_): _number_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `y` | _number_ | - -**Returns:** _number_ - ---- - -### zoomIn - -▸ **zoomIn**(): _void_ - -**Returns:** _void_ - ---- - -### zoomOut - -▸ **zoomOut**(): _void_ - -**Returns:** _void_ - ---- - -### zoomPlanet - -▸ **zoomPlanet**(`planet`: _undefined_ \| Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _void_ - ---- - -### destroyInstance - -▸ `Static` **destroyInstance**(): _void_ - -**Returns:** _void_ - ---- - -### getInstance - -▸ `Static` **getInstance**(): [_default_](frontend_game_viewport.default.md) - -**Returns:** [_default_](frontend_game_viewport.default.md) - ---- - -### initialize - -▸ `Static` **initialize**(`gameUIManager`: [_default_](backend_gamelogic_gameuimanager.default.md), `widthInWorldUnits`: _number_, `canvas`: HTMLCanvasElement): [_default_](frontend_game_viewport.default.md) - -#### Parameters - -| Name | Type | -| :------------------ | :------------------------------------------------------ | -| `gameUIManager` | [_default_](backend_gamelogic_gameuimanager.default.md) | -| `widthInWorldUnits` | _number_ | -| `canvas` | HTMLCanvasElement | - -**Returns:** [_default_](frontend_game_viewport.default.md) diff --git a/docs/classes/frontend_game_viewportanimation.animationmanager.md b/docs/classes/frontend_game_viewportanimation.animationmanager.md deleted file mode 100644 index 3e487c7c..00000000 --- a/docs/classes/frontend_game_viewportanimation.animationmanager.md +++ /dev/null @@ -1,54 +0,0 @@ -# Class: AnimationManager - -[Frontend/Game/ViewportAnimation](../modules/frontend_game_viewportanimation.md).AnimationManager - -## Table of contents - -### Constructors - -- [constructor](frontend_game_viewportanimation.animationmanager.md#constructor) - -### Properties - -- [currentAnimation](frontend_game_viewportanimation.animationmanager.md#currentanimation) - -### Methods - -- [replaceAnimation](frontend_game_viewportanimation.animationmanager.md#replaceanimation) -- [stopCurrentAnimation](frontend_game_viewportanimation.animationmanager.md#stopcurrentanimation) - -## Constructors - -### constructor - -\+ **new AnimationManager**(): [_AnimationManager_](frontend_game_viewportanimation.animationmanager.md) - -**Returns:** [_AnimationManager_](frontend_game_viewportanimation.animationmanager.md) - -## Properties - -### currentAnimation - -• `Private` `Optional` **currentAnimation**: AnimeInstance - -## Methods - -### replaceAnimation - -▸ **replaceAnimation**(`animation`: [_ViewportAnimation_](frontend_game_viewportanimation.viewportanimation.md)): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :-------------------------------------------------------------------------- | -| `animation` | [_ViewportAnimation_](frontend_game_viewportanimation.viewportanimation.md) | - -**Returns:** _void_ - ---- - -### stopCurrentAnimation - -▸ **stopCurrentAnimation**(): _void_ - -**Returns:** _void_ diff --git a/docs/classes/frontend_game_viewportanimation.viewportanimation.md b/docs/classes/frontend_game_viewportanimation.viewportanimation.md deleted file mode 100644 index c04fa183..00000000 --- a/docs/classes/frontend_game_viewportanimation.viewportanimation.md +++ /dev/null @@ -1,111 +0,0 @@ -# Class: ViewportAnimation - -[Frontend/Game/ViewportAnimation](../modules/frontend_game_viewportanimation.md).ViewportAnimation - -## Table of contents - -### Constructors - -- [constructor](frontend_game_viewportanimation.viewportanimation.md#constructor) - -### Properties - -- [coordsEnd](frontend_game_viewportanimation.viewportanimation.md#coordsend) -- [coordsStart](frontend_game_viewportanimation.viewportanimation.md#coordsstart) -- [durationMs](frontend_game_viewportanimation.viewportanimation.md#durationms) -- [heightEnd](frontend_game_viewportanimation.viewportanimation.md#heightend) -- [heightStart](frontend_game_viewportanimation.viewportanimation.md#heightstart) -- [timeStarted](frontend_game_viewportanimation.viewportanimation.md#timestarted) - -### Methods - -- [apply](frontend_game_viewportanimation.viewportanimation.md#apply) -- [between](frontend_game_viewportanimation.viewportanimation.md#between) - -## Constructors - -### constructor - -\+ **new ViewportAnimation**(`timeStarted`: _number_, `coordsStart`: WorldCoords, `coordsEnd`: WorldCoords, `heightStart`: _number_, `heightEnd`: _number_, `durationMs`: _number_): [_ViewportAnimation_](frontend_game_viewportanimation.viewportanimation.md) - -#### Parameters - -| Name | Type | -| :------------ | :---------- | -| `timeStarted` | _number_ | -| `coordsStart` | WorldCoords | -| `coordsEnd` | WorldCoords | -| `heightStart` | _number_ | -| `heightEnd` | _number_ | -| `durationMs` | _number_ | - -**Returns:** [_ViewportAnimation_](frontend_game_viewportanimation.viewportanimation.md) - -## Properties - -### coordsEnd - -• `Readonly` **coordsEnd**: WorldCoords - ---- - -### coordsStart - -• `Readonly` **coordsStart**: WorldCoords - ---- - -### durationMs - -• `Readonly` **durationMs**: _number_ - ---- - -### heightEnd - -• `Readonly` **heightEnd**: _number_ - ---- - -### heightStart - -• `Readonly` **heightStart**: _number_ - ---- - -### timeStarted - -• `Readonly` **timeStarted**: _number_ - -## Methods - -### apply - -▸ **apply**(`percent`: _number_, `viewport`: [_default_](frontend_game_viewport.default.md)): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------- | -| `percent` | _number_ | -| `viewport` | [_default_](frontend_game_viewport.default.md) | - -**Returns:** _void_ - ---- - -### between - -▸ `Static` **between**(`timeStarted`: _number_, `from`: WorldCoords, `to`: WorldCoords, `heightStart`: _number_, `heightEnd`: _number_): [_ViewportAnimation_](frontend_game_viewportanimation.viewportanimation.md) - -#### Parameters - -| Name | Type | -| :------------ | :---------- | -| `timeStarted` | _number_ | -| `from` | WorldCoords | -| `to` | WorldCoords | -| `heightStart` | _number_ | -| `heightEnd` | _number_ | - -**Returns:** [_ViewportAnimation_](frontend_game_viewportanimation.viewportanimation.md) diff --git a/docs/classes/frontend_game_windowmanager.default.md b/docs/classes/frontend_game_windowmanager.default.md deleted file mode 100644 index 0873cd23..00000000 --- a/docs/classes/frontend_game_windowmanager.default.md +++ /dev/null @@ -1,163 +0,0 @@ -# Class: default - -[Frontend/Game/WindowManager](../modules/frontend_game_windowmanager.md).default - -## Hierarchy - -- _EventEmitter_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_game_windowmanager.default.md#constructor) - -### Properties - -- [currentTooltip](frontend_game_windowmanager.default.md#currenttooltip) -- [cursorState](frontend_game_windowmanager.default.md#cursorstate) -- [lastZIndex](frontend_game_windowmanager.default.md#lastzindex) -- [mousePos](frontend_game_windowmanager.default.md#mousepos) -- [mousedownPos](frontend_game_windowmanager.default.md#mousedownpos) -- [instance](frontend_game_windowmanager.default.md#instance) - -### Methods - -- [acceptInputForTarget](frontend_game_windowmanager.default.md#acceptinputfortarget) -- [getClickDelta](frontend_game_windowmanager.default.md#getclickdelta) -- [getCursorState](frontend_game_windowmanager.default.md#getcursorstate) -- [getIndex](frontend_game_windowmanager.default.md#getindex) -- [getTooltip](frontend_game_windowmanager.default.md#gettooltip) -- [setCursorState](frontend_game_windowmanager.default.md#setcursorstate) -- [setTooltip](frontend_game_windowmanager.default.md#settooltip) -- [getInstance](frontend_game_windowmanager.default.md#getinstance) - -## Constructors - -### constructor - -\+ `Private` **new default**(): [_default_](frontend_game_windowmanager.default.md) - -**Returns:** [_default_](frontend_game_windowmanager.default.md) - -Overrides: EventEmitter.constructor - -## Properties - -### currentTooltip - -• `Private` **currentTooltip**: [_TooltipName_](../enums/frontend_game_windowmanager.tooltipname.md) - ---- - -### cursorState - -• `Private` **cursorState**: [_CursorState_](../enums/frontend_game_windowmanager.cursorstate.md) - ---- - -### lastZIndex - -• `Private` **lastZIndex**: _number_ - ---- - -### mousePos - -• `Private` **mousePos**: [_MousePos_](../modules/frontend_game_windowmanager.md#mousepos) - ---- - -### mousedownPos - -• `Private` **mousedownPos**: `null` \| [_MousePos_](../modules/frontend_game_windowmanager.md#mousepos) - ---- - -### instance - -▪ `Static` **instance**: [_default_](frontend_game_windowmanager.default.md) - -## Methods - -### acceptInputForTarget - -▸ **acceptInputForTarget**(`input`: WorldCoords): _void_ - -#### Parameters - -| Name | Type | -| :------ | :---------- | -| `input` | WorldCoords | - -**Returns:** _void_ - ---- - -### getClickDelta - -▸ **getClickDelta**(): [_MousePos_](../modules/frontend_game_windowmanager.md#mousepos) - -**Returns:** [_MousePos_](../modules/frontend_game_windowmanager.md#mousepos) - ---- - -### getCursorState - -▸ **getCursorState**(): [_CursorState_](../enums/frontend_game_windowmanager.cursorstate.md) - -**Returns:** [_CursorState_](../enums/frontend_game_windowmanager.cursorstate.md) - ---- - -### getIndex - -▸ **getIndex**(): _number_ - -**Returns:** _number_ - ---- - -### getTooltip - -▸ **getTooltip**(): [_TooltipName_](../enums/frontend_game_windowmanager.tooltipname.md) - -**Returns:** [_TooltipName_](../enums/frontend_game_windowmanager.tooltipname.md) - ---- - -### setCursorState - -▸ **setCursorState**(`newstate`: [_CursorState_](../enums/frontend_game_windowmanager.cursorstate.md)): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :------------------------------------------------------------------- | -| `newstate` | [_CursorState_](../enums/frontend_game_windowmanager.cursorstate.md) | - -**Returns:** _void_ - ---- - -### setTooltip - -▸ **setTooltip**(`tooltip`: [_TooltipName_](../enums/frontend_game_windowmanager.tooltipname.md)): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------------- | -| `tooltip` | [_TooltipName_](../enums/frontend_game_windowmanager.tooltipname.md) | - -**Returns:** _void_ - ---- - -### getInstance - -▸ `Static` **getInstance**(): [_default_](frontend_game_windowmanager.default.md) - -**Returns:** [_default_](frontend_game_windowmanager.default.md) diff --git a/docs/classes/frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md b/docs/classes/frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md deleted file mode 100644 index 3f7dec13..00000000 --- a/docs/classes/frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md +++ /dev/null @@ -1,302 +0,0 @@ -# Class: ArtifactRenderer - -[Frontend/Renderers/Artifacts/ArtifactRenderer](../modules/frontend_renderers_artifacts_artifactrenderer.md).ArtifactRenderer - -## Hierarchy - -- [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - - ↳ **ArtifactRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#constructor) - -### Properties - -- [artifacts](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#artifacts) -- [canvas](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#canvas) -- [frameRequestId](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#framerequestid) -- [gl](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#gl) -- [isDex](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#isdex) -- [projectionMatrix](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#projectionmatrix) -- [scroll](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#scroll) -- [spriteRenderer](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#spriterenderer) -- [visible](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#visible) - -### Methods - -- [clear](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#clear) -- [containsArtifact](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#containsartifact) -- [destroy](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#destroy) -- [draw](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#draw) -- [drawDex](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#drawdex) -- [drawList](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#drawlist) -- [getTexIdx](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#gettexidx) -- [loop](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#loop) -- [queueArtifactColumn](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#queueartifactcolumn) -- [queueRarityColumn](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#queueraritycolumn) -- [setArtifacts](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#setartifacts) -- [setIsDex](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#setisdex) -- [setProjectionMatrix](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#setprojectionmatrix) -- [setScroll](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#setscroll) -- [setVisible](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md#setvisible) - -## Constructors - -### constructor - -\+ **new ArtifactRenderer**(`canvas`: HTMLCanvasElement, `isDex?`: _boolean_): [_ArtifactRenderer_](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md) - -#### Parameters - -| Name | Type | Default value | -| :------- | :---------------- | :------------ | -| `canvas` | HTMLCanvasElement | - | -| `isDex` | _boolean_ | true | - -**Returns:** [_ArtifactRenderer_](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md) - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -## Properties - -### artifacts - -• `Private` **artifacts**: Artifact[] - ---- - -### canvas - -• **canvas**: HTMLCanvasElement - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[canvas](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#canvas) - ---- - -### frameRequestId - -• `Private` **frameRequestId**: _number_ - ---- - -### gl - -• **gl**: WebGL2RenderingContext - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[gl](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#gl) - ---- - -### isDex - -• `Private` **isDex**: _boolean_ - ---- - -### projectionMatrix - -• **projectionMatrix**: mat4 - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[projectionMatrix](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#projectionmatrix) - ---- - -### scroll - -• `Private` **scroll**: _number_= 0 - ---- - -### spriteRenderer - -• `Private` **spriteRenderer**: [_SpriteRenderer_](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md) - ---- - -### visible - -• `Private` **visible**: _boolean_= false - -## Methods - -### clear - -▸ **clear**(`bits?`: _number_, `color?`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec)): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----------------------------------------------------------------------------- | -| `bits?` | _number_ | -| `color?` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | - -**Returns:** _void_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### containsArtifact - -▸ `Private` **containsArtifact**(`biome`: Biome, `rarity`: ArtifactRarity, `type`: ArtifactType): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :------------- | -| `biome` | Biome | -| `rarity` | ArtifactRarity | -| `type` | ArtifactType | - -**Returns:** _boolean_ - ---- - -### destroy - -▸ **destroy**(): _void_ - -**Returns:** _void_ - ---- - -### draw - -▸ `Private` **draw**(): _void_ - -**Returns:** _void_ - ---- - -### drawDex - -▸ `Private` **drawDex**(): _void_ - -**Returns:** _void_ - ---- - -### drawList - -▸ `Private` **drawList**(): _void_ - -**Returns:** _void_ - ---- - -### getTexIdx - -▸ **getTexIdx**(): _number_ - -**Returns:** _number_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### loop - -▸ `Private` **loop**(): _void_ - -**Returns:** _void_ - ---- - -### queueArtifactColumn - -▸ `Private` **queueArtifactColumn**(`type`: ArtifactType, `rarity`: ArtifactRarity, `startX`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------------- | -| `type` | ArtifactType | -| `rarity` | ArtifactRarity | -| `startX` | _number_ | - -**Returns:** _void_ - ---- - -### queueRarityColumn - -▸ `Private` **queueRarityColumn**(`rarity`: ArtifactRarity, `startX`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------------- | -| `rarity` | ArtifactRarity | -| `startX` | _number_ | - -**Returns:** _void_ - ---- - -### setArtifacts - -▸ **setArtifacts**(`artifacts`: Artifact[]): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :--------- | -| `artifacts` | Artifact[] | - -**Returns:** _void_ - ---- - -### setIsDex - -▸ **setIsDex**(`isDex`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------- | -| `isDex` | _boolean_ | - -**Returns:** _void_ - ---- - -### setProjectionMatrix - -▸ **setProjectionMatrix**(): _void_ - -**Returns:** _void_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### setScroll - -▸ **setScroll**(`scroll`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `scroll` | _number_ | - -**Returns:** _void_ - ---- - -### setVisible - -▸ **setVisible**(`visible`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :-------- | -| `visible` | _boolean_ | - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_engineutils.default.md b/docs/classes/frontend_renderers_gamerenderer_engineutils.default.md deleted file mode 100644 index ab713bc2..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_engineutils.default.md +++ /dev/null @@ -1,300 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/EngineUtils](../modules/frontend_renderers_gamerenderer_engineutils.md).default - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_engineutils.default.md#constructor) - -### Methods - -- [fillTexture](frontend_renderers_gamerenderer_engineutils.default.md#filltexture) -- [getNow](frontend_renderers_gamerenderer_engineutils.default.md#getnow) -- [getPlanetZIndex](frontend_renderers_gamerenderer_engineutils.default.md#getplanetzindex) -- [makeDoubleQuadBuffered](frontend_renderers_gamerenderer_engineutils.default.md#makedoublequadbuffered) -- [makeEmptyDoubleQuad](frontend_renderers_gamerenderer_engineutils.default.md#makeemptydoublequad) -- [makeEmptyQuad](frontend_renderers_gamerenderer_engineutils.default.md#makeemptyquad) -- [makeEmptyQuadVec2](frontend_renderers_gamerenderer_engineutils.default.md#makeemptyquadvec2) -- [makeQuad](frontend_renderers_gamerenderer_engineutils.default.md#makequad) -- [makeQuadBuffered](frontend_renderers_gamerenderer_engineutils.default.md#makequadbuffered) -- [makeQuadVec2](frontend_renderers_gamerenderer_engineutils.default.md#makequadvec2) -- [makeQuadVec2Buffered](frontend_renderers_gamerenderer_engineutils.default.md#makequadvec2buffered) -- [rgbVecToHex](frontend_renderers_gamerenderer_engineutils.default.md#rgbvectohex) -- [rotateIndices](frontend_renderers_gamerenderer_engineutils.default.md#rotateindices) -- [rotateQuad](frontend_renderers_gamerenderer_engineutils.default.md#rotatequad) -- [rotateQuadVec2](frontend_renderers_gamerenderer_engineutils.default.md#rotatequadvec2) -- [translateIndices](frontend_renderers_gamerenderer_engineutils.default.md#translateindices) -- [translateQuad](frontend_renderers_gamerenderer_engineutils.default.md#translatequad) -- [translateQuadVec2](frontend_renderers_gamerenderer_engineutils.default.md#translatequadvec2) - -## Constructors - -### constructor - -\+ **new default**(): [_default_](frontend_renderers_gamerenderer_engineutils.default.md) - -**Returns:** [_default_](frontend_renderers_gamerenderer_engineutils.default.md) - -## Methods - -### fillTexture - -▸ `Static` **fillTexture**(`gl`: WebGL2RenderingContext): _void_ - -#### Parameters - -| Name | Type | -| :--- | :--------------------- | -| `gl` | WebGL2RenderingContext | - -**Returns:** _void_ - ---- - -### getNow - -▸ `Static` **getNow**(): _number_ - -**Returns:** _number_ - ---- - -### getPlanetZIndex - -▸ `Static` **getPlanetZIndex**(`planet`: Planet): _number_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _number_ - ---- - -### makeDoubleQuadBuffered - -▸ `Static` **makeDoubleQuadBuffered**(`b`: _number_[], `ax1`: _number_, `ay1`: _number_, `ax2`: _number_, `ay2`: _number_, `bx1`: _number_, `by1`: _number_, `bx2`: _number_, `by2`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :---- | :--------- | -| `b` | _number_[] | -| `ax1` | _number_ | -| `ay1` | _number_ | -| `ax2` | _number_ | -| `ay2` | _number_ | -| `bx1` | _number_ | -| `by1` | _number_ | -| `bx2` | _number_ | -| `by2` | _number_ | - -**Returns:** _void_ - ---- - -### makeEmptyDoubleQuad - -▸ `Static` **makeEmptyDoubleQuad**(): _number_[] - -**Returns:** _number_[] - ---- - -### makeEmptyQuad - -▸ `Static` **makeEmptyQuad**(): _number_[] - -**Returns:** _number_[] - ---- - -### makeEmptyQuadVec2 - -▸ `Static` **makeEmptyQuadVec2**(): _number_[] - -**Returns:** _number_[] - ---- - -### makeQuad - -▸ `Static` **makeQuad**(`x1`: _number_, `y1`: _number_, `x2`: _number_, `y2`: _number_, `z`: _number_): _number_[] - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x1` | _number_ | -| `y1` | _number_ | -| `x2` | _number_ | -| `y2` | _number_ | -| `z` | _number_ | - -**Returns:** _number_[] - ---- - -### makeQuadBuffered - -▸ `Static` **makeQuadBuffered**(`b`: _number_[], `x1`: _number_, `y1`: _number_, `x2`: _number_, `y2`: _number_, `z`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :--- | :--------- | -| `b` | _number_[] | -| `x1` | _number_ | -| `y1` | _number_ | -| `x2` | _number_ | -| `y2` | _number_ | -| `z` | _number_ | - -**Returns:** _void_ - ---- - -### makeQuadVec2 - -▸ `Static` **makeQuadVec2**(`x1`: _number_, `y1`: _number_, `x2`: _number_, `y2`: _number_): _number_[] - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `x1` | _number_ | -| `y1` | _number_ | -| `x2` | _number_ | -| `y2` | _number_ | - -**Returns:** _number_[] - ---- - -### makeQuadVec2Buffered - -▸ `Static` **makeQuadVec2Buffered**(`b`: _number_[], `x1`: _number_, `y1`: _number_, `x2`: _number_, `y2`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :--- | :--------- | -| `b` | _number_[] | -| `x1` | _number_ | -| `y1` | _number_ | -| `x2` | _number_ | -| `y2` | _number_ | - -**Returns:** _void_ - ---- - -### rgbVecToHex - -▸ `Static` **rgbVecToHex**(`rgb`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec)): _string_ - -#### Parameters - -| Name | Type | -| :---- | :--------------------------------------------------------------------------- | -| `rgb` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - -**Returns:** _string_ - ---- - -### rotateIndices - -▸ `Static` `Private` **rotateIndices**(`b`: _number_[], `i`: _number_, `j`: _number_, `angle`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------ | :--------- | -| `b` | _number_[] | -| `i` | _number_ | -| `j` | _number_ | -| `angle` | _number_ | - -**Returns:** _void_ - ---- - -### rotateQuad - -▸ `Static` **rotateQuad**(`b`: _number_[], `angle`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------ | :--------- | -| `b` | _number_[] | -| `angle` | _number_ | - -**Returns:** _void_ - ---- - -### rotateQuadVec2 - -▸ `Static` **rotateQuadVec2**(`b`: _number_[], `angle`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------ | :--------- | -| `b` | _number_[] | -| `angle` | _number_ | - -**Returns:** _void_ - ---- - -### translateIndices - -▸ `Static` `Private` **translateIndices**(`b`: _number_[], `i`: _number_, `j`: _number_, `__namedParameters`: [*number*, *number*]): _void_ - -#### Parameters - -| Name | Type | -| :------------------ | :------------------- | -| `b` | _number_[] | -| `i` | _number_ | -| `j` | _number_ | -| `__namedParameters` | [*number*, *number*] | - -**Returns:** _void_ - ---- - -### translateQuad - -▸ `Static` **translateQuad**(`b`: _number_[], `t`: [*number*, *number*]): _void_ - -#### Parameters - -| Name | Type | -| :--- | :------------------- | -| `b` | _number_[] | -| `t` | [*number*, *number*] | - -**Returns:** _void_ - ---- - -### translateQuadVec2 - -▸ `Static` **translateQuadVec2**(`b`: _number_[], `t`: [*number*, *number*]): _void_ - -#### Parameters - -| Name | Type | -| :--- | :------------------- | -| `b` | _number_[] | -| `t` | [*number*, *number*] | - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md deleted file mode 100644 index 79cf996b..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md +++ /dev/null @@ -1,175 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/AsteroidRenderer](../modules/frontend_renderers_gamerenderer_entities_asteroidrenderer.md).default - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_ASTEROID_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_asteroidprogram.md#asteroid_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#manager) -- [program](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#program) -- [uniformData](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#verts) -- [viewport](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#viewport) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#flush) -- [queueAsteroid](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#queueasteroid) -- [setUniforms](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md)): [_default_](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md) - -#### Parameters - -| Name | Type | -| :-------- | :-------------------------------------------------------------------------------------- | -| `manager` | [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `radius`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `seed`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `theta`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `radius`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `seed`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `theta`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `radius`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `seed`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `theta`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - ---- - -### viewport - -• **viewport**: [_default_](frontend_game_viewport.default.md) - -## Methods - -### flush - -▸ **flush**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueAsteroid - -▸ **queueAsteroid**(`planet`: Planet, `centerW`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radiusW`: _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec)): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :--------------------------------------------------------------------------- | -| `planet` | Planet | -| `centerW` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `radiusW` | _number_ | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md deleted file mode 100644 index 23503290..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md +++ /dev/null @@ -1,94 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/BackgroundRenderer](../modules/frontend_renderers_gamerenderer_entities_backgroundrenderer.md).default - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md#constructor) - -### Properties - -- [borderRenderer](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md#borderrenderer) -- [manager](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md#manager) -- [perlinRenderer](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md#perlinrenderer) -- [renderer](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md#renderer) - -### Methods - -- [drawChunks](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md#drawchunks) -- [fillPerlin](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md#fillperlin) -- [flush](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md#flush) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md), `config`: PerlinConfig, `thresholds`: [*number*, *number*, *number*]): [_default_](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md) - -#### Parameters - -| Name | Type | -| :----------- | :-------------------------------------------------------------------------------------- | -| `manager` | [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) | -| `config` | PerlinConfig | -| `thresholds` | [*number*, *number*, *number*] | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md) - -## Properties - -### borderRenderer - -• **borderRenderer**: [_default_](frontend_renderers_gamerenderer_entities_rectrenderer.default.md) - ---- - -### manager - -• **manager**: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) - ---- - -### perlinRenderer - -• **perlinRenderer**: [_PerlinRenderer_](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md) - ---- - -### renderer - -• **renderer**: [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -## Methods - -### drawChunks - -▸ **drawChunks**(`exploredChunks`: _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\>, `highPerfMode`: _boolean_, `drawChunkBorders`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :----------------- | :--------------------------------------------------------- | -| `exploredChunks` | _Iterable_<[_Chunk_](_types_global_globaltypes.chunk.md)\> | -| `highPerfMode` | _boolean_ | -| `drawChunkBorders` | _boolean_ | - -**Returns:** _void_ - ---- - -### fillPerlin - -▸ **fillPerlin**(): _void_ - -**Returns:** _void_ - ---- - -### flush - -▸ **flush**(): _void_ - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_beltrenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_beltrenderer.default.md deleted file mode 100644 index b8aa02ff..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_beltrenderer.default.md +++ /dev/null @@ -1,244 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/BeltRenderer](../modules/frontend_renderers_gamerenderer_entities_beltrenderer.md).default - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_BELT_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_beltprogram.md#belt_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#attribmanagers) -- [botRectPosBuffer](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#botrectposbuffer) -- [manager](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#manager) -- [posBuffer](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#posbuffer) -- [program](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#program) -- [topRectPosBuffer](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#toprectposbuffer) -- [uniformData](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#flush) -- [queueBelt](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#queuebelt) -- [queueBeltAtIdx](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#queuebeltatidx) -- [queueBeltWorld](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#queuebeltworld) -- [setUniforms](frontend_renderers_gamerenderer_entities_beltrenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_default_](frontend_renderers_gamerenderer_entities_beltrenderer.default.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_beltrenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### botRectPosBuffer - -• **botRectPosBuffer**: _number_[] - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### posBuffer - -• **posBuffer**: _number_[] - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### topRectPosBuffer - -• **topRectPosBuffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueBelt - -▸ **queueBelt**(`center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `l?`: _number_, `z?`: _number_, `delZ?`: _number_, `props?`: [_BeltProps_](../modules/frontend_renderers_gamerenderer_programs_beltprogram.md#beltprops), `angle?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :------------------------------------------------------------------------------------------ | :------------ | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `radius` | _number_ | - | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `l` | _number_ | 1 | -| `z` | _number_ | 0 | -| `delZ` | _number_ | 0 | -| `props` | [_BeltProps_](../modules/frontend_renderers_gamerenderer_programs_beltprogram.md#beltprops) | - | -| `angle` | _number_ | 0 | - -**Returns:** _void_ - ---- - -### queueBeltAtIdx - -▸ **queueBeltAtIdx**(`planet`: Planet, `center`: WorldCoords \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `beltIdx`: _number_, `angle?`: _number_, `screen?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :--------------------------------------------------------------------------------------- | :------------ | -| `planet` | Planet | - | -| `center` | WorldCoords \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `radius` | _number_ | - | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `beltIdx` | _number_ | - | -| `angle` | _number_ | 0 | -| `screen` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### queueBeltWorld - -▸ **queueBeltWorld**(`centerW`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radiusW`: _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `l?`: _number_, `z?`: _number_, `delZ?`: _number_, `props?`: [_BeltProps_](../modules/frontend_renderers_gamerenderer_programs_beltprogram.md#beltprops), `angle?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :------------------------------------------------------------------------------------------ | :------------ | -| `centerW` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `radiusW` | _number_ | - | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `l` | _number_ | 1 | -| `z` | _number_ | 0 | -| `delZ` | _number_ | 0 | -| `props` | [_BeltProps_](../modules/frontend_renderers_gamerenderer_programs_beltprogram.md#beltprops) | - | -| `angle` | _number_ | 0 | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md deleted file mode 100644 index 190a4cba..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md +++ /dev/null @@ -1,209 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/BlackDomainRenderer](../modules/frontend_renderers_gamerenderer_entities_blackdomainrenderer.md).default - -Renders a shadow-type thing over destroyed planets - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_BLACKDOMAIN_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_blackdomainprogram.md#blackdomain_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#manager) -- [program](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#program) -- [quad2Buffer](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#quad2buffer) -- [quad3Buffer](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#quad3buffer) -- [uniformData](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#flush) -- [queueBlackDomain](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#queueblackdomain) -- [queueBlackDomainScreen](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#queueblackdomainscreen) -- [setUniforms](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md)): [_default_](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md) - -#### Parameters - -| Name | Type | -| :-------- | :-------------------------------------------------------------------------------------- | -| `manager` | [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quad2Buffer - -• **quad2Buffer**: _number_[] - ---- - -### quad3Buffer - -• **quad3Buffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueBlackDomain - -▸ **queueBlackDomain**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `planet` | Planet | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | - -**Returns:** _void_ - ---- - -### queueBlackDomainScreen - -▸ **queueBlackDomainScreen**(`_planet`: Planet, `center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `z`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------------------ | -| `_planet` | Planet | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `radius` | _number_ | -| `z` | _number_ | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_circlerenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_circlerenderer.default.md deleted file mode 100644 index 76302929..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_circlerenderer.default.md +++ /dev/null @@ -1,229 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/CircleRenderer](../modules/frontend_renderers_gamerenderer_entities_circlerenderer.md).default - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_CIRCLE_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_circleprogram.md#circle_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#manager) -- [program](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#program) -- [quadBuffer](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#quadbuffer) -- [uniformData](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#verts) -- [viewport](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#viewport) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#flush) -- [queueCircle](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#queuecircle) -- [queueCircleWorld](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#queuecircleworld) -- [queueCircleWorldCenterOnly](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#queuecircleworldcenteronly) -- [setUniforms](frontend_renderers_gamerenderer_entities_circlerenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md)): [_default_](frontend_renderers_gamerenderer_entities_circlerenderer.default.md) - -#### Parameters - -| Name | Type | -| :-------- | :-------------------------------------------------------------------------------------- | -| `manager` | [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_circlerenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `eps`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quadBuffer - -• **quadBuffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `eps`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `eps`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - ---- - -### viewport - -• **viewport**: [_default_](frontend_game_viewport.default.md) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueCircle - -▸ **queueCircle**(`center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `color?`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec), `stroke?`: _number_, `angle?`: _number_, `dashed?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :----------------------------------------------------------------------------- | :------------ | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `radius` | _number_ | - | -| `color` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | - | -| `stroke` | _number_ | -1 | -| `angle` | _number_ | 1 | -| `dashed` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### queueCircleWorld - -▸ **queueCircleWorld**(`center`: WorldCoords, `radius`: _number_, `color?`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec), `stroke?`: _number_, `angle?`: _number_, `dashed?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :----------------------------------------------------------------------------- | :------------ | -| `center` | WorldCoords | - | -| `radius` | _number_ | - | -| `color` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | - | -| `stroke` | _number_ | -1 | -| `angle` | _number_ | 1 | -| `dashed` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### queueCircleWorldCenterOnly - -▸ **queueCircleWorldCenterOnly**(`center`: WorldCoords, `radius`: _number_, `color?`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec)): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----------------------------------------------------------------------------- | -| `center` | WorldCoords | -| `radius` | _number_ | -| `color` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_linerenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_linerenderer.default.md deleted file mode 100644 index 232c2050..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_linerenderer.default.md +++ /dev/null @@ -1,206 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/LineRenderer](../modules/frontend_renderers_gamerenderer_entities_linerenderer.md).default - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_LINE_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_lineprogram.md#line_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_linerenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_linerenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_linerenderer.default.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_linerenderer.default.md#manager) -- [program](frontend_renderers_gamerenderer_entities_linerenderer.default.md#program) -- [uniformData](frontend_renderers_gamerenderer_entities_linerenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_linerenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_linerenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_linerenderer.default.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_linerenderer.default.md#flush) -- [getOffset](frontend_renderers_gamerenderer_entities_linerenderer.default.md#getoffset) -- [queueLine](frontend_renderers_gamerenderer_entities_linerenderer.default.md#queueline) -- [queueLineWorld](frontend_renderers_gamerenderer_entities_linerenderer.default.md#queuelineworld) -- [setUniforms](frontend_renderers_gamerenderer_entities_linerenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`glManager`: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md)): [_default_](frontend_renderers_gamerenderer_entities_linerenderer.default.md) - -#### Parameters - -| Name | Type | -| :---------- | :-------------------------------------------------------------------------------------- | -| `glManager` | [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_linerenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `dist`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `dist`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `dist`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### getOffset - -▸ `Private` **getOffset**(`start`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `end`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md)): [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) - -#### Parameters - -| Name | Type | -| :------ | :------------------------------------------------------------------------ | -| `start` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `end` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - -**Returns:** [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) - ---- - -### queueLine - -▸ **queueLine**(`start`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `end`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `color?`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec), `width?`: _number_, `zIdx?`: _number_, `dashed?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :----------------------------------------------------------------------------- | :------------ | -| `start` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `end` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `color` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | - | -| `width` | _number_ | 1 | -| `zIdx` | _number_ | - | -| `dashed` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### queueLineWorld - -▸ **queueLineWorld**(`start`: WorldCoords, `end`: WorldCoords, `color?`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec), `width?`: _number_, `zIdx?`: _number_, `dashed?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :----------------------------------------------------------------------------- | :------------ | -| `start` | WorldCoords | - | -| `end` | WorldCoords | - | -| `color` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | - | -| `width` | _number_ | 1 | -| `zIdx` | _number_ | - | -| `dashed` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_maskrenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_maskrenderer.default.md deleted file mode 100644 index f0c24613..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_maskrenderer.default.md +++ /dev/null @@ -1,194 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/MaskRenderer](../modules/frontend_renderers_gamerenderer_entities_maskrenderer.md).default - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_MASK_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_maskprogram.md#mask_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#attribmanagers) -- [bgCanvas](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#bgcanvas) -- [manager](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#manager) -- [perlinThresholds](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#perlinthresholds) -- [program](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#program) -- [quadBuffer](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#quadbuffer) -- [uniformData](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#flush) -- [queueChunk](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#queuechunk) -- [setUniforms](frontend_renderers_gamerenderer_entities_maskrenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md)): [_default_](frontend_renderers_gamerenderer_entities_maskrenderer.default.md) - -#### Parameters - -| Name | Type | -| :-------- | :-------------------------------------------------------------------------------------- | -| `manager` | [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_maskrenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### bgCanvas - -• **bgCanvas**: HTMLCanvasElement - ---- - -### manager - -• **manager**: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) - -WebGLManager corresponding to this program. - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### perlinThresholds - -• **perlinThresholds**: _number_[] - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quadBuffer - -• **quadBuffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueChunk - -▸ **queueChunk**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md deleted file mode 100644 index 06da32b5..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md +++ /dev/null @@ -1,207 +0,0 @@ -# Class: MineBodyRenderer - -[Frontend/Renderers/GameRenderer/Entities/MineBodyRenderer](../modules/frontend_renderers_gamerenderer_entities_minebodyrenderer.md).MineBodyRenderer - -Renderers asteroids at the center of silver mines - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_MINE_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_mineprogram.md#mine_program_definition)\> - - ↳ **MineBodyRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#manager) -- [program](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#program) -- [uniformData](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#flush) -- [queueMine](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#queuemine) -- [queueMineScreen](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#queueminescreen) -- [queuePoint](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#queuepoint) -- [setUniforms](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new MineBodyRenderer**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_MineBodyRenderer_](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_MineBodyRenderer_](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `offset`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `radius`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `seed`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `offset`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `radius`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `seed`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `offset`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `radius`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `seed`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueMine - -▸ **queueMine**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `planet` | Planet | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | - -**Returns:** _void_ - ---- - -### queueMineScreen - -▸ **queueMineScreen**(`planet`: Planet, `center`: WorldCoords, `radius`: _number_, `z`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `planet` | Planet | -| `center` | WorldCoords | -| `radius` | _number_ | -| `z` | _number_ | - -**Returns:** _void_ - ---- - -### queuePoint - -▸ `Private` **queuePoint**(`__namedParameters`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `z`: _number_, `radius`: _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `seed`: _number_, `offset`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------------------ | :--------------------------------------------------------------------------- | -| `__namedParameters` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `z` | _number_ | -| `radius` | _number_ | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `seed` | _number_ | -| `offset` | _number_ | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md deleted file mode 100644 index 343e9a8f..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md +++ /dev/null @@ -1,96 +0,0 @@ -# Class: MineRenderer - -[Frontend/Renderers/GameRenderer/Entities/MineRenderer](../modules/frontend_renderers_gamerenderer_entities_minerenderer.md).MineRenderer - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md#constructor) - -### Properties - -- [beltRenderer](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md#beltrenderer) -- [mineBodyRenderer](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md#minebodyrenderer) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md#flush) -- [queueMine](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md#queuemine) -- [queueMineScreen](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md#queueminescreen) -- [setUniforms](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new MineRenderer**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_MineRenderer_](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_MineRenderer_](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md) - -## Properties - -### beltRenderer - -• **beltRenderer**: [_default_](frontend_renderers_gamerenderer_entities_beltrenderer.default.md) - ---- - -### mineBodyRenderer - -• **mineBodyRenderer**: [_MineBodyRenderer_](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md) - -## Methods - -### flush - -▸ **flush**(): _void_ - -**Returns:** _void_ - ---- - -### queueMine - -▸ **queueMine**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `planet` | Planet | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | - -**Returns:** _void_ - ---- - -### queueMineScreen - -▸ **queueMineScreen**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_, `z`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `planet` | Planet | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | -| `z` | _number_ | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md deleted file mode 100644 index 32bd3a05..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md +++ /dev/null @@ -1,244 +0,0 @@ -# Class: PerlinRenderer - -[Frontend/Renderers/GameRenderer/Entities/PerlinRenderer](../modules/frontend_renderers_gamerenderer_entities_perlinrenderer.md).PerlinRenderer - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_PERLIN_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_perlinprogram.md#perlin_program_definition)\> - - ↳ **PerlinRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#attribmanagers) -- [config](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#config) -- [coordsBuffer](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#coordsbuffer) -- [manager](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#manager) -- [posBuffer](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#posbuffer) -- [program](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#program) -- [rectRenderer](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#rectrenderer) -- [thresholds](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#thresholds) -- [uniformData](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#verts) - -### Methods - -- [bufferGradients](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#buffergradients) -- [flush](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#flush) -- [queueChunk](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#queuechunk) -- [queueRect](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#queuerect) -- [setUniforms](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new PerlinRenderer**(`manager`: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md), `config`: PerlinConfig, `thresholds`: [*number*, *number*, *number*], `rectRenderer?`: _undefined_ \| [_default_](frontend_renderers_gamerenderer_entities_rectrenderer.default.md)): [_PerlinRenderer_](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md) - -#### Parameters - -| Name | Type | -| :------------- | :------------------------------------------------------------------------------------------- | -| `manager` | [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) | -| `config` | PerlinConfig | -| `thresholds` | [*number*, *number*, *number*] | -| `rectRenderer` | _undefined_ \| [_default_](frontend_renderers_gamerenderer_entities_rectrenderer.default.md) | - -**Returns:** [_PerlinRenderer_](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `p0botGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p0topGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p1botGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p1topGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p2botGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p2topGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `worldCoords`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `lengthScale`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `thresholds`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### config - -• **config**: PerlinConfig - ---- - -### coordsBuffer - -• **coordsBuffer**: _number_[] - ---- - -### manager - -• **manager**: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) - -WebGLManager corresponding to this program. - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### posBuffer - -• **posBuffer**: _number_[] - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### rectRenderer - -• **rectRenderer**: _undefined_ \| [_default_](frontend_renderers_gamerenderer_entities_rectrenderer.default.md) - ---- - -### thresholds - -• **thresholds**: [_Vec3_](../modules/frontend_renderers_gamerenderer_enginetypes.md#vec3) - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `p0botGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p0topGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p1botGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p1topGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p2botGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p2topGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `worldCoords`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `lengthScale`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `thresholds`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `p0botGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p0topGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p1botGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p1topGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p2botGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `p2topGrad`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `worldCoords`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `lengthScale`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `thresholds`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### bufferGradients - -▸ `Private` **bufferGradients**(`rect`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), `octave`: [_PerlinOctave_](../enums/frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md), `topGrad`: [_default_](frontend_renderers_gamerenderer_webgl_attribmanager.default.md), `botGrad`: [_default_](frontend_renderers_gamerenderer_webgl_attribmanager.default.md)): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------------------------------------------------------------------------------------------- | -| `rect` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | -| `octave` | [_PerlinOctave_](../enums/frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md) | -| `topGrad` | [_default_](frontend_renderers_gamerenderer_webgl_attribmanager.default.md) | -| `botGrad` | [_default_](frontend_renderers_gamerenderer_webgl_attribmanager.default.md) | - -**Returns:** _void_ - ---- - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueChunk - -▸ **queueChunk**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### queueRect - -▸ `Private` **queueRect**(`rect`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): _void_ - -#### Parameters - -| Name | Type | -| :----- | :------------------------------------------------------------------ | -| `rect` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_planetrenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_planetrenderer.default.md deleted file mode 100644 index 5175c668..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_planetrenderer.default.md +++ /dev/null @@ -1,216 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/PlanetRenderer](../modules/frontend_renderers_gamerenderer_entities_planetrenderer.md).default - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_PLANET_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_planetprogram.md#planet_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#manager) -- [program](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#program) -- [quad2Buffer](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#quad2buffer) -- [quad3Buffer](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#quad3buffer) -- [timeMatrix](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#timematrix) -- [uniformData](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#flush) -- [queuePlanetBody](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#queueplanetbody) -- [queuePlanetBodyScreen](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#queueplanetbodyscreen) -- [setUniforms](frontend_renderers_gamerenderer_entities_planetrenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_default_](frontend_renderers_gamerenderer_entities_planetrenderer.default.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_planetrenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `color2`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `color3`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props2`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `timeMatrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quad2Buffer - -• **quad2Buffer**: _number_[] - ---- - -### quad3Buffer - -• **quad3Buffer**: _number_[] - ---- - -### timeMatrix - -• **timeMatrix**: mat4 - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `color2`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `color3`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props2`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `timeMatrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `color2`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `color3`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props2`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `timeMatrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queuePlanetBody - -▸ **queuePlanetBody**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `planet` | Planet | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | - -**Returns:** _void_ - ---- - -### queuePlanetBodyScreen - -▸ **queuePlanetBodyScreen**(`planet`: Planet, `radius`: _number_, `x1`: _number_, `y1`: _number_, `x2`: _number_, `y2`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `planet` | Planet | -| `radius` | _number_ | -| `x1` | _number_ | -| `y1` | _number_ | -| `x2` | _number_ | -| `y2` | _number_ | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_planetrendermanager.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_planetrendermanager.default.md deleted file mode 100644 index b8bf0c25..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_planetrendermanager.default.md +++ /dev/null @@ -1,282 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/PlanetRenderManager](../modules/frontend_renderers_gamerenderer_entities_planetrendermanager.md).default - -this guy is always going to call things in worldcoords, we'll convert them -to CanvasCoords. responsible for rendering planets by calling primitive renderers - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#constructor) - -### Properties - -- [renderer](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#renderer) - -### Methods - -- [drawPlanetMessages](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#drawplanetmessages) -- [flush](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#flush) -- [getLockedEnergy](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#getlockedenergy) -- [getMouseAtk](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#getmouseatk) -- [queueArtifactIcon](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queueartifacticon) -- [queueArtifactsAroundPlanet](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queueartifactsaroundplanet) -- [queueAsteroids](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queueasteroids) -- [queueBlackDomain](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queueblackdomain) -- [queueHat](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queuehat) -- [queueLocation](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queuelocation) -- [queuePlanetBody](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queueplanetbody) -- [queuePlanetEnergyText](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queueplanetenergytext) -- [queuePlanetSilverText](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queueplanetsilvertext) -- [queuePlanets](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queueplanets) -- [queueRings](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md#queuerings) - -## Constructors - -### constructor - -\+ **new default**(`renderer`: [_default_](frontend_renderers_gamerenderer_renderer.default.md)): [_default_](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md) - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------------------------- | -| `renderer` | [_default_](frontend_renderers_gamerenderer_renderer.default.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md) - -## Properties - -### renderer - -• **renderer**: [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -## Methods - -### drawPlanetMessages - -▸ `Private` **drawPlanetMessages**(`renderInfo`: [_PlanetRenderInfo_](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md), `coords`: WorldCoords, `radiusW`: _number_, `textAlpha`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :----------------------------------------------------------------------------------------- | -| `renderInfo` | [_PlanetRenderInfo_](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md) | -| `coords` | WorldCoords | -| `radiusW` | _number_ | -| `textAlpha` | _number_ | - -**Returns:** _void_ - ---- - -### flush - -▸ **flush**(): _void_ - -**Returns:** _void_ - ---- - -### getLockedEnergy - -▸ `Private` **getLockedEnergy**(`planet`: Planet): _number_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _number_ - ---- - -### getMouseAtk - -▸ `Private` **getMouseAtk**(): _undefined_ \| _number_ - -**Returns:** _undefined_ \| _number_ - ---- - -### queueArtifactIcon - -▸ `Private` **queueArtifactIcon**(`planet`: Planet, `__namedParameters`: WorldCoords, `radius`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------------------ | :---------- | -| `planet` | Planet | -| `__namedParameters` | WorldCoords | -| `radius` | _number_ | - -**Returns:** _void_ - ---- - -### queueArtifactsAroundPlanet - -▸ `Private` **queueArtifactsAroundPlanet**(`planet`: Planet, `artifacts`: Artifact[], `centerW`: WorldCoords, `radiusW`: _number_, `now`: _number_, `alpha`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :---------- | -| `planet` | Planet | -| `artifacts` | Artifact[] | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | -| `now` | _number_ | -| `alpha` | _number_ | - -**Returns:** _void_ - ---- - -### queueAsteroids - -▸ `Private` **queueAsteroids**(`planet`: Planet, `center`: WorldCoords, `radius`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `planet` | Planet | -| `center` | WorldCoords | -| `radius` | _number_ | - -**Returns:** _void_ - ---- - -### queueBlackDomain - -▸ `Private` **queueBlackDomain**(`planet`: Planet, `center`: WorldCoords, `radius`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `planet` | Planet | -| `center` | WorldCoords | -| `radius` | _number_ | - -**Returns:** _void_ - ---- - -### queueHat - -▸ `Private` **queueHat**(`planet`: Planet, `center`: WorldCoords, `radius`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `planet` | Planet | -| `center` | WorldCoords | -| `radius` | _number_ | - -**Returns:** _void_ - ---- - -### queueLocation - -▸ **queueLocation**(`renderInfo`: [_PlanetRenderInfo_](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md), `now`: _number_, `highPerfMode`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :------------- | :----------------------------------------------------------------------------------------- | -| `renderInfo` | [_PlanetRenderInfo_](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md) | -| `now` | _number_ | -| `highPerfMode` | _boolean_ | - -**Returns:** _void_ - ---- - -### queuePlanetBody - -▸ `Private` **queuePlanetBody**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `planet` | Planet | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | - -**Returns:** _void_ - ---- - -### queuePlanetEnergyText - -▸ `Private` **queuePlanetEnergyText**(`planet`: Planet, `center`: WorldCoords, `radius`: _number_, `alpha`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `planet` | Planet | -| `center` | WorldCoords | -| `radius` | _number_ | -| `alpha` | _number_ | - -**Returns:** _void_ - ---- - -### queuePlanetSilverText - -▸ `Private` **queuePlanetSilverText**(`planet`: Planet, `center`: WorldCoords, `radius`: _number_, `alpha`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `planet` | Planet | -| `center` | WorldCoords | -| `radius` | _number_ | -| `alpha` | _number_ | - -**Returns:** _void_ - ---- - -### queuePlanets - -▸ **queuePlanets**(`cachedPlanets`: _Map_, `now`: _number_, `highPerfMode`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------------------------------------------------------------- | -| `cachedPlanets` | _Map_ | -| `now` | _number_ | -| `highPerfMode` | _boolean_ | - -**Returns:** _void_ - ---- - -### queueRings - -▸ `Private` **queueRings**(`planet`: Planet, `center`: WorldCoords, `radius`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `planet` | Planet | -| `center` | WorldCoords | -| `radius` | _number_ | - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md deleted file mode 100644 index c296c6b3..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md +++ /dev/null @@ -1,210 +0,0 @@ -# Class: QuasarBodyRenderer - -[Frontend/Renderers/GameRenderer/Entities/QuasarBodyRenderer](../modules/frontend_renderers_gamerenderer_entities_quasarbodyrenderer.md).QuasarBodyRenderer - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_QUASARBODY_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_quasarbodyprogram.md#quasarbody_program_definition)\> - - ↳ **QuasarBodyRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#manager) -- [program](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#program) -- [quad2Buffer](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#quad2buffer) -- [quad3Buffer](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#quad3buffer) -- [uniformData](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#flush) -- [queueQuasarBody](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#queuequasarbody) -- [queueQuasarBodyScreen](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#queuequasarbodyscreen) -- [setUniforms](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new QuasarBodyRenderer**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_QuasarBodyRenderer_](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_QuasarBodyRenderer_](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quad2Buffer - -• **quad2Buffer**: _number_[] - ---- - -### quad3Buffer - -• **quad3Buffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueQuasarBody - -▸ **queueQuasarBody**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_, `z`: _number_, `angle?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :---------- | :------------ | -| `planet` | Planet | - | -| `centerW` | WorldCoords | - | -| `radiusW` | _number_ | - | -| `z` | _number_ | - | -| `angle` | _number_ | 0 | - -**Returns:** _void_ - ---- - -### queueQuasarBodyScreen - -▸ **queueQuasarBodyScreen**(`planet`: Planet, `center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `z`: _number_, `angle?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :------------------------------------------------------------------------ | :------------ | -| `planet` | Planet | - | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `radius` | _number_ | - | -| `z` | _number_ | - | -| `angle` | _number_ | 0 | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md deleted file mode 100644 index 78979814..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md +++ /dev/null @@ -1,219 +0,0 @@ -# Class: QuasarRayRenderer - -[Frontend/Renderers/GameRenderer/Entities/QuasarRayRenderer](../modules/frontend_renderers_gamerenderer_entities_quasarrayrenderer.md).QuasarRayRenderer - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_QUASARRAY_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_quasarrayprogram.md#quasarray_program_definition)\> - - ↳ **QuasarRayRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#manager) -- [program](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#program) -- [quad2BufferBot](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#quad2bufferbot) -- [quad2BufferTop](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#quad2buffertop) -- [quad3Buffer](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#quad3buffer) -- [uniformData](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#flush) -- [queueQuasarRay](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#queuequasarray) -- [queueQuasarRayScreen](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#queuequasarrayscreen) -- [setUniforms](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new QuasarRayRenderer**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_QuasarRayRenderer_](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_QuasarRayRenderer_](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quad2BufferBot - -• **quad2BufferBot**: _number_[] - ---- - -### quad2BufferTop - -• **quad2BufferTop**: _number_[] - ---- - -### quad3Buffer - -• **quad3Buffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueQuasarRay - -▸ **queueQuasarRay**(`top?`: _boolean_, `planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_, `z`: _number_, `angle?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :---------- | :------------ | -| `top` | _boolean_ | true | -| `planet` | Planet | - | -| `centerW` | WorldCoords | - | -| `radiusW` | _number_ | - | -| `z` | _number_ | - | -| `angle` | _number_ | 0 | - -**Returns:** _void_ - ---- - -### queueQuasarRayScreen - -▸ **queueQuasarRayScreen**(`top?`: _boolean_, `planet`: Planet, `center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `z`: _number_, `angle?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :------------------------------------------------------------------------ | :------------ | -| `top` | _boolean_ | true | -| `planet` | Planet | - | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `radius` | _number_ | - | -| `z` | _number_ | - | -| `angle` | _number_ | 0 | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md deleted file mode 100644 index 0593ca4f..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md +++ /dev/null @@ -1,126 +0,0 @@ -# Class: QuasarRenderer - -[Frontend/Renderers/GameRenderer/Entities/QuasarRenderer](../modules/frontend_renderers_gamerenderer_entities_quasarrenderer.md).QuasarRenderer - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#constructor) - -### Properties - -- [manager](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#manager) -- [quasarBodyRenderer](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#quasarbodyrenderer) -- [quasarRayRendererBot](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#quasarrayrendererbot) -- [quasarRayRendererTop](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#quasarrayrenderertop) -- [renderer](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#renderer) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#flush) -- [getAngle](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#getangle) -- [queueQuasar](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#queuequasar) -- [queueQuasarScreen](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#queuequasarscreen) -- [setUniforms](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new QuasarRenderer**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_QuasarRenderer_](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_QuasarRenderer_](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md) - -## Properties - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### quasarBodyRenderer - -• **quasarBodyRenderer**: [_QuasarBodyRenderer_](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md) - ---- - -### quasarRayRendererBot - -• **quasarRayRendererBot**: [_QuasarRayRenderer_](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md) - ---- - -### quasarRayRendererTop - -• **quasarRayRendererTop**: [_QuasarRayRenderer_](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md) - ---- - -### renderer - -• **renderer**: [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -## Methods - -### flush - -▸ **flush**(): _void_ - -**Returns:** _void_ - ---- - -### getAngle - -▸ `Private` **getAngle**(): _number_ - -**Returns:** _number_ - ---- - -### queueQuasar - -▸ **queueQuasar**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `planet` | Planet | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | - -**Returns:** _void_ - ---- - -### queueQuasarScreen - -▸ **queueQuasarScreen**(`planet`: Planet, `center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `z`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------------------------------------------------------------------------ | -| `planet` | Planet | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `radius` | _number_ | -| `z` | _number_ | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_rectrenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_rectrenderer.default.md deleted file mode 100644 index 3367ae08..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_rectrenderer.default.md +++ /dev/null @@ -1,247 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/RectRenderer](../modules/frontend_renderers_gamerenderer_entities_rectrenderer.md).default - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_RECT_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_rectprogram.md#rect_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#manager) -- [program](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#program) -- [quad2Buffer](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#quad2buffer) -- [quad3Buffer](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#quad3buffer) -- [uniformData](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#flush) -- [queueChunkBorder](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#queuechunkborder) -- [queueRect](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#queuerect) -- [queueRectCenterWorld](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#queuerectcenterworld) -- [queueRectWorld](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#queuerectworld) -- [setUniforms](frontend_renderers_gamerenderer_entities_rectrenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md)): [_default_](frontend_renderers_gamerenderer_entities_rectrenderer.default.md) - -#### Parameters - -| Name | Type | -| :-------- | :-------------------------------------------------------------------------------------- | -| `manager` | [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_rectrenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `strokeX`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `strokeY`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quad2Buffer - -• **quad2Buffer**: _number_[] - ---- - -### quad3Buffer - -• **quad3Buffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `strokeX`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `strokeY`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `strokeX`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `strokeY`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueChunkBorder - -▸ **queueChunkBorder**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### queueRect - -▸ **queueRect**(`__namedParameters`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `width`: _number_, `height`: _number_, `color?`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `stroke?`: _number_, `zIdx?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------------------ | :--------------------------------------------------------------------------- | :------------ | -| `__namedParameters` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `width` | _number_ | - | -| `height` | _number_ | - | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `stroke` | _number_ | -1 | -| `zIdx` | _number_ | - | - -**Returns:** _void_ - ---- - -### queueRectCenterWorld - -▸ **queueRectCenterWorld**(`center`: WorldCoords, `width`: _number_, `height`: _number_, `color?`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `stroke?`: _number_, `zIdx?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :--------------------------------------------------------------------------- | :------------ | -| `center` | WorldCoords | - | -| `width` | _number_ | - | -| `height` | _number_ | - | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `stroke` | _number_ | -1 | -| `zIdx` | _number_ | - | - -**Returns:** _void_ - ---- - -### queueRectWorld - -▸ **queueRectWorld**(`coords`: WorldCoords, `width`: _number_, `height`: _number_, `color?`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `stroke?`: _number_, `zIdx?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :--------------------------------------------------------------------------- | :------------ | -| `coords` | WorldCoords | - | -| `width` | _number_ | - | -| `height` | _number_ | - | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `stroke` | _number_ | -1 | -| `zIdx` | _number_ | - | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_ringrenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_ringrenderer.default.md deleted file mode 100644 index bc6ae4b3..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_ringrenderer.default.md +++ /dev/null @@ -1,250 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/RingRenderer](../modules/frontend_renderers_gamerenderer_entities_ringrenderer.md).default - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_RING_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_ringprogram.md#ring_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#attribmanagers) -- [botRectPosBuffer](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#botrectposbuffer) -- [manager](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#manager) -- [posBuffer](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#posbuffer) -- [program](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#program) -- [topRectPosBuffer](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#toprectposbuffer) -- [uniformData](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#verts) -- [viewport](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#viewport) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#flush) -- [queueBelt](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#queuebelt) -- [queueBeltAtIdx](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#queuebeltatidx) -- [queueBeltWorld](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#queuebeltworld) -- [setUniforms](frontend_renderers_gamerenderer_entities_ringrenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md)): [_default_](frontend_renderers_gamerenderer_entities_ringrenderer.default.md) - -#### Parameters - -| Name | Type | -| :-------- | :-------------------------------------------------------------------------------------- | -| `manager` | [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_ringrenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### botRectPosBuffer - -• **botRectPosBuffer**: _number_[] - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### posBuffer - -• **posBuffer**: _number_[] - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### topRectPosBuffer - -• **topRectPosBuffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `now`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - ---- - -### viewport - -• **viewport**: [_default_](frontend_game_viewport.default.md) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueBelt - -▸ **queueBelt**(`center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `l?`: _number_, `z?`: _number_, `delZ?`: _number_, `props?`: [_RingProps_](../modules/frontend_renderers_gamerenderer_programs_ringprogram.md#ringprops), `angle?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :------------------------------------------------------------------------------------------ | :------------ | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `radius` | _number_ | - | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `l` | _number_ | 1 | -| `z` | _number_ | 0 | -| `delZ` | _number_ | 0 | -| `props` | [_RingProps_](../modules/frontend_renderers_gamerenderer_programs_ringprogram.md#ringprops) | - | -| `angle` | _number_ | 0 | - -**Returns:** _void_ - ---- - -### queueBeltAtIdx - -▸ **queueBeltAtIdx**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `beltIdx`: _number_, `angle?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :--------------------------------------------------------------------------- | :------------ | -| `planet` | Planet | - | -| `centerW` | WorldCoords | - | -| `radiusW` | _number_ | - | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `beltIdx` | _number_ | - | -| `angle` | _number_ | 0 | - -**Returns:** _void_ - ---- - -### queueBeltWorld - -▸ **queueBeltWorld**(`centerW`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radiusW`: _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `l?`: _number_, `z?`: _number_, `delZ?`: _number_, `props?`: [_RingProps_](../modules/frontend_renderers_gamerenderer_programs_ringprogram.md#ringprops), `angle?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :------------------------------------------------------------------------------------------ | :------------ | -| `centerW` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `radiusW` | _number_ | - | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `l` | _number_ | 1 | -| `z` | _number_ | 0 | -| `delZ` | _number_ | 0 | -| `props` | [_RingProps_](../modules/frontend_renderers_gamerenderer_programs_ringprogram.md#ringprops) | - | -| `angle` | _number_ | 0 | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md deleted file mode 100644 index b1f615b2..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md +++ /dev/null @@ -1,227 +0,0 @@ -# Class: RuinsRenderer - -[Frontend/Renderers/GameRenderer/Entities/RuinsRenderer](../modules/frontend_renderers_gamerenderer_entities_ruinsrenderer.md).RuinsRenderer - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_RUINS_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_ruinsprogram.md#ruins_program_definition)\> - - ↳ **RuinsRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#manager) -- [program](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#program) -- [quad2Buffer](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#quad2buffer) -- [quad3Buffer](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#quad3buffer) -- [uniformData](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#flush) -- [queueBloom](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#queuebloom) -- [queueRuins](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#queueruins) -- [queueRuinsScreen](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#queueruinsscreen) -- [setUniforms](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new RuinsRenderer**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_RuinsRenderer_](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_RuinsRenderer_](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `weights`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quad2Buffer - -• **quad2Buffer**: _number_[] - ---- - -### quad3Buffer - -• **quad3Buffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `weights`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `props`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `weights`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueBloom - -▸ `Private` **queueBloom**(`center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `z`: _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `weights`: [*number*, *number*, *number*, *number*], `props`: [*number*, *number*, *number*, *number*]): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :--------------------------------------------------------------------------- | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `radius` | _number_ | -| `z` | _number_ | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `weights` | [*number*, *number*, *number*, *number*] | -| `props` | [*number*, *number*, *number*, *number*] | - -**Returns:** _void_ - ---- - -### queueRuins - -▸ **queueRuins**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `planet` | Planet | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | - -**Returns:** _void_ - ---- - -### queueRuinsScreen - -▸ **queueRuinsScreen**(`planet`: Planet, `center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `z`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------------------------------------------------------------------------ | -| `planet` | Planet | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `radius` | _number_ | -| `z` | _number_ | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md deleted file mode 100644 index fa41dd67..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md +++ /dev/null @@ -1,207 +0,0 @@ -# Class: SpacetimeRipRenderer - -[Frontend/Renderers/GameRenderer/Entities/SpacetimeRipRenderer](../modules/frontend_renderers_gamerenderer_entities_spacetimeriprenderer.md).SpacetimeRipRenderer - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_SPACETIMERIP_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_spacetimeripprogram.md#spacetimerip_program_definition)\> - - ↳ **SpacetimeRipRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#manager) -- [program](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#program) -- [quad2Buffer](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#quad2buffer) -- [quad3Buffer](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#quad3buffer) -- [uniformData](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#flush) -- [queueRip](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#queuerip) -- [queueRipScreen](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#queueripscreen) -- [setUniforms](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new SpacetimeRipRenderer**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_SpacetimeRipRenderer_](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_SpacetimeRipRenderer_](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `inColor1`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `inColor2`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `inColor3`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quad2Buffer - -• **quad2Buffer**: _number_[] - ---- - -### quad3Buffer - -• **quad3Buffer**: _number_[] - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `inColor1`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `inColor2`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `inColor3`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `inColor1`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `inColor2`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `inColor3`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `time`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueRip - -▸ **queueRip**(`planet`: Planet, `centerW`: WorldCoords, `radiusW`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :---------- | -| `planet` | Planet | -| `centerW` | WorldCoords | -| `radiusW` | _number_ | - -**Returns:** _void_ - ---- - -### queueRipScreen - -▸ **queueRipScreen**(`planet`: Planet, `center`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `radius`: _number_, `z`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------------------------------------------------------------------------ | -| `planet` | Planet | -| `center` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `radius` | _number_ | -| `z` | _number_ | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md deleted file mode 100644 index eb3e2c8e..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md +++ /dev/null @@ -1,335 +0,0 @@ -# Class: SpriteRenderer - -[Frontend/Renderers/GameRenderer/Entities/SpriteRenderer](../modules/frontend_renderers_gamerenderer_entities_spriterenderer.md).SpriteRenderer - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_SPRITE_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_spriteprogram.md#sprite_program_definition)\> - - ↳ **SpriteRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#attribmanagers) -- [flip](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#flip) -- [loaded](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#loaded) -- [manager](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#manager) -- [posBuffer](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#posbuffer) -- [program](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#program) -- [rectposBuffer](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#rectposbuffer) -- [texBuffer](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#texbuffer) -- [texIdx](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#texidx) -- [thumb](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#thumb) -- [uniformData](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#flush) -- [loadAtlas](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#loadatlas) -- [loadTexture](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#loadtexture) -- [queueArtifact](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#queueartifact) -- [queueArtifactWorld](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#queueartifactworld) -- [queueIconWorld](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#queueiconworld) -- [queueOutline](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#queueoutline) -- [queueSprite](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#queuesprite) -- [setUniforms](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new SpriteRenderer**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md), `thumb?`: _boolean_, `flip?`: _boolean_): [_SpriteRenderer_](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md) - -#### Parameters - -| Name | Type | Default value | -| :-------- | :----------------------------------------------------------------------------------- | :------------ | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - | -| `thumb` | _boolean_ | false | -| `flip` | _boolean_ | false | - -**Returns:** [_SpriteRenderer_](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `invert`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `mythic`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `shine`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `texcoord`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `texture`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### flip - -• `Private` **flip**: _boolean_ - ---- - -### loaded - -• `Private` **loaded**: _boolean_ - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### posBuffer - -• `Private` **posBuffer**: _number_[] - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### rectposBuffer - -• `Private` **rectposBuffer**: _number_[] - ---- - -### texBuffer - -• `Private` **texBuffer**: _number_[] - ---- - -### texIdx - -• `Private` **texIdx**: _number_ - ---- - -### thumb - -• `Private` **thumb**: _boolean_ - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `invert`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `mythic`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `shine`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `texcoord`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `texture`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `invert`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `mythic`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `rectPos`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `shine`: { `dim`: _number_ = 1; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `texcoord`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `texture`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### flush - -▸ **flush**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### loadAtlas - -▸ `Private` **loadAtlas**(`thumb`: _boolean_): _Promise_ - -#### Parameters - -| Name | Type | -| :------ | :-------- | -| `thumb` | _boolean_ | - -**Returns:** _Promise_ - ---- - -### loadTexture - -▸ `Private` **loadTexture**(`img`: HTMLImageElement, `texIdx`: _number_): _Promise_ - -#### Parameters - -| Name | Type | -| :------- | :--------------- | -| `img` | HTMLImageElement | -| `texIdx` | _number_ | - -**Returns:** _Promise_ - ---- - -### queueArtifact - -▸ **queueArtifact**(`artifact`: [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md), `pos`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `width?`: _number_, `alpha?`: _number_, `atFrame?`: _undefined_ \| _number_, `color?`: _undefined_ \| [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `theta?`: _undefined_ \| _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :--------- | :------------------------------------------------------------------------------------------ | :------------ | -| `artifact` | [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md) | - | -| `pos` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `width` | _number_ | 128 | -| `alpha` | _number_ | 255 | -| `atFrame` | _undefined_ \| _number_ | - | -| `color` | _undefined_ \| [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `theta` | _undefined_ \| _number_ | - | - -**Returns:** _void_ - ---- - -### queueArtifactWorld - -▸ **queueArtifactWorld**(`artifact`: [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md), `posW`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `widthW`: _number_, `alpha?`: _number_, `atFrame?`: _undefined_ \| _number_, `color?`: _undefined_ \| [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `theta?`: _undefined_ \| _number_): _void_ - -Queue artifact to worldcoords, centered - -#### Parameters - -| Name | Type | Default value | -| :--------- | :------------------------------------------------------------------------------------------ | :------------ | -| `artifact` | [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md) | - | -| `posW` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - | -| `widthW` | _number_ | - | -| `alpha` | _number_ | 255 | -| `atFrame` | _undefined_ \| _number_ | - | -| `color` | _undefined_ \| [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - | -| `theta` | _undefined_ \| _number_ | - | - -**Returns:** _void_ - ---- - -### queueIconWorld - -▸ **queueIconWorld**(`artifact`: Artifact, `topLeft`: WorldCoords, `widthW`: _number_, `maxWidth?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :--------- | :---------- | :------------ | -| `artifact` | Artifact | - | -| `topLeft` | WorldCoords | - | -| `widthW` | _number_ | - | -| `maxWidth` | _number_ | 32 | - -**Returns:** _void_ - ---- - -### queueOutline - -▸ **queueOutline**(`artifact`: [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md), `__namedParameters`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `width`: _number_, `alpha`: _number_, `theta`: _undefined_ \| _number_, `color?`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec)): _void_ - -#### Parameters - -| Name | Type | -| :------------------ | :-------------------------------------------------------------------------------------- | -| `artifact` | [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md) | -| `__namedParameters` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `width` | _number_ | -| `alpha` | _number_ | -| `theta` | _undefined_ \| _number_ | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - -**Returns:** _void_ - ---- - -### queueSprite - -▸ **queueSprite**(`artifact`: [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md), `topLeft`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `width`: _number_, `alpha`: _number_, `color?`: _undefined_ \| [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec), `atFrame?`: _undefined_ \| _number_, `theta?`: _undefined_ \| _number_): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :------------------------------------------------------------------------------------------ | -| `artifact` | [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md) | -| `topLeft` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `width` | _number_ | -| `alpha` | _number_ | -| `color` | _undefined_ \| [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `atFrame` | _undefined_ \| _number_ | -| `theta` | _undefined_ \| _number_ | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_textrenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_textrenderer.default.md deleted file mode 100644 index 5d3f6d81..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_textrenderer.default.md +++ /dev/null @@ -1,276 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/TextRenderer](../modules/frontend_renderers_gamerenderer_entities_textrenderer.md).default - -## Hierarchy - -- [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md)<_typeof_ [_TEXT_PROGRAM_DEFINITION_](../modules/frontend_renderers_gamerenderer_programs_textprogram.md#text_program_definition)\> - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_textrenderer.default.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_entities_textrenderer.default.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_entities_textrenderer.default.md#attribmanagers) -- [bufferCanvas](frontend_renderers_gamerenderer_entities_textrenderer.default.md#buffercanvas) -- [glyphData](frontend_renderers_gamerenderer_entities_textrenderer.default.md#glyphdata) -- [manager](frontend_renderers_gamerenderer_entities_textrenderer.default.md#manager) -- [program](frontend_renderers_gamerenderer_entities_textrenderer.default.md#program) -- [quad2Buffer](frontend_renderers_gamerenderer_entities_textrenderer.default.md#quad2buffer) -- [quad3Buffer](frontend_renderers_gamerenderer_entities_textrenderer.default.md#quad3buffer) -- [texIdx](frontend_renderers_gamerenderer_entities_textrenderer.default.md#texidx) -- [uniformData](frontend_renderers_gamerenderer_entities_textrenderer.default.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_entities_textrenderer.default.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_entities_textrenderer.default.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_entities_textrenderer.default.md#verts) - -### Methods - -- [createGlyphs](frontend_renderers_gamerenderer_entities_textrenderer.default.md#createglyphs) -- [flush](frontend_renderers_gamerenderer_entities_textrenderer.default.md#flush) -- [queueGlyph](frontend_renderers_gamerenderer_entities_textrenderer.default.md#queueglyph) -- [queueText](frontend_renderers_gamerenderer_entities_textrenderer.default.md#queuetext) -- [queueTextWorld](frontend_renderers_gamerenderer_entities_textrenderer.default.md#queuetextworld) -- [setTexture](frontend_renderers_gamerenderer_entities_textrenderer.default.md#settexture) -- [setUniforms](frontend_renderers_gamerenderer_entities_textrenderer.default.md#setuniforms) - -## Constructors - -### constructor - -\+ **new default**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md), `bufferCanvas`: HTMLCanvasElement): [_default_](frontend_renderers_gamerenderer_entities_textrenderer.default.md) - -#### Parameters - -| Name | Type | -| :------------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | -| `bufferCanvas` | HTMLCanvasElement | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_textrenderer.default.md) - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_<{ `attribs`: { `color`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `texcoord`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `texture`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of attrib managers, keyed by attrib name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) - ---- - -### bufferCanvas - -• **bufferCanvas**: HTMLCanvasElement - ---- - -### glyphData - -• **glyphData**: _Map_ - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) - ---- - -### quad2Buffer - -• **quad2Buffer**: _number_[] - ---- - -### quad3Buffer - -• **quad3Buffer**: _number_[] - ---- - -### texIdx - -• **texIdx**: _number_ - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_<{ `attribs`: { `color`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `texcoord`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `texture`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_<{ `attribs`: { `color`: { `dim`: _number_ = 4; `name`: _string_ ; `normalize`: _boolean_ = true; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `position`: { `dim`: _number_ = 3; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } ; `texcoord`: { `dim`: _number_ = 2; `name`: _string_ ; `normalize`: _boolean_ = false; `type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) } } ; `fragmentShader`: _string_ ; `uniforms`: { `matrix`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } ; `texture`: { `name`: _string_ ; `type`: [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) } } ; `vertexShader`: _string_ }\> - -A dictionary of uniform setters, keyed by uniform name. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -Inherited from: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md).[verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -## Methods - -### createGlyphs - -▸ `Private` **createGlyphs**(`debug?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------ | :-------- | :------------ | -| `debug` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### flush - -▸ **flush**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - ---- - -### queueGlyph - -▸ `Private` **queueGlyph**(`glyph`: _string_, `x`: _number_, `y`: _number_, `color`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec), `zIdx`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------ | :----------------------------------------------------------------------------- | -| `glyph` | _string_ | -| `x` | _number_ | -| `y` | _number_ | -| `color` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | -| `zIdx` | _number_ | - -**Returns:** _void_ - ---- - -### queueText - -▸ **queueText**(`text`: _string_, `__namedParameters`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `color`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec), `align?`: [_TextAlign_](../enums/frontend_renderers_gamerenderer_enginetypes.textalign.md), `anchor?`: [_TextAnchor_](../enums/frontend_renderers_gamerenderer_enginetypes.textanchor.md), `zIdx?`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------------------ | :--------------------------------------------------------------------------------- | -| `text` | _string_ | -| `__namedParameters` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `color` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | -| `align` | [_TextAlign_](../enums/frontend_renderers_gamerenderer_enginetypes.textalign.md) | -| `anchor` | [_TextAnchor_](../enums/frontend_renderers_gamerenderer_enginetypes.textanchor.md) | -| `zIdx` | _number_ | - -**Returns:** _void_ - ---- - -### queueTextWorld - -▸ **queueTextWorld**(`text`: _string_, `coords`: WorldCoords, `color?`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec), `offY?`: _number_, `align?`: [_TextAlign_](../enums/frontend_renderers_gamerenderer_enginetypes.textalign.md), `anchor?`: [_TextAnchor_](../enums/frontend_renderers_gamerenderer_enginetypes.textanchor.md), `zIdx?`: _number_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :--------------------------------------------------------------------------------- | :------------ | -| `text` | _string_ | - | -| `coords` | WorldCoords | - | -| `color` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | - | -| `offY` | _number_ | 0 | -| `align` | [_TextAlign_](../enums/frontend_renderers_gamerenderer_enginetypes.textalign.md) | - | -| `anchor` | [_TextAnchor_](../enums/frontend_renderers_gamerenderer_enginetypes.textanchor.md) | - | -| `zIdx` | _number_ | - | - -**Returns:** _void_ - ---- - -### setTexture - -▸ `Private` **setTexture**(`texIdx`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------- | -| `texIdx` | _number_ | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -**Returns:** _void_ - -Overrides: [GenericRenderer](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_voyagerenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_entities_voyagerenderer.default.md deleted file mode 100644 index a6da28f2..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_voyagerenderer.default.md +++ /dev/null @@ -1,78 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Entities/VoyageRenderer](../modules/frontend_renderers_gamerenderer_entities_voyagerenderer.md).default - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_voyagerenderer.default.md#constructor) - -### Properties - -- [renderer](frontend_renderers_gamerenderer_entities_voyagerenderer.default.md#renderer) - -### Methods - -- [drawFleet](frontend_renderers_gamerenderer_entities_voyagerenderer.default.md#drawfleet) -- [drawVoyagePath](frontend_renderers_gamerenderer_entities_voyagerenderer.default.md#drawvoyagepath) -- [queueVoyages](frontend_renderers_gamerenderer_entities_voyagerenderer.default.md#queuevoyages) - -## Constructors - -### constructor - -\+ **new default**(`renderer`: [_default_](frontend_renderers_gamerenderer_renderer.default.md)): [_default_](frontend_renderers_gamerenderer_entities_voyagerenderer.default.md) - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------------------------- | -| `renderer` | [_default_](frontend_renderers_gamerenderer_renderer.default.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_entities_voyagerenderer.default.md) - -## Properties - -### renderer - -• **renderer**: [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -## Methods - -### drawFleet - -▸ **drawFleet**(`voyage`: QueuedArrival): _void_ - -#### Parameters - -| Name | Type | -| :------- | :------------ | -| `voyage` | QueuedArrival | - -**Returns:** _void_ - ---- - -### drawVoyagePath - -▸ `Private` **drawVoyagePath**(`from`: LocationId, `to`: LocationId, `confirmed`: _boolean_, `isMyVoyage`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `from` | LocationId | -| `to` | LocationId | -| `confirmed` | _boolean_ | -| `isMyVoyage` | _boolean_ | - -**Returns:** _void_ - ---- - -### queueVoyages - -▸ **queueVoyages**(): _void_ - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md b/docs/classes/frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md deleted file mode 100644 index 65d962d6..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md +++ /dev/null @@ -1,62 +0,0 @@ -# Class: WormholeRenderer - -[Frontend/Renderers/GameRenderer/Entities/WormholeRenderer](../modules/frontend_renderers_gamerenderer_entities_wormholerenderer.md).WormholeRenderer - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md#constructor) - -### Properties - -- [renderer](frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md#renderer) - -### Methods - -- [drawVoyagePath](frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md#drawvoyagepath) -- [queueWormholes](frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md#queuewormholes) - -## Constructors - -### constructor - -\+ **new WormholeRenderer**(`renderer`: [_default_](frontend_renderers_gamerenderer_renderer.default.md)): [_WormholeRenderer_](frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md) - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------------------------- | -| `renderer` | [_default_](frontend_renderers_gamerenderer_renderer.default.md) | - -**Returns:** [_WormholeRenderer_](frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md) - -## Properties - -### renderer - -• **renderer**: [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -## Methods - -### drawVoyagePath - -▸ `Private` **drawVoyagePath**(`from`: LocationId, `to`: LocationId, `confirmed`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :--------- | -| `from` | LocationId | -| `to` | LocationId | -| `confirmed` | _boolean_ | - -**Returns:** _void_ - ---- - -### queueWormholes - -▸ **queueWormholes**(): _void_ - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_overlay2drenderer.default.md b/docs/classes/frontend_renderers_gamerenderer_overlay2drenderer.default.md deleted file mode 100644 index 417d99f1..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_overlay2drenderer.default.md +++ /dev/null @@ -1,276 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Overlay2DRenderer](../modules/frontend_renderers_gamerenderer_overlay2drenderer.md).default - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_overlay2drenderer.default.md#constructor) - -### Properties - -- [canvas](frontend_renderers_gamerenderer_overlay2drenderer.default.md#canvas) -- [ctx](frontend_renderers_gamerenderer_overlay2drenderer.default.md#ctx) -- [renderer](frontend_renderers_gamerenderer_overlay2drenderer.default.md#renderer) - -### Methods - -- [clear](frontend_renderers_gamerenderer_overlay2drenderer.default.md#clear) -- [drawArcWorld](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawarcworld) -- [drawArtifactAroundPlanet](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawartifactaroundplanet) -- [drawArtifactIcon](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawartifacticon) -- [drawChunk](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawchunk) -- [drawEmojiMessage](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawemojimessage) -- [drawHat](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawhat) -- [drawLine](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawline) -- [drawLoopWorld](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawloopworld) -- [drawMiner](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawminer) -- [drawPlanetMessages](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawplanetmessages) -- [drawRectStrokeAtCenterWorld](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawrectstrokeatcenterworld) -- [drawText](frontend_renderers_gamerenderer_overlay2drenderer.default.md#drawtext) - -## Constructors - -### constructor - -\+ **new default**(`engine`: [_default_](frontend_renderers_gamerenderer_renderer.default.md), `canvas`: HTMLCanvasElement): [_default_](frontend_renderers_gamerenderer_overlay2drenderer.default.md) - -#### Parameters - -| Name | Type | -| :------- | :--------------------------------------------------------------- | -| `engine` | [_default_](frontend_renderers_gamerenderer_renderer.default.md) | -| `canvas` | HTMLCanvasElement | - -**Returns:** [_default_](frontend_renderers_gamerenderer_overlay2drenderer.default.md) - -## Properties - -### canvas - -• **canvas**: HTMLCanvasElement - ---- - -### ctx - -• **ctx**: CanvasRenderingContext2D - ---- - -### renderer - -• **renderer**: [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -## Methods - -### clear - -▸ **clear**(): _void_ - -**Returns:** _void_ - ---- - -### drawArcWorld - -▸ **drawArcWorld**(`center`: WorldCoords, `radius`: _number_, `width`: _number_, `percent`: _number_, `color?`: _string_, `dotted?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :---------- | :------------ | -| `center` | WorldCoords | - | -| `radius` | _number_ | - | -| `width` | _number_ | - | -| `percent` | _number_ | - | -| `color` | _string_ | 'white' | -| `dotted` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### drawArtifactAroundPlanet - -▸ **drawArtifactAroundPlanet**(`artifact`: Artifact, `coords`: [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `size`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :------------------------------------------------------------------------ | -| `artifact` | Artifact | -| `coords` | [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `size` | _number_ | - -**Returns:** _void_ - ---- - -### drawArtifactIcon - -▸ **drawArtifactIcon**(`glassLoc`: WorldCoords, `scale`: _number_, `color?`: _string_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :--------- | :---------- | :------------ | -| `glassLoc` | WorldCoords | - | -| `scale` | _number_ | - | -| `color` | _string_ | 'white' | - -**Returns:** _void_ - ---- - -### drawChunk - -▸ **drawChunk**(`chunk`: [_Chunk_](_types_global_globaltypes.chunk.md)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------------- | -| `chunk` | [_Chunk_](_types_global_globaltypes.chunk.md) | - -**Returns:** _void_ - ---- - -### drawEmojiMessage - -▸ **drawEmojiMessage**(`centerWorld`: WorldCoords, `radiusWorld`: _number_, `renderInfo`: [_PlanetRenderInfo_](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md), `message`: _PlanetMessage_, `textAlpha`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------------ | :----------------------------------------------------------------------------------------- | -| `centerWorld` | WorldCoords | -| `radiusWorld` | _number_ | -| `renderInfo` | [_PlanetRenderInfo_](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md) | -| `message` | _PlanetMessage_ | -| `textAlpha` | _number_ | - -**Returns:** _void_ - ---- - -### drawHat - -▸ **drawHat**(`hatType`: [_HatType_](../enums/frontend_utils_hats.hattype.md), `pathHeight`: _number_, `pathWidth`: _number_, `center`: WorldCoords, `width`: _number_, `height`: _number_, `radius`: _number_, `rotation`: _number_, `fill1?`: _string_ \| CanvasPattern, `fill2?`: _string_ \| CanvasPattern, `hoverCoords?`: `null` \| WorldCoords): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------------ | :--------------------------------------------------- | :------------ | -| `hatType` | [_HatType_](../enums/frontend_utils_hats.hattype.md) | - | -| `pathHeight` | _number_ | - | -| `pathWidth` | _number_ | - | -| `center` | WorldCoords | - | -| `width` | _number_ | - | -| `height` | _number_ | - | -| `radius` | _number_ | - | -| `rotation` | _number_ | - | -| `fill1` | _string_ \| CanvasPattern | 'white' | -| `fill2` | _string_ \| CanvasPattern | 'red' | -| `hoverCoords` | `null` \| WorldCoords | null | - -**Returns:** _void_ - ---- - -### drawLine - -▸ **drawLine**(`startCoords`: WorldCoords, `endCoords`: WorldCoords, `lineWidth`: _number_, `color?`: _string_, `dotted?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------------ | :---------- | :------------ | -| `startCoords` | WorldCoords | - | -| `endCoords` | WorldCoords | - | -| `lineWidth` | _number_ | - | -| `color` | _string_ | 'white' | -| `dotted` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### drawLoopWorld - -▸ **drawLoopWorld**(`center`: WorldCoords, `radius`: _number_, `width`: _number_, `color?`: _string_, `dotted?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------- | :---------- | :------------ | -| `center` | WorldCoords | - | -| `radius` | _number_ | - | -| `width` | _number_ | - | -| `color` | _string_ | 'white' | -| `dotted` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### drawMiner - -▸ **drawMiner**(): _void_ - -**Returns:** _void_ - ---- - -### drawPlanetMessages - -▸ **drawPlanetMessages**(`centerWorld`: WorldCoords, `radiusWorld`: _number_, `renderInfo`: [_PlanetRenderInfo_](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md), `textAlpha`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------------ | :----------------------------------------------------------------------------------------- | -| `centerWorld` | WorldCoords | -| `radiusWorld` | _number_ | -| `renderInfo` | [_PlanetRenderInfo_](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md) | -| `textAlpha` | _number_ | - -**Returns:** _void_ - ---- - -### drawRectStrokeAtCenterWorld - -▸ **drawRectStrokeAtCenterWorld**(`center`: WorldCoords, `width`: _number_, `height`: _number_, `strokeWidth`: _number_, `color?`: _string_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------------ | :---------- | :------------ | -| `center` | WorldCoords | - | -| `width` | _number_ | - | -| `height` | _number_ | - | -| `strokeWidth` | _number_ | - | -| `color` | _string_ | 'white' | - -**Returns:** _void_ - ---- - -### drawText - -▸ **drawText**(`text`: _string_, `x`: _number_, `y`: _number_, `color?`: _string_, `align?`: [_TextAlign_](../enums/frontend_renderers_gamerenderer_enginetypes.textalign.md)): _void_ - -#### Parameters - -| Name | Type | Default value | -| :------ | :------------------------------------------------------------------------------- | :------------ | -| `text` | _string_ | - | -| `x` | _number_ | - | -| `y` | _number_ | - | -| `color` | _string_ | 'white' | -| `align` | [_TextAlign_](../enums/frontend_renderers_gamerenderer_enginetypes.textalign.md) | - | - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_renderer.default.md b/docs/classes/frontend_renderers_gamerenderer_renderer.default.md deleted file mode 100644 index 96bfceee..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_renderer.default.md +++ /dev/null @@ -1,311 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/Renderer](../modules/frontend_renderers_gamerenderer_renderer.md).default - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_renderer.default.md#constructor) - -### Properties - -- [asteroidRenderer](frontend_renderers_gamerenderer_renderer.default.md#asteroidrenderer) -- [beltRenderer](frontend_renderers_gamerenderer_renderer.default.md#beltrenderer) -- [bgRenderer](frontend_renderers_gamerenderer_renderer.default.md#bgrenderer) -- [blackDomainRenderer](frontend_renderers_gamerenderer_renderer.default.md#blackdomainrenderer) -- [bufferCanvas](frontend_renderers_gamerenderer_renderer.default.md#buffercanvas) -- [canvas](frontend_renderers_gamerenderer_renderer.default.md#canvas) -- [circleRenderer](frontend_renderers_gamerenderer_renderer.default.md#circlerenderer) -- [frameCount](frontend_renderers_gamerenderer_renderer.default.md#framecount) -- [frameRequestId](frontend_renderers_gamerenderer_renderer.default.md#framerequestid) -- [gameUIManager](frontend_renderers_gamerenderer_renderer.default.md#gameuimanager) -- [glCanvas](frontend_renderers_gamerenderer_renderer.default.md#glcanvas) -- [glManager](frontend_renderers_gamerenderer_renderer.default.md#glmanager) -- [lineRenderer](frontend_renderers_gamerenderer_renderer.default.md#linerenderer) -- [mineRenderer](frontend_renderers_gamerenderer_renderer.default.md#minerenderer) -- [now](frontend_renderers_gamerenderer_renderer.default.md#now) -- [overlay2dRenderer](frontend_renderers_gamerenderer_renderer.default.md#overlay2drenderer) -- [planetRenderManager](frontend_renderers_gamerenderer_renderer.default.md#planetrendermanager) -- [planetRenderer](frontend_renderers_gamerenderer_renderer.default.md#planetrenderer) -- [previousRenderTimestamp](frontend_renderers_gamerenderer_renderer.default.md#previousrendertimestamp) -- [quasarRenderer](frontend_renderers_gamerenderer_renderer.default.md#quasarrenderer) -- [rectRenderer](frontend_renderers_gamerenderer_renderer.default.md#rectrenderer) -- [ringRenderer](frontend_renderers_gamerenderer_renderer.default.md#ringrenderer) -- [ruinsRenderer](frontend_renderers_gamerenderer_renderer.default.md#ruinsrenderer) -- [spacetimeRipRenderer](frontend_renderers_gamerenderer_renderer.default.md#spacetimeriprenderer) -- [spriteRenderer](frontend_renderers_gamerenderer_renderer.default.md#spriterenderer) -- [textRenderer](frontend_renderers_gamerenderer_renderer.default.md#textrenderer) -- [uiRenderManager](frontend_renderers_gamerenderer_renderer.default.md#uirendermanager) -- [voyageRenderManager](frontend_renderers_gamerenderer_renderer.default.md#voyagerendermanager) -- [wormholeRenderManager](frontend_renderers_gamerenderer_renderer.default.md#wormholerendermanager) -- [instance](frontend_renderers_gamerenderer_renderer.default.md#instance) - -### Methods - -- [draw](frontend_renderers_gamerenderer_renderer.default.md#draw) -- [loop](frontend_renderers_gamerenderer_renderer.default.md#loop) -- [recordRender](frontend_renderers_gamerenderer_renderer.default.md#recordrender) -- [setup](frontend_renderers_gamerenderer_renderer.default.md#setup) -- [destroy](frontend_renderers_gamerenderer_renderer.default.md#destroy) -- [initialize](frontend_renderers_gamerenderer_renderer.default.md#initialize) - -## Constructors - -### constructor - -\+ `Private` **new default**(`canvas`: HTMLCanvasElement, `glCanvas`: HTMLCanvasElement, `bufferCanvas`: HTMLCanvasElement, `gameUIManager`: [_default_](backend_gamelogic_gameuimanager.default.md)): [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------ | -| `canvas` | HTMLCanvasElement | -| `glCanvas` | HTMLCanvasElement | -| `bufferCanvas` | HTMLCanvasElement | -| `gameUIManager` | [_default_](backend_gamelogic_gameuimanager.default.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -## Properties - -### asteroidRenderer - -• **asteroidRenderer**: [_default_](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md) - ---- - -### beltRenderer - -• **beltRenderer**: [_default_](frontend_renderers_gamerenderer_entities_beltrenderer.default.md) - ---- - -### bgRenderer - -• **bgRenderer**: [_default_](frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md) - ---- - -### blackDomainRenderer - -• **blackDomainRenderer**: [_default_](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md) - ---- - -### bufferCanvas - -• **bufferCanvas**: HTMLCanvasElement - ---- - -### canvas - -• **canvas**: HTMLCanvasElement - ---- - -### circleRenderer - -• **circleRenderer**: [_default_](frontend_renderers_gamerenderer_entities_circlerenderer.default.md) - ---- - -### frameCount - -• **frameCount**: _number_ - ---- - -### frameRequestId - -• **frameRequestId**: _number_ - ---- - -### gameUIManager - -• **gameUIManager**: [_default_](backend_gamelogic_gameuimanager.default.md) - ---- - -### glCanvas - -• **glCanvas**: HTMLCanvasElement - ---- - -### glManager - -• **glManager**: [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) - ---- - -### lineRenderer - -• **lineRenderer**: [_default_](frontend_renderers_gamerenderer_entities_linerenderer.default.md) - ---- - -### mineRenderer - -• **mineRenderer**: [_MineRenderer_](frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md) - ---- - -### now - -• **now**: _number_ - ---- - -### overlay2dRenderer - -• **overlay2dRenderer**: [_default_](frontend_renderers_gamerenderer_overlay2drenderer.default.md) - ---- - -### planetRenderManager - -• **planetRenderManager**: [_default_](frontend_renderers_gamerenderer_entities_planetrendermanager.default.md) - ---- - -### planetRenderer - -• **planetRenderer**: [_default_](frontend_renderers_gamerenderer_entities_planetrenderer.default.md) - ---- - -### previousRenderTimestamp - -• `Private` **previousRenderTimestamp**: _number_ - ---- - -### quasarRenderer - -• **quasarRenderer**: [_QuasarRenderer_](frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md) - ---- - -### rectRenderer - -• **rectRenderer**: [_default_](frontend_renderers_gamerenderer_entities_rectrenderer.default.md) - ---- - -### ringRenderer - -• **ringRenderer**: [_default_](frontend_renderers_gamerenderer_entities_ringrenderer.default.md) - ---- - -### ruinsRenderer - -• **ruinsRenderer**: [_RuinsRenderer_](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md) - ---- - -### spacetimeRipRenderer - -• **spacetimeRipRenderer**: [_SpacetimeRipRenderer_](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md) - ---- - -### spriteRenderer - -• **spriteRenderer**: [_SpriteRenderer_](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md) - ---- - -### textRenderer - -• **textRenderer**: [_default_](frontend_renderers_gamerenderer_entities_textrenderer.default.md) - ---- - -### uiRenderManager - -• **uiRenderManager**: [_UIRenderer_](frontend_renderers_gamerenderer_uirenderer.uirenderer.md) - ---- - -### voyageRenderManager - -• **voyageRenderManager**: [_default_](frontend_renderers_gamerenderer_entities_voyagerenderer.default.md) - ---- - -### wormholeRenderManager - -• **wormholeRenderManager**: [_WormholeRenderer_](frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md) - ---- - -### instance - -▪ `Static` **instance**: `null` \| [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -## Methods - -### draw - -▸ `Private` **draw**(): _void_ - -**Returns:** _void_ - ---- - -### loop - -▸ `Private` **loop**(): _void_ - -**Returns:** _void_ - ---- - -### recordRender - -▸ `Private` **recordRender**(`now`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :---- | :------- | -| `now` | _number_ | - -**Returns:** _void_ - ---- - -### setup - -▸ `Private` **setup**(): _void_ - -**Returns:** _void_ - ---- - -### destroy - -▸ `Static` **destroy**(): _void_ - -**Returns:** _void_ - ---- - -### initialize - -▸ `Static` **initialize**(`canvas`: HTMLCanvasElement, `glCanvas`: HTMLCanvasElement, `bufferCanvas`: HTMLCanvasElement, `gameUIManager`: [_default_](backend_gamelogic_gameuimanager.default.md)): [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------ | -| `canvas` | HTMLCanvasElement | -| `glCanvas` | HTMLCanvasElement | -| `bufferCanvas` | HTMLCanvasElement | -| `gameUIManager` | [_default_](backend_gamelogic_gameuimanager.default.md) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_renderer.default.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_uirenderer.uirenderer.md b/docs/classes/frontend_renderers_gamerenderer_uirenderer.uirenderer.md deleted file mode 100644 index b4160036..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_uirenderer.uirenderer.md +++ /dev/null @@ -1,107 +0,0 @@ -# Class: UIRenderer - -[Frontend/Renderers/GameRenderer/UIRenderer](../modules/frontend_renderers_gamerenderer_uirenderer.md).UIRenderer - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_uirenderer.uirenderer.md#constructor) - -### Properties - -- [renderer](frontend_renderers_gamerenderer_uirenderer.uirenderer.md#renderer) - -### Methods - -- [drawMiner](frontend_renderers_gamerenderer_uirenderer.uirenderer.md#drawminer) -- [queueBorders](frontend_renderers_gamerenderer_uirenderer.uirenderer.md#queueborders) -- [queueHoveringRect](frontend_renderers_gamerenderer_uirenderer.uirenderer.md#queuehoveringrect) -- [queueMousePath](frontend_renderers_gamerenderer_uirenderer.uirenderer.md#queuemousepath) -- [queueRectAtPlanet](frontend_renderers_gamerenderer_uirenderer.uirenderer.md#queuerectatplanet) -- [queueSelectedRangeRing](frontend_renderers_gamerenderer_uirenderer.uirenderer.md#queueselectedrangering) -- [queueSelectedRect](frontend_renderers_gamerenderer_uirenderer.uirenderer.md#queueselectedrect) - -## Constructors - -### constructor - -\+ **new UIRenderer**(`renderer`: [_default_](frontend_renderers_gamerenderer_renderer.default.md)): [_UIRenderer_](frontend_renderers_gamerenderer_uirenderer.uirenderer.md) - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------------------------- | -| `renderer` | [_default_](frontend_renderers_gamerenderer_renderer.default.md) | - -**Returns:** [_UIRenderer_](frontend_renderers_gamerenderer_uirenderer.uirenderer.md) - -## Properties - -### renderer - -• **renderer**: [_default_](frontend_renderers_gamerenderer_renderer.default.md) - -## Methods - -### drawMiner - -▸ **drawMiner**(): _void_ - -**Returns:** _void_ - ---- - -### queueBorders - -▸ **queueBorders**(): _void_ - -**Returns:** _void_ - ---- - -### queueHoveringRect - -▸ **queueHoveringRect**(): _void_ - -**Returns:** _void_ - ---- - -### queueMousePath - -▸ **queueMousePath**(): _void_ - -**Returns:** _void_ - ---- - -### queueRectAtPlanet - -▸ `Private` **queueRectAtPlanet**(`planet`: Planet, `coords`: WorldCoords, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec)): _void_ - -#### Parameters - -| Name | Type | -| :------- | :--------------------------------------------------------------------------- | -| `planet` | Planet | -| `coords` | WorldCoords | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - -**Returns:** _void_ - ---- - -### queueSelectedRangeRing - -▸ **queueSelectedRangeRing**(): _void_ - -**Returns:** _void_ - ---- - -### queueSelectedRect - -▸ **queueSelectedRect**(): _void_ - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md b/docs/classes/frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md deleted file mode 100644 index 783a8610..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md +++ /dev/null @@ -1,101 +0,0 @@ -# Class: AttribArray - -[Frontend/Renderers/GameRenderer/WebGL/AttribArray](../modules/frontend_renderers_gamerenderer_webgl_attribarray.md).AttribArray - -Helper class - essentially an implementation of ArrayList from Java, but using -typed JS Arrays so that we can efficiently write our WebGL data without converting. - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md#constructor) - -### Properties - -- [array](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md#array) -- [size](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md#size) -- [type](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md#type) - -### Methods - -- [createArray](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md#createarray) -- [doubleLen](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md#doublelen) -- [set](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md#set) - -## Constructors - -### constructor - -\+ **new AttribArray**(`type`: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md), `startSize?`: _number_): [_AttribArray_](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md) - -#### Parameters - -| Name | Type | Default value | -| :---------- | :--------------------------------------------------------------------------------- | :------------ | -| `type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | - | -| `startSize` | _number_ | 4 | - -**Returns:** [_AttribArray_](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md) - -## Properties - -### array - -• **array**: [_GLArray_](../modules/frontend_renderers_gamerenderer_webgl_attribarray.md#glarray) - -A typed array, representing the data in this array. - ---- - -### size - -• `Private` **size**: _number_ - -The number of bytes per data entry in this array. - ---- - -### type - -• `Private` **type**: [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) - -The WebGL data type that this array represents. - -## Methods - -### createArray - -▸ `Private` **createArray**(): _void_ - -Initialize a new blank array of size this.size. - -**Returns:** _void_ - ---- - -### doubleLen - -▸ `Private` **doubleLen**(): _void_ - -Initialize a new array of 2x the length, and copy in the old data. - -**Returns:** _void_ - ---- - -### set - -▸ **set**(`els`: _ArrayLike_, `idx`: _number_): _void_ - -Copy in an array of data starting at an index. Writing past the maximum -array length will trigger doubleLen(). - -#### Parameters - -| Name | Type | Description | -| :---- | :------------------- | :--------------------------- | -| `els` | _ArrayLike_ | The array of data to copy. | -| `idx` | _number_ | The array index to start at. | - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_webgl_attribmanager.default.md b/docs/classes/frontend_renderers_gamerenderer_webgl_attribmanager.default.md deleted file mode 100644 index 754863a0..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_webgl_attribmanager.default.md +++ /dev/null @@ -1,122 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/WebGL/AttribManager](../modules/frontend_renderers_gamerenderer_webgl_attribmanager.md).default - -Responsible for queuing data about a webgl attribute and then writing to it. -Does this by maintaining a persistent AttribArray and WebGLBuffer reference, -and then calling bufferData on n vertices at a time. Allows us to upload -whole arrays of objects at once, providing speed boost. - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_webgl_attribmanager.default.md#constructor) - -### Properties - -- [attribArray](frontend_renderers_gamerenderer_webgl_attribmanager.default.md#attribarray) -- [buffer](frontend_renderers_gamerenderer_webgl_attribmanager.default.md#buffer) -- [gl](frontend_renderers_gamerenderer_webgl_attribmanager.default.md#gl) -- [loc](frontend_renderers_gamerenderer_webgl_attribmanager.default.md#loc) -- [props](frontend_renderers_gamerenderer_webgl_attribmanager.default.md#props) - -### Methods - -- [bufferData](frontend_renderers_gamerenderer_webgl_attribmanager.default.md#bufferdata) -- [setVertex](frontend_renderers_gamerenderer_webgl_attribmanager.default.md#setvertex) - -## Constructors - -### constructor - -\+ **new default**(`gl`: WebGL2RenderingContext, `program`: WebGLProgram, `props`: [_AttribProps_](../modules/frontend_renderers_gamerenderer_enginetypes.md#attribprops), `enable?`: _boolean_): [_default_](frontend_renderers_gamerenderer_webgl_attribmanager.default.md) - -For a given attribute on a program on a context, create an AttribManager. - -#### Parameters - -| Name | Type | Default value | Description | -| :-------- | :------------------------------------------------------------------------------------- | :------------ | :---------------------------------------------------------------- | -| `gl` | WebGL2RenderingContext | - | The WebGL context to generate this attrib on. | -| `program` | WebGLProgram | - | The program corresponding to this attrib. | -| `props` | [_AttribProps_](../modules/frontend_renderers_gamerenderer_enginetypes.md#attribprops) | - | An AttribProps object, containing the attrib name and other info. | -| `enable` | _boolean_ | true | Should we call gl.enableVertexAttribArray? (default true) | - -**Returns:** [_default_](frontend_renderers_gamerenderer_webgl_attribmanager.default.md) - -## Properties - -### attribArray - -• `Private` **attribArray**: [_AttribArray_](frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md) - -An internally managed AttribArray, which is a typed mutable array. - ---- - -### buffer - -• `Private` **buffer**: WebGLBuffer - -The WebGLBuffer associated with this attribute. - ---- - -### gl - -• `Private` **gl**: WebGL2RenderingContext - -The WebGL rendering context. - ---- - -### loc - -• `Private` **loc**: _number_ - -Attrib loc, returned by gl.getAttribLocation(). - ---- - -### props - -• `Private` **props**: [_AttribProps_](../modules/frontend_renderers_gamerenderer_enginetypes.md#attribprops) - -AttribProps object for this attribute, containing name, dimension, and more. - -## Methods - -### bufferData - -▸ **bufferData**(`n`: _number_): _void_ - -Send vertices [0, n - 1] through the buffer - bufferData(1) will send one vertex (only vertex #0) - -#### Parameters - -| Name | Type | Description | -| :--- | :------- | :------------------------------------------------- | -| `n` | _number_ | The number of vertices to send through the buffer. | - -**Returns:** _void_ - ---- - -### setVertex - -▸ **setVertex**(`els`: _number_[], `idx`: _number_): _void_ - -Set vertices starting from vertex #idx - writing to vertex #0 will write to the first vertex. - -Note that you can write multiple vertices at once - if you write a 6-long array into a 2D -attribute at vertex 0, you will write 3 vertices at once. - -#### Parameters - -| Name | Type | Description | -| :---- | :--------- | :----------------------------------- | -| `els` | _number_[] | The data to write into the vertices. | -| `idx` | _number_ | The starting vertex # to write to. | - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md b/docs/classes/frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md deleted file mode 100644 index 024b687a..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md +++ /dev/null @@ -1,119 +0,0 @@ -# Class: GameGLManager - -[Frontend/Renderers/GameRenderer/WebGL/GameGLManager](../modules/frontend_renderers_gamerenderer_webgl_gameglmanager.md).GameGLManager - -## Hierarchy - -- [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - - ↳ **GameGLManager** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#constructor) - -### Properties - -- [canvas](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#canvas) -- [gl](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#gl) -- [isHighPerf](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#ishighperf) -- [projectionMatrix](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#projectionmatrix) -- [renderer](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#renderer) -- [stencil](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#stencil) - -### Methods - -- [clear](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#clear) -- [getTexIdx](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#gettexidx) -- [setProjectionMatrix](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md#setprojectionmatrix) - -## Constructors - -### constructor - -\+ **new GameGLManager**(`engine`: [_default_](frontend_renderers_gamerenderer_renderer.default.md), `glCanvas`: HTMLCanvasElement): [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------------------------- | -| `engine` | [_default_](frontend_renderers_gamerenderer_renderer.default.md) | -| `glCanvas` | HTMLCanvasElement | - -**Returns:** [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -## Properties - -### canvas - -• **canvas**: HTMLCanvasElement - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[canvas](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#canvas) - ---- - -### gl - -• **gl**: WebGL2RenderingContext - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[gl](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#gl) - ---- - -### isHighPerf - -• **isHighPerf**: _boolean_ - ---- - -### projectionMatrix - -• **projectionMatrix**: mat4 - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[projectionMatrix](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#projectionmatrix) - ---- - -### renderer - -• **renderer**: [_default_](frontend_renderers_gamerenderer_renderer.default.md) - ---- - -### stencil - -• **stencil**: _boolean_ - -## Methods - -### clear - -▸ **clear**(): _void_ - -**Returns:** _void_ - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### getTexIdx - -▸ **getTexIdx**(): _number_ - -**Returns:** _number_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### setProjectionMatrix - -▸ **setProjectionMatrix**(): _void_ - -**Returns:** _void_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) diff --git a/docs/classes/frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md b/docs/classes/frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md deleted file mode 100644 index 117452ed..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md +++ /dev/null @@ -1,193 +0,0 @@ -# Class: GenericRenderer - -[Frontend/Renderers/GameRenderer/WebGL/GenericRenderer](../modules/frontend_renderers_gamerenderer_webgl_genericrenderer.md).GenericRenderer - -Takes in a gl context, program sources (frag and vert shader), -and data about attribs / uniforms and provides: - -- attrib managers -- uniform setters -- skeleton code for rendering in our engine via `flush()` - -## Type parameters - -| Name | Type | -| :--- | :---------------------- | -| `T` | EngineProgramDefinition | - -## Hierarchy - -- **GenericRenderer** - - ↳ [_default_](frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md) - - ↳ [_default_](frontend_renderers_gamerenderer_entities_beltrenderer.default.md) - - ↳ [_default_](frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md) - - ↳ [_default_](frontend_renderers_gamerenderer_entities_circlerenderer.default.md) - - ↳ [_default_](frontend_renderers_gamerenderer_entities_linerenderer.default.md) - - ↳ [_default_](frontend_renderers_gamerenderer_entities_maskrenderer.default.md) - - ↳ [_MineBodyRenderer_](frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md) - - ↳ [_PerlinRenderer_](frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md) - - ↳ [_default_](frontend_renderers_gamerenderer_entities_planetrenderer.default.md) - - ↳ [_QuasarBodyRenderer_](frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md) - - ↳ [_QuasarRayRenderer_](frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md) - - ↳ [_default_](frontend_renderers_gamerenderer_entities_rectrenderer.default.md) - - ↳ [_default_](frontend_renderers_gamerenderer_entities_ringrenderer.default.md) - - ↳ [_RuinsRenderer_](frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md) - - ↳ [_SpacetimeRipRenderer_](frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md) - - ↳ [_SpriteRenderer_](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md) - - ↳ [_default_](frontend_renderers_gamerenderer_entities_textrenderer.default.md) - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#constructor) - -### Properties - -- [attribData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribdata) -- [attribManagers](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#attribmanagers) -- [manager](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#manager) -- [program](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#program) -- [uniformData](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformdata) -- [uniformLocs](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformlocs) -- [uniformSetters](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#uniformsetters) -- [verts](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#verts) - -### Methods - -- [flush](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#flush) -- [setUniforms](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md#setuniforms) - -## Constructors - -### constructor - -\+ **new GenericRenderer**(`glManager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md), `programData`: T): [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -Create a renderer from a WebGLManager and program data. - -#### Type parameters - -| Name | Type | -| :--- | :---------------------- | -| `T` | EngineProgramDefinition | - -#### Parameters - -| Name | Type | Description | -| :------------ | :----------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| `glManager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | WebGLManager which holds context for rendering this program. | -| `programData` | T | ProgramData describing this program. | - -**Returns:** [_GenericRenderer_](frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) - -## Properties - -### attribData - -• **attribData**: AttribData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - ---- - -### attribManagers - -• **attribManagers**: _AttribManagers_ - -A dictionary of attrib managers, keyed by attrib name. - ---- - -### manager - -• **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -WebGLManager corresponding to this program. - ---- - -### program - -• **program**: WebGLProgram - -The program corresponding to this renderer. - ---- - -### uniformData - -• **uniformData**: UniformData - -Uniform data for this program. Typically not used after construction. -Kept for use in inherited classes. - ---- - -### uniformLocs - -• **uniformLocs**: _UniformLocs_ - -Uniform locs for this program. Typically not referenced directly, -but rather through generated uniformSetters. Kept for use in inherited classes. - ---- - -### uniformSetters - -• **uniformSetters**: _UniformSetters_ - -A dictionary of uniform setters, keyed by uniform name. - ---- - -### verts - -• **verts**: _number_ - -The number of queued vertices so far. Used for batch rendering. - -## Methods - -### flush - -▸ **flush**(`drawMode?`: [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md)): _void_ - -Draw all buffered vertices to the screen. - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------- | -| `drawMode` | [_DrawMode_](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) | The drawing mode for the buffered vertices. Default: Triangles. | - -**Returns:** _void_ - ---- - -### setUniforms - -▸ **setUniforms**(): _void_ - -Run by flush(). Override this in child classes. Programs with uniformss -should always override this. - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gamerenderer_webgl_programutils.default.md b/docs/classes/frontend_renderers_gamerenderer_webgl_programutils.default.md deleted file mode 100644 index 5b0e392d..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_webgl_programutils.default.md +++ /dev/null @@ -1,71 +0,0 @@ -# Class: default - -[Frontend/Renderers/GameRenderer/WebGL/ProgramUtils](../modules/frontend_renderers_gamerenderer_webgl_programutils.md).default - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_webgl_programutils.default.md#constructor) - -### Methods - -- [createProgram](frontend_renderers_gamerenderer_webgl_programutils.default.md#createprogram) -- [createShader](frontend_renderers_gamerenderer_webgl_programutils.default.md#createshader) -- [programFromSources](frontend_renderers_gamerenderer_webgl_programutils.default.md#programfromsources) - -## Constructors - -### constructor - -\+ **new default**(): [_default_](frontend_renderers_gamerenderer_webgl_programutils.default.md) - -**Returns:** [_default_](frontend_renderers_gamerenderer_webgl_programutils.default.md) - -## Methods - -### createProgram - -▸ `Static` **createProgram**(`gl`: WebGL2RenderingContext, `vertexShader`: WebGLShader, `fragShader`: WebGLShader): `null` \| WebGLProgram - -#### Parameters - -| Name | Type | -| :------------- | :--------------------- | -| `gl` | WebGL2RenderingContext | -| `vertexShader` | WebGLShader | -| `fragShader` | WebGLShader | - -**Returns:** `null` \| WebGLProgram - ---- - -### createShader - -▸ `Static` **createShader**(`gl`: WebGL2RenderingContext, `type`: _number_, `source`: _string_): `null` \| WebGLShader - -#### Parameters - -| Name | Type | -| :------- | :--------------------- | -| `gl` | WebGL2RenderingContext | -| `type` | _number_ | -| `source` | _string_ | - -**Returns:** `null` \| WebGLShader - ---- - -### programFromSources - -▸ `Static` **programFromSources**(`gl`: WebGL2RenderingContext, `vertexShaderSource`: _string_, `fragShaderSource`: _string_): `null` \| WebGLProgram - -#### Parameters - -| Name | Type | -| :------------------- | :--------------------- | -| `gl` | WebGL2RenderingContext | -| `vertexShaderSource` | _string_ | -| `fragShaderSource` | _string_ | - -**Returns:** `null` \| WebGLProgram diff --git a/docs/classes/frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md b/docs/classes/frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md deleted file mode 100644 index 82f291f7..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md +++ /dev/null @@ -1,136 +0,0 @@ -# Class: ShaderMixins - -[Frontend/Renderers/GameRenderer/WebGL/ShaderMixins](../modules/frontend_renderers_gamerenderer_webgl_shadermixins.md).ShaderMixins - -these are 'includes' that you can add into shader template strings as in `${include}` - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#constructor) - -### Properties - -- [PI](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#pi) -- [arcTan](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#arctan) -- [blend](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#blend) -- [desaturate](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#desaturate) -- [fade](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#fade) -- [hueShift](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#hueshift) -- [invertBrightness](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#invertbrightness) -- [invertColors](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#invertcolors) -- [mod2pi](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#mod2pi) -- [modFloat](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#modfloat) -- [noiseVec3](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#noisevec3) -- [radAtAngle](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#radatangle) -- [seededRandom](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#seededrandom) -- [seededRandomVec2](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#seededrandomvec2) -- [simplex4](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md#simplex4) - -## Constructors - -### constructor - -\+ **new ShaderMixins**(): [_ShaderMixins_](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md) - -**Returns:** [_ShaderMixins_](frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md) - -## Properties - -### PI - -▪ `Static` **PI**: _string_ - ---- - -### arcTan - -▪ `Static` **arcTan**: _string_ - -Good atan that returns [0, 2Pi) - ---- - -### blend - -▪ `Static` **blend**: _string_ - -1 minus source alpha blend mode - ---- - -### desaturate - -▪ `Static` **desaturate**: _string_ - ---- - -### fade - -▪ `Static` **fade**: _string_ - -Fade out the last `tail * 100` percent of `value` to 0 - a plateau with a steep dropoff - ---- - -### hueShift - -▪ `Static` **hueShift**: _string_ - ---- - -### invertBrightness - -▪ `Static` **invertBrightness**: _string_ - ---- - -### invertColors - -▪ `Static` **invertColors**: _string_ - ---- - -### mod2pi - -▪ `Static` **mod2pi**: _string_ - ---- - -### modFloat - -▪ `Static` **modFloat**: _string_ - ---- - -### noiseVec3 - -▪ `Static` **noiseVec3**: _string_ - ---- - -### radAtAngle - -▪ `Static` **radAtAngle**: _string_ - ---- - -### seededRandom - -▪ `Static` **seededRandom**: _string_ - ---- - -### seededRandomVec2 - -▪ `Static` **seededRandomVec2**: _string_ - ---- - -### simplex4 - -▪ `Static` **simplex4**: _string_ - -4d simplex noise - `snoise(vec4)`, seems to return `[-1, 1]` -https://gist.github.com/patriciogonzalezvivo/670c22f3966e662d2f83 diff --git a/docs/classes/frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md b/docs/classes/frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md deleted file mode 100644 index 9a5165aa..00000000 --- a/docs/classes/frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md +++ /dev/null @@ -1,104 +0,0 @@ -# Class: WebGLManager - -[Frontend/Renderers/GameRenderer/WebGL/WebGLManager](../modules/frontend_renderers_gamerenderer_webgl_webglmanager.md).WebGLManager - -## Hierarchy - -- **WebGLManager** - - ↳ [_ArtifactRenderer_](frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md) - - ↳ [_GameGLManager_](frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) - - ↳ [_GifRenderer_](frontend_renderers_gifrenderer.gifrenderer.md) - - ↳ [_PlanetscapeRenderer_](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md) - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#constructor) - -### Properties - -- [canvas](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#canvas) -- [gl](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#gl) -- [projectionMatrix](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#projectionmatrix) -- [texIdx](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#texidx) - -### Methods - -- [clear](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#clear) -- [getTexIdx](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#gettexidx) -- [setProjectionMatrix](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#setprojectionmatrix) - -## Constructors - -### constructor - -\+ **new WebGLManager**(`canvas`: HTMLCanvasElement, `attr?`: WebGLContextAttributes): [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -#### Parameters - -| Name | Type | -| :------- | :--------------------- | -| `canvas` | HTMLCanvasElement | -| `attr?` | WebGLContextAttributes | - -**Returns:** [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -## Properties - -### canvas - -• **canvas**: HTMLCanvasElement - ---- - -### gl - -• **gl**: WebGL2RenderingContext - ---- - -### projectionMatrix - -• **projectionMatrix**: mat4 - ---- - -### texIdx - -• `Private` **texIdx**: _number_= 0 - -## Methods - -### clear - -▸ **clear**(`bits?`: _number_, `color?`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec)): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----------------------------------------------------------------------------- | -| `bits?` | _number_ | -| `color?` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | - -**Returns:** _void_ - ---- - -### getTexIdx - -▸ **getTexIdx**(): _number_ - -**Returns:** _number_ - ---- - -### setProjectionMatrix - -▸ **setProjectionMatrix**(): _void_ - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_gifrenderer.gifrenderer.md b/docs/classes/frontend_renderers_gifrenderer.gifrenderer.md deleted file mode 100644 index 9a76d3f1..00000000 --- a/docs/classes/frontend_renderers_gifrenderer.gifrenderer.md +++ /dev/null @@ -1,303 +0,0 @@ -# Class: GifRenderer - -[Frontend/Renderers/GifRenderer](../modules/frontend_renderers_gifrenderer.md).GifRenderer - -## Hierarchy - -- [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - - ↳ **GifRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_gifrenderer.gifrenderer.md#constructor) - -### Properties - -- [artifactDim](frontend_renderers_gifrenderer.gifrenderer.md#artifactdim) -- [canvas](frontend_renderers_gifrenderer.gifrenderer.md#canvas) -- [canvasDim](frontend_renderers_gifrenderer.gifrenderer.md#canvasdim) -- [gl](frontend_renderers_gifrenderer.gifrenderer.md#gl) -- [margin](frontend_renderers_gifrenderer.gifrenderer.md#margin) -- [projectionMatrix](frontend_renderers_gifrenderer.gifrenderer.md#projectionmatrix) -- [resolution](frontend_renderers_gifrenderer.gifrenderer.md#resolution) -- [spriteRenderer](frontend_renderers_gifrenderer.gifrenderer.md#spriterenderer) -- [thumb](frontend_renderers_gifrenderer.gifrenderer.md#thumb) - -### Methods - -- [addAncient](frontend_renderers_gifrenderer.gifrenderer.md#addancient) -- [addBiomes](frontend_renderers_gifrenderer.gifrenderer.md#addbiomes) -- [addSprite](frontend_renderers_gifrenderer.gifrenderer.md#addsprite) -- [addVideo](frontend_renderers_gifrenderer.gifrenderer.md#addvideo) -- [clear](frontend_renderers_gifrenderer.gifrenderer.md#clear) -- [drawSprite](frontend_renderers_gifrenderer.gifrenderer.md#drawsprite) -- [getAll](frontend_renderers_gifrenderer.gifrenderer.md#getall) -- [getAllSprites](frontend_renderers_gifrenderer.gifrenderer.md#getallsprites) -- [getAllVideos](frontend_renderers_gifrenderer.gifrenderer.md#getallvideos) -- [getBase64](frontend_renderers_gifrenderer.gifrenderer.md#getbase64) -- [getFileName](frontend_renderers_gifrenderer.gifrenderer.md#getfilename) -- [getTexIdx](frontend_renderers_gifrenderer.gifrenderer.md#gettexidx) -- [setDim](frontend_renderers_gifrenderer.gifrenderer.md#setdim) -- [setProjectionMatrix](frontend_renderers_gifrenderer.gifrenderer.md#setprojectionmatrix) - -## Constructors - -### constructor - -\+ **new GifRenderer**(`canvas`: HTMLCanvasElement, `dim`: _number_, `isThumb`: _boolean_): [_GifRenderer_](frontend_renderers_gifrenderer.gifrenderer.md) - -#### Parameters - -| Name | Type | -| :-------- | :---------------- | -| `canvas` | HTMLCanvasElement | -| `dim` | _number_ | -| `isThumb` | _boolean_ | - -**Returns:** [_GifRenderer_](frontend_renderers_gifrenderer.gifrenderer.md) - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -## Properties - -### artifactDim - -• `Private` **artifactDim**: _number_ - ---- - -### canvas - -• **canvas**: HTMLCanvasElement - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[canvas](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#canvas) - ---- - -### canvasDim - -• `Private` **canvasDim**: _number_ - ---- - -### gl - -• **gl**: WebGL2RenderingContext - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[gl](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#gl) - ---- - -### margin - -• `Private` **margin**: _number_ - ---- - -### projectionMatrix - -• **projectionMatrix**: mat4 - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[projectionMatrix](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#projectionmatrix) - ---- - -### resolution - -• `Private` **resolution**: _number_ - ---- - -### spriteRenderer - -• `Private` **spriteRenderer**: [_SpriteRenderer_](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md) - ---- - -### thumb - -• `Private` **thumb**: _boolean_ - -## Methods - -### addAncient - -▸ `Private` **addAncient**(`videoMode`: _boolean_, `dir`: _JSZip_): _Promise_ - -#### Parameters - -| Name | Type | -| :---------- | :-------- | -| `videoMode` | _boolean_ | -| `dir` | _JSZip_ | - -**Returns:** _Promise_ - ---- - -### addBiomes - -▸ `Private` **addBiomes**(`videoMode`: _boolean_, `dir`: _JSZip_): _Promise_ - -#### Parameters - -| Name | Type | -| :---------- | :-------- | -| `videoMode` | _boolean_ | -| `dir` | _JSZip_ | - -**Returns:** _Promise_ - ---- - -### addSprite - -▸ `Private` **addSprite**(`dir`: _JSZip_, `type`: ArtifactType, `biome`: Biome, `rarity`: ArtifactRarity, `ancient?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :------------- | :------------ | -| `dir` | _JSZip_ | - | -| `type` | ArtifactType | - | -| `biome` | Biome | - | -| `rarity` | ArtifactRarity | - | -| `ancient` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### addVideo - -▸ `Private` **addVideo**(`dir`: _JSZip_, `type`: ArtifactType, `biome`: Biome, `rarity`: ArtifactRarity, `ancient?`: _boolean_): _Promise_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :------------- | :------------ | -| `dir` | _JSZip_ | - | -| `type` | ArtifactType | - | -| `biome` | Biome | - | -| `rarity` | ArtifactRarity | - | -| `ancient` | _boolean_ | false | - -**Returns:** _Promise_ - ---- - -### clear - -▸ **clear**(): _void_ - -**Returns:** _void_ - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### drawSprite - -▸ `Private` **drawSprite**(`artifact`: Artifact, `atFrame?`: _undefined_ \| _number_): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :---------------------- | -| `artifact` | Artifact | -| `atFrame` | _undefined_ \| _number_ | - -**Returns:** _void_ - ---- - -### getAll - -▸ `Private` **getAll**(`videoMode?`: _boolean_): _Promise_ - -#### Parameters - -| Name | Type | Default value | -| :---------- | :-------- | :------------ | -| `videoMode` | _boolean_ | false | - -**Returns:** _Promise_ - ---- - -### getAllSprites - -▸ **getAllSprites**(): _void_ - -**Returns:** _void_ - ---- - -### getAllVideos - -▸ **getAllVideos**(): _void_ - -**Returns:** _void_ - ---- - -### getBase64 - -▸ `Private` **getBase64**(): _string_ - -**Returns:** _string_ - ---- - -### getFileName - -▸ `Private` **getFileName**(`video`: _boolean_, `type`: ArtifactType, `biome`: Biome, `rarity`: ArtifactRarity, `ancient`: _boolean_): _string_ - -#### Parameters - -| Name | Type | -| :-------- | :------------- | -| `video` | _boolean_ | -| `type` | ArtifactType | -| `biome` | Biome | -| `rarity` | ArtifactRarity | -| `ancient` | _boolean_ | - -**Returns:** _string_ - ---- - -### getTexIdx - -▸ **getTexIdx**(): _number_ - -**Returns:** _number_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### setDim - -▸ `Private` **setDim**(`dim`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :---- | :------- | -| `dim` | _number_ | - -**Returns:** _void_ - ---- - -### setProjectionMatrix - -▸ **setProjectionMatrix**(): _void_ - -**Returns:** _void_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) diff --git a/docs/classes/frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md b/docs/classes/frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md deleted file mode 100644 index 25d40dc1..00000000 --- a/docs/classes/frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md +++ /dev/null @@ -1,80 +0,0 @@ -# Class: PathRenderer - -[Frontend/Renderers/PlanetscapeRenderer/PathRenderer](../modules/frontend_renderers_planetscaperenderer_pathrenderer.md).PathRenderer - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md#constructor) - -### Properties - -- [colorA](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md#colora) -- [manager](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md#manager) -- [matrixULoc](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md#matrixuloc) -- [posA](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md#posa) -- [program](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md#program) - -### Methods - -- [drawPath](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md#drawpath) - -## Constructors - -### constructor - -\+ **new PathRenderer**(`manager`: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md)): [_PathRenderer_](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md) - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------- | -| `manager` | [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) | - -**Returns:** [_PathRenderer_](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md) - -## Properties - -### colorA - -• `Private` **colorA**: [_default_](frontend_renderers_gamerenderer_webgl_attribmanager.default.md) - ---- - -### manager - -• `Private` **manager**: [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### matrixULoc - -• `Private` **matrixULoc**: `null` \| WebGLUniformLocation - ---- - -### posA - -• `Private` **posA**: [_default_](frontend_renderers_gamerenderer_webgl_attribmanager.default.md) - ---- - -### program - -• `Private` **program**: WebGLProgram - -## Methods - -### drawPath - -▸ **drawPath**(`arr`: [_PixelCoords_](../modules/backend_procedural_procgenutils.md#pixelcoords)[], `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :--------------------------------------------------------------------------- | -| `arr` | [_PixelCoords_](../modules/backend_procedural_procgenutils.md#pixelcoords)[] | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - -**Returns:** _void_ diff --git a/docs/classes/frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md b/docs/classes/frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md deleted file mode 100644 index d353060f..00000000 --- a/docs/classes/frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md +++ /dev/null @@ -1,285 +0,0 @@ -# Class: PlanetscapeRenderer - -[Frontend/Renderers/PlanetscapeRenderer/PlanetScapeRenderer](../modules/frontend_renderers_planetscaperenderer_planetscaperenderer.md).PlanetscapeRenderer - -## Hierarchy - -- [_WebGLManager_](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - - ↳ **PlanetscapeRenderer** - -## Table of contents - -### Constructors - -- [constructor](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#constructor) - -### Properties - -- [TICK_SIZE](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#tick_size) -- [artifacts](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#artifacts) -- [canvas](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#canvas) -- [frameRequestId](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#framerequestid) -- [gl](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#gl) -- [isPaused](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#ispaused) -- [moonCanvas](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#mooncanvas) -- [moonCtx](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#moonctx) -- [pathRenderer](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#pathrenderer) -- [planet](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#planet) -- [projectionMatrix](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#projectionmatrix) -- [spriteRenderer](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#spriterenderer) -- [uiManager](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#uimanager) - -### Methods - -- [clear](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#clear) -- [destroy](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#destroy) -- [draw](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#draw) -- [drawHill](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#drawhill) -- [drawMoon](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#drawmoon) -- [drawScape](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#drawscape) -- [flushArtifactOnce](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#flushartifactonce) -- [getTexIdx](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#gettexidx) -- [loop](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#loop) -- [queueArtifacts](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#queueartifacts) -- [setPaused](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#setpaused) -- [setPlanet](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#setplanet) -- [setProjectionMatrix](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md#setprojectionmatrix) - -## Constructors - -### constructor - -\+ **new PlanetscapeRenderer**(`canvas`: HTMLCanvasElement, `moonCanvas`: HTMLCanvasElement, `uiManager`: [_default_](backend_gamelogic_gameuimanager.default.md)): [_PlanetscapeRenderer_](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md) - -#### Parameters - -| Name | Type | -| :----------- | :------------------------------------------------------ | -| `canvas` | HTMLCanvasElement | -| `moonCanvas` | HTMLCanvasElement | -| `uiManager` | [_default_](backend_gamelogic_gameuimanager.default.md) | - -**Returns:** [_PlanetscapeRenderer_](frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md) - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - -## Properties - -### TICK_SIZE - -• `Private` **TICK_SIZE**: _number_= 3 - ---- - -### artifacts - -• `Private` **artifacts**: Artifact[] - ---- - -### canvas - -• **canvas**: HTMLCanvasElement - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[canvas](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#canvas) - ---- - -### frameRequestId - -• `Private` **frameRequestId**: _number_ - ---- - -### gl - -• **gl**: WebGL2RenderingContext - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[gl](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#gl) - ---- - -### isPaused - -• `Private` **isPaused**: _boolean_ - ---- - -### moonCanvas - -• `Private` **moonCanvas**: HTMLCanvasElement - ---- - -### moonCtx - -• `Private` **moonCtx**: CanvasRenderingContext2D - ---- - -### pathRenderer - -• `Private` **pathRenderer**: [_PathRenderer_](frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md) - ---- - -### planet - -• **planet**: _undefined_ \| Planet - ---- - -### projectionMatrix - -• **projectionMatrix**: mat4 - -Overrides: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md).[projectionMatrix](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md#projectionmatrix) - ---- - -### spriteRenderer - -• `Private` **spriteRenderer**: [_SpriteRenderer_](frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md) - ---- - -### uiManager - -• `Private` **uiManager**: [_default_](backend_gamelogic_gameuimanager.default.md) - -## Methods - -### clear - -▸ **clear**(`bits?`: _number_, `color?`: [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec)): _void_ - -#### Parameters - -| Name | Type | -| :------- | :----------------------------------------------------------------------------- | -| `bits?` | _number_ | -| `color?` | [_RGBAVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | - -**Returns:** _void_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### destroy - -▸ **destroy**(): _void_ - -**Returns:** _void_ - ---- - -### draw - -▸ `Private` **draw**(): _void_ - -**Returns:** _void_ - ---- - -### drawHill - -▸ `Private` **drawHill**(`fn`: (`x`: _number_) => _number_, `color`: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec)): _void_ - -#### Parameters - -| Name | Type | -| :------ | :--------------------------------------------------------------------------- | -| `fn` | (`x`: _number_) => _number_ | -| `color` | [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | - -**Returns:** _void_ - ---- - -### drawMoon - -▸ `Private` **drawMoon**(): _void_ - -**Returns:** _void_ - ---- - -### drawScape - -▸ `Private` **drawScape**(): _void_ - -**Returns:** _void_ - ---- - -### flushArtifactOnce - -▸ `Private` **flushArtifactOnce**(): _void_ - -**Returns:** _void_ - ---- - -### getTexIdx - -▸ **getTexIdx**(): _number_ - -**Returns:** _number_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) - ---- - -### loop - -▸ `Private` **loop**(): _void_ - -**Returns:** _void_ - ---- - -### queueArtifacts - -▸ `Private` **queueArtifacts**(): _void_ - -**Returns:** _void_ - ---- - -### setPaused - -▸ **setPaused**(`isPaused?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :---------- | :-------- | -| `isPaused?` | _boolean_ | - -**Returns:** _void_ - ---- - -### setPlanet - -▸ **setPlanet**(`planet`: _undefined_ \| Planet): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _void_ - ---- - -### setProjectionMatrix - -▸ **setProjectionMatrix**(): _void_ - -**Returns:** _void_ - -Inherited from: [WebGLManager](frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) diff --git a/docs/classes/frontend_utils_uiemitter.default.md b/docs/classes/frontend_utils_uiemitter.default.md deleted file mode 100644 index 74d33be2..00000000 --- a/docs/classes/frontend_utils_uiemitter.default.md +++ /dev/null @@ -1,56 +0,0 @@ -# Class: default - -[Frontend/Utils/UIEmitter](../modules/frontend_utils_uiemitter.md).default - -## Hierarchy - -- _EventEmitter_ - - ↳ **default** - -## Table of contents - -### Constructors - -- [constructor](frontend_utils_uiemitter.default.md#constructor) - -### Properties - -- [instance](frontend_utils_uiemitter.default.md#instance) - -### Methods - -- [getInstance](frontend_utils_uiemitter.default.md#getinstance) -- [initialize](frontend_utils_uiemitter.default.md#initialize) - -## Constructors - -### constructor - -\+ `Private` **new default**(): [_default_](frontend_utils_uiemitter.default.md) - -**Returns:** [_default_](frontend_utils_uiemitter.default.md) - -Overrides: EventEmitter.constructor - -## Properties - -### instance - -▪ `Static` **instance**: [_default_](frontend_utils_uiemitter.default.md) - -## Methods - -### getInstance - -▸ `Static` **getInstance**(): [_default_](frontend_utils_uiemitter.default.md) - -**Returns:** [_default_](frontend_utils_uiemitter.default.md) - ---- - -### initialize - -▸ `Static` **initialize**(): [_default_](frontend_utils_uiemitter.default.md) - -**Returns:** [_default_](frontend_utils_uiemitter.default.md) diff --git a/docs/classes/frontend_views_dferrorboundary.dferrorboundary.md b/docs/classes/frontend_views_dferrorboundary.dferrorboundary.md deleted file mode 100644 index ecfd1ff4..00000000 --- a/docs/classes/frontend_views_dferrorboundary.dferrorboundary.md +++ /dev/null @@ -1,82 +0,0 @@ -# Class: DFErrorBoundary - -[Frontend/Views/DFErrorBoundary](../modules/frontend_views_dferrorboundary.md).DFErrorBoundary - -## Hierarchy - -- _Component_ - - ↳ **DFErrorBoundary** - -## Table of contents - -### Constructors - -- [constructor](frontend_views_dferrorboundary.dferrorboundary.md#constructor) - -### Methods - -- [componentDidCatch](frontend_views_dferrorboundary.dferrorboundary.md#componentdidcatch) -- [render](frontend_views_dferrorboundary.dferrorboundary.md#render) -- [getDerivedStateFromError](frontend_views_dferrorboundary.dferrorboundary.md#getderivedstatefromerror) - -## Constructors - -### constructor - -\+ **new DFErrorBoundary**(`props`: _unknown_): [_DFErrorBoundary_](frontend_views_dferrorboundary.dferrorboundary.md) - -#### Parameters - -| Name | Type | -| :------ | :-------- | -| `props` | _unknown_ | - -**Returns:** [_DFErrorBoundary_](frontend_views_dferrorboundary.dferrorboundary.md) - -Overrides: React.Component<unknown, { hasError: boolean }\>.constructor - -## Methods - -### componentDidCatch - -▸ **componentDidCatch**(`error`: Error, `_errorInfo`: ErrorInfo): _void_ - -#### Parameters - -| Name | Type | -| :----------- | :-------- | -| `error` | Error | -| `_errorInfo` | ErrorInfo | - -**Returns:** _void_ - -Overrides: React.Component.componentDidCatch - ---- - -### render - -▸ **render**(): _undefined_ \| `null` \| {} - -**Returns:** _undefined_ \| `null` \| {} - -Overrides: React.Component.render - ---- - -### getDerivedStateFromError - -▸ `Static` **getDerivedStateFromError**(`_error`: Error): _object_ - -#### Parameters - -| Name | Type | -| :------- | :---- | -| `_error` | Error | - -**Returns:** _object_ - -| Name | Type | -| :--------- | :-------- | -| `hasError` | _boolean_ | diff --git a/docs/classes/frontend_views_ownedpluginview.ownedpluginview.md b/docs/classes/frontend_views_ownedpluginview.ownedpluginview.md deleted file mode 100644 index 568d3770..00000000 --- a/docs/classes/frontend_views_ownedpluginview.ownedpluginview.md +++ /dev/null @@ -1,161 +0,0 @@ -# Class: OwnedPluginView - -[Frontend/Views/OwnedPluginView](../modules/frontend_views_ownedpluginview.md).OwnedPluginView - -One row in {@link PluginLibraryView}. Represents a single plugin. Allows -the user to edit, delete, or open the plugin. This class is responsible for -evaluating a plugin's source code (as safely as we can), and calling its -appropriate lifecycle methods. Loads and evaluates the plugin on mount, -and destroys and unloads the plugin on dismount. I'm not sure I like how tightly -coupled rendering is to evaluating here, so I'll probably move the evaluation -code into {@link PluginHost} at some point. - -## Hierarchy - -- _Component_ - - ↳ **OwnedPluginView** - -## Table of contents - -### Constructors - -- [constructor](frontend_views_ownedpluginview.ownedpluginview.md#constructor) - -### Properties - -- [closeEditor](frontend_views_ownedpluginview.ownedpluginview.md#closeeditor) -- [renderedPluginRef](frontend_views_ownedpluginview.ownedpluginview.md#renderedpluginref) -- [state](frontend_views_ownedpluginview.ownedpluginview.md#state) - -### Methods - -- [deletePluginClicked](frontend_views_ownedpluginview.ownedpluginview.md#deletepluginclicked) -- [editClicked](frontend_views_ownedpluginview.ownedpluginview.md#editclicked) -- [render](frontend_views_ownedpluginview.ownedpluginview.md#render) -- [runClicked](frontend_views_ownedpluginview.ownedpluginview.md#runclicked) -- [saveRef](frontend_views_ownedpluginview.ownedpluginview.md#saveref) -- [setModalIsOpen](frontend_views_ownedpluginview.ownedpluginview.md#setmodalisopen) - -## Constructors - -### constructor - -\+ **new OwnedPluginView**(`props`: Props \| _Readonly_): [_OwnedPluginView_](frontend_views_ownedpluginview.ownedpluginview.md) - -#### Parameters - -| Name | Type | -| :------ | :-------------------------- | -| `props` | Props \| _Readonly_ | - -**Returns:** [_OwnedPluginView_](frontend_views_ownedpluginview.ownedpluginview.md) - -Inherited from: React.Component.constructor - -\+ **new OwnedPluginView**(`props`: Props, `context`: _any_): [_OwnedPluginView_](frontend_views_ownedpluginview.ownedpluginview.md) - -**`deprecated`** - -**`see`** https://reactjs.org/docs/legacy-context.html - -#### Parameters - -| Name | Type | -| :-------- | :---- | -| `props` | Props | -| `context` | _any_ | - -**Returns:** [_OwnedPluginView_](frontend_views_ownedpluginview.ownedpluginview.md) - -Inherited from: React.Component.constructor - -## Properties - -### closeEditor - -• `Private` **closeEditor**: _undefined_ \| () => _void_ - ---- - -### renderedPluginRef - -• `Private` **renderedPluginRef**: `null` \| HTMLDivElement - ---- - -### state - -• **state**: _object_ - -#### Type declaration - -| Name | Type | -| :---------- | :---------- | -| `error` | _undefined_ | -| `modalOpen` | _boolean_ | -| `rendered` | _boolean_ | - -Overrides: React.Component.state - -## Methods - -### deletePluginClicked - -▸ `Private` **deletePluginClicked**(): _void_ - -**Returns:** _void_ - ---- - -### editClicked - -▸ `Private` **editClicked**(): _void_ - -**Returns:** _void_ - ---- - -### render - -▸ **render**(): _Element_ - -**Returns:** _Element_ - -Overrides: React.Component.render - ---- - -### runClicked - -▸ `Private` **runClicked**(): _void_ - -**Returns:** _void_ - ---- - -### saveRef - -▸ `Private` **saveRef**(`el`: `null` \| HTMLDivElement): _void_ - -#### Parameters - -| Name | Type | -| :--- | :----------------------- | -| `el` | `null` \| HTMLDivElement | - -**Returns:** _void_ - ---- - -### setModalIsOpen - -▸ `Private` **setModalIsOpen**(`isOpen`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :------- | :-------- | -| `isOpen` | _boolean_ | - -**Returns:** _void_ diff --git a/docs/enums/Backend_GameLogic_GameManager.GameManagerEvent.md b/docs/enums/Backend_GameLogic_GameManager.GameManagerEvent.md new file mode 100644 index 00000000..cb1ef6d0 --- /dev/null +++ b/docs/enums/Backend_GameLogic_GameManager.GameManagerEvent.md @@ -0,0 +1,50 @@ +# Enumeration: GameManagerEvent + +[Backend/GameLogic/GameManager](../modules/Backend_GameLogic_GameManager.md).GameManagerEvent + +## Table of contents + +### Enumeration members + +- [ArtifactUpdate](Backend_GameLogic_GameManager.GameManagerEvent.md#artifactupdate) +- [DiscoveredNewChunk](Backend_GameLogic_GameManager.GameManagerEvent.md#discoverednewchunk) +- [InitializedPlayer](Backend_GameLogic_GameManager.GameManagerEvent.md#initializedplayer) +- [InitializedPlayerError](Backend_GameLogic_GameManager.GameManagerEvent.md#initializedplayererror) +- [Moved](Backend_GameLogic_GameManager.GameManagerEvent.md#moved) +- [PlanetUpdate](Backend_GameLogic_GameManager.GameManagerEvent.md#planetupdate) + +## Enumeration members + +### ArtifactUpdate + +• **ArtifactUpdate** = `"ArtifactUpdate"` + +--- + +### DiscoveredNewChunk + +• **DiscoveredNewChunk** = `"DiscoveredNewChunk"` + +--- + +### InitializedPlayer + +• **InitializedPlayer** = `"InitializedPlayer"` + +--- + +### InitializedPlayerError + +• **InitializedPlayerError** = `"InitializedPlayerError"` + +--- + +### Moved + +• **Moved** = `"Moved"` + +--- + +### PlanetUpdate + +• **PlanetUpdate** = `"PlanetUpdate"` diff --git a/docs/enums/Backend_GameLogic_GameUIManager.GameUIManagerEvent.md b/docs/enums/Backend_GameLogic_GameUIManager.GameUIManagerEvent.md new file mode 100644 index 00000000..dde80157 --- /dev/null +++ b/docs/enums/Backend_GameLogic_GameUIManager.GameUIManagerEvent.md @@ -0,0 +1,22 @@ +# Enumeration: GameUIManagerEvent + +[Backend/GameLogic/GameUIManager](../modules/Backend_GameLogic_GameUIManager.md).GameUIManagerEvent + +## Table of contents + +### Enumeration members + +- [InitializedPlayer](Backend_GameLogic_GameUIManager.GameUIManagerEvent.md#initializedplayer) +- [InitializedPlayerError](Backend_GameLogic_GameUIManager.GameUIManagerEvent.md#initializedplayererror) + +## Enumeration members + +### InitializedPlayer + +• **InitializedPlayer** = `"InitializedPlayer"` + +--- + +### InitializedPlayerError + +• **InitializedPlayerError** = `"InitializedPlayerError"` diff --git a/docs/enums/Backend_GameLogic_TutorialManager.TutorialManagerEvent.md b/docs/enums/Backend_GameLogic_TutorialManager.TutorialManagerEvent.md new file mode 100644 index 00000000..ae608e39 --- /dev/null +++ b/docs/enums/Backend_GameLogic_TutorialManager.TutorialManagerEvent.md @@ -0,0 +1,15 @@ +# Enumeration: TutorialManagerEvent + +[Backend/GameLogic/TutorialManager](../modules/Backend_GameLogic_TutorialManager.md).TutorialManagerEvent + +## Table of contents + +### Enumeration members + +- [StateChanged](Backend_GameLogic_TutorialManager.TutorialManagerEvent.md#statechanged) + +## Enumeration members + +### StateChanged + +• **StateChanged** = `"StateChanged"` diff --git a/docs/enums/Backend_GameLogic_TutorialManager.TutorialState.md b/docs/enums/Backend_GameLogic_TutorialManager.TutorialState.md new file mode 100644 index 00000000..e5c817a9 --- /dev/null +++ b/docs/enums/Backend_GameLogic_TutorialManager.TutorialState.md @@ -0,0 +1,113 @@ +# Enumeration: TutorialState + +[Backend/GameLogic/TutorialManager](../modules/Backend_GameLogic_TutorialManager.md).TutorialState + +## Table of contents + +### Enumeration members + +- [AlmostCompleted](Backend_GameLogic_TutorialManager.TutorialState.md#almostcompleted) +- [Completed](Backend_GameLogic_TutorialManager.TutorialState.md#completed) +- [Deselect](Backend_GameLogic_TutorialManager.TutorialState.md#deselect) +- [HomePlanet](Backend_GameLogic_TutorialManager.TutorialState.md#homeplanet) +- [HowToGetScore](Backend_GameLogic_TutorialManager.TutorialState.md#howtogetscore) +- [MinerMove](Backend_GameLogic_TutorialManager.TutorialState.md#minermove) +- [MinerPause](Backend_GameLogic_TutorialManager.TutorialState.md#minerpause) +- [None](Backend_GameLogic_TutorialManager.TutorialState.md#none) +- [ScoringDetails](Backend_GameLogic_TutorialManager.TutorialState.md#scoringdetails) +- [SendFleet](Backend_GameLogic_TutorialManager.TutorialState.md#sendfleet) +- [SpaceJunk](Backend_GameLogic_TutorialManager.TutorialState.md#spacejunk) +- [Spaceship](Backend_GameLogic_TutorialManager.TutorialState.md#spaceship) +- [Terminal](Backend_GameLogic_TutorialManager.TutorialState.md#terminal) +- [Valhalla](Backend_GameLogic_TutorialManager.TutorialState.md#valhalla) +- [ZoomOut](Backend_GameLogic_TutorialManager.TutorialState.md#zoomout) + +## Enumeration members + +### AlmostCompleted + +• **AlmostCompleted** = `13` + +--- + +### Completed + +• **Completed** = `14` + +--- + +### Deselect + +• **Deselect** = `5` + +--- + +### HomePlanet + +• **HomePlanet** = `1` + +--- + +### HowToGetScore + +• **HowToGetScore** = `10` + +--- + +### MinerMove + +• **MinerMove** = `7` + +--- + +### MinerPause + +• **MinerPause** = `8` + +--- + +### None + +• **None** = `0` + +--- + +### ScoringDetails + +• **ScoringDetails** = `11` + +--- + +### SendFleet + +• **SendFleet** = `2` + +--- + +### SpaceJunk + +• **SpaceJunk** = `3` + +--- + +### Spaceship + +• **Spaceship** = `4` + +--- + +### Terminal + +• **Terminal** = `9` + +--- + +### Valhalla + +• **Valhalla** = `12` + +--- + +### ZoomOut + +• **ZoomOut** = `6` diff --git a/docs/enums/Backend_Miner_MinerManager.MinerManagerEvent.md b/docs/enums/Backend_Miner_MinerManager.MinerManagerEvent.md new file mode 100644 index 00000000..1883a47c --- /dev/null +++ b/docs/enums/Backend_Miner_MinerManager.MinerManagerEvent.md @@ -0,0 +1,15 @@ +# Enumeration: MinerManagerEvent + +[Backend/Miner/MinerManager](../modules/Backend_Miner_MinerManager.md).MinerManagerEvent + +## Table of contents + +### Enumeration members + +- [DiscoveredNewChunk](Backend_Miner_MinerManager.MinerManagerEvent.md#discoverednewchunk) + +## Enumeration members + +### DiscoveredNewChunk + +• **DiscoveredNewChunk** = `"DiscoveredNewChunk"` diff --git a/docs/enums/Backend_Miner_MiningPatterns.MiningPatternType.md b/docs/enums/Backend_Miner_MiningPatterns.MiningPatternType.md new file mode 100644 index 00000000..e9342e5f --- /dev/null +++ b/docs/enums/Backend_Miner_MiningPatterns.MiningPatternType.md @@ -0,0 +1,71 @@ +# Enumeration: MiningPatternType + +[Backend/Miner/MiningPatterns](../modules/Backend_Miner_MiningPatterns.md).MiningPatternType + +## Table of contents + +### Enumeration members + +- [Cone](Backend_Miner_MiningPatterns.MiningPatternType.md#cone) +- [ETH](Backend_Miner_MiningPatterns.MiningPatternType.md#eth) +- [Grid](Backend_Miner_MiningPatterns.MiningPatternType.md#grid) +- [Home](Backend_Miner_MiningPatterns.MiningPatternType.md#home) +- [Spiral](Backend_Miner_MiningPatterns.MiningPatternType.md#spiral) +- [SwissCheese](Backend_Miner_MiningPatterns.MiningPatternType.md#swisscheese) +- [Target](Backend_Miner_MiningPatterns.MiningPatternType.md#target) +- [TowardsCenter](Backend_Miner_MiningPatterns.MiningPatternType.md#towardscenter) +- [TowardsCenterV2](Backend_Miner_MiningPatterns.MiningPatternType.md#towardscenterv2) + +## Enumeration members + +### Cone + +• **Cone** = `3` + +--- + +### ETH + +• **ETH** = `5` + +--- + +### Grid + +• **Grid** = `4` + +--- + +### Home + +• **Home** = `0` + +--- + +### Spiral + +• **Spiral** = `2` + +--- + +### SwissCheese + +• **SwissCheese** = `6` + +--- + +### Target + +• **Target** = `1` + +--- + +### TowardsCenter + +• **TowardsCenter** = `7` + +--- + +### TowardsCenterV2 + +• **TowardsCenterV2** = `8` diff --git a/docs/enums/Backend_Network_EventLogger.EventType.md b/docs/enums/Backend_Network_EventLogger.EventType.md new file mode 100644 index 00000000..998d3a50 --- /dev/null +++ b/docs/enums/Backend_Network_EventLogger.EventType.md @@ -0,0 +1,22 @@ +# Enumeration: EventType + +[Backend/Network/EventLogger](../modules/Backend_Network_EventLogger.md).EventType + +## Table of contents + +### Enumeration members + +- [Diagnostics](Backend_Network_EventLogger.EventType.md#diagnostics) +- [Transaction](Backend_Network_EventLogger.EventType.md#transaction) + +## Enumeration members + +### Diagnostics + +• **Diagnostics** = `"diagnostics"` + +--- + +### Transaction + +• **Transaction** = `"transaction"` diff --git a/docs/enums/Backend_Network_UtilityServerAPI.EmailResponse.md b/docs/enums/Backend_Network_UtilityServerAPI.EmailResponse.md new file mode 100644 index 00000000..b93c02a7 --- /dev/null +++ b/docs/enums/Backend_Network_UtilityServerAPI.EmailResponse.md @@ -0,0 +1,29 @@ +# Enumeration: EmailResponse + +[Backend/Network/UtilityServerAPI](../modules/Backend_Network_UtilityServerAPI.md).EmailResponse + +## Table of contents + +### Enumeration members + +- [Invalid](Backend_Network_UtilityServerAPI.EmailResponse.md#invalid) +- [ServerError](Backend_Network_UtilityServerAPI.EmailResponse.md#servererror) +- [Success](Backend_Network_UtilityServerAPI.EmailResponse.md#success) + +## Enumeration members + +### Invalid + +• **Invalid** = `1` + +--- + +### ServerError + +• **ServerError** = `2` + +--- + +### Success + +• **Success** = `0` diff --git a/docs/enums/Backend_Storage_ReaderDataStore.SinglePlanetDataStoreEvent.md b/docs/enums/Backend_Storage_ReaderDataStore.SinglePlanetDataStoreEvent.md new file mode 100644 index 00000000..5f43b187 --- /dev/null +++ b/docs/enums/Backend_Storage_ReaderDataStore.SinglePlanetDataStoreEvent.md @@ -0,0 +1,22 @@ +# Enumeration: SinglePlanetDataStoreEvent + +[Backend/Storage/ReaderDataStore](../modules/Backend_Storage_ReaderDataStore.md).SinglePlanetDataStoreEvent + +## Table of contents + +### Enumeration members + +- [REFRESHED_ARTIFACT](Backend_Storage_ReaderDataStore.SinglePlanetDataStoreEvent.md#refreshed_artifact) +- [REFRESHED_PLANET](Backend_Storage_ReaderDataStore.SinglePlanetDataStoreEvent.md#refreshed_planet) + +## Enumeration members + +### REFRESHED_ARTIFACT + +• **REFRESHED_ARTIFACT** = `"REFRESHED_ARTIFACT"` + +--- + +### REFRESHED_PLANET + +• **REFRESHED_PLANET** = `"REFRESHED_PLANET"` diff --git a/docs/enums/Frontend_Components_Email.EmailCTAMode.md b/docs/enums/Frontend_Components_Email.EmailCTAMode.md new file mode 100644 index 00000000..bb32b575 --- /dev/null +++ b/docs/enums/Frontend_Components_Email.EmailCTAMode.md @@ -0,0 +1,22 @@ +# Enumeration: EmailCTAMode + +[Frontend/Components/Email](../modules/Frontend_Components_Email.md).EmailCTAMode + +## Table of contents + +### Enumeration members + +- [SUBSCRIBE](Frontend_Components_Email.EmailCTAMode.md#subscribe) +- [UNSUBSCRIBE](Frontend_Components_Email.EmailCTAMode.md#unsubscribe) + +## Enumeration members + +### SUBSCRIBE + +• **SUBSCRIBE** = `0` + +--- + +### UNSUBSCRIBE + +• **UNSUBSCRIBE** = `1` diff --git a/docs/enums/Frontend_Components_GameLandingPageComponents.InitRenderState.md b/docs/enums/Frontend_Components_GameLandingPageComponents.InitRenderState.md new file mode 100644 index 00000000..a6c845be --- /dev/null +++ b/docs/enums/Frontend_Components_GameLandingPageComponents.InitRenderState.md @@ -0,0 +1,29 @@ +# Enumeration: InitRenderState + +[Frontend/Components/GameLandingPageComponents](../modules/Frontend_Components_GameLandingPageComponents.md).InitRenderState + +## Table of contents + +### Enumeration members + +- [COMPLETE](Frontend_Components_GameLandingPageComponents.InitRenderState.md#complete) +- [LOADING](Frontend_Components_GameLandingPageComponents.InitRenderState.md#loading) +- [NONE](Frontend_Components_GameLandingPageComponents.InitRenderState.md#none) + +## Enumeration members + +### COMPLETE + +• **COMPLETE** = `2` + +--- + +### LOADING + +• **LOADING** = `1` + +--- + +### NONE + +• **NONE** = `0` diff --git a/docs/enums/Frontend_Game_NotificationManager.NotificationManagerEvent.md b/docs/enums/Frontend_Game_NotificationManager.NotificationManagerEvent.md new file mode 100644 index 00000000..a9f6df87 --- /dev/null +++ b/docs/enums/Frontend_Game_NotificationManager.NotificationManagerEvent.md @@ -0,0 +1,22 @@ +# Enumeration: NotificationManagerEvent + +[Frontend/Game/NotificationManager](../modules/Frontend_Game_NotificationManager.md).NotificationManagerEvent + +## Table of contents + +### Enumeration members + +- [ClearNotification](Frontend_Game_NotificationManager.NotificationManagerEvent.md#clearnotification) +- [Notify](Frontend_Game_NotificationManager.NotificationManagerEvent.md#notify) + +## Enumeration members + +### ClearNotification + +• **ClearNotification** = `"ClearNotification"` + +--- + +### Notify + +• **Notify** = `"Notify"` diff --git a/docs/enums/Frontend_Game_NotificationManager.NotificationType.md b/docs/enums/Frontend_Game_NotificationManager.NotificationType.md new file mode 100644 index 00000000..493dd6c4 --- /dev/null +++ b/docs/enums/Frontend_Game_NotificationManager.NotificationType.md @@ -0,0 +1,232 @@ +# Enumeration: NotificationType + +[Frontend/Game/NotificationManager](../modules/Frontend_Game_NotificationManager.md).NotificationType + +## Table of contents + +### Enumeration members + +- [ArtifactFound](Frontend_Game_NotificationManager.NotificationType.md#artifactfound) +- [ArtifactProspected](Frontend_Game_NotificationManager.NotificationType.md#artifactprospected) +- [BalanceEmpty](Frontend_Game_NotificationManager.NotificationType.md#balanceempty) +- [CanUpgrade](Frontend_Game_NotificationManager.NotificationType.md#canupgrade) +- [FoundBiome](Frontend_Game_NotificationManager.NotificationType.md#foundbiome) +- [FoundBiomeCorrupted](Frontend_Game_NotificationManager.NotificationType.md#foundbiomecorrupted) +- [FoundBiomeDesert](Frontend_Game_NotificationManager.NotificationType.md#foundbiomedesert) +- [FoundBiomeForest](Frontend_Game_NotificationManager.NotificationType.md#foundbiomeforest) +- [FoundBiomeGrassland](Frontend_Game_NotificationManager.NotificationType.md#foundbiomegrassland) +- [FoundBiomeIce](Frontend_Game_NotificationManager.NotificationType.md#foundbiomeice) +- [FoundBiomeLava](Frontend_Game_NotificationManager.NotificationType.md#foundbiomelava) +- [FoundBiomeOcean](Frontend_Game_NotificationManager.NotificationType.md#foundbiomeocean) +- [FoundBiomeSwamp](Frontend_Game_NotificationManager.NotificationType.md#foundbiomeswamp) +- [FoundBiomeTundra](Frontend_Game_NotificationManager.NotificationType.md#foundbiometundra) +- [FoundBiomeWasteland](Frontend_Game_NotificationManager.NotificationType.md#foundbiomewasteland) +- [FoundComet](Frontend_Game_NotificationManager.NotificationType.md#foundcomet) +- [FoundDeadSpace](Frontend_Game_NotificationManager.NotificationType.md#founddeadspace) +- [FoundDeepSpace](Frontend_Game_NotificationManager.NotificationType.md#founddeepspace) +- [FoundFoundry](Frontend_Game_NotificationManager.NotificationType.md#foundfoundry) +- [FoundPirates](Frontend_Game_NotificationManager.NotificationType.md#foundpirates) +- [FoundSilver](Frontend_Game_NotificationManager.NotificationType.md#foundsilver) +- [FoundSilverBank](Frontend_Game_NotificationManager.NotificationType.md#foundsilverbank) +- [FoundSpace](Frontend_Game_NotificationManager.NotificationType.md#foundspace) +- [FoundTradingPost](Frontend_Game_NotificationManager.NotificationType.md#foundtradingpost) +- [Generic](Frontend_Game_NotificationManager.NotificationType.md#generic) +- [PlanetAttacked](Frontend_Game_NotificationManager.NotificationType.md#planetattacked) +- [PlanetLost](Frontend_Game_NotificationManager.NotificationType.md#planetlost) +- [PlanetWon](Frontend_Game_NotificationManager.NotificationType.md#planetwon) +- [ReceivedPlanet](Frontend_Game_NotificationManager.NotificationType.md#receivedplanet) +- [Tx](Frontend_Game_NotificationManager.NotificationType.md#tx) +- [TxInitError](Frontend_Game_NotificationManager.NotificationType.md#txiniterror) +- [WelcomePlayer](Frontend_Game_NotificationManager.NotificationType.md#welcomeplayer) + +## Enumeration members + +### ArtifactFound + +• **ArtifactFound** = `28` + +--- + +### ArtifactProspected + +• **ArtifactProspected** = `27` + +--- + +### BalanceEmpty + +• **BalanceEmpty** = `2` + +--- + +### CanUpgrade + +• **CanUpgrade** = `1` + +--- + +### FoundBiome + +• **FoundBiome** = `13` + +--- + +### FoundBiomeCorrupted + +• **FoundBiomeCorrupted** = `23` + +--- + +### FoundBiomeDesert + +• **FoundBiomeDesert** = `19` + +--- + +### FoundBiomeForest + +• **FoundBiomeForest** = `15` + +--- + +### FoundBiomeGrassland + +• **FoundBiomeGrassland** = `16` + +--- + +### FoundBiomeIce + +• **FoundBiomeIce** = `20` + +--- + +### FoundBiomeLava + +• **FoundBiomeLava** = `22` + +--- + +### FoundBiomeOcean + +• **FoundBiomeOcean** = `14` + +--- + +### FoundBiomeSwamp + +• **FoundBiomeSwamp** = `18` + +--- + +### FoundBiomeTundra + +• **FoundBiomeTundra** = `17` + +--- + +### FoundBiomeWasteland + +• **FoundBiomeWasteland** = `21` + +--- + +### FoundComet + +• **FoundComet** = `11` + +--- + +### FoundDeadSpace + +• **FoundDeadSpace** = `6` + +--- + +### FoundDeepSpace + +• **FoundDeepSpace** = `5` + +--- + +### FoundFoundry + +• **FoundFoundry** = `12` + +--- + +### FoundPirates + +• **FoundPirates** = `7` + +--- + +### FoundSilver + +• **FoundSilver** = `8` + +--- + +### FoundSilverBank + +• **FoundSilverBank** = `9` + +--- + +### FoundSpace + +• **FoundSpace** = `4` + +--- + +### FoundTradingPost + +• **FoundTradingPost** = `10` + +--- + +### Generic + +• **Generic** = `30` + +--- + +### PlanetAttacked + +• **PlanetAttacked** = `26` + +--- + +### PlanetLost + +• **PlanetLost** = `24` + +--- + +### PlanetWon + +• **PlanetWon** = `25` + +--- + +### ReceivedPlanet + +• **ReceivedPlanet** = `29` + +--- + +### Tx + +• **Tx** = `0` + +--- + +### TxInitError + +• **TxInitError** = `31` + +--- + +### WelcomePlayer + +• **WelcomePlayer** = `3` diff --git a/docs/enums/Frontend_Pages_LandingPage.LandingPageZIndex.md b/docs/enums/Frontend_Pages_LandingPage.LandingPageZIndex.md new file mode 100644 index 00000000..27c18d77 --- /dev/null +++ b/docs/enums/Frontend_Pages_LandingPage.LandingPageZIndex.md @@ -0,0 +1,29 @@ +# Enumeration: LandingPageZIndex + +[Frontend/Pages/LandingPage](../modules/Frontend_Pages_LandingPage.md).LandingPageZIndex + +## Table of contents + +### Enumeration members + +- [Background](Frontend_Pages_LandingPage.LandingPageZIndex.md#background) +- [BasePage](Frontend_Pages_LandingPage.LandingPageZIndex.md#basepage) +- [Canvas](Frontend_Pages_LandingPage.LandingPageZIndex.md#canvas) + +## Enumeration members + +### Background + +• **Background** = `0` + +--- + +### BasePage + +• **BasePage** = `2` + +--- + +### Canvas + +• **Canvas** = `1` diff --git a/docs/enums/Frontend_Pages_UnsubscribePage.LandingPageZIndex.md b/docs/enums/Frontend_Pages_UnsubscribePage.LandingPageZIndex.md new file mode 100644 index 00000000..a2781953 --- /dev/null +++ b/docs/enums/Frontend_Pages_UnsubscribePage.LandingPageZIndex.md @@ -0,0 +1,29 @@ +# Enumeration: LandingPageZIndex + +[Frontend/Pages/UnsubscribePage](../modules/Frontend_Pages_UnsubscribePage.md).LandingPageZIndex + +## Table of contents + +### Enumeration members + +- [Background](Frontend_Pages_UnsubscribePage.LandingPageZIndex.md#background) +- [BasePage](Frontend_Pages_UnsubscribePage.LandingPageZIndex.md#basepage) +- [Canvas](Frontend_Pages_UnsubscribePage.LandingPageZIndex.md#canvas) + +## Enumeration members + +### Background + +• **Background** = `0` + +--- + +### BasePage + +• **BasePage** = `2` + +--- + +### Canvas + +• **Canvas** = `1` diff --git a/docs/enums/Frontend_Utils_BrowserChecks.Incompatibility.md b/docs/enums/Frontend_Utils_BrowserChecks.Incompatibility.md new file mode 100644 index 00000000..e510b0ec --- /dev/null +++ b/docs/enums/Frontend_Utils_BrowserChecks.Incompatibility.md @@ -0,0 +1,50 @@ +# Enumeration: Incompatibility + +[Frontend/Utils/BrowserChecks](../modules/Frontend_Utils_BrowserChecks.md).Incompatibility + +## Table of contents + +### Enumeration members + +- [MobileOrTablet](Frontend_Utils_BrowserChecks.Incompatibility.md#mobileortablet) +- [NoIDB](Frontend_Utils_BrowserChecks.Incompatibility.md#noidb) +- [NotLoggedInOrEnabled](Frontend_Utils_BrowserChecks.Incompatibility.md#notloggedinorenabled) +- [NotRopsten](Frontend_Utils_BrowserChecks.Incompatibility.md#notropsten) +- [UnexpectedError](Frontend_Utils_BrowserChecks.Incompatibility.md#unexpectederror) +- [UnsupportedBrowser](Frontend_Utils_BrowserChecks.Incompatibility.md#unsupportedbrowser) + +## Enumeration members + +### MobileOrTablet + +• **MobileOrTablet** = `"mobile_or_tablet"` + +--- + +### NoIDB + +• **NoIDB** = `"no_idb"` + +--- + +### NotLoggedInOrEnabled + +• **NotLoggedInOrEnabled** = `"not_logged_in_or_enabled"` + +--- + +### NotRopsten + +• **NotRopsten** = `"not_ropsten"` + +--- + +### UnexpectedError + +• **UnexpectedError** = `"unexpected_error"` + +--- + +### UnsupportedBrowser + +• **UnsupportedBrowser** = `"unsupported_browser"` diff --git a/docs/enums/Frontend_Utils_TerminalTypes.TerminalTextStyle.md b/docs/enums/Frontend_Utils_TerminalTypes.TerminalTextStyle.md new file mode 100644 index 00000000..71c9c85a --- /dev/null +++ b/docs/enums/Frontend_Utils_TerminalTypes.TerminalTextStyle.md @@ -0,0 +1,78 @@ +# Enumeration: TerminalTextStyle + +[Frontend/Utils/TerminalTypes](../modules/Frontend_Utils_TerminalTypes.md).TerminalTextStyle + +## Table of contents + +### Enumeration members + +- [Blue](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#blue) +- [Green](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#green) +- [Invisible](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#invisible) +- [Mythic](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#mythic) +- [Red](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#red) +- [Sub](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#sub) +- [Subber](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#subber) +- [Text](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#text) +- [Underline](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#underline) +- [White](Frontend_Utils_TerminalTypes.TerminalTextStyle.md#white) + +## Enumeration members + +### Blue + +• **Blue** = `6` + +--- + +### Green + +• **Green** = `0` + +--- + +### Invisible + +• **Invisible** = `7` + +--- + +### Mythic + +• **Mythic** = `9` + +--- + +### Red + +• **Red** = `5` + +--- + +### Sub + +• **Sub** = `1` + +--- + +### Subber + +• **Subber** = `2` + +--- + +### Text + +• **Text** = `3` + +--- + +### Underline + +• **Underline** = `8` + +--- + +### White + +• **White** = `4` diff --git a/docs/enums/Frontend_Utils_UIEmitter.UIEmitterEvent.md b/docs/enums/Frontend_Utils_UIEmitter.UIEmitterEvent.md new file mode 100644 index 00000000..cdd1402c --- /dev/null +++ b/docs/enums/Frontend_Utils_UIEmitter.UIEmitterEvent.md @@ -0,0 +1,169 @@ +# Enumeration: UIEmitterEvent + +[Frontend/Utils/UIEmitter](../modules/Frontend_Utils_UIEmitter.md).UIEmitterEvent + +## Table of contents + +### Enumeration members + +- [CanvasMouseDown](Frontend_Utils_UIEmitter.UIEmitterEvent.md#canvasmousedown) +- [CanvasMouseMove](Frontend_Utils_UIEmitter.UIEmitterEvent.md#canvasmousemove) +- [CanvasMouseOut](Frontend_Utils_UIEmitter.UIEmitterEvent.md#canvasmouseout) +- [CanvasMouseUp](Frontend_Utils_UIEmitter.UIEmitterEvent.md#canvasmouseup) +- [CanvasScroll](Frontend_Utils_UIEmitter.UIEmitterEvent.md#canvasscroll) +- [CenterPlanet](Frontend_Utils_UIEmitter.UIEmitterEvent.md#centerplanet) +- [DepositArtifact](Frontend_Utils_UIEmitter.UIEmitterEvent.md#depositartifact) +- [DepositToPlanet](Frontend_Utils_UIEmitter.UIEmitterEvent.md#deposittoplanet) +- [GamePlanetSelected](Frontend_Utils_UIEmitter.UIEmitterEvent.md#gameplanetselected) +- [SelectArtifact](Frontend_Utils_UIEmitter.UIEmitterEvent.md#selectartifact) +- [SendCancelled](Frontend_Utils_UIEmitter.UIEmitterEvent.md#sendcancelled) +- [SendCompleted](Frontend_Utils_UIEmitter.UIEmitterEvent.md#sendcompleted) +- [SendInitiated](Frontend_Utils_UIEmitter.UIEmitterEvent.md#sendinitiated) +- [ShowArtifact](Frontend_Utils_UIEmitter.UIEmitterEvent.md#showartifact) +- [UIChange](Frontend_Utils_UIEmitter.UIEmitterEvent.md#uichange) +- [WindowResize](Frontend_Utils_UIEmitter.UIEmitterEvent.md#windowresize) +- [WorldMouseClick](Frontend_Utils_UIEmitter.UIEmitterEvent.md#worldmouseclick) +- [WorldMouseDown](Frontend_Utils_UIEmitter.UIEmitterEvent.md#worldmousedown) +- [WorldMouseMove](Frontend_Utils_UIEmitter.UIEmitterEvent.md#worldmousemove) +- [WorldMouseOut](Frontend_Utils_UIEmitter.UIEmitterEvent.md#worldmouseout) +- [WorldMouseUp](Frontend_Utils_UIEmitter.UIEmitterEvent.md#worldmouseup) +- [ZoomIn](Frontend_Utils_UIEmitter.UIEmitterEvent.md#zoomin) +- [ZoomOut](Frontend_Utils_UIEmitter.UIEmitterEvent.md#zoomout) + +## Enumeration members + +### CanvasMouseDown + +• **CanvasMouseDown** = `"CanvasMouseDown"` + +--- + +### CanvasMouseMove + +• **CanvasMouseMove** = `"CanvasMouseMove"` + +--- + +### CanvasMouseOut + +• **CanvasMouseOut** = `"CanvasMouseOut"` + +--- + +### CanvasMouseUp + +• **CanvasMouseUp** = `"CanvasMouseUp"` + +--- + +### CanvasScroll + +• **CanvasScroll** = `"CanvasScroll"` + +--- + +### CenterPlanet + +• **CenterPlanet** = `"CenterPlanet"` + +--- + +### DepositArtifact + +• **DepositArtifact** = `"DepositArtifact"` + +--- + +### DepositToPlanet + +• **DepositToPlanet** = `"DepositToPlanet"` + +--- + +### GamePlanetSelected + +• **GamePlanetSelected** = `"GamePlanetSelected"` + +--- + +### SelectArtifact + +• **SelectArtifact** = `"SelectArtifact"` + +--- + +### SendCancelled + +• **SendCancelled** = `"SendCancelled"` + +--- + +### SendCompleted + +• **SendCompleted** = `"SendCompleted"` + +--- + +### SendInitiated + +• **SendInitiated** = `"SendInitiated"` + +--- + +### ShowArtifact + +• **ShowArtifact** = `"ShowArtifact"` + +--- + +### UIChange + +• **UIChange** = `"UIChange"` + +--- + +### WindowResize + +• **WindowResize** = `"WindowResize"` + +--- + +### WorldMouseClick + +• **WorldMouseClick** = `"WorldMouseClick"` + +--- + +### WorldMouseDown + +• **WorldMouseDown** = `"WorldMouseDown"` + +--- + +### WorldMouseMove + +• **WorldMouseMove** = `"WorldMouseMove"` + +--- + +### WorldMouseOut + +• **WorldMouseOut** = `"WorldMouseOut"` + +--- + +### WorldMouseUp + +• **WorldMouseUp** = `"WorldMouseUp"` + +--- + +### ZoomIn + +• **ZoomIn** = `"ZoomIn"` + +--- + +### ZoomOut + +• **ZoomOut** = `"ZoomOut"` diff --git a/docs/enums/Frontend_Utils_constants.DFZIndex.md b/docs/enums/Frontend_Utils_constants.DFZIndex.md new file mode 100644 index 00000000..0fe398de --- /dev/null +++ b/docs/enums/Frontend_Utils_constants.DFZIndex.md @@ -0,0 +1,43 @@ +# Enumeration: DFZIndex + +[Frontend/Utils/constants](../modules/Frontend_Utils_constants.md).DFZIndex + +## Table of contents + +### Enumeration members + +- [HoverPlanet](Frontend_Utils_constants.DFZIndex.md#hoverplanet) +- [MenuBar](Frontend_Utils_constants.DFZIndex.md#menubar) +- [Modal](Frontend_Utils_constants.DFZIndex.md#modal) +- [Notification](Frontend_Utils_constants.DFZIndex.md#notification) +- [Tooltip](Frontend_Utils_constants.DFZIndex.md#tooltip) + +## Enumeration members + +### HoverPlanet + +• **HoverPlanet** = `1001` + +--- + +### MenuBar + +• **MenuBar** = `4` + +--- + +### Modal + +• **Modal** = `1001` + +--- + +### Notification + +• **Notification** = `1000` + +--- + +### Tooltip + +• **Tooltip** = `16000000` diff --git a/docs/enums/Frontend_Views_PlanetNotifications.PlanetNotifType.md b/docs/enums/Frontend_Views_PlanetNotifications.PlanetNotifType.md new file mode 100644 index 00000000..f0bff81b --- /dev/null +++ b/docs/enums/Frontend_Views_PlanetNotifications.PlanetNotifType.md @@ -0,0 +1,36 @@ +# Enumeration: PlanetNotifType + +[Frontend/Views/PlanetNotifications](../modules/Frontend_Views_PlanetNotifications.md).PlanetNotifType + +## Table of contents + +### Enumeration members + +- [CanAddEmoji](Frontend_Views_PlanetNotifications.PlanetNotifType.md#canaddemoji) +- [Claimed](Frontend_Views_PlanetNotifications.PlanetNotifType.md#claimed) +- [DistanceFromCenter](Frontend_Views_PlanetNotifications.PlanetNotifType.md#distancefromcenter) +- [PlanetCanUpgrade](Frontend_Views_PlanetNotifications.PlanetNotifType.md#planetcanupgrade) + +## Enumeration members + +### CanAddEmoji + +• **CanAddEmoji** = `3` + +--- + +### Claimed + +• **Claimed** = `1` + +--- + +### DistanceFromCenter + +• **DistanceFromCenter** = `2` + +--- + +### PlanetCanUpgrade + +• **PlanetCanUpgrade** = `0` diff --git a/docs/enums/_types_darkforest_api_contractsapitypes.contractevent.md b/docs/enums/_types_darkforest_api_contractsapitypes.contractevent.md deleted file mode 100644 index 1bb6496c..00000000 --- a/docs/enums/_types_darkforest_api_contractsapitypes.contractevent.md +++ /dev/null @@ -1,99 +0,0 @@ -# Enumeration: ContractEvent - -[\_types/darkforest/api/ContractsAPITypes](../modules/_types_darkforest_api_contractsapitypes.md).ContractEvent - -## Table of contents - -### Enumeration members - -- [ArrivalQueued](_types_darkforest_api_contractsapitypes.contractevent.md#arrivalqueued) -- [ArtifactActivated](_types_darkforest_api_contractsapitypes.contractevent.md#artifactactivated) -- [ArtifactDeactivated](_types_darkforest_api_contractsapitypes.contractevent.md#artifactdeactivated) -- [ArtifactDeposited](_types_darkforest_api_contractsapitypes.contractevent.md#artifactdeposited) -- [ArtifactFound](_types_darkforest_api_contractsapitypes.contractevent.md#artifactfound) -- [ArtifactWithdrawn](_types_darkforest_api_contractsapitypes.contractevent.md#artifactwithdrawn) -- [ChangedGPTCreditPrice](_types_darkforest_api_contractsapitypes.contractevent.md#changedgptcreditprice) -- [LocationRevealed](_types_darkforest_api_contractsapitypes.contractevent.md#locationrevealed) -- [PlanetHatBought](_types_darkforest_api_contractsapitypes.contractevent.md#planethatbought) -- [PlanetSilverWithdrawn](_types_darkforest_api_contractsapitypes.contractevent.md#planetsilverwithdrawn) -- [PlanetTransferred](_types_darkforest_api_contractsapitypes.contractevent.md#planettransferred) -- [PlanetUpgraded](_types_darkforest_api_contractsapitypes.contractevent.md#planetupgraded) -- [PlayerInitialized](_types_darkforest_api_contractsapitypes.contractevent.md#playerinitialized) - -## Enumeration members - -### ArrivalQueued - -• **ArrivalQueued**: = "ArrivalQueued" - ---- - -### ArtifactActivated - -• **ArtifactActivated**: = "ArtifactActivated" - ---- - -### ArtifactDeactivated - -• **ArtifactDeactivated**: = "ArtifactDeactivated" - ---- - -### ArtifactDeposited - -• **ArtifactDeposited**: = "ArtifactDeposited" - ---- - -### ArtifactFound - -• **ArtifactFound**: = "ArtifactFound" - ---- - -### ArtifactWithdrawn - -• **ArtifactWithdrawn**: = "ArtifactWithdrawn" - ---- - -### ChangedGPTCreditPrice - -• **ChangedGPTCreditPrice**: = "ChangedCreditPrice" - ---- - -### LocationRevealed - -• **LocationRevealed**: = "LocationRevealed" - ---- - -### PlanetHatBought - -• **PlanetHatBought**: = "PlanetHatBought" - ---- - -### PlanetSilverWithdrawn - -• **PlanetSilverWithdrawn**: = "PlanetSilverWithdrawn" - ---- - -### PlanetTransferred - -• **PlanetTransferred**: = "PlanetTransferred" - ---- - -### PlanetUpgraded - -• **PlanetUpgraded**: = "PlanetUpgraded" - ---- - -### PlayerInitialized - -• **PlayerInitialized**: = "PlayerInitialized" diff --git a/docs/enums/_types_darkforest_api_contractsapitypes.contractsapievent.md b/docs/enums/_types_darkforest_api_contractsapitypes.contractsapievent.md deleted file mode 100644 index 449a4922..00000000 --- a/docs/enums/_types_darkforest_api_contractsapitypes.contractsapievent.md +++ /dev/null @@ -1,92 +0,0 @@ -# Enumeration: ContractsAPIEvent - -[\_types/darkforest/api/ContractsAPITypes](../modules/_types_darkforest_api_contractsapitypes.md).ContractsAPIEvent - -## Table of contents - -### Enumeration members - -- [ArrivalQueued](_types_darkforest_api_contractsapitypes.contractsapievent.md#arrivalqueued) -- [ArtifactUpdate](_types_darkforest_api_contractsapitypes.contractsapievent.md#artifactupdate) -- [ChangedGPTCreditPrice](_types_darkforest_api_contractsapitypes.contractsapievent.md#changedgptcreditprice) -- [LocationRevealed](_types_darkforest_api_contractsapitypes.contractsapievent.md#locationrevealed) -- [PlanetTransferred](_types_darkforest_api_contractsapitypes.contractsapievent.md#planettransferred) -- [PlanetUpdate](_types_darkforest_api_contractsapitypes.contractsapievent.md#planetupdate) -- [PlayerUpdate](_types_darkforest_api_contractsapitypes.contractsapievent.md#playerupdate) -- [RadiusUpdated](_types_darkforest_api_contractsapitypes.contractsapievent.md#radiusupdated) -- [TxConfirmed](_types_darkforest_api_contractsapitypes.contractsapievent.md#txconfirmed) -- [TxInitFailed](_types_darkforest_api_contractsapitypes.contractsapievent.md#txinitfailed) -- [TxReverted](_types_darkforest_api_contractsapitypes.contractsapievent.md#txreverted) -- [TxSubmitted](_types_darkforest_api_contractsapitypes.contractsapievent.md#txsubmitted) - -## Enumeration members - -### ArrivalQueued - -• **ArrivalQueued**: = "ArrivalQueued" - ---- - -### ArtifactUpdate - -• **ArtifactUpdate**: = "ArtifactUpdate" - ---- - -### ChangedGPTCreditPrice - -• **ChangedGPTCreditPrice**: = "ChangedCreditPrice" - ---- - -### LocationRevealed - -• **LocationRevealed**: = "LocationRevealed" - ---- - -### PlanetTransferred - -• **PlanetTransferred**: = "PlanetTransferred" - ---- - -### PlanetUpdate - -• **PlanetUpdate**: = "PlanetUpdate" - ---- - -### PlayerUpdate - -• **PlayerUpdate**: = "PlayerUpdate" - ---- - -### RadiusUpdated - -• **RadiusUpdated**: = "RadiusUpdated" - ---- - -### TxConfirmed - -• **TxConfirmed**: = "TxConfirmed" - ---- - -### TxInitFailed - -• **TxInitFailed**: = "TxInitFailed" - ---- - -### TxReverted - -• **TxReverted**: = "TxReverted" - ---- - -### TxSubmitted - -• **TxSubmitted**: = "TxSubmitted" diff --git a/docs/enums/_types_darkforest_api_contractsapitypes.initargidxs.md b/docs/enums/_types_darkforest_api_contractsapitypes.initargidxs.md deleted file mode 100644 index 15b7979c..00000000 --- a/docs/enums/_types_darkforest_api_contractsapitypes.initargidxs.md +++ /dev/null @@ -1,64 +0,0 @@ -# Enumeration: InitArgIdxs - -[\_types/darkforest/api/ContractsAPITypes](../modules/_types_darkforest_api_contractsapitypes.md).InitArgIdxs - -## Table of contents - -### Enumeration members - -- [LOCATION_ID](_types_darkforest_api_contractsapitypes.initargidxs.md#location_id) -- [PERLIN](_types_darkforest_api_contractsapitypes.initargidxs.md#perlin) -- [PERLIN_LENGTH_SCALE](_types_darkforest_api_contractsapitypes.initargidxs.md#perlin_length_scale) -- [PERLIN_MIRROR_X](_types_darkforest_api_contractsapitypes.initargidxs.md#perlin_mirror_x) -- [PERLIN_MIRROR_Y](_types_darkforest_api_contractsapitypes.initargidxs.md#perlin_mirror_y) -- [PLANETHASH_KEY](_types_darkforest_api_contractsapitypes.initargidxs.md#planethash_key) -- [RADIUS](_types_darkforest_api_contractsapitypes.initargidxs.md#radius) -- [SPACETYPE_KEY](_types_darkforest_api_contractsapitypes.initargidxs.md#spacetype_key) - -## Enumeration members - -### LOCATION_ID - -• **LOCATION_ID**: = 0 - ---- - -### PERLIN - -• **PERLIN**: = 1 - ---- - -### PERLIN_LENGTH_SCALE - -• **PERLIN_LENGTH_SCALE**: = 5 - ---- - -### PERLIN_MIRROR_X - -• **PERLIN_MIRROR_X**: = 6 - ---- - -### PERLIN_MIRROR_Y - -• **PERLIN_MIRROR_Y**: = 7 - ---- - -### PLANETHASH_KEY - -• **PLANETHASH_KEY**: = 3 - ---- - -### RADIUS - -• **RADIUS**: = 2 - ---- - -### SPACETYPE_KEY - -• **SPACETYPE_KEY**: = 4 diff --git a/docs/enums/_types_darkforest_api_contractsapitypes.moveargidxs.md b/docs/enums/_types_darkforest_api_contractsapitypes.moveargidxs.md deleted file mode 100644 index 15bf3b02..00000000 --- a/docs/enums/_types_darkforest_api_contractsapitypes.moveargidxs.md +++ /dev/null @@ -1,99 +0,0 @@ -# Enumeration: MoveArgIdxs - -[\_types/darkforest/api/ContractsAPITypes](../modules/_types_darkforest_api_contractsapitypes.md).MoveArgIdxs - -## Table of contents - -### Enumeration members - -- [ARTIFACT_SENT](_types_darkforest_api_contractsapitypes.moveargidxs.md#artifact_sent) -- [DIST_MAX](_types_darkforest_api_contractsapitypes.moveargidxs.md#dist_max) -- [FROM_ID](_types_darkforest_api_contractsapitypes.moveargidxs.md#from_id) -- [PERLIN_LENGTH_SCALE](_types_darkforest_api_contractsapitypes.moveargidxs.md#perlin_length_scale) -- [PERLIN_MIRROR_X](_types_darkforest_api_contractsapitypes.moveargidxs.md#perlin_mirror_x) -- [PERLIN_MIRROR_Y](_types_darkforest_api_contractsapitypes.moveargidxs.md#perlin_mirror_y) -- [PLANETHASH_KEY](_types_darkforest_api_contractsapitypes.moveargidxs.md#planethash_key) -- [SHIPS_SENT](_types_darkforest_api_contractsapitypes.moveargidxs.md#ships_sent) -- [SILVER_SENT](_types_darkforest_api_contractsapitypes.moveargidxs.md#silver_sent) -- [SPACETYPE_KEY](_types_darkforest_api_contractsapitypes.moveargidxs.md#spacetype_key) -- [TO_ID](_types_darkforest_api_contractsapitypes.moveargidxs.md#to_id) -- [TO_PERLIN](_types_darkforest_api_contractsapitypes.moveargidxs.md#to_perlin) -- [TO_RADIUS](_types_darkforest_api_contractsapitypes.moveargidxs.md#to_radius) - -## Enumeration members - -### ARTIFACT_SENT - -• **ARTIFACT_SENT**: = 12 - ---- - -### DIST_MAX - -• **DIST_MAX**: = 4 - ---- - -### FROM_ID - -• **FROM_ID**: = 0 - ---- - -### PERLIN_LENGTH_SCALE - -• **PERLIN_LENGTH_SCALE**: = 7 - ---- - -### PERLIN_MIRROR_X - -• **PERLIN_MIRROR_X**: = 8 - ---- - -### PERLIN_MIRROR_Y - -• **PERLIN_MIRROR_Y**: = 9 - ---- - -### PLANETHASH_KEY - -• **PLANETHASH_KEY**: = 5 - ---- - -### SHIPS_SENT - -• **SHIPS_SENT**: = 10 - ---- - -### SILVER_SENT - -• **SILVER_SENT**: = 11 - ---- - -### SPACETYPE_KEY - -• **SPACETYPE_KEY**: = 6 - ---- - -### TO_ID - -• **TO_ID**: = 1 - ---- - -### TO_PERLIN - -• **TO_PERLIN**: = 2 - ---- - -### TO_RADIUS - -• **TO_RADIUS**: = 3 diff --git a/docs/enums/_types_darkforest_api_contractsapitypes.planeteventtype.md b/docs/enums/_types_darkforest_api_contractsapitypes.planeteventtype.md deleted file mode 100644 index ba8c762d..00000000 --- a/docs/enums/_types_darkforest_api_contractsapitypes.planeteventtype.md +++ /dev/null @@ -1,15 +0,0 @@ -# Enumeration: PlanetEventType - -[\_types/darkforest/api/ContractsAPITypes](../modules/_types_darkforest_api_contractsapitypes.md).PlanetEventType - -## Table of contents - -### Enumeration members - -- [ARRIVAL](_types_darkforest_api_contractsapitypes.planeteventtype.md#arrival) - -## Enumeration members - -### ARRIVAL - -• **ARRIVAL**: = 0 diff --git a/docs/enums/_types_darkforest_api_contractsapitypes.upgradeargidxs.md b/docs/enums/_types_darkforest_api_contractsapitypes.upgradeargidxs.md deleted file mode 100644 index 857d0ad6..00000000 --- a/docs/enums/_types_darkforest_api_contractsapitypes.upgradeargidxs.md +++ /dev/null @@ -1,22 +0,0 @@ -# Enumeration: UpgradeArgIdxs - -[\_types/darkforest/api/ContractsAPITypes](../modules/_types_darkforest_api_contractsapitypes.md).UpgradeArgIdxs - -## Table of contents - -### Enumeration members - -- [LOCATION_ID](_types_darkforest_api_contractsapitypes.upgradeargidxs.md#location_id) -- [UPGRADE_BRANCH](_types_darkforest_api_contractsapitypes.upgradeargidxs.md#upgrade_branch) - -## Enumeration members - -### LOCATION_ID - -• **LOCATION_ID**: = 0 - ---- - -### UPGRADE_BRANCH - -• **UPGRADE_BRANCH**: = 1 diff --git a/docs/enums/_types_darkforest_api_contractsapitypes.zkargidx.md b/docs/enums/_types_darkforest_api_contractsapitypes.zkargidx.md deleted file mode 100644 index 4e7e958c..00000000 --- a/docs/enums/_types_darkforest_api_contractsapitypes.zkargidx.md +++ /dev/null @@ -1,36 +0,0 @@ -# Enumeration: ZKArgIdx - -[\_types/darkforest/api/ContractsAPITypes](../modules/_types_darkforest_api_contractsapitypes.md).ZKArgIdx - -## Table of contents - -### Enumeration members - -- [DATA](_types_darkforest_api_contractsapitypes.zkargidx.md#data) -- [PROOF_A](_types_darkforest_api_contractsapitypes.zkargidx.md#proof_a) -- [PROOF_B](_types_darkforest_api_contractsapitypes.zkargidx.md#proof_b) -- [PROOF_C](_types_darkforest_api_contractsapitypes.zkargidx.md#proof_c) - -## Enumeration members - -### DATA - -• **DATA**: = 3 - ---- - -### PROOF_A - -• **PROOF_A**: = 0 - ---- - -### PROOF_B - -• **PROOF_B**: = 1 - ---- - -### PROOF_C - -• **PROOF_C**: = 2 diff --git a/docs/enums/_types_global_globaltypes.statidx.md b/docs/enums/_types_global_globaltypes.statidx.md deleted file mode 100644 index d7e49a70..00000000 --- a/docs/enums/_types_global_globaltypes.statidx.md +++ /dev/null @@ -1,43 +0,0 @@ -# Enumeration: StatIdx - -[\_types/global/GlobalTypes](../modules/_types_global_globaltypes.md).StatIdx - -## Table of contents - -### Enumeration members - -- [Defense](_types_global_globaltypes.statidx.md#defense) -- [EnergyCap](_types_global_globaltypes.statidx.md#energycap) -- [EnergyGro](_types_global_globaltypes.statidx.md#energygro) -- [Range](_types_global_globaltypes.statidx.md#range) -- [Speed](_types_global_globaltypes.statidx.md#speed) - -## Enumeration members - -### Defense - -• **Defense**: = 4 - ---- - -### EnergyCap - -• **EnergyCap**: = 0 - ---- - -### EnergyGro - -• **EnergyGro**: = 1 - ---- - -### Range - -• **Range**: = 2 - ---- - -### Speed - -• **Speed**: = 3 diff --git a/docs/enums/backend_gamelogic_artifactutils.artifactfilecolor.md b/docs/enums/backend_gamelogic_artifactutils.artifactfilecolor.md deleted file mode 100644 index fe3dc16c..00000000 --- a/docs/enums/backend_gamelogic_artifactutils.artifactfilecolor.md +++ /dev/null @@ -1,22 +0,0 @@ -# Enumeration: ArtifactFileColor - -[Backend/GameLogic/ArtifactUtils](../modules/backend_gamelogic_artifactutils.md).ArtifactFileColor - -## Table of contents - -### Enumeration members - -- [APP_BACKGROUND](backend_gamelogic_artifactutils.artifactfilecolor.md#app_background) -- [BLUE](backend_gamelogic_artifactutils.artifactfilecolor.md#blue) - -## Enumeration members - -### APP_BACKGROUND - -• **APP_BACKGROUND**: = 1 - ---- - -### BLUE - -• **BLUE**: = 0 diff --git a/docs/enums/backend_gamelogic_gamemanager.gamemanagerevent.md b/docs/enums/backend_gamelogic_gamemanager.gamemanagerevent.md deleted file mode 100644 index 17c8cc64..00000000 --- a/docs/enums/backend_gamelogic_gamemanager.gamemanagerevent.md +++ /dev/null @@ -1,50 +0,0 @@ -# Enumeration: GameManagerEvent - -[Backend/GameLogic/GameManager](../modules/backend_gamelogic_gamemanager.md).GameManagerEvent - -## Table of contents - -### Enumeration members - -- [ArtifactUpdate](backend_gamelogic_gamemanager.gamemanagerevent.md#artifactupdate) -- [DiscoveredNewChunk](backend_gamelogic_gamemanager.gamemanagerevent.md#discoverednewchunk) -- [InitializedPlayer](backend_gamelogic_gamemanager.gamemanagerevent.md#initializedplayer) -- [InitializedPlayerError](backend_gamelogic_gamemanager.gamemanagerevent.md#initializedplayererror) -- [Moved](backend_gamelogic_gamemanager.gamemanagerevent.md#moved) -- [PlanetUpdate](backend_gamelogic_gamemanager.gamemanagerevent.md#planetupdate) - -## Enumeration members - -### ArtifactUpdate - -• **ArtifactUpdate**: = "ArtifactUpdate" - ---- - -### DiscoveredNewChunk - -• **DiscoveredNewChunk**: = "DiscoveredNewChunk" - ---- - -### InitializedPlayer - -• **InitializedPlayer**: = "InitializedPlayer" - ---- - -### InitializedPlayerError - -• **InitializedPlayerError**: = "InitializedPlayerError" - ---- - -### Moved - -• **Moved**: = "Moved" - ---- - -### PlanetUpdate - -• **PlanetUpdate**: = "PlanetUpdate" diff --git a/docs/enums/backend_gamelogic_gameuimanager.gameuimanagerevent.md b/docs/enums/backend_gamelogic_gameuimanager.gameuimanagerevent.md deleted file mode 100644 index 39046898..00000000 --- a/docs/enums/backend_gamelogic_gameuimanager.gameuimanagerevent.md +++ /dev/null @@ -1,22 +0,0 @@ -# Enumeration: GameUIManagerEvent - -[Backend/GameLogic/GameUIManager](../modules/backend_gamelogic_gameuimanager.md).GameUIManagerEvent - -## Table of contents - -### Enumeration members - -- [InitializedPlayer](backend_gamelogic_gameuimanager.gameuimanagerevent.md#initializedplayer) -- [InitializedPlayerError](backend_gamelogic_gameuimanager.gameuimanagerevent.md#initializedplayererror) - -## Enumeration members - -### InitializedPlayer - -• **InitializedPlayer**: = "InitializedPlayer" - ---- - -### InitializedPlayerError - -• **InitializedPlayerError**: = "InitializedPlayerError" diff --git a/docs/enums/backend_gamelogic_tutorialmanager.tutorialmanagerevent.md b/docs/enums/backend_gamelogic_tutorialmanager.tutorialmanagerevent.md deleted file mode 100644 index 60b841cb..00000000 --- a/docs/enums/backend_gamelogic_tutorialmanager.tutorialmanagerevent.md +++ /dev/null @@ -1,15 +0,0 @@ -# Enumeration: TutorialManagerEvent - -[Backend/GameLogic/TutorialManager](../modules/backend_gamelogic_tutorialmanager.md).TutorialManagerEvent - -## Table of contents - -### Enumeration members - -- [StateChanged](backend_gamelogic_tutorialmanager.tutorialmanagerevent.md#statechanged) - -## Enumeration members - -### StateChanged - -• **StateChanged**: = "StateChanged" diff --git a/docs/enums/backend_gamelogic_tutorialmanager.tutorialstate.md b/docs/enums/backend_gamelogic_tutorialmanager.tutorialstate.md deleted file mode 100644 index e6eb3e3a..00000000 --- a/docs/enums/backend_gamelogic_tutorialmanager.tutorialstate.md +++ /dev/null @@ -1,92 +0,0 @@ -# Enumeration: TutorialState - -[Backend/GameLogic/TutorialManager](../modules/backend_gamelogic_tutorialmanager.md).TutorialState - -## Table of contents - -### Enumeration members - -- [AlmostCompleted](backend_gamelogic_tutorialmanager.tutorialstate.md#almostcompleted) -- [Completed](backend_gamelogic_tutorialmanager.tutorialstate.md#completed) -- [Deselect](backend_gamelogic_tutorialmanager.tutorialstate.md#deselect) -- [HomePlanet](backend_gamelogic_tutorialmanager.tutorialstate.md#homeplanet) -- [HowToGetScore](backend_gamelogic_tutorialmanager.tutorialstate.md#howtogetscore) -- [MinerMove](backend_gamelogic_tutorialmanager.tutorialstate.md#minermove) -- [MinerPause](backend_gamelogic_tutorialmanager.tutorialstate.md#minerpause) -- [None](backend_gamelogic_tutorialmanager.tutorialstate.md#none) -- [SendFleet](backend_gamelogic_tutorialmanager.tutorialstate.md#sendfleet) -- [Terminal](backend_gamelogic_tutorialmanager.tutorialstate.md#terminal) -- [Valhalla](backend_gamelogic_tutorialmanager.tutorialstate.md#valhalla) -- [ZoomOut](backend_gamelogic_tutorialmanager.tutorialstate.md#zoomout) - -## Enumeration members - -### AlmostCompleted - -• **AlmostCompleted**: = 10 - ---- - -### Completed - -• **Completed**: = 11 - ---- - -### Deselect - -• **Deselect**: = 3 - ---- - -### HomePlanet - -• **HomePlanet**: = 1 - ---- - -### HowToGetScore - -• **HowToGetScore**: = 8 - ---- - -### MinerMove - -• **MinerMove**: = 5 - ---- - -### MinerPause - -• **MinerPause**: = 6 - ---- - -### None - -• **None**: = 0 - ---- - -### SendFleet - -• **SendFleet**: = 2 - ---- - -### Terminal - -• **Terminal**: = 7 - ---- - -### Valhalla - -• **Valhalla**: = 9 - ---- - -### ZoomOut - -• **ZoomOut**: = 4 diff --git a/docs/enums/backend_miner_minermanager.minermanagerevent.md b/docs/enums/backend_miner_minermanager.minermanagerevent.md deleted file mode 100644 index 5391ece8..00000000 --- a/docs/enums/backend_miner_minermanager.minermanagerevent.md +++ /dev/null @@ -1,15 +0,0 @@ -# Enumeration: MinerManagerEvent - -[Backend/Miner/MinerManager](../modules/backend_miner_minermanager.md).MinerManagerEvent - -## Table of contents - -### Enumeration members - -- [DiscoveredNewChunk](backend_miner_minermanager.minermanagerevent.md#discoverednewchunk) - -## Enumeration members - -### DiscoveredNewChunk - -• **DiscoveredNewChunk**: = "DiscoveredNewChunk" diff --git a/docs/enums/backend_miner_miningpatterns.miningpatterntype.md b/docs/enums/backend_miner_miningpatterns.miningpatterntype.md deleted file mode 100644 index 6c07b574..00000000 --- a/docs/enums/backend_miner_miningpatterns.miningpatterntype.md +++ /dev/null @@ -1,57 +0,0 @@ -# Enumeration: MiningPatternType - -[Backend/Miner/MiningPatterns](../modules/backend_miner_miningpatterns.md).MiningPatternType - -## Table of contents - -### Enumeration members - -- [Cone](backend_miner_miningpatterns.miningpatterntype.md#cone) -- [ETH](backend_miner_miningpatterns.miningpatterntype.md#eth) -- [Grid](backend_miner_miningpatterns.miningpatterntype.md#grid) -- [Home](backend_miner_miningpatterns.miningpatterntype.md#home) -- [Spiral](backend_miner_miningpatterns.miningpatterntype.md#spiral) -- [SwissCheese](backend_miner_miningpatterns.miningpatterntype.md#swisscheese) -- [Target](backend_miner_miningpatterns.miningpatterntype.md#target) - -## Enumeration members - -### Cone - -• **Cone**: = 3 - ---- - -### ETH - -• **ETH**: = 5 - ---- - -### Grid - -• **Grid**: = 4 - ---- - -### Home - -• **Home**: = 0 - ---- - -### Spiral - -• **Spiral**: = 2 - ---- - -### SwissCheese - -• **SwissCheese**: = 6 - ---- - -### Target - -• **Target**: = 1 diff --git a/docs/enums/backend_network_utilityserverapi.emailresponse.md b/docs/enums/backend_network_utilityserverapi.emailresponse.md deleted file mode 100644 index 5fb45e12..00000000 --- a/docs/enums/backend_network_utilityserverapi.emailresponse.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enumeration: EmailResponse - -[Backend/Network/UtilityServerAPI](../modules/backend_network_utilityserverapi.md).EmailResponse - -## Table of contents - -### Enumeration members - -- [Invalid](backend_network_utilityserverapi.emailresponse.md#invalid) -- [ServerError](backend_network_utilityserverapi.emailresponse.md#servererror) -- [Success](backend_network_utilityserverapi.emailresponse.md#success) - -## Enumeration members - -### Invalid - -• **Invalid**: = 1 - ---- - -### ServerError - -• **ServerError**: = 2 - ---- - -### Success - -• **Success**: = 0 diff --git a/docs/enums/backend_storage_readerdatastore.singleplanetdatastoreevent.md b/docs/enums/backend_storage_readerdatastore.singleplanetdatastoreevent.md deleted file mode 100644 index 1163745f..00000000 --- a/docs/enums/backend_storage_readerdatastore.singleplanetdatastoreevent.md +++ /dev/null @@ -1,22 +0,0 @@ -# Enumeration: SinglePlanetDataStoreEvent - -[Backend/Storage/ReaderDataStore](../modules/backend_storage_readerdatastore.md).SinglePlanetDataStoreEvent - -## Table of contents - -### Enumeration members - -- [REFRESHED_ARTIFACT](backend_storage_readerdatastore.singleplanetdatastoreevent.md#refreshed_artifact) -- [REFRESHED_PLANET](backend_storage_readerdatastore.singleplanetdatastoreevent.md#refreshed_planet) - -## Enumeration members - -### REFRESHED_ARTIFACT - -• **REFRESHED_ARTIFACT**: = "REFRESHED_ARTIFACT" - ---- - -### REFRESHED_PLANET - -• **REFRESHED_PLANET**: = "REFRESHED_PLANET" diff --git a/docs/enums/frontend_components_email.emailctamode.md b/docs/enums/frontend_components_email.emailctamode.md deleted file mode 100644 index 29d9b7aa..00000000 --- a/docs/enums/frontend_components_email.emailctamode.md +++ /dev/null @@ -1,22 +0,0 @@ -# Enumeration: EmailCTAMode - -[Frontend/Components/Email](../modules/frontend_components_email.md).EmailCTAMode - -## Table of contents - -### Enumeration members - -- [SUBSCRIBE](frontend_components_email.emailctamode.md#subscribe) -- [UNSUBSCRIBE](frontend_components_email.emailctamode.md#unsubscribe) - -## Enumeration members - -### SUBSCRIBE - -• **SUBSCRIBE**: = 0 - ---- - -### UNSUBSCRIBE - -• **UNSUBSCRIBE**: = 1 diff --git a/docs/enums/frontend_game_notificationmanager.notificationmanagerevent.md b/docs/enums/frontend_game_notificationmanager.notificationmanagerevent.md deleted file mode 100644 index 6e91577d..00000000 --- a/docs/enums/frontend_game_notificationmanager.notificationmanagerevent.md +++ /dev/null @@ -1,15 +0,0 @@ -# Enumeration: NotificationManagerEvent - -[Frontend/Game/NotificationManager](../modules/frontend_game_notificationmanager.md).NotificationManagerEvent - -## Table of contents - -### Enumeration members - -- [Notify](frontend_game_notificationmanager.notificationmanagerevent.md#notify) - -## Enumeration members - -### Notify - -• **Notify**: = "Notify" diff --git a/docs/enums/frontend_game_notificationmanager.notificationtype.md b/docs/enums/frontend_game_notificationmanager.notificationtype.md deleted file mode 100644 index 7c547521..00000000 --- a/docs/enums/frontend_game_notificationmanager.notificationtype.md +++ /dev/null @@ -1,120 +0,0 @@ -# Enumeration: NotificationType - -[Frontend/Game/NotificationManager](../modules/frontend_game_notificationmanager.md).NotificationType - -## Table of contents - -### Enumeration members - -- [BalanceEmpty](frontend_game_notificationmanager.notificationtype.md#balanceempty) -- [CanUpgrade](frontend_game_notificationmanager.notificationtype.md#canupgrade) -- [FoundArtifact](frontend_game_notificationmanager.notificationtype.md#foundartifact) -- [FoundBiome](frontend_game_notificationmanager.notificationtype.md#foundbiome) -- [FoundComet](frontend_game_notificationmanager.notificationtype.md#foundcomet) -- [FoundDeadSpace](frontend_game_notificationmanager.notificationtype.md#founddeadspace) -- [FoundDeepSpace](frontend_game_notificationmanager.notificationtype.md#founddeepspace) -- [FoundPirates](frontend_game_notificationmanager.notificationtype.md#foundpirates) -- [FoundSilver](frontend_game_notificationmanager.notificationtype.md#foundsilver) -- [FoundSilverBank](frontend_game_notificationmanager.notificationtype.md#foundsilverbank) -- [FoundSpace](frontend_game_notificationmanager.notificationtype.md#foundspace) -- [FoundTradingPost](frontend_game_notificationmanager.notificationtype.md#foundtradingpost) -- [Generic](frontend_game_notificationmanager.notificationtype.md#generic) -- [ReceivedPlanet](frontend_game_notificationmanager.notificationtype.md#receivedplanet) -- [Tx](frontend_game_notificationmanager.notificationtype.md#tx) -- [WelcomePlayer](frontend_game_notificationmanager.notificationtype.md#welcomeplayer) - -## Enumeration members - -### BalanceEmpty - -• **BalanceEmpty**: = 2 - ---- - -### CanUpgrade - -• **CanUpgrade**: = 1 - ---- - -### FoundArtifact - -• **FoundArtifact**: = 12 - ---- - -### FoundBiome - -• **FoundBiome**: = 13 - ---- - -### FoundComet - -• **FoundComet**: = 11 - ---- - -### FoundDeadSpace - -• **FoundDeadSpace**: = 6 - ---- - -### FoundDeepSpace - -• **FoundDeepSpace**: = 5 - ---- - -### FoundPirates - -• **FoundPirates**: = 7 - ---- - -### FoundSilver - -• **FoundSilver**: = 8 - ---- - -### FoundSilverBank - -• **FoundSilverBank**: = 9 - ---- - -### FoundSpace - -• **FoundSpace**: = 4 - ---- - -### FoundTradingPost - -• **FoundTradingPost**: = 10 - ---- - -### Generic - -• **Generic**: = 15 - ---- - -### ReceivedPlanet - -• **ReceivedPlanet**: = 14 - ---- - -### Tx - -• **Tx**: = 0 - ---- - -### WelcomePlayer - -• **WelcomePlayer**: = 3 diff --git a/docs/enums/frontend_game_windowmanager.cursorstate.md b/docs/enums/frontend_game_windowmanager.cursorstate.md deleted file mode 100644 index 33e31788..00000000 --- a/docs/enums/frontend_game_windowmanager.cursorstate.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enumeration: CursorState - -[Frontend/Game/WindowManager](../modules/frontend_game_windowmanager.md).CursorState - -## Table of contents - -### Enumeration members - -- [Normal](frontend_game_windowmanager.cursorstate.md#normal) -- [TargetingExplorer](frontend_game_windowmanager.cursorstate.md#targetingexplorer) -- [TargetingForces](frontend_game_windowmanager.cursorstate.md#targetingforces) - -## Enumeration members - -### Normal - -• **Normal**: = 0 - ---- - -### TargetingExplorer - -• **TargetingExplorer**: = 1 - ---- - -### TargetingForces - -• **TargetingForces**: = 2 diff --git a/docs/enums/frontend_game_windowmanager.tooltipname.md b/docs/enums/frontend_game_windowmanager.tooltipname.md deleted file mode 100644 index bf6fa8df..00000000 --- a/docs/enums/frontend_game_windowmanager.tooltipname.md +++ /dev/null @@ -1,358 +0,0 @@ -# Enumeration: TooltipName - -[Frontend/Game/WindowManager](../modules/frontend_game_windowmanager.md).TooltipName - -## Table of contents - -### Enumeration members - -- [ArtifactBuff](frontend_game_windowmanager.tooltipname.md#artifactbuff) -- [ArtifactStored](frontend_game_windowmanager.tooltipname.md#artifactstored) -- [Bonus](frontend_game_windowmanager.tooltipname.md#bonus) -- [BonusDefense](frontend_game_windowmanager.tooltipname.md#bonusdefense) -- [BonusEnergyCap](frontend_game_windowmanager.tooltipname.md#bonusenergycap) -- [BonusEnergyGro](frontend_game_windowmanager.tooltipname.md#bonusenergygro) -- [BonusRange](frontend_game_windowmanager.tooltipname.md#bonusrange) -- [BonusSpeed](frontend_game_windowmanager.tooltipname.md#bonusspeed) -- [Clowntown](frontend_game_windowmanager.tooltipname.md#clowntown) -- [CurrentMining](frontend_game_windowmanager.tooltipname.md#currentmining) -- [Defense](frontend_game_windowmanager.tooltipname.md#defense) -- [Energy](frontend_game_windowmanager.tooltipname.md#energy) -- [EnergyGrowth](frontend_game_windowmanager.tooltipname.md#energygrowth) -- [FindArtifact](frontend_game_windowmanager.tooltipname.md#findartifact) -- [HashesPerSec](frontend_game_windowmanager.tooltipname.md#hashespersec) -- [HoverPlanet](frontend_game_windowmanager.tooltipname.md#hoverplanet) -- [MaxLevel](frontend_game_windowmanager.tooltipname.md#maxlevel) -- [MinEnergy](frontend_game_windowmanager.tooltipname.md#minenergy) -- [MiningPause](frontend_game_windowmanager.tooltipname.md#miningpause) -- [MiningTarget](frontend_game_windowmanager.tooltipname.md#miningtarget) -- [ModalFindArtifact](frontend_game_windowmanager.tooltipname.md#modalfindartifact) -- [ModalHats](frontend_game_windowmanager.tooltipname.md#modalhats) -- [ModalHelp](frontend_game_windowmanager.tooltipname.md#modalhelp) -- [ModalLeaderboard](frontend_game_windowmanager.tooltipname.md#modalleaderboard) -- [ModalPlanetDetails](frontend_game_windowmanager.tooltipname.md#modalplanetdetails) -- [ModalPlanetDex](frontend_game_windowmanager.tooltipname.md#modalplanetdex) -- [ModalPlugins](frontend_game_windowmanager.tooltipname.md#modalplugins) -- [ModalSettings](frontend_game_windowmanager.tooltipname.md#modalsettings) -- [ModalTwitterBroadcast](frontend_game_windowmanager.tooltipname.md#modaltwitterbroadcast) -- [ModalTwitterVerification](frontend_game_windowmanager.tooltipname.md#modaltwitterverification) -- [ModalUpgradeDetails](frontend_game_windowmanager.tooltipname.md#modalupgradedetails) -- [ModalWithdrawSilver](frontend_game_windowmanager.tooltipname.md#modalwithdrawsilver) -- [ModalYourArtifacts](frontend_game_windowmanager.tooltipname.md#modalyourartifacts) -- [None](frontend_game_windowmanager.tooltipname.md#none) -- [Pirates](frontend_game_windowmanager.tooltipname.md#pirates) -- [PlanetRank](frontend_game_windowmanager.tooltipname.md#planetrank) -- [Range](frontend_game_windowmanager.tooltipname.md#range) -- [Rank](frontend_game_windowmanager.tooltipname.md#rank) -- [Score](frontend_game_windowmanager.tooltipname.md#score) -- [SelectedEnergy](frontend_game_windowmanager.tooltipname.md#selectedenergy) -- [SelectedSilver](frontend_game_windowmanager.tooltipname.md#selectedsilver) -- [Silver](frontend_game_windowmanager.tooltipname.md#silver) -- [SilverCap](frontend_game_windowmanager.tooltipname.md#silvercap) -- [SilverGrowth](frontend_game_windowmanager.tooltipname.md#silvergrowth) -- [SilverProd](frontend_game_windowmanager.tooltipname.md#silverprod) -- [Speed](frontend_game_windowmanager.tooltipname.md#speed) -- [Time50](frontend_game_windowmanager.tooltipname.md#time50) -- [Time90](frontend_game_windowmanager.tooltipname.md#time90) -- [TwitterHandle](frontend_game_windowmanager.tooltipname.md#twitterhandle) -- [Upgrades](frontend_game_windowmanager.tooltipname.md#upgrades) - -## Enumeration members - -### ArtifactBuff - -• **ArtifactBuff**: = 36 - ---- - -### ArtifactStored - -• **ArtifactStored**: = 14 - ---- - -### Bonus - -• **Bonus**: = 5 - ---- - -### BonusDefense - -• **BonusDefense**: = 29 - ---- - -### BonusEnergyCap - -• **BonusEnergyCap**: = 25 - ---- - -### BonusEnergyGro - -• **BonusEnergyGro**: = 26 - ---- - -### BonusRange - -• **BonusRange**: = 27 - ---- - -### BonusSpeed - -• **BonusSpeed**: = 28 - ---- - -### Clowntown - -• **Clowntown**: = 35 - ---- - -### CurrentMining - -• **CurrentMining**: = 22 - ---- - -### Defense - -• **Defense**: = 34 - ---- - -### Energy - -• **Energy**: = 30 - ---- - -### EnergyGrowth - -• **EnergyGrowth**: = 31 - ---- - -### FindArtifact - -• **FindArtifact**: = 13 - ---- - -### HashesPerSec - -• **HashesPerSec**: = 21 - ---- - -### HoverPlanet - -• **HoverPlanet**: = 23 - ---- - -### MaxLevel - -• **MaxLevel**: = 12 - ---- - -### MinEnergy - -• **MinEnergy**: = 6 - ---- - -### MiningPause - -• **MiningPause**: = 19 - ---- - -### MiningTarget - -• **MiningTarget**: = 20 - ---- - -### ModalFindArtifact - -• **ModalFindArtifact**: = 47 - ---- - -### ModalHats - -• **ModalHats**: = 44 - ---- - -### ModalHelp - -• **ModalHelp**: = 37 - ---- - -### ModalLeaderboard - -• **ModalLeaderboard**: = 39 - ---- - -### ModalPlanetDetails - -• **ModalPlanetDetails**: = 38 - ---- - -### ModalPlanetDex - -• **ModalPlanetDex**: = 40 - ---- - -### ModalPlugins - -• **ModalPlugins**: = 48 - ---- - -### ModalSettings - -• **ModalSettings**: = 45 - ---- - -### ModalTwitterBroadcast - -• **ModalTwitterBroadcast**: = 43 - ---- - -### ModalTwitterVerification - -• **ModalTwitterVerification**: = 42 - ---- - -### ModalUpgradeDetails - -• **ModalUpgradeDetails**: = 41 - ---- - -### ModalWithdrawSilver - -• **ModalWithdrawSilver**: = 49 - ---- - -### ModalYourArtifacts - -• **ModalYourArtifacts**: = 46 - ---- - -### None - -• **None**: = 0 - ---- - -### Pirates - -• **Pirates**: = 9 - ---- - -### PlanetRank - -• **PlanetRank**: = 11 - ---- - -### Range - -• **Range**: = 32 - ---- - -### Rank - -• **Rank**: = 17 - ---- - -### Score - -• **Score**: = 18 - ---- - -### SelectedEnergy - -• **SelectedEnergy**: = 16 - ---- - -### SelectedSilver - -• **SelectedSilver**: = 15 - ---- - -### Silver - -• **Silver**: = 3 - ---- - -### SilverCap - -• **SilverCap**: = 2 - ---- - -### SilverGrowth - -• **SilverGrowth**: = 1 - ---- - -### SilverProd - -• **SilverProd**: = 24 - ---- - -### Speed - -• **Speed**: = 33 - ---- - -### Time50 - -• **Time50**: = 7 - ---- - -### Time90 - -• **Time90**: = 8 - ---- - -### TwitterHandle - -• **TwitterHandle**: = 4 - ---- - -### Upgrades - -• **Upgrades**: = 10 diff --git a/docs/enums/frontend_game_windowmanager.windowmanagerevent.md b/docs/enums/frontend_game_windowmanager.windowmanagerevent.md deleted file mode 100644 index cfe382cd..00000000 --- a/docs/enums/frontend_game_windowmanager.windowmanagerevent.md +++ /dev/null @@ -1,43 +0,0 @@ -# Enumeration: WindowManagerEvent - -[Frontend/Game/WindowManager](../modules/frontend_game_windowmanager.md).WindowManagerEvent - -## Table of contents - -### Enumeration members - -- [CtrlDown](frontend_game_windowmanager.windowmanagerevent.md#ctrldown) -- [CtrlUp](frontend_game_windowmanager.windowmanagerevent.md#ctrlup) -- [MiningCoordsUpdate](frontend_game_windowmanager.windowmanagerevent.md#miningcoordsupdate) -- [StateChanged](frontend_game_windowmanager.windowmanagerevent.md#statechanged) -- [TooltipUpdated](frontend_game_windowmanager.windowmanagerevent.md#tooltipupdated) - -## Enumeration members - -### CtrlDown - -• **CtrlDown**: = "CtrlDown" - ---- - -### CtrlUp - -• **CtrlUp**: = "CtrlUp" - ---- - -### MiningCoordsUpdate - -• **MiningCoordsUpdate**: = "MiningCoordsUpdate" - ---- - -### StateChanged - -• **StateChanged**: = "StateChanged" - ---- - -### TooltipUpdated - -• **TooltipUpdated**: = "TooltipUpdated" diff --git a/docs/enums/frontend_pages_gamelandingpage.initrenderstate.md b/docs/enums/frontend_pages_gamelandingpage.initrenderstate.md deleted file mode 100644 index 987d6f2f..00000000 --- a/docs/enums/frontend_pages_gamelandingpage.initrenderstate.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enumeration: InitRenderState - -[Frontend/Pages/GameLandingPage](../modules/frontend_pages_gamelandingpage.md).InitRenderState - -## Table of contents - -### Enumeration members - -- [COMPLETE](frontend_pages_gamelandingpage.initrenderstate.md#complete) -- [LOADING](frontend_pages_gamelandingpage.initrenderstate.md#loading) -- [NONE](frontend_pages_gamelandingpage.initrenderstate.md#none) - -## Enumeration members - -### COMPLETE - -• **COMPLETE**: = 2 - ---- - -### LOADING - -• **LOADING**: = 1 - ---- - -### NONE - -• **NONE**: = 0 diff --git a/docs/enums/frontend_pages_landingpage.landingpagezindex.md b/docs/enums/frontend_pages_landingpage.landingpagezindex.md deleted file mode 100644 index a7e556fa..00000000 --- a/docs/enums/frontend_pages_landingpage.landingpagezindex.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enumeration: LandingPageZIndex - -[Frontend/Pages/LandingPage](../modules/frontend_pages_landingpage.md).LandingPageZIndex - -## Table of contents - -### Enumeration members - -- [Background](frontend_pages_landingpage.landingpagezindex.md#background) -- [BasePage](frontend_pages_landingpage.landingpagezindex.md#basepage) -- [Canvas](frontend_pages_landingpage.landingpagezindex.md#canvas) - -## Enumeration members - -### Background - -• **Background**: = 0 - ---- - -### BasePage - -• **BasePage**: = 2 - ---- - -### Canvas - -• **Canvas**: = 1 diff --git a/docs/enums/frontend_pages_unsubscribepage.landingpagezindex.md b/docs/enums/frontend_pages_unsubscribepage.landingpagezindex.md deleted file mode 100644 index de12b178..00000000 --- a/docs/enums/frontend_pages_unsubscribepage.landingpagezindex.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enumeration: LandingPageZIndex - -[Frontend/Pages/UnsubscribePage](../modules/frontend_pages_unsubscribepage.md).LandingPageZIndex - -## Table of contents - -### Enumeration members - -- [Background](frontend_pages_unsubscribepage.landingpagezindex.md#background) -- [BasePage](frontend_pages_unsubscribepage.landingpagezindex.md#basepage) -- [Canvas](frontend_pages_unsubscribepage.landingpagezindex.md#canvas) - -## Enumeration members - -### Background - -• **Background**: = 0 - ---- - -### BasePage - -• **BasePage**: = 2 - ---- - -### Canvas - -• **Canvas**: = 1 diff --git a/docs/enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md b/docs/enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md deleted file mode 100644 index 64347c3c..00000000 --- a/docs/enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md +++ /dev/null @@ -1,22 +0,0 @@ -# Enumeration: AttribType - -[Frontend/Renderers/GameRenderer/EngineTypes](../modules/frontend_renderers_gamerenderer_enginetypes.md).AttribType - -## Table of contents - -### Enumeration members - -- [Float](frontend_renderers_gamerenderer_enginetypes.attribtype.md#float) -- [UByte](frontend_renderers_gamerenderer_enginetypes.attribtype.md#ubyte) - -## Enumeration members - -### Float - -• **Float**: - ---- - -### UByte - -• **UByte**: diff --git a/docs/enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md b/docs/enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md deleted file mode 100644 index 535c1398..00000000 --- a/docs/enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enumeration: DrawMode - -[Frontend/Renderers/GameRenderer/EngineTypes](../modules/frontend_renderers_gamerenderer_enginetypes.md).DrawMode - -## Table of contents - -### Enumeration members - -- [Lines](frontend_renderers_gamerenderer_enginetypes.drawmode.md#lines) -- [Points](frontend_renderers_gamerenderer_enginetypes.drawmode.md#points) -- [Triangles](frontend_renderers_gamerenderer_enginetypes.drawmode.md#triangles) - -## Enumeration members - -### Lines - -• **Lines**: - ---- - -### Points - -• **Points**: - ---- - -### Triangles - -• **Triangles**: diff --git a/docs/enums/frontend_renderers_gamerenderer_enginetypes.renderzindex.md b/docs/enums/frontend_renderers_gamerenderer_enginetypes.renderzindex.md deleted file mode 100644 index ff19e6e3..00000000 --- a/docs/enums/frontend_renderers_gamerenderer_enginetypes.renderzindex.md +++ /dev/null @@ -1,57 +0,0 @@ -# Enumeration: RenderZIndex - -[Frontend/Renderers/GameRenderer/EngineTypes](../modules/frontend_renderers_gamerenderer_enginetypes.md).RenderZIndex - -## Table of contents - -### Enumeration members - -- [Background](frontend_renderers_gamerenderer_enginetypes.renderzindex.md#background) -- [DEFAULT](frontend_renderers_gamerenderer_enginetypes.renderzindex.md#default) -- [MAX](frontend_renderers_gamerenderer_enginetypes.renderzindex.md#max) -- [Planets](frontend_renderers_gamerenderer_enginetypes.renderzindex.md#planets) -- [Text](frontend_renderers_gamerenderer_enginetypes.renderzindex.md#text) -- [UI](frontend_renderers_gamerenderer_enginetypes.renderzindex.md#ui) -- [Voyages](frontend_renderers_gamerenderer_enginetypes.renderzindex.md#voyages) - -## Enumeration members - -### Background - -• **Background**: = 0 - ---- - -### DEFAULT - -• **DEFAULT**: = -98 - ---- - -### MAX - -• **MAX**: = -99 - ---- - -### Planets - -• **Planets**: = -10 - ---- - -### Text - -• **Text**: = -11 - ---- - -### UI - -• **UI**: = -12 - ---- - -### Voyages - -• **Voyages**: = -1 diff --git a/docs/enums/frontend_renderers_gamerenderer_enginetypes.textalign.md b/docs/enums/frontend_renderers_gamerenderer_enginetypes.textalign.md deleted file mode 100644 index 6b979529..00000000 --- a/docs/enums/frontend_renderers_gamerenderer_enginetypes.textalign.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enumeration: TextAlign - -[Frontend/Renderers/GameRenderer/EngineTypes](../modules/frontend_renderers_gamerenderer_enginetypes.md).TextAlign - -## Table of contents - -### Enumeration members - -- [Center](frontend_renderers_gamerenderer_enginetypes.textalign.md#center) -- [Left](frontend_renderers_gamerenderer_enginetypes.textalign.md#left) -- [Right](frontend_renderers_gamerenderer_enginetypes.textalign.md#right) - -## Enumeration members - -### Center - -• **Center**: = 0.5 - ---- - -### Left - -• **Left**: = 0 - ---- - -### Right - -• **Right**: = 1 diff --git a/docs/enums/frontend_renderers_gamerenderer_enginetypes.textanchor.md b/docs/enums/frontend_renderers_gamerenderer_enginetypes.textanchor.md deleted file mode 100644 index 448ece3b..00000000 --- a/docs/enums/frontend_renderers_gamerenderer_enginetypes.textanchor.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enumeration: TextAnchor - -[Frontend/Renderers/GameRenderer/EngineTypes](../modules/frontend_renderers_gamerenderer_enginetypes.md).TextAnchor - -## Table of contents - -### Enumeration members - -- [Bottom](frontend_renderers_gamerenderer_enginetypes.textanchor.md#bottom) -- [Middle](frontend_renderers_gamerenderer_enginetypes.textanchor.md#middle) -- [Top](frontend_renderers_gamerenderer_enginetypes.textanchor.md#top) - -## Enumeration members - -### Bottom - -• **Bottom**: = 1 - ---- - -### Middle - -• **Middle**: = 0.5 - ---- - -### Top - -• **Top**: = 0 diff --git a/docs/enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md b/docs/enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md deleted file mode 100644 index c895d214..00000000 --- a/docs/enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md +++ /dev/null @@ -1,50 +0,0 @@ -# Enumeration: UniformType - -[Frontend/Renderers/GameRenderer/EngineTypes](../modules/frontend_renderers_gamerenderer_enginetypes.md).UniformType - -## Table of contents - -### Enumeration members - -- [Float](frontend_renderers_gamerenderer_enginetypes.uniformtype.md#float) -- [Mat3](frontend_renderers_gamerenderer_enginetypes.uniformtype.md#mat3) -- [Mat4](frontend_renderers_gamerenderer_enginetypes.uniformtype.md#mat4) -- [Texture](frontend_renderers_gamerenderer_enginetypes.uniformtype.md#texture) -- [UByte](frontend_renderers_gamerenderer_enginetypes.uniformtype.md#ubyte) -- [Vec3](frontend_renderers_gamerenderer_enginetypes.uniformtype.md#vec3) - -## Enumeration members - -### Float - -• **Float**: = 3 - ---- - -### Mat3 - -• **Mat3**: = 1 - ---- - -### Mat4 - -• **Mat4**: = 0 - ---- - -### Texture - -• **Texture**: = 4 - ---- - -### UByte - -• **UByte**: = 2 - ---- - -### Vec3 - -• **Vec3**: = 5 diff --git a/docs/enums/frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md b/docs/enums/frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md deleted file mode 100644 index 239dc3ce..00000000 --- a/docs/enums/frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enumeration: PerlinOctave - -[Frontend/Renderers/GameRenderer/Entities/PerlinUtils](../modules/frontend_renderers_gamerenderer_entities_perlinutils.md).PerlinOctave - -## Table of contents - -### Enumeration members - -- [\_0](frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md#_0) -- [\_1](frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md#_1) -- [\_2](frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md#_2) - -## Enumeration members - -### \_0 - -• **\_0**: = 0 - ---- - -### \_1 - -• **\_1**: = 1 - ---- - -### \_2 - -• **\_2**: = 2 diff --git a/docs/enums/frontend_utils_browserchecks.incompatibility.md b/docs/enums/frontend_utils_browserchecks.incompatibility.md deleted file mode 100644 index 2dad9f83..00000000 --- a/docs/enums/frontend_utils_browserchecks.incompatibility.md +++ /dev/null @@ -1,50 +0,0 @@ -# Enumeration: Incompatibility - -[Frontend/Utils/BrowserChecks](../modules/frontend_utils_browserchecks.md).Incompatibility - -## Table of contents - -### Enumeration members - -- [MobileOrTablet](frontend_utils_browserchecks.incompatibility.md#mobileortablet) -- [NoIDB](frontend_utils_browserchecks.incompatibility.md#noidb) -- [NotLoggedInOrEnabled](frontend_utils_browserchecks.incompatibility.md#notloggedinorenabled) -- [NotRopsten](frontend_utils_browserchecks.incompatibility.md#notropsten) -- [UnexpectedError](frontend_utils_browserchecks.incompatibility.md#unexpectederror) -- [UnsupportedBrowser](frontend_utils_browserchecks.incompatibility.md#unsupportedbrowser) - -## Enumeration members - -### MobileOrTablet - -• **MobileOrTablet**: = "mobile_or_tablet" - ---- - -### NoIDB - -• **NoIDB**: = "no_idb" - ---- - -### NotLoggedInOrEnabled - -• **NotLoggedInOrEnabled**: = "not_logged_in_or_enabled" - ---- - -### NotRopsten - -• **NotRopsten**: = "not_ropsten" - ---- - -### UnexpectedError - -• **UnexpectedError**: = "unexpected_error" - ---- - -### UnsupportedBrowser - -• **UnsupportedBrowser**: = "unsupported_browser" diff --git a/docs/enums/frontend_utils_constants.gamewindowzindex.md b/docs/enums/frontend_utils_constants.gamewindowzindex.md deleted file mode 100644 index 86ab1ecb..00000000 --- a/docs/enums/frontend_utils_constants.gamewindowzindex.md +++ /dev/null @@ -1,36 +0,0 @@ -# Enumeration: GameWindowZIndex - -[Frontend/Utils/constants](../modules/frontend_utils_constants.md).GameWindowZIndex - -## Table of contents - -### Enumeration members - -- [HoverPlanet](frontend_utils_constants.gamewindowzindex.md#hoverplanet) -- [MenuBar](frontend_utils_constants.gamewindowzindex.md#menubar) -- [Modal](frontend_utils_constants.gamewindowzindex.md#modal) -- [Tooltip](frontend_utils_constants.gamewindowzindex.md#tooltip) - -## Enumeration members - -### HoverPlanet - -• **HoverPlanet**: = 999 - ---- - -### MenuBar - -• **MenuBar**: = 4 - ---- - -### Modal - -• **Modal**: = 1000 - ---- - -### Tooltip - -• **Tooltip**: = 16000000 diff --git a/docs/enums/frontend_utils_hats.hattype.md b/docs/enums/frontend_utils_hats.hattype.md deleted file mode 100644 index d06aecf2..00000000 --- a/docs/enums/frontend_utils_hats.hattype.md +++ /dev/null @@ -1,78 +0,0 @@ -# Enumeration: HatType - -[Frontend/Utils/Hats](../modules/frontend_utils_hats.md).HatType - -## Table of contents - -### Enumeration members - -- [ChefHat](frontend_utils_hats.hattype.md#chefhat) -- [CowboyHat](frontend_utils_hats.hattype.md#cowboyhat) -- [Fez](frontend_utils_hats.hattype.md#fez) -- [Fish](frontend_utils_hats.hattype.md#fish) -- [GraduationCap](frontend_utils_hats.hattype.md#graduationcap) -- [PartyHat](frontend_utils_hats.hattype.md#partyhat) -- [PopeHat](frontend_utils_hats.hattype.md#popehat) -- [SantaHat](frontend_utils_hats.hattype.md#santahat) -- [Squid](frontend_utils_hats.hattype.md#squid) -- [TopHat](frontend_utils_hats.hattype.md#tophat) - -## Enumeration members - -### ChefHat - -• **ChefHat**: = "ChefHat" - ---- - -### CowboyHat - -• **CowboyHat**: = "CowboyHat" - ---- - -### Fez - -• **Fez**: = "Fez" - ---- - -### Fish - -• **Fish**: = "Fish" - ---- - -### GraduationCap - -• **GraduationCap**: = "GraduationCap" - ---- - -### PartyHat - -• **PartyHat**: = "PartyHat" - ---- - -### PopeHat - -• **PopeHat**: = "PopeHat" - ---- - -### SantaHat - -• **SantaHat**: = "SantaHat" - ---- - -### Squid - -• **Squid**: = "Squid" - ---- - -### TopHat - -• **TopHat**: = "TopHat" diff --git a/docs/enums/frontend_utils_settingshooks.setting.md b/docs/enums/frontend_utils_settingshooks.setting.md deleted file mode 100644 index 9de6c4d4..00000000 --- a/docs/enums/frontend_utils_settingshooks.setting.md +++ /dev/null @@ -1,151 +0,0 @@ -# Enumeration: Setting - -[Frontend/Utils/SettingsHooks](../modules/frontend_utils_settingshooks.md).Setting - -Each setting has a unique identifier. Each account gets to store its own local storage setting, -per instance of the dark forest contract that it's connected to. - -## Table of contents - -### Enumeration members - -- [AutoApproveNonPurchaseTransactions](frontend_utils_settingshooks.setting.md#autoapprovenonpurchasetransactions) -- [DrawChunkBorders](frontend_utils_settingshooks.setting.md#drawchunkborders) -- [FoundArtifact](frontend_utils_settingshooks.setting.md#foundartifact) -- [FoundComet](frontend_utils_settingshooks.setting.md#foundcomet) -- [FoundDeepSpace](frontend_utils_settingshooks.setting.md#founddeepspace) -- [FoundPirates](frontend_utils_settingshooks.setting.md#foundpirates) -- [FoundSilver](frontend_utils_settingshooks.setting.md#foundsilver) -- [FoundSilverBank](frontend_utils_settingshooks.setting.md#foundsilverbank) -- [FoundSpace](frontend_utils_settingshooks.setting.md#foundspace) -- [FoundTradingPost](frontend_utils_settingshooks.setting.md#foundtradingpost) -- [GasFeeGwei](frontend_utils_settingshooks.setting.md#gasfeegwei) -- [HasAcceptedPluginRisk](frontend_utils_settingshooks.setting.md#hasacceptedpluginrisk) -- [HighPerformanceRendering](frontend_utils_settingshooks.setting.md#highperformancerendering) -- [MiningCores](frontend_utils_settingshooks.setting.md#miningcores) -- [MoveNotifications](frontend_utils_settingshooks.setting.md#movenotifications) -- [NewPlayer](frontend_utils_settingshooks.setting.md#newplayer) -- [OptOutMetrics](frontend_utils_settingshooks.setting.md#optoutmetrics) -- [TerminalVisible](frontend_utils_settingshooks.setting.md#terminalvisible) -- [TutorialCompleted](frontend_utils_settingshooks.setting.md#tutorialcompleted) -- [TutorialOpen](frontend_utils_settingshooks.setting.md#tutorialopen) - -## Enumeration members - -### AutoApproveNonPurchaseTransactions - -• **AutoApproveNonPurchaseTransactions**: = "AutoApproveNonPurchaseTransactions" - ---- - -### DrawChunkBorders - -• **DrawChunkBorders**: = "DrawChunkBorders" - ---- - -### FoundArtifact - -• **FoundArtifact**: = "FoundArtifact" - ---- - -### FoundComet - -• **FoundComet**: = "FoundComet" - ---- - -### FoundDeepSpace - -• **FoundDeepSpace**: = "FoundDeepSpace" - ---- - -### FoundPirates - -• **FoundPirates**: = "FoundPirates" - ---- - -### FoundSilver - -• **FoundSilver**: = "FoundSilver" - ---- - -### FoundSilverBank - -• **FoundSilverBank**: = "FoundSilverBank" - ---- - -### FoundSpace - -• **FoundSpace**: = "FoundSpace" - ---- - -### FoundTradingPost - -• **FoundTradingPost**: = "FoundTradingPost" - ---- - -### GasFeeGwei - -• **GasFeeGwei**: = "GasFeeGwei" - ---- - -### HasAcceptedPluginRisk - -• **HasAcceptedPluginRisk**: = "HasAcceptedPluginRisk" - ---- - -### HighPerformanceRendering - -• **HighPerformanceRendering**: = "HighPerformanceRendering" - ---- - -### MiningCores - -• **MiningCores**: = "MiningCores" - ---- - -### MoveNotifications - -• **MoveNotifications**: = "MoveNotifications" - ---- - -### NewPlayer - -• **NewPlayer**: = "NewPlayer" - ---- - -### OptOutMetrics - -• **OptOutMetrics**: = "OptOutMetrics" - ---- - -### TerminalVisible - -• **TerminalVisible**: = "TerminalVisible" - ---- - -### TutorialCompleted - -• **TutorialCompleted**: = "TutorialCompleted" - ---- - -### TutorialOpen - -• **TutorialOpen**: = "TutorialOpen" diff --git a/docs/enums/frontend_utils_terminaltypes.terminaltextstyle.md b/docs/enums/frontend_utils_terminaltypes.terminaltextstyle.md deleted file mode 100644 index e9404534..00000000 --- a/docs/enums/frontend_utils_terminaltypes.terminaltextstyle.md +++ /dev/null @@ -1,71 +0,0 @@ -# Enumeration: TerminalTextStyle - -[Frontend/Utils/TerminalTypes](../modules/frontend_utils_terminaltypes.md).TerminalTextStyle - -## Table of contents - -### Enumeration members - -- [Blue](frontend_utils_terminaltypes.terminaltextstyle.md#blue) -- [Default](frontend_utils_terminaltypes.terminaltextstyle.md#default) -- [Green](frontend_utils_terminaltypes.terminaltextstyle.md#green) -- [Hoverable](frontend_utils_terminaltypes.terminaltextstyle.md#hoverable) -- [Invisible](frontend_utils_terminaltypes.terminaltextstyle.md#invisible) -- [Red](frontend_utils_terminaltypes.terminaltextstyle.md#red) -- [Sub](frontend_utils_terminaltypes.terminaltextstyle.md#sub) -- [Underline](frontend_utils_terminaltypes.terminaltextstyle.md#underline) -- [White](frontend_utils_terminaltypes.terminaltextstyle.md#white) - -## Enumeration members - -### Blue - -• **Blue**: = 4 - ---- - -### Default - -• **Default**: = 6 - ---- - -### Green - -• **Green**: = 0 - ---- - -### Hoverable - -• **Hoverable**: = 8 - ---- - -### Invisible - -• **Invisible**: = 5 - ---- - -### Red - -• **Red**: = 3 - ---- - -### Sub - -• **Sub**: = 1 - ---- - -### Underline - -• **Underline**: = 7 - ---- - -### White - -• **White**: = 2 diff --git a/docs/enums/frontend_utils_uiemitter.uiemitterevent.md b/docs/enums/frontend_utils_uiemitter.uiemitterevent.md deleted file mode 100644 index 3539bfe7..00000000 --- a/docs/enums/frontend_utils_uiemitter.uiemitterevent.md +++ /dev/null @@ -1,169 +0,0 @@ -# Enumeration: UIEmitterEvent - -[Frontend/Utils/UIEmitter](../modules/frontend_utils_uiemitter.md).UIEmitterEvent - -## Table of contents - -### Enumeration members - -- [CanvasMouseDown](frontend_utils_uiemitter.uiemitterevent.md#canvasmousedown) -- [CanvasMouseMove](frontend_utils_uiemitter.uiemitterevent.md#canvasmousemove) -- [CanvasMouseOut](frontend_utils_uiemitter.uiemitterevent.md#canvasmouseout) -- [CanvasMouseUp](frontend_utils_uiemitter.uiemitterevent.md#canvasmouseup) -- [CanvasScroll](frontend_utils_uiemitter.uiemitterevent.md#canvasscroll) -- [CenterPlanet](frontend_utils_uiemitter.uiemitterevent.md#centerplanet) -- [DepositArtifact](frontend_utils_uiemitter.uiemitterevent.md#depositartifact) -- [DepositToPlanet](frontend_utils_uiemitter.uiemitterevent.md#deposittoplanet) -- [GamePlanetSelected](frontend_utils_uiemitter.uiemitterevent.md#gameplanetselected) -- [SelectArtifact](frontend_utils_uiemitter.uiemitterevent.md#selectartifact) -- [SendCancelled](frontend_utils_uiemitter.uiemitterevent.md#sendcancelled) -- [SendCompleted](frontend_utils_uiemitter.uiemitterevent.md#sendcompleted) -- [SendInitiated](frontend_utils_uiemitter.uiemitterevent.md#sendinitiated) -- [ShowArtifact](frontend_utils_uiemitter.uiemitterevent.md#showartifact) -- [UIChange](frontend_utils_uiemitter.uiemitterevent.md#uichange) -- [WindowResize](frontend_utils_uiemitter.uiemitterevent.md#windowresize) -- [WorldMouseClick](frontend_utils_uiemitter.uiemitterevent.md#worldmouseclick) -- [WorldMouseDown](frontend_utils_uiemitter.uiemitterevent.md#worldmousedown) -- [WorldMouseMove](frontend_utils_uiemitter.uiemitterevent.md#worldmousemove) -- [WorldMouseOut](frontend_utils_uiemitter.uiemitterevent.md#worldmouseout) -- [WorldMouseUp](frontend_utils_uiemitter.uiemitterevent.md#worldmouseup) -- [ZoomIn](frontend_utils_uiemitter.uiemitterevent.md#zoomin) -- [ZoomOut](frontend_utils_uiemitter.uiemitterevent.md#zoomout) - -## Enumeration members - -### CanvasMouseDown - -• **CanvasMouseDown**: = "CanvasMouseDown" - ---- - -### CanvasMouseMove - -• **CanvasMouseMove**: = "CanvasMouseMove" - ---- - -### CanvasMouseOut - -• **CanvasMouseOut**: = "CanvasMouseOut" - ---- - -### CanvasMouseUp - -• **CanvasMouseUp**: = "CanvasMouseUp" - ---- - -### CanvasScroll - -• **CanvasScroll**: = "CanvasScroll" - ---- - -### CenterPlanet - -• **CenterPlanet**: = "CenterPlanet" - ---- - -### DepositArtifact - -• **DepositArtifact**: = "DepositArtifact" - ---- - -### DepositToPlanet - -• **DepositToPlanet**: = "DepositToPlanet" - ---- - -### GamePlanetSelected - -• **GamePlanetSelected**: = "GamePlanetSelected" - ---- - -### SelectArtifact - -• **SelectArtifact**: = "SelectArtifact" - ---- - -### SendCancelled - -• **SendCancelled**: = "SendCancelled" - ---- - -### SendCompleted - -• **SendCompleted**: = "SendCompleted" - ---- - -### SendInitiated - -• **SendInitiated**: = "SendInitiated" - ---- - -### ShowArtifact - -• **ShowArtifact**: = "ShowArtifact" - ---- - -### UIChange - -• **UIChange**: = "UIChange" - ---- - -### WindowResize - -• **WindowResize**: = "WindowResize" - ---- - -### WorldMouseClick - -• **WorldMouseClick**: = "WorldMouseClick" - ---- - -### WorldMouseDown - -• **WorldMouseDown**: = "WorldMouseDown" - ---- - -### WorldMouseMove - -• **WorldMouseMove**: = "WorldMouseMove" - ---- - -### WorldMouseOut - -• **WorldMouseOut**: = "WorldMouseOut" - ---- - -### WorldMouseUp - -• **WorldMouseUp**: = "WorldMouseUp" - ---- - -### ZoomIn - -• **ZoomIn**: = "ZoomIn" - ---- - -### ZoomOut - -• **ZoomOut**: = "ZoomOut" diff --git a/docs/enums/frontend_views_modalpane.modalname.md b/docs/enums/frontend_views_modalpane.modalname.md deleted file mode 100644 index 029ef2da..00000000 --- a/docs/enums/frontend_views_modalpane.modalname.md +++ /dev/null @@ -1,141 +0,0 @@ -# Enumeration: ModalName - -[Frontend/Views/ModalPane](../modules/frontend_views_modalpane.md).ModalName - -## Table of contents - -### Enumeration members - -- [ArtifactConversation](frontend_views_modalpane.modalname.md#artifactconversation) -- [ArtifactDetails](frontend_views_modalpane.modalname.md#artifactdetails) -- [Hats](frontend_views_modalpane.modalname.md#hats) -- [Help](frontend_views_modalpane.modalname.md#help) -- [Leaderboard](frontend_views_modalpane.modalname.md#leaderboard) -- [ManageAccount](frontend_views_modalpane.modalname.md#manageaccount) -- [ManageArtifacts](frontend_views_modalpane.modalname.md#manageartifacts) -- [MapShare](frontend_views_modalpane.modalname.md#mapshare) -- [Onboarding](frontend_views_modalpane.modalname.md#onboarding) -- [PlanetDetails](frontend_views_modalpane.modalname.md#planetdetails) -- [PlanetDex](frontend_views_modalpane.modalname.md#planetdex) -- [Plugins](frontend_views_modalpane.modalname.md#plugins) -- [Private](frontend_views_modalpane.modalname.md#private) -- [Settings](frontend_views_modalpane.modalname.md#settings) -- [TwitterBroadcast](frontend_views_modalpane.modalname.md#twitterbroadcast) -- [TwitterVerify](frontend_views_modalpane.modalname.md#twitterverify) -- [UpgradeDetails](frontend_views_modalpane.modalname.md#upgradedetails) -- [WithdrawSilver](frontend_views_modalpane.modalname.md#withdrawsilver) -- [YourArtifacts](frontend_views_modalpane.modalname.md#yourartifacts) - -## Enumeration members - -### ArtifactConversation - -• **ArtifactConversation**: = 13 - ---- - -### ArtifactDetails - -• **ArtifactDetails**: = 14 - ---- - -### Hats - -• **Hats**: = 7 - ---- - -### Help - -• **Help**: = 0 - ---- - -### Leaderboard - -• **Leaderboard**: = 2 - ---- - -### ManageAccount - -• **ManageAccount**: = 16 - ---- - -### ManageArtifacts - -• **ManageArtifacts**: = 10 - ---- - -### MapShare - -• **MapShare**: = 15 - ---- - -### Onboarding - -• **Onboarding**: = 17 - ---- - -### PlanetDetails - -• **PlanetDetails**: = 1 - ---- - -### PlanetDex - -• **PlanetDex**: = 3 - ---- - -### Plugins - -• **Plugins**: = 11 - ---- - -### Private - -• **Private**: = 18 - ---- - -### Settings - -• **Settings**: = 8 - ---- - -### TwitterBroadcast - -• **TwitterBroadcast**: = 6 - ---- - -### TwitterVerify - -• **TwitterVerify**: = 5 - ---- - -### UpgradeDetails - -• **UpgradeDetails**: = 4 - ---- - -### WithdrawSilver - -• **WithdrawSilver**: = 12 - ---- - -### YourArtifacts - -• **YourArtifacts**: = 9 diff --git a/docs/enums/frontend_views_planetnotifications.planetnotiftype.md b/docs/enums/frontend_views_planetnotifications.planetnotiftype.md deleted file mode 100644 index cc57bd2b..00000000 --- a/docs/enums/frontend_views_planetnotifications.planetnotiftype.md +++ /dev/null @@ -1,43 +0,0 @@ -# Enumeration: PlanetNotifType - -[Frontend/Views/PlanetNotifications](../modules/frontend_views_planetnotifications.md).PlanetNotifType - -## Table of contents - -### Enumeration members - -- [CanAddEmoji](frontend_views_planetnotifications.planetnotiftype.md#canaddemoji) -- [CanFindArtifact](frontend_views_planetnotifications.planetnotiftype.md#canfindartifact) -- [CanProspect](frontend_views_planetnotifications.planetnotiftype.md#canprospect) -- [MaxSilver](frontend_views_planetnotifications.planetnotiftype.md#maxsilver) -- [PlanetCanUpgrade](frontend_views_planetnotifications.planetnotiftype.md#planetcanupgrade) - -## Enumeration members - -### CanAddEmoji - -• **CanAddEmoji**: = 4 - ---- - -### CanFindArtifact - -• **CanFindArtifact**: = 2 - ---- - -### CanProspect - -• **CanProspect**: = 1 - ---- - -### MaxSilver - -• **MaxSilver**: = 3 - ---- - -### PlanetCanUpgrade - -• **PlanetCanUpgrade**: = 0 diff --git a/docs/enums/types_darkforest_api_ContractsAPITypes.ContractEvent.md b/docs/enums/types_darkforest_api_ContractsAPITypes.ContractEvent.md new file mode 100644 index 00000000..8340545b --- /dev/null +++ b/docs/enums/types_darkforest_api_ContractsAPITypes.ContractEvent.md @@ -0,0 +1,134 @@ +# Enumeration: ContractEvent + +[\_types/darkforest/api/ContractsAPITypes](../modules/types_darkforest_api_ContractsAPITypes.md).ContractEvent + +## Table of contents + +### Enumeration members + +- [AdminGiveSpaceship](types_darkforest_api_ContractsAPITypes.ContractEvent.md#admingivespaceship) +- [AdminOwnershipChanged](types_darkforest_api_ContractsAPITypes.ContractEvent.md#adminownershipchanged) +- [ArrivalQueued](types_darkforest_api_ContractsAPITypes.ContractEvent.md#arrivalqueued) +- [ArtifactActivated](types_darkforest_api_ContractsAPITypes.ContractEvent.md#artifactactivated) +- [ArtifactDeactivated](types_darkforest_api_ContractsAPITypes.ContractEvent.md#artifactdeactivated) +- [ArtifactDeposited](types_darkforest_api_ContractsAPITypes.ContractEvent.md#artifactdeposited) +- [ArtifactFound](types_darkforest_api_ContractsAPITypes.ContractEvent.md#artifactfound) +- [ArtifactWithdrawn](types_darkforest_api_ContractsAPITypes.ContractEvent.md#artifactwithdrawn) +- [LobbyCreated](types_darkforest_api_ContractsAPITypes.ContractEvent.md#lobbycreated) +- [LocationRevealed](types_darkforest_api_ContractsAPITypes.ContractEvent.md#locationrevealed) +- [PauseStateChanged](types_darkforest_api_ContractsAPITypes.ContractEvent.md#pausestatechanged) +- [PlanetCaptured](types_darkforest_api_ContractsAPITypes.ContractEvent.md#planetcaptured) +- [PlanetHatBought](types_darkforest_api_ContractsAPITypes.ContractEvent.md#planethatbought) +- [PlanetInvaded](types_darkforest_api_ContractsAPITypes.ContractEvent.md#planetinvaded) +- [PlanetSilverWithdrawn](types_darkforest_api_ContractsAPITypes.ContractEvent.md#planetsilverwithdrawn) +- [PlanetTransferred](types_darkforest_api_ContractsAPITypes.ContractEvent.md#planettransferred) +- [PlanetUpgraded](types_darkforest_api_ContractsAPITypes.ContractEvent.md#planetupgraded) +- [PlayerInitialized](types_darkforest_api_ContractsAPITypes.ContractEvent.md#playerinitialized) + +## Enumeration members + +### AdminGiveSpaceship + +• **AdminGiveSpaceship** = `"AdminGiveSpaceship"` + +--- + +### AdminOwnershipChanged + +• **AdminOwnershipChanged** = `"AdminOwnershipChanged"` + +--- + +### ArrivalQueued + +• **ArrivalQueued** = `"ArrivalQueued"` + +--- + +### ArtifactActivated + +• **ArtifactActivated** = `"ArtifactActivated"` + +--- + +### ArtifactDeactivated + +• **ArtifactDeactivated** = `"ArtifactDeactivated"` + +--- + +### ArtifactDeposited + +• **ArtifactDeposited** = `"ArtifactDeposited"` + +--- + +### ArtifactFound + +• **ArtifactFound** = `"ArtifactFound"` + +--- + +### ArtifactWithdrawn + +• **ArtifactWithdrawn** = `"ArtifactWithdrawn"` + +--- + +### LobbyCreated + +• **LobbyCreated** = `"LobbyCreated"` + +--- + +### LocationRevealed + +• **LocationRevealed** = `"LocationRevealed"` + +--- + +### PauseStateChanged + +• **PauseStateChanged** = `"PauseStateChanged"` + +--- + +### PlanetCaptured + +• **PlanetCaptured** = `"PlanetCaptured"` + +--- + +### PlanetHatBought + +• **PlanetHatBought** = `"PlanetHatBought"` + +--- + +### PlanetInvaded + +• **PlanetInvaded** = `"PlanetInvaded"` + +--- + +### PlanetSilverWithdrawn + +• **PlanetSilverWithdrawn** = `"PlanetSilverWithdrawn"` + +--- + +### PlanetTransferred + +• **PlanetTransferred** = `"PlanetTransferred"` + +--- + +### PlanetUpgraded + +• **PlanetUpgraded** = `"PlanetUpgraded"` + +--- + +### PlayerInitialized + +• **PlayerInitialized** = `"PlayerInitialized"` diff --git a/docs/enums/types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md b/docs/enums/types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md new file mode 100644 index 00000000..37837353 --- /dev/null +++ b/docs/enums/types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md @@ -0,0 +1,147 @@ +# Enumeration: ContractsAPIEvent + +[\_types/darkforest/api/ContractsAPITypes](../modules/types_darkforest_api_ContractsAPITypes.md).ContractsAPIEvent + +## Table of contents + +### Enumeration members + +- [ArrivalQueued](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#arrivalqueued) +- [ArtifactUpdate](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#artifactupdate) +- [LobbyCreated](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#lobbycreated) +- [LocationRevealed](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#locationrevealed) +- [PauseStateChanged](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#pausestatechanged) +- [PlanetClaimed](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#planetclaimed) +- [PlanetTransferred](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#planettransferred) +- [PlanetUpdate](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#planetupdate) +- [PlayerUpdate](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#playerupdate) +- [RadiusUpdated](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#radiusupdated) +- [TxCancelled](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#txcancelled) +- [TxConfirmed](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#txconfirmed) +- [TxErrored](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#txerrored) +- [TxPrioritized](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#txprioritized) +- [TxProcessing](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#txprocessing) +- [TxQueued](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#txqueued) +- [TxSubmitted](types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md#txsubmitted) + +## Enumeration members + +### ArrivalQueued + +• **ArrivalQueued** = `"ArrivalQueued"` + +--- + +### ArtifactUpdate + +• **ArtifactUpdate** = `"ArtifactUpdate"` + +--- + +### LobbyCreated + +• **LobbyCreated** = `"LobbyCreated"` + +--- + +### LocationRevealed + +• **LocationRevealed** = `"LocationRevealed"` + +--- + +### PauseStateChanged + +• **PauseStateChanged** = `"PauseStateChanged"` + +--- + +### PlanetClaimed + +• **PlanetClaimed** = `"PlanetClaimed"` + +--- + +### PlanetTransferred + +• **PlanetTransferred** = `"PlanetTransferred"` + +--- + +### PlanetUpdate + +• **PlanetUpdate** = `"PlanetUpdate"` + +--- + +### PlayerUpdate + +• **PlayerUpdate** = `"PlayerUpdate"` + +--- + +### RadiusUpdated + +• **RadiusUpdated** = `"RadiusUpdated"` + +--- + +### TxCancelled + +• **TxCancelled** = `"TxCancelled"` + +The transaction was cancelled before it left the queue. + +--- + +### TxConfirmed + +• **TxConfirmed** = `"TxConfirmed"` + +The transaction has been confirmed. + +--- + +### TxErrored + +• **TxErrored** = `"TxErrored"` + +The transaction has failed for some reason. This +could either be a revert or a purely client side +error. In the case of a revert, the transaction hash +will be included in the transaction object. + +--- + +### TxPrioritized + +• **TxPrioritized** = `"TxPrioritized"` + +The transaction is queued, but is prioritized for execution +above other queued transactions. + +--- + +### TxProcessing + +• **TxProcessing** = `"TxProcessing"` + +The transaction has been removed from the queue and is +calculating arguments in preparation for submission. + +--- + +### TxQueued + +• **TxQueued** = `"TxQueued"` + +The transaction has been queued for future execution. + +--- + +### TxSubmitted + +• **TxSubmitted** = `"TxSubmitted"` + +The transaction has been submitted and we are awaiting +confirmation. diff --git a/docs/enums/types_darkforest_api_ContractsAPITypes.InitArgIdxs.md b/docs/enums/types_darkforest_api_ContractsAPITypes.InitArgIdxs.md new file mode 100644 index 00000000..25e32282 --- /dev/null +++ b/docs/enums/types_darkforest_api_ContractsAPITypes.InitArgIdxs.md @@ -0,0 +1,64 @@ +# Enumeration: InitArgIdxs + +[\_types/darkforest/api/ContractsAPITypes](../modules/types_darkforest_api_ContractsAPITypes.md).InitArgIdxs + +## Table of contents + +### Enumeration members + +- [LOCATION_ID](types_darkforest_api_ContractsAPITypes.InitArgIdxs.md#location_id) +- [PERLIN](types_darkforest_api_ContractsAPITypes.InitArgIdxs.md#perlin) +- [PERLIN_LENGTH_SCALE](types_darkforest_api_ContractsAPITypes.InitArgIdxs.md#perlin_length_scale) +- [PERLIN_MIRROR_X](types_darkforest_api_ContractsAPITypes.InitArgIdxs.md#perlin_mirror_x) +- [PERLIN_MIRROR_Y](types_darkforest_api_ContractsAPITypes.InitArgIdxs.md#perlin_mirror_y) +- [PLANETHASH_KEY](types_darkforest_api_ContractsAPITypes.InitArgIdxs.md#planethash_key) +- [RADIUS](types_darkforest_api_ContractsAPITypes.InitArgIdxs.md#radius) +- [SPACETYPE_KEY](types_darkforest_api_ContractsAPITypes.InitArgIdxs.md#spacetype_key) + +## Enumeration members + +### LOCATION_ID + +• **LOCATION_ID** = `0` + +--- + +### PERLIN + +• **PERLIN** = `1` + +--- + +### PERLIN_LENGTH_SCALE + +• **PERLIN_LENGTH_SCALE** = `5` + +--- + +### PERLIN_MIRROR_X + +• **PERLIN_MIRROR_X** = `6` + +--- + +### PERLIN_MIRROR_Y + +• **PERLIN_MIRROR_Y** = `7` + +--- + +### PLANETHASH_KEY + +• **PLANETHASH_KEY** = `3` + +--- + +### RADIUS + +• **RADIUS** = `2` + +--- + +### SPACETYPE_KEY + +• **SPACETYPE_KEY** = `4` diff --git a/docs/enums/types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md b/docs/enums/types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md new file mode 100644 index 00000000..c1cb6bdb --- /dev/null +++ b/docs/enums/types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md @@ -0,0 +1,99 @@ +# Enumeration: MoveArgIdxs + +[\_types/darkforest/api/ContractsAPITypes](../modules/types_darkforest_api_ContractsAPITypes.md).MoveArgIdxs + +## Table of contents + +### Enumeration members + +- [ARTIFACT_SENT](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#artifact_sent) +- [DIST_MAX](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#dist_max) +- [FROM_ID](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#from_id) +- [PERLIN_LENGTH_SCALE](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#perlin_length_scale) +- [PERLIN_MIRROR_X](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#perlin_mirror_x) +- [PERLIN_MIRROR_Y](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#perlin_mirror_y) +- [PLANETHASH_KEY](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#planethash_key) +- [SHIPS_SENT](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#ships_sent) +- [SILVER_SENT](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#silver_sent) +- [SPACETYPE_KEY](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#spacetype_key) +- [TO_ID](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#to_id) +- [TO_PERLIN](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#to_perlin) +- [TO_RADIUS](types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md#to_radius) + +## Enumeration members + +### ARTIFACT_SENT + +• **ARTIFACT_SENT** = `12` + +--- + +### DIST_MAX + +• **DIST_MAX** = `4` + +--- + +### FROM_ID + +• **FROM_ID** = `0` + +--- + +### PERLIN_LENGTH_SCALE + +• **PERLIN_LENGTH_SCALE** = `7` + +--- + +### PERLIN_MIRROR_X + +• **PERLIN_MIRROR_X** = `8` + +--- + +### PERLIN_MIRROR_Y + +• **PERLIN_MIRROR_Y** = `9` + +--- + +### PLANETHASH_KEY + +• **PLANETHASH_KEY** = `5` + +--- + +### SHIPS_SENT + +• **SHIPS_SENT** = `10` + +--- + +### SILVER_SENT + +• **SILVER_SENT** = `11` + +--- + +### SPACETYPE_KEY + +• **SPACETYPE_KEY** = `6` + +--- + +### TO_ID + +• **TO_ID** = `1` + +--- + +### TO_PERLIN + +• **TO_PERLIN** = `2` + +--- + +### TO_RADIUS + +• **TO_RADIUS** = `3` diff --git a/docs/enums/types_darkforest_api_ContractsAPITypes.PlanetEventType.md b/docs/enums/types_darkforest_api_ContractsAPITypes.PlanetEventType.md new file mode 100644 index 00000000..5805dd31 --- /dev/null +++ b/docs/enums/types_darkforest_api_ContractsAPITypes.PlanetEventType.md @@ -0,0 +1,15 @@ +# Enumeration: PlanetEventType + +[\_types/darkforest/api/ContractsAPITypes](../modules/types_darkforest_api_ContractsAPITypes.md).PlanetEventType + +## Table of contents + +### Enumeration members + +- [ARRIVAL](types_darkforest_api_ContractsAPITypes.PlanetEventType.md#arrival) + +## Enumeration members + +### ARRIVAL + +• **ARRIVAL** = `0` diff --git a/docs/enums/types_darkforest_api_ContractsAPITypes.UpgradeArgIdxs.md b/docs/enums/types_darkforest_api_ContractsAPITypes.UpgradeArgIdxs.md new file mode 100644 index 00000000..eebef8e0 --- /dev/null +++ b/docs/enums/types_darkforest_api_ContractsAPITypes.UpgradeArgIdxs.md @@ -0,0 +1,22 @@ +# Enumeration: UpgradeArgIdxs + +[\_types/darkforest/api/ContractsAPITypes](../modules/types_darkforest_api_ContractsAPITypes.md).UpgradeArgIdxs + +## Table of contents + +### Enumeration members + +- [LOCATION_ID](types_darkforest_api_ContractsAPITypes.UpgradeArgIdxs.md#location_id) +- [UPGRADE_BRANCH](types_darkforest_api_ContractsAPITypes.UpgradeArgIdxs.md#upgrade_branch) + +## Enumeration members + +### LOCATION_ID + +• **LOCATION_ID** = `0` + +--- + +### UPGRADE_BRANCH + +• **UPGRADE_BRANCH** = `1` diff --git a/docs/enums/types_darkforest_api_ContractsAPITypes.ZKArgIdx.md b/docs/enums/types_darkforest_api_ContractsAPITypes.ZKArgIdx.md new file mode 100644 index 00000000..403621f8 --- /dev/null +++ b/docs/enums/types_darkforest_api_ContractsAPITypes.ZKArgIdx.md @@ -0,0 +1,36 @@ +# Enumeration: ZKArgIdx + +[\_types/darkforest/api/ContractsAPITypes](../modules/types_darkforest_api_ContractsAPITypes.md).ZKArgIdx + +## Table of contents + +### Enumeration members + +- [DATA](types_darkforest_api_ContractsAPITypes.ZKArgIdx.md#data) +- [PROOF_A](types_darkforest_api_ContractsAPITypes.ZKArgIdx.md#proof_a) +- [PROOF_B](types_darkforest_api_ContractsAPITypes.ZKArgIdx.md#proof_b) +- [PROOF_C](types_darkforest_api_ContractsAPITypes.ZKArgIdx.md#proof_c) + +## Enumeration members + +### DATA + +• **DATA** = `3` + +--- + +### PROOF_A + +• **PROOF_A** = `0` + +--- + +### PROOF_B + +• **PROOF_B** = `1` + +--- + +### PROOF_C + +• **PROOF_C** = `2` diff --git a/docs/enums/types_global_GlobalTypes.StatIdx.md b/docs/enums/types_global_GlobalTypes.StatIdx.md new file mode 100644 index 00000000..b738efd3 --- /dev/null +++ b/docs/enums/types_global_GlobalTypes.StatIdx.md @@ -0,0 +1,50 @@ +# Enumeration: StatIdx + +[\_types/global/GlobalTypes](../modules/types_global_GlobalTypes.md).StatIdx + +## Table of contents + +### Enumeration members + +- [Defense](types_global_GlobalTypes.StatIdx.md#defense) +- [EnergyCap](types_global_GlobalTypes.StatIdx.md#energycap) +- [EnergyGro](types_global_GlobalTypes.StatIdx.md#energygro) +- [Range](types_global_GlobalTypes.StatIdx.md#range) +- [SpaceJunk](types_global_GlobalTypes.StatIdx.md#spacejunk) +- [Speed](types_global_GlobalTypes.StatIdx.md#speed) + +## Enumeration members + +### Defense + +• **Defense** = `4` + +--- + +### EnergyCap + +• **EnergyCap** = `0` + +--- + +### EnergyGro + +• **EnergyGro** = `1` + +--- + +### Range + +• **Range** = `2` + +--- + +### SpaceJunk + +• **SpaceJunk** = `5` + +--- + +### Speed + +• **Speed** = `3` diff --git a/docs/interfaces/Backend_GameLogic_ArrivalUtils.PlanetDiff.md b/docs/interfaces/Backend_GameLogic_ArrivalUtils.PlanetDiff.md new file mode 100644 index 00000000..5dd3a360 --- /dev/null +++ b/docs/interfaces/Backend_GameLogic_ArrivalUtils.PlanetDiff.md @@ -0,0 +1,35 @@ +# Interface: PlanetDiff + +[Backend/GameLogic/ArrivalUtils](../modules/Backend_GameLogic_ArrivalUtils.md).PlanetDiff + +**`param`** The previously calculated state of a planet + +**`param`** The current calculated state of the planet + +**`param`** The Arrival that caused the state change + +## Table of contents + +### Properties + +- [arrival](Backend_GameLogic_ArrivalUtils.PlanetDiff.md#arrival) +- [current](Backend_GameLogic_ArrivalUtils.PlanetDiff.md#current) +- [previous](Backend_GameLogic_ArrivalUtils.PlanetDiff.md#previous) + +## Properties + +### arrival + +• **arrival**: `QueuedArrival` + +--- + +### current + +• **current**: `Planet` + +--- + +### previous + +• **previous**: `Planet` diff --git a/docs/interfaces/Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md b/docs/interfaces/Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md new file mode 100644 index 00000000..3182f721 --- /dev/null +++ b/docs/interfaces/Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md @@ -0,0 +1,134 @@ +# Interface: InitialGameState + +[Backend/GameLogic/InitialGameStateDownloader](../modules/Backend_GameLogic_InitialGameStateDownloader.md).InitialGameState + +## Table of contents + +### Properties + +- [allClaimedCoords](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#allclaimedcoords) +- [allRevealedCoords](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#allrevealedcoords) +- [allTouchedPlanetIds](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#alltouchedplanetids) +- [arrivals](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#arrivals) +- [artifactsOnVoyages](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#artifactsonvoyages) +- [claimedCoordsMap](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#claimedcoordsmap) +- [contractConstants](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#contractconstants) +- [heldArtifacts](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#heldartifacts) +- [loadedPlanets](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#loadedplanets) +- [myArtifacts](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#myartifacts) +- [paused](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#paused) +- [pendingMoves](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#pendingmoves) +- [planetVoyageIdMap](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#planetvoyageidmap) +- [players](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#players) +- [revealedCoordsMap](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#revealedcoordsmap) +- [touchedAndLocatedPlanets](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#touchedandlocatedplanets) +- [twitters](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#twitters) +- [worldRadius](Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md#worldradius) + +## Properties + +### allClaimedCoords + +• `Optional` **allClaimedCoords**: `ClaimedCoords`[] + +--- + +### allRevealedCoords + +• **allRevealedCoords**: `RevealedCoords`[] + +--- + +### allTouchedPlanetIds + +• **allTouchedPlanetIds**: `LocationId`[] + +--- + +### arrivals + +• **arrivals**: `Map`<`VoyageId`, `QueuedArrival`\> + +--- + +### artifactsOnVoyages + +• **artifactsOnVoyages**: `Artifact`[] + +--- + +### claimedCoordsMap + +• `Optional` **claimedCoordsMap**: `Map`<`LocationId`, `ClaimedCoords`\> + +--- + +### contractConstants + +• **contractConstants**: [`ContractConstants`](types_darkforest_api_ContractsAPITypes.ContractConstants.md) + +--- + +### heldArtifacts + +• **heldArtifacts**: `Artifact`[][] + +--- + +### loadedPlanets + +• **loadedPlanets**: `LocationId`[] + +--- + +### myArtifacts + +• **myArtifacts**: `Artifact`[] + +--- + +### paused + +• **paused**: `boolean` + +--- + +### pendingMoves + +• **pendingMoves**: `QueuedArrival`[] + +--- + +### planetVoyageIdMap + +• **planetVoyageIdMap**: `Map`<`LocationId`, `VoyageId`[]\> + +--- + +### players + +• **players**: `Map`<`string`, `Player`\> + +--- + +### revealedCoordsMap + +• **revealedCoordsMap**: `Map`<`LocationId`, `RevealedCoords`\> + +--- + +### touchedAndLocatedPlanets + +• **touchedAndLocatedPlanets**: `Map`<`LocationId`, `Planet`\> + +--- + +### twitters + +• **twitters**: [`AddressTwitterMap`](../modules/types_darkforest_api_UtilityServerAPITypes.md#addresstwittermap) + +--- + +### worldRadius + +• **worldRadius**: `number` diff --git a/docs/interfaces/Backend_Miner_MiningPatterns.MiningPattern.md b/docs/interfaces/Backend_Miner_MiningPatterns.MiningPattern.md new file mode 100644 index 00000000..bbb2379a --- /dev/null +++ b/docs/interfaces/Backend_Miner_MiningPatterns.MiningPattern.md @@ -0,0 +1,49 @@ +# Interface: MiningPattern + +[Backend/Miner/MiningPatterns](../modules/Backend_Miner_MiningPatterns.md).MiningPattern + +## Implemented by + +- [`SpiralPattern`](../classes/Backend_Miner_MiningPatterns.SpiralPattern.md) +- [`SwissCheesePattern`](../classes/Backend_Miner_MiningPatterns.SwissCheesePattern.md) +- [`TowardsCenterPattern`](../classes/Backend_Miner_MiningPatterns.TowardsCenterPattern.md) +- [`TowardsCenterPatternV2`](../classes/Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md) + +## Table of contents + +### Properties + +- [fromChunk](Backend_Miner_MiningPatterns.MiningPattern.md#fromchunk) +- [type](Backend_Miner_MiningPatterns.MiningPattern.md#type) + +### Methods + +- [nextChunk](Backend_Miner_MiningPatterns.MiningPattern.md#nextchunk) + +## Properties + +### fromChunk + +• **fromChunk**: `Rectangle` + +--- + +### type + +• **type**: [`MiningPatternType`](../enums/Backend_Miner_MiningPatterns.MiningPatternType.md) + +## Methods + +### nextChunk + +▸ **nextChunk**(`prevLoc`): `Rectangle` + +#### Parameters + +| Name | Type | +| :-------- | :---------- | +| `prevLoc` | `Rectangle` | + +#### Returns + +`Rectangle` diff --git a/docs/interfaces/Backend_Network_AccountManager.Account.md b/docs/interfaces/Backend_Network_AccountManager.Account.md new file mode 100644 index 00000000..7513776e --- /dev/null +++ b/docs/interfaces/Backend_Network_AccountManager.Account.md @@ -0,0 +1,24 @@ +# Interface: Account + +[Backend/Network/AccountManager](../modules/Backend_Network_AccountManager.md).Account + +Represents an account with which the user plays the game. + +## Table of contents + +### Properties + +- [address](Backend_Network_AccountManager.Account.md#address) +- [privateKey](Backend_Network_AccountManager.Account.md#privatekey) + +## Properties + +### address + +• **address**: `EthAddress` + +--- + +### privateKey + +• **privateKey**: `string` diff --git a/docs/interfaces/Backend_Plugins_EmbeddedPluginLoader.EmbeddedPlugin.md b/docs/interfaces/Backend_Plugins_EmbeddedPluginLoader.EmbeddedPlugin.md new file mode 100644 index 00000000..ba8debdc --- /dev/null +++ b/docs/interfaces/Backend_Plugins_EmbeddedPluginLoader.EmbeddedPlugin.md @@ -0,0 +1,31 @@ +# Interface: EmbeddedPlugin + +[Backend/Plugins/EmbeddedPluginLoader](../modules/Backend_Plugins_EmbeddedPluginLoader.md).EmbeddedPlugin + +This interface represents an embedded plugin, which is stored in `embedded_plugins/`. + +## Table of contents + +### Properties + +- [code](Backend_Plugins_EmbeddedPluginLoader.EmbeddedPlugin.md#code) +- [id](Backend_Plugins_EmbeddedPluginLoader.EmbeddedPlugin.md#id) +- [name](Backend_Plugins_EmbeddedPluginLoader.EmbeddedPlugin.md#name) + +## Properties + +### code + +• **code**: `string` + +--- + +### id + +• **id**: `PluginId` + +--- + +### name + +• **name**: `string` diff --git a/docs/interfaces/Backend_Plugins_PluginProcess.PluginProcess.md b/docs/interfaces/Backend_Plugins_PluginProcess.PluginProcess.md new file mode 100644 index 00000000..d38b0d84 --- /dev/null +++ b/docs/interfaces/Backend_Plugins_PluginProcess.PluginProcess.md @@ -0,0 +1,76 @@ +# Interface: PluginProcess + +[Backend/Plugins/PluginProcess](../modules/Backend_Plugins_PluginProcess.md).PluginProcess + +All plugins must conform to this interface. Provides facilities for +displaying an interactive UI, as well as references to game state, +which are set externally. + +## Table of contents + +### Constructors + +- [constructor](Backend_Plugins_PluginProcess.PluginProcess.md#constructor) + +### Methods + +- [destroy](Backend_Plugins_PluginProcess.PluginProcess.md#destroy) +- [draw](Backend_Plugins_PluginProcess.PluginProcess.md#draw) +- [render](Backend_Plugins_PluginProcess.PluginProcess.md#render) + +## Constructors + +### constructor + +• **new PluginProcess**() + +## Methods + +### destroy + +▸ `Optional` **destroy**(): `void` + +Called when the plugin is unloaded. Plugins unload whenever the +plugin is edited (modified and saved, or deleted). + +#### Returns + +`void` + +--- + +### draw + +▸ `Optional` **draw**(`ctx`): `void` + +If present, called at the same framerate the the game is running at, +and allows you to draw on top of the game UI. + +#### Parameters + +| Name | Type | +| :---- | :------------------------- | +| `ctx` | `CanvasRenderingContext2D` | + +#### Returns + +`void` + +--- + +### render + +▸ `Optional` **render**(`into`): `void` + +If present, called once when the user clicks 'run' in the plugin +manager modal. + +#### Parameters + +| Name | Type | +| :----- | :--------------- | +| `into` | `HTMLDivElement` | + +#### Returns + +`void` diff --git a/docs/interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md b/docs/interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md new file mode 100644 index 00000000..7abb3816 --- /dev/null +++ b/docs/interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md @@ -0,0 +1,48 @@ +# Interface: SerializedPlugin + +[Backend/Plugins/SerializedPlugin](../modules/Backend_Plugins_SerializedPlugin.md).SerializedPlugin + +Represents a plugin that the user has added to their game. Used +internally for storing plugins. Not used for evaluating plugins! + +## Table of contents + +### Properties + +- [code](Backend_Plugins_SerializedPlugin.SerializedPlugin.md#code) +- [id](Backend_Plugins_SerializedPlugin.SerializedPlugin.md#id) +- [lastEdited](Backend_Plugins_SerializedPlugin.SerializedPlugin.md#lastedited) +- [name](Backend_Plugins_SerializedPlugin.SerializedPlugin.md#name) + +## Properties + +### code + +• **code**: `string` + +This code is a javascript object that complies with the +[PluginProcess](Backend_Plugins_PluginProcess.PluginProcess.md) interface. + +--- + +### id + +• **id**: `PluginId` + +Unique ID, assigned at the time the plugin is first saved. + +--- + +### lastEdited + +• **lastEdited**: `number` + +{@code new Date.getTime()} at the point that this plugin was saved + +--- + +### name + +• **name**: `string` + +Shown in the list of plugins. diff --git a/docs/interfaces/Frontend_Components_TextLoadingBar.LoadingBarHandle.md b/docs/interfaces/Frontend_Components_TextLoadingBar.LoadingBarHandle.md new file mode 100644 index 00000000..a13b34a2 --- /dev/null +++ b/docs/interfaces/Frontend_Components_TextLoadingBar.LoadingBarHandle.md @@ -0,0 +1,25 @@ +# Interface: LoadingBarHandle + +[Frontend/Components/TextLoadingBar](../modules/Frontend_Components_TextLoadingBar.md).LoadingBarHandle + +## Table of contents + +### Methods + +- [setFractionCompleted](Frontend_Components_TextLoadingBar.LoadingBarHandle.md#setfractioncompleted) + +## Methods + +### setFractionCompleted + +▸ **setFractionCompleted**(`fractionCompleted`): `void` + +#### Parameters + +| Name | Type | +| :------------------ | :------- | +| `fractionCompleted` | `number` | + +#### Returns + +`void` diff --git a/docs/interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md b/docs/interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md new file mode 100644 index 00000000..d2992976 --- /dev/null +++ b/docs/interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md @@ -0,0 +1,35 @@ +# Interface: LobbiesPaneProps + +[Frontend/Panes/Lobbies/LobbiesUtils](../modules/Frontend_Panes_Lobbies_LobbiesUtils.md).LobbiesPaneProps + +## Table of contents + +### Properties + +- [config](Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md#config) + +### Methods + +- [onUpdate](Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md#onupdate) + +## Properties + +### config + +• **config**: [`LobbyConfigState`](../modules/Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) + +## Methods + +### onUpdate + +▸ **onUpdate**(`change`): `void` + +#### Parameters + +| Name | Type | +| :------- | :------------------------------------------------------------------------------------ | +| `change` | [`LobbyConfigAction`](../modules/Frontend_Panes_Lobbies_Reducer.md#lobbyconfigaction) | + +#### Returns + +`void` diff --git a/docs/interfaces/Frontend_Panes_Tooltip.TooltipProps.md b/docs/interfaces/Frontend_Panes_Tooltip.TooltipProps.md new file mode 100644 index 00000000..1daad7bd --- /dev/null +++ b/docs/interfaces/Frontend_Panes_Tooltip.TooltipProps.md @@ -0,0 +1,82 @@ +# Interface: TooltipProps + +[Frontend/Panes/Tooltip](../modules/Frontend_Panes_Tooltip.md).TooltipProps + +## Hierarchy + +- [`TooltipTriggerProps`](Frontend_Panes_Tooltip.TooltipTriggerProps.md) + + ↳ **`TooltipProps`** + +## Table of contents + +### Properties + +- [children](Frontend_Panes_Tooltip.TooltipProps.md#children) +- [extraContent](Frontend_Panes_Tooltip.TooltipProps.md#extracontent) +- [left](Frontend_Panes_Tooltip.TooltipProps.md#left) +- [name](Frontend_Panes_Tooltip.TooltipProps.md#name) +- [style](Frontend_Panes_Tooltip.TooltipProps.md#style) +- [top](Frontend_Panes_Tooltip.TooltipProps.md#top) + +## Properties + +### children + +• **children**: `ReactNode` + +A [TooltipTrigger](../modules/Frontend_Panes_Tooltip.md#tooltiptrigger) wraps this child, and causes a tooltip to appear when the user hovers +over it. + +#### Inherited from + +[TooltipTriggerProps](Frontend_Panes_Tooltip.TooltipTriggerProps.md).[children](Frontend_Panes_Tooltip.TooltipTriggerProps.md#children) + +--- + +### extraContent + +• `Optional` **extraContent**: `ReactNode` + +You can append some dynamic content to the given tooltip by setting this field to a React node. + +#### Inherited from + +[TooltipTriggerProps](Frontend_Panes_Tooltip.TooltipTriggerProps.md).[extraContent](Frontend_Panes_Tooltip.TooltipTriggerProps.md#extracontent) + +--- + +### left + +• **left**: `number` + +--- + +### name + +• **name**: `undefined` \| `TooltipName` + +The name of the tooltip element to display. You can see all the concrete tooltip contents in +the file called {@link TooltipPanes}. Set to `undefined` to not render the tooltip. + +#### Inherited from + +[TooltipTriggerProps](Frontend_Panes_Tooltip.TooltipTriggerProps.md).[name](Frontend_Panes_Tooltip.TooltipTriggerProps.md#name) + +--- + +### style + +• `Optional` **style**: `CSSProperties` + +You can optionally style the tooltip trigger element, not the tooltip itself. + +#### Inherited from + +[TooltipTriggerProps](Frontend_Panes_Tooltip.TooltipTriggerProps.md).[style](Frontend_Panes_Tooltip.TooltipTriggerProps.md#style) + +--- + +### top + +• **top**: `number` diff --git a/docs/interfaces/Frontend_Panes_Tooltip.TooltipTriggerProps.md b/docs/interfaces/Frontend_Panes_Tooltip.TooltipTriggerProps.md new file mode 100644 index 00000000..312bc5e6 --- /dev/null +++ b/docs/interfaces/Frontend_Panes_Tooltip.TooltipTriggerProps.md @@ -0,0 +1,54 @@ +# Interface: TooltipTriggerProps + +[Frontend/Panes/Tooltip](../modules/Frontend_Panes_Tooltip.md).TooltipTriggerProps + +Each {@link TooltipName} has a corresponding tooltip element. + +## Hierarchy + +- **`TooltipTriggerProps`** + + ↳ [`TooltipProps`](Frontend_Panes_Tooltip.TooltipProps.md) + +## Table of contents + +### Properties + +- [children](Frontend_Panes_Tooltip.TooltipTriggerProps.md#children) +- [extraContent](Frontend_Panes_Tooltip.TooltipTriggerProps.md#extracontent) +- [name](Frontend_Panes_Tooltip.TooltipTriggerProps.md#name) +- [style](Frontend_Panes_Tooltip.TooltipTriggerProps.md#style) + +## Properties + +### children + +• **children**: `ReactNode` + +A [TooltipTrigger](../modules/Frontend_Panes_Tooltip.md#tooltiptrigger) wraps this child, and causes a tooltip to appear when the user hovers +over it. + +--- + +### extraContent + +• `Optional` **extraContent**: `ReactNode` + +You can append some dynamic content to the given tooltip by setting this field to a React node. + +--- + +### name + +• **name**: `undefined` \| `TooltipName` + +The name of the tooltip element to display. You can see all the concrete tooltip contents in +the file called {@link TooltipPanes}. Set to `undefined` to not render the tooltip. + +--- + +### style + +• `Optional` **style**: `CSSProperties` + +You can optionally style the tooltip trigger element, not the tooltip itself. diff --git a/docs/interfaces/Frontend_Utils_EmitterUtils.Diff.md b/docs/interfaces/Frontend_Utils_EmitterUtils.Diff.md new file mode 100644 index 00000000..ab51d4a0 --- /dev/null +++ b/docs/interfaces/Frontend_Utils_EmitterUtils.Diff.md @@ -0,0 +1,32 @@ +# Interface: Diff + +[Frontend/Utils/EmitterUtils](../modules/Frontend_Utils_EmitterUtils.md).Diff + +**`param`** The previously emitted state of an object + +**`param`** The current emitted state of an object + +## Type parameters + +| Name | +| :----- | +| `Type` | + +## Table of contents + +### Properties + +- [current](Frontend_Utils_EmitterUtils.Diff.md#current) +- [previous](Frontend_Utils_EmitterUtils.Diff.md#previous) + +## Properties + +### current + +• **current**: `Type` + +--- + +### previous + +• **previous**: `Type` diff --git a/docs/interfaces/Frontend_Views_ModalPane.ModalFrame.md b/docs/interfaces/Frontend_Views_ModalPane.ModalFrame.md new file mode 100644 index 00000000..acd19f00 --- /dev/null +++ b/docs/interfaces/Frontend_Views_ModalPane.ModalFrame.md @@ -0,0 +1,38 @@ +# Interface: ModalFrame + +[Frontend/Views/ModalPane](../modules/Frontend_Views_ModalPane.md).ModalFrame + +A modal has a {@code content}, and also optionally many {@link ModalFrames} pushed on top of it. + +## Table of contents + +### Properties + +- [helpContent](Frontend_Views_ModalPane.ModalFrame.md#helpcontent) +- [title](Frontend_Views_ModalPane.ModalFrame.md#title) + +### Methods + +- [element](Frontend_Views_ModalPane.ModalFrame.md#element) + +## Properties + +### helpContent + +• `Optional` **helpContent**: `ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> + +--- + +### title + +• **title**: `string` + +## Methods + +### element + +▸ **element**(): `ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> + +#### Returns + +`ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> diff --git a/docs/interfaces/Frontend_Views_ModalPane.ModalHandle.md b/docs/interfaces/Frontend_Views_ModalPane.ModalHandle.md new file mode 100644 index 00000000..0d331322 --- /dev/null +++ b/docs/interfaces/Frontend_Views_ModalPane.ModalHandle.md @@ -0,0 +1,66 @@ +# Interface: ModalHandle + +[Frontend/Views/ModalPane](../modules/Frontend_Views_ModalPane.md).ModalHandle + +**`todo`** Add things like open, close, set position, etc. + +## Table of contents + +### Properties + +- [id](Frontend_Views_ModalPane.ModalHandle.md#id) +- [isActive](Frontend_Views_ModalPane.ModalHandle.md#isactive) + +### Methods + +- [pop](Frontend_Views_ModalPane.ModalHandle.md#pop) +- [popAll](Frontend_Views_ModalPane.ModalHandle.md#popall) +- [push](Frontend_Views_ModalPane.ModalHandle.md#push) + +## Properties + +### id + +• **id**: `string` + +--- + +### isActive + +• **isActive**: `boolean` + +## Methods + +### pop + +▸ **pop**(): `void` + +#### Returns + +`void` + +--- + +### popAll + +▸ **popAll**(): `void` + +#### Returns + +`void` + +--- + +### push + +▸ **push**(`frame`): `void` + +#### Parameters + +| Name | Type | +| :------ | :----------------------------------------------------- | +| `frame` | [`ModalFrame`](Frontend_Views_ModalPane.ModalFrame.md) | + +#### Returns + +`void` diff --git a/docs/interfaces/Frontend_Views_Share.ShareProps.md b/docs/interfaces/Frontend_Views_Share.ShareProps.md new file mode 100644 index 00000000..7f836c78 --- /dev/null +++ b/docs/interfaces/Frontend_Views_Share.ShareProps.md @@ -0,0 +1,50 @@ +# Interface: ShareProps + +[Frontend/Views/Share](../modules/Frontend_Views_Share.md).ShareProps + +## Type parameters + +| Name | +| :--- | +| `T` | + +## Table of contents + +### Methods + +- [children](Frontend_Views_Share.ShareProps.md#children) +- [load](Frontend_Views_Share.ShareProps.md#load) + +## Methods + +### children + +▸ **children**(`state`, `loading`, `error`): `ReactNode` + +#### Parameters + +| Name | Type | +| :-------- | :--------------------- | +| `state` | `undefined` \| `T` | +| `loading` | `boolean` | +| `error` | `undefined` \| `Error` | + +#### Returns + +`ReactNode` + +--- + +### load + +▸ **load**(`store`): `Promise`<`T`\> + +#### Parameters + +| Name | Type | +| :------ | :----------------------------------------------------------------- | +| `store` | [`default`](../classes/Backend_Storage_ReaderDataStore.default.md) | + +#### Returns + +`Promise`<`T`\> diff --git a/docs/interfaces/Frontend_Views_Terminal.TerminalHandle.md b/docs/interfaces/Frontend_Views_Terminal.TerminalHandle.md new file mode 100644 index 00000000..1b7ede4a --- /dev/null +++ b/docs/interfaces/Frontend_Views_Terminal.TerminalHandle.md @@ -0,0 +1,221 @@ +# Interface: TerminalHandle + +[Frontend/Views/Terminal](../modules/Frontend_Views_Terminal.md).TerminalHandle + +## Table of contents + +### Methods + +- [clear](Frontend_Views_Terminal.TerminalHandle.md#clear) +- [focus](Frontend_Views_Terminal.TerminalHandle.md#focus) +- [getInput](Frontend_Views_Terminal.TerminalHandle.md#getinput) +- [newline](Frontend_Views_Terminal.TerminalHandle.md#newline) +- [print](Frontend_Views_Terminal.TerminalHandle.md#print) +- [printElement](Frontend_Views_Terminal.TerminalHandle.md#printelement) +- [printLink](Frontend_Views_Terminal.TerminalHandle.md#printlink) +- [printLoadingBar](Frontend_Views_Terminal.TerminalHandle.md#printloadingbar) +- [printLoadingSpinner](Frontend_Views_Terminal.TerminalHandle.md#printloadingspinner) +- [printShellLn](Frontend_Views_Terminal.TerminalHandle.md#printshellln) +- [println](Frontend_Views_Terminal.TerminalHandle.md#println) +- [removeLast](Frontend_Views_Terminal.TerminalHandle.md#removelast) +- [setInput](Frontend_Views_Terminal.TerminalHandle.md#setinput) +- [setUserInputEnabled](Frontend_Views_Terminal.TerminalHandle.md#setuserinputenabled) + +## Methods + +### clear + +▸ **clear**(): `void` + +#### Returns + +`void` + +--- + +### focus + +▸ **focus**(): `void` + +#### Returns + +`void` + +--- + +### getInput + +▸ **getInput**(): `Promise`<`string`\> + +#### Returns + +`Promise`<`string`\> + +--- + +### newline + +▸ **newline**(): `void` + +#### Returns + +`void` + +--- + +### print + +▸ **print**(`str`, `style?`): `void` + +#### Parameters + +| Name | Type | +| :------- | :-------------------------------------------------------------------------------- | +| `str` | `string` | +| `style?` | [`TerminalTextStyle`](../enums/Frontend_Utils_TerminalTypes.TerminalTextStyle.md) | + +#### Returns + +`void` + +--- + +### printElement + +▸ **printElement**(`element`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :------------------------------------------------------------------ | +| `element` | `ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> | + +#### Returns + +`void` + +--- + +### printLink + +▸ **printLink**(`str`, `onClick`, `style`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :-------------------------------------------------------------------------------- | +| `str` | `string` | +| `onClick` | () => `void` | +| `style` | [`TerminalTextStyle`](../enums/Frontend_Utils_TerminalTypes.TerminalTextStyle.md) | + +#### Returns + +`void` + +--- + +### printLoadingBar + +▸ **printLoadingBar**(`prettyEntityName`, `ref`): `void` + +#### Parameters + +| Name | Type | +| :----------------- | :----------------------------------------------------------------------------------------- | +| `prettyEntityName` | `string` | +| `ref` | `RefObject`<[`LoadingBarHandle`](Frontend_Components_TextLoadingBar.LoadingBarHandle.md)\> | + +#### Returns + +`void` + +--- + +### printLoadingSpinner + +▸ **printLoadingSpinner**(): `void` + +#### Returns + +`void` + +--- + +### printShellLn + +▸ **printShellLn**(`str`): `void` + +#### Parameters + +| Name | Type | +| :---- | :------- | +| `str` | `string` | + +#### Returns + +`void` + +--- + +### println + +▸ **println**(`str`, `style?`): `void` + +#### Parameters + +| Name | Type | +| :------- | :-------------------------------------------------------------------------------- | +| `str` | `string` | +| `style?` | [`TerminalTextStyle`](../enums/Frontend_Utils_TerminalTypes.TerminalTextStyle.md) | + +#### Returns + +`void` + +--- + +### removeLast + +▸ **removeLast**(`n`): `void` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `n` | `number` | + +#### Returns + +`void` + +--- + +### setInput + +▸ **setInput**(`input`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `input` | `string` | + +#### Returns + +`void` + +--- + +### setUserInputEnabled + +▸ **setUserInputEnabled**(`enabled`): `void` + +#### Parameters + +| Name | Type | +| :-------- | :-------- | +| `enabled` | `boolean` | + +#### Returns + +`void` diff --git a/docs/interfaces/Frontend_Views_Terminal.TerminalProps.md b/docs/interfaces/Frontend_Views_Terminal.TerminalProps.md new file mode 100644 index 00000000..4e39a049 --- /dev/null +++ b/docs/interfaces/Frontend_Views_Terminal.TerminalProps.md @@ -0,0 +1,15 @@ +# Interface: TerminalProps + +[Frontend/Views/Terminal](../modules/Frontend_Views_Terminal.md).TerminalProps + +## Table of contents + +### Properties + +- [promptCharacter](Frontend_Views_Terminal.TerminalProps.md#promptcharacter) + +## Properties + +### promptCharacter + +• **promptCharacter**: `string` diff --git a/docs/interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md b/docs/interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md deleted file mode 100644 index 09d0c1ff..00000000 --- a/docs/interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md +++ /dev/null @@ -1,35 +0,0 @@ -# Interface: ChunkStore - -[\_types/darkforest/api/ChunkStoreTypes](../modules/_types_darkforest_api_chunkstoretypes.md).ChunkStore - -Abstract interface shared between different types of chunk stores. Currently we have one that -writes to IndexedDB, and one that simply throws away the data. - -## Implemented by - -- [_HomePlanetMinerChunkStore_](../classes/backend_miner_minermanager.homeplanetminerchunkstore.md) -- [_default_](../classes/backend_storage_persistentchunkstore.default.md) - -## Table of contents - -### Properties - -- [hasMinedChunk](_types_darkforest_api_chunkstoretypes.chunkstore.md#hasminedchunk) - -## Properties - -### hasMinedChunk - -• **hasMinedChunk**: (`chunkFootprint`: [_Rectangle_](_types_global_globaltypes.rectangle.md)) => _boolean_ - -#### Type declaration - -▸ (`chunkFootprint`: [_Rectangle_](_types_global_globaltypes.rectangle.md)): _boolean_ - -#### Parameters - -| Name | Type | -| :--------------- | :---------------------------------------------------- | -| `chunkFootprint` | [_Rectangle_](_types_global_globaltypes.rectangle.md) | - -**Returns:** _boolean_ diff --git a/docs/interfaces/_types_darkforest_api_chunkstoretypes.persistedchunk.md b/docs/interfaces/_types_darkforest_api_chunkstoretypes.persistedchunk.md deleted file mode 100644 index aa9e9138..00000000 --- a/docs/interfaces/_types_darkforest_api_chunkstoretypes.persistedchunk.md +++ /dev/null @@ -1,47 +0,0 @@ -# Interface: PersistedChunk - -[\_types/darkforest/api/ChunkStoreTypes](../modules/_types_darkforest_api_chunkstoretypes.md).PersistedChunk - -Chunks represent map data in some rectangle. This type represents a chunk when it is at rest in -IndexedDB. The reason for this type's existence is that we want to reduce the amount of data we -store on the user's computer. Shorter names hopefully means less data. - -## Table of contents - -### Properties - -- [l](_types_darkforest_api_chunkstoretypes.persistedchunk.md#l) -- [p](_types_darkforest_api_chunkstoretypes.persistedchunk.md#p) -- [s](_types_darkforest_api_chunkstoretypes.persistedchunk.md#s) -- [x](_types_darkforest_api_chunkstoretypes.persistedchunk.md#x) -- [y](_types_darkforest_api_chunkstoretypes.persistedchunk.md#y) - -## Properties - -### l - -• **l**: [_PersistedLocation_](_types_darkforest_api_chunkstoretypes.persistedlocation.md)[] - ---- - -### p - -• **p**: _number_ - ---- - -### s - -• **s**: _number_ - ---- - -### x - -• **x**: _number_ - ---- - -### y - -• **y**: _number_ diff --git a/docs/interfaces/_types_darkforest_api_chunkstoretypes.persistedlocation.md b/docs/interfaces/_types_darkforest_api_chunkstoretypes.persistedlocation.md deleted file mode 100644 index 5aca65b4..00000000 --- a/docs/interfaces/_types_darkforest_api_chunkstoretypes.persistedlocation.md +++ /dev/null @@ -1,46 +0,0 @@ -# Interface: PersistedLocation - -[\_types/darkforest/api/ChunkStoreTypes](../modules/_types_darkforest_api_chunkstoretypes.md).PersistedLocation - -A location is a point sample of the universe. This type represents that point sample at rest when -it is stored in IndexedDB. - -## Table of contents - -### Properties - -- [b](_types_darkforest_api_chunkstoretypes.persistedlocation.md#b) -- [h](_types_darkforest_api_chunkstoretypes.persistedlocation.md#h) -- [p](_types_darkforest_api_chunkstoretypes.persistedlocation.md#p) -- [x](_types_darkforest_api_chunkstoretypes.persistedlocation.md#x) -- [y](_types_darkforest_api_chunkstoretypes.persistedlocation.md#y) - -## Properties - -### b - -• **b**: _number_ - ---- - -### h - -• **h**: LocationId - ---- - -### p - -• **p**: _number_ - ---- - -### x - -• **x**: _number_ - ---- - -### y - -• **y**: _number_ diff --git a/docs/interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md b/docs/interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md deleted file mode 100644 index d25483cb..00000000 --- a/docs/interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md +++ /dev/null @@ -1,244 +0,0 @@ -# Interface: ContractConstants - -[\_types/darkforest/api/ContractsAPITypes](../modules/_types_darkforest_api_contractsapitypes.md).ContractConstants - -## Table of contents - -### Properties - -- [ARTIFACT_POINT_VALUES](_types_darkforest_api_contractsapitypes.contractconstants.md#artifact_point_values) -- [BIOMEBASE_KEY](_types_darkforest_api_contractsapitypes.contractconstants.md#biomebase_key) -- [BIOME_THRESHOLD_1](_types_darkforest_api_contractsapitypes.contractconstants.md#biome_threshold_1) -- [BIOME_THRESHOLD_2](_types_darkforest_api_contractsapitypes.contractconstants.md#biome_threshold_2) -- [DISABLE_ZK_CHECKS](_types_darkforest_api_contractsapitypes.contractconstants.md#disable_zk_checks) -- [INIT_PERLIN_MAX](_types_darkforest_api_contractsapitypes.contractconstants.md#init_perlin_max) -- [INIT_PERLIN_MIN](_types_darkforest_api_contractsapitypes.contractconstants.md#init_perlin_min) -- [LOCATION_REVEAL_COOLDOWN](_types_darkforest_api_contractsapitypes.contractconstants.md#location_reveal_cooldown) -- [MAX_NATURAL_PLANET_LEVEL](_types_darkforest_api_contractsapitypes.contractconstants.md#max_natural_planet_level) -- [PERLIN_LENGTH_SCALE](_types_darkforest_api_contractsapitypes.contractconstants.md#perlin_length_scale) -- [PERLIN_MIRROR_X](_types_darkforest_api_contractsapitypes.contractconstants.md#perlin_mirror_x) -- [PERLIN_MIRROR_Y](_types_darkforest_api_contractsapitypes.contractconstants.md#perlin_mirror_y) -- [PERLIN_THRESHOLD_1](_types_darkforest_api_contractsapitypes.contractconstants.md#perlin_threshold_1) -- [PERLIN_THRESHOLD_2](_types_darkforest_api_contractsapitypes.contractconstants.md#perlin_threshold_2) -- [PERLIN_THRESHOLD_3](_types_darkforest_api_contractsapitypes.contractconstants.md#perlin_threshold_3) -- [PHOTOID_ACTIVATION_DELAY](_types_darkforest_api_contractsapitypes.contractconstants.md#photoid_activation_delay) -- [PLANETHASH_KEY](_types_darkforest_api_contractsapitypes.contractconstants.md#planethash_key) -- [PLANET_RARITY](_types_darkforest_api_contractsapitypes.contractconstants.md#planet_rarity) -- [PLANET_TYPE_WEIGHTS](_types_darkforest_api_contractsapitypes.contractconstants.md#planet_type_weights) -- [SPACETYPE_KEY](_types_darkforest_api_contractsapitypes.contractconstants.md#spacetype_key) -- [TIME_FACTOR_HUNDREDTHS](_types_darkforest_api_contractsapitypes.contractconstants.md#time_factor_hundredths) -- [TOKEN_MINT_END_SECONDS](_types_darkforest_api_contractsapitypes.contractconstants.md#token_mint_end_seconds) -- [defaultBarbarianPercentage](_types_darkforest_api_contractsapitypes.contractconstants.md#defaultbarbarianpercentage) -- [defaultDefense](_types_darkforest_api_contractsapitypes.contractconstants.md#defaultdefense) -- [defaultPopulationCap](_types_darkforest_api_contractsapitypes.contractconstants.md#defaultpopulationcap) -- [defaultPopulationGrowth](_types_darkforest_api_contractsapitypes.contractconstants.md#defaultpopulationgrowth) -- [defaultRange](_types_darkforest_api_contractsapitypes.contractconstants.md#defaultrange) -- [defaultSilverCap](_types_darkforest_api_contractsapitypes.contractconstants.md#defaultsilvercap) -- [defaultSilverGrowth](_types_darkforest_api_contractsapitypes.contractconstants.md#defaultsilvergrowth) -- [defaultSpeed](_types_darkforest_api_contractsapitypes.contractconstants.md#defaultspeed) -- [planetCumulativeRarities](_types_darkforest_api_contractsapitypes.contractconstants.md#planetcumulativerarities) -- [planetLevelThresholds](_types_darkforest_api_contractsapitypes.contractconstants.md#planetlevelthresholds) -- [upgrades](_types_darkforest_api_contractsapitypes.contractconstants.md#upgrades) - -## Properties - -### ARTIFACT_POINT_VALUES - -• **ARTIFACT_POINT_VALUES**: ArtifactPointValues - ---- - -### BIOMEBASE_KEY - -• **BIOMEBASE_KEY**: _number_ - ---- - -### BIOME_THRESHOLD_1 - -• **BIOME_THRESHOLD_1**: _number_ - ---- - -### BIOME_THRESHOLD_2 - -• **BIOME_THRESHOLD_2**: _number_ - ---- - -### DISABLE_ZK_CHECKS - -• **DISABLE_ZK_CHECKS**: _boolean_ - ---- - -### INIT_PERLIN_MAX - -• **INIT_PERLIN_MAX**: _number_ - ---- - -### INIT_PERLIN_MIN - -• **INIT_PERLIN_MIN**: _number_ - ---- - -### LOCATION_REVEAL_COOLDOWN - -• **LOCATION_REVEAL_COOLDOWN**: _number_ - ---- - -### MAX_NATURAL_PLANET_LEVEL - -• **MAX_NATURAL_PLANET_LEVEL**: _number_ - ---- - -### PERLIN_LENGTH_SCALE - -• **PERLIN_LENGTH_SCALE**: _number_ - ---- - -### PERLIN_MIRROR_X - -• **PERLIN_MIRROR_X**: _boolean_ - ---- - -### PERLIN_MIRROR_Y - -• **PERLIN_MIRROR_Y**: _boolean_ - ---- - -### PERLIN_THRESHOLD_1 - -• **PERLIN_THRESHOLD_1**: _number_ - -The perlin value at each coordinate determines the space type. There are four space -types, which means there are four ranges on the number line that correspond to -each space type. This function returns the boundary values between each of these -four ranges: `PERLIN_THRESHOLD_1`, `PERLIN_THRESHOLD_2`, `PERLIN_THRESHOLD_3`. - ---- - -### PERLIN_THRESHOLD_2 - -• **PERLIN_THRESHOLD_2**: _number_ - ---- - -### PERLIN_THRESHOLD_3 - -• **PERLIN_THRESHOLD_3**: _number_ - ---- - -### PHOTOID_ACTIVATION_DELAY - -• **PHOTOID_ACTIVATION_DELAY**: _number_ - ---- - -### PLANETHASH_KEY - -• **PLANETHASH_KEY**: _number_ - ---- - -### PLANET_RARITY - -• **PLANET_RARITY**: _number_ - ---- - -### PLANET_TYPE_WEIGHTS - -• **PLANET_TYPE_WEIGHTS**: [_PlanetTypeWeightsBySpaceType_](../modules/_types_darkforest_api_contractsapitypes.md#planettypeweightsbyspacetype) - ---- - -### SPACETYPE_KEY - -• **SPACETYPE_KEY**: _number_ - ---- - -### TIME_FACTOR_HUNDREDTHS - -• **TIME_FACTOR_HUNDREDTHS**: _number_ - ---- - -### TOKEN_MINT_END_SECONDS - -• **TOKEN_MINT_END_SECONDS**: _number_ - ---- - -### defaultBarbarianPercentage - -• **defaultBarbarianPercentage**: _number_[] - ---- - -### defaultDefense - -• **defaultDefense**: _number_[] - ---- - -### defaultPopulationCap - -• **defaultPopulationCap**: _number_[] - ---- - -### defaultPopulationGrowth - -• **defaultPopulationGrowth**: _number_[] - ---- - -### defaultRange - -• **defaultRange**: _number_[] - ---- - -### defaultSilverCap - -• **defaultSilverCap**: _number_[] - ---- - -### defaultSilverGrowth - -• **defaultSilverGrowth**: _number_[] - ---- - -### defaultSpeed - -• **defaultSpeed**: _number_[] - ---- - -### planetCumulativeRarities - -• **planetCumulativeRarities**: _number_[] - ---- - -### planetLevelThresholds - -• **planetLevelThresholds**: _number_[] - ---- - -### upgrades - -• **upgrades**: UpgradeBranches diff --git a/docs/interfaces/_types_global_globaltypes.minerworkermessage.md b/docs/interfaces/_types_global_globaltypes.minerworkermessage.md deleted file mode 100644 index 1f067a09..00000000 --- a/docs/interfaces/_types_global_globaltypes.minerworkermessage.md +++ /dev/null @@ -1,92 +0,0 @@ -# Interface: MinerWorkerMessage - -[\_types/global/GlobalTypes](../modules/_types_global_globaltypes.md).MinerWorkerMessage - -## Table of contents - -### Properties - -- [biomebaseKey](_types_global_globaltypes.minerworkermessage.md#biomebasekey) -- [chunkFootprint](_types_global_globaltypes.minerworkermessage.md#chunkfootprint) -- [jobId](_types_global_globaltypes.minerworkermessage.md#jobid) -- [perlinLengthScale](_types_global_globaltypes.minerworkermessage.md#perlinlengthscale) -- [perlinMirrorX](_types_global_globaltypes.minerworkermessage.md#perlinmirrorx) -- [perlinMirrorY](_types_global_globaltypes.minerworkermessage.md#perlinmirrory) -- [planetHashKey](_types_global_globaltypes.minerworkermessage.md#planethashkey) -- [planetRarity](_types_global_globaltypes.minerworkermessage.md#planetrarity) -- [spaceTypeKey](_types_global_globaltypes.minerworkermessage.md#spacetypekey) -- [totalWorkers](_types_global_globaltypes.minerworkermessage.md#totalworkers) -- [useMockHash](_types_global_globaltypes.minerworkermessage.md#usemockhash) -- [workerIndex](_types_global_globaltypes.minerworkermessage.md#workerindex) - -## Properties - -### biomebaseKey - -• **biomebaseKey**: _number_ - ---- - -### chunkFootprint - -• **chunkFootprint**: [_Rectangle_](_types_global_globaltypes.rectangle.md) - ---- - -### jobId - -• **jobId**: _number_ - ---- - -### perlinLengthScale - -• **perlinLengthScale**: _number_ - ---- - -### perlinMirrorX - -• **perlinMirrorX**: _boolean_ - ---- - -### perlinMirrorY - -• **perlinMirrorY**: _boolean_ - ---- - -### planetHashKey - -• **planetHashKey**: _number_ - ---- - -### planetRarity - -• **planetRarity**: _number_ - ---- - -### spaceTypeKey - -• **spaceTypeKey**: _number_ - ---- - -### totalWorkers - -• **totalWorkers**: _number_ - ---- - -### useMockHash - -• **useMockHash**: _boolean_ - ---- - -### workerIndex - -• **workerIndex**: _number_ diff --git a/docs/interfaces/_types_global_globaltypes.rectangle.md b/docs/interfaces/_types_global_globaltypes.rectangle.md deleted file mode 100644 index 75e883f7..00000000 --- a/docs/interfaces/_types_global_globaltypes.rectangle.md +++ /dev/null @@ -1,26 +0,0 @@ -# Interface: Rectangle - -[\_types/global/GlobalTypes](../modules/_types_global_globaltypes.md).Rectangle - -Ok, this is gonna sound weird, but all rectangles are squares. Also, we only permit side lengths -that are powers of two, and ALSO!! The side lengths must be between [MIN_CHUNK_SIZE](../modules/frontend_utils_constants.md#min_chunk_size) and -[MAX_CHUNK_SIZE](../modules/frontend_utils_constants.md#max_chunk_size). - -## Table of contents - -### Properties - -- [bottomLeft](_types_global_globaltypes.rectangle.md#bottomleft) -- [sideLength](_types_global_globaltypes.rectangle.md#sidelength) - -## Properties - -### bottomLeft - -• **bottomLeft**: WorldCoords - ---- - -### sideLength - -• **sideLength**: _number_ diff --git a/docs/interfaces/_types_global_globaltypes.revealcountdowninfo.md b/docs/interfaces/_types_global_globaltypes.revealcountdowninfo.md deleted file mode 100644 index cdc93821..00000000 --- a/docs/interfaces/_types_global_globaltypes.revealcountdowninfo.md +++ /dev/null @@ -1,29 +0,0 @@ -# Interface: RevealCountdownInfo - -[\_types/global/GlobalTypes](../modules/_types_global_globaltypes.md).RevealCountdownInfo - -## Table of contents - -### Properties - -- [currentlyRevealing](_types_global_globaltypes.revealcountdowninfo.md#currentlyrevealing) -- [myLastRevealTimestamp](_types_global_globaltypes.revealcountdowninfo.md#mylastrevealtimestamp) -- [revealCooldownTime](_types_global_globaltypes.revealcountdowninfo.md#revealcooldowntime) - -## Properties - -### currentlyRevealing - -• **currentlyRevealing**: _boolean_ - ---- - -### myLastRevealTimestamp - -• `Optional` **myLastRevealTimestamp**: _number_ - ---- - -### revealCooldownTime - -• **revealCooldownTime**: _number_ diff --git a/docs/interfaces/backend_gamelogic_artifactutils.renderedartifact.md b/docs/interfaces/backend_gamelogic_artifactutils.renderedartifact.md deleted file mode 100644 index d8c75206..00000000 --- a/docs/interfaces/backend_gamelogic_artifactutils.renderedartifact.md +++ /dev/null @@ -1,203 +0,0 @@ -# Interface: RenderedArtifact - -[Backend/GameLogic/ArtifactUtils](../modules/backend_gamelogic_artifactutils.md).RenderedArtifact - -## Hierarchy - -- _Partial_ - - ↳ **RenderedArtifact** - -## Table of contents - -### Properties - -- [artifactType](backend_gamelogic_artifactutils.renderedartifact.md#artifacttype) -- [currentOwner](backend_gamelogic_artifactutils.renderedartifact.md#currentowner) -- [discoverer](backend_gamelogic_artifactutils.renderedartifact.md#discoverer) -- [id](backend_gamelogic_artifactutils.renderedartifact.md#id) -- [isInititalized](backend_gamelogic_artifactutils.renderedartifact.md#isinititalized) -- [lastActivated](backend_gamelogic_artifactutils.renderedartifact.md#lastactivated) -- [lastDeactivated](backend_gamelogic_artifactutils.renderedartifact.md#lastdeactivated) -- [mintedAtTimestamp](backend_gamelogic_artifactutils.renderedartifact.md#mintedattimestamp) -- [onPlanetId](backend_gamelogic_artifactutils.renderedartifact.md#onplanetid) -- [onVoyageId](backend_gamelogic_artifactutils.renderedartifact.md#onvoyageid) -- [planetBiome](backend_gamelogic_artifactutils.renderedartifact.md#planetbiome) -- [planetDiscoveredOn](backend_gamelogic_artifactutils.renderedartifact.md#planetdiscoveredon) -- [rarity](backend_gamelogic_artifactutils.renderedartifact.md#rarity) -- [timeDelayedUpgrade](backend_gamelogic_artifactutils.renderedartifact.md#timedelayedupgrade) -- [unconfirmedActivateArtifact](backend_gamelogic_artifactutils.renderedartifact.md#unconfirmedactivateartifact) -- [unconfirmedDeactivateArtifact](backend_gamelogic_artifactutils.renderedartifact.md#unconfirmeddeactivateartifact) -- [unconfirmedDepositArtifact](backend_gamelogic_artifactutils.renderedartifact.md#unconfirmeddepositartifact) -- [unconfirmedMove](backend_gamelogic_artifactutils.renderedartifact.md#unconfirmedmove) -- [unconfirmedWithdrawArtifact](backend_gamelogic_artifactutils.renderedartifact.md#unconfirmedwithdrawartifact) -- [upgrade](backend_gamelogic_artifactutils.renderedartifact.md#upgrade) -- [wormholeTo](backend_gamelogic_artifactutils.renderedartifact.md#wormholeto) - -## Properties - -### artifactType - -• **artifactType**: ArtifactType - -Overrides: Partial.artifactType - ---- - -### currentOwner - -• `Optional` **currentOwner**: EthAddress - -Inherited from: Partial.currentOwner - ---- - -### discoverer - -• `Optional` **discoverer**: EthAddress - -Inherited from: Partial.discoverer - ---- - -### id - -• **id**: ArtifactId - -Overrides: Partial.id - ---- - -### isInititalized - -• `Optional` **isInititalized**: _boolean_ - -Inherited from: Partial.isInititalized - ---- - -### lastActivated - -• `Optional` **lastActivated**: _number_ - -Inherited from: Partial.lastActivated - ---- - -### lastDeactivated - -• `Optional` **lastDeactivated**: _number_ - -Inherited from: Partial.lastDeactivated - ---- - -### mintedAtTimestamp - -• `Optional` **mintedAtTimestamp**: _number_ - -Inherited from: Partial.mintedAtTimestamp - ---- - -### onPlanetId - -• `Optional` **onPlanetId**: LocationId - -Inherited from: Partial.onPlanetId - ---- - -### onVoyageId - -• `Optional` **onVoyageId**: VoyageId - -Inherited from: Partial.onVoyageId - ---- - -### planetBiome - -• **planetBiome**: Biome - -Overrides: Partial.planetBiome - ---- - -### planetDiscoveredOn - -• `Optional` **planetDiscoveredOn**: LocationId - -Inherited from: Partial.planetDiscoveredOn - ---- - -### rarity - -• **rarity**: ArtifactRarity - -Overrides: Partial.rarity - ---- - -### timeDelayedUpgrade - -• `Optional` **timeDelayedUpgrade**: Upgrade - -Inherited from: Partial.timeDelayedUpgrade - ---- - -### unconfirmedActivateArtifact - -• `Optional` **unconfirmedActivateArtifact**: UnconfirmedActivateArtifact - -Inherited from: Partial.unconfirmedActivateArtifact - ---- - -### unconfirmedDeactivateArtifact - -• `Optional` **unconfirmedDeactivateArtifact**: UnconfirmedDeactivateArtifact - -Inherited from: Partial.unconfirmedDeactivateArtifact - ---- - -### unconfirmedDepositArtifact - -• `Optional` **unconfirmedDepositArtifact**: UnconfirmedDepositArtifact - -Inherited from: Partial.unconfirmedDepositArtifact - ---- - -### unconfirmedMove - -• `Optional` **unconfirmedMove**: UnconfirmedMove - -Inherited from: Partial.unconfirmedMove - ---- - -### unconfirmedWithdrawArtifact - -• `Optional` **unconfirmedWithdrawArtifact**: UnconfirmedWithdrawArtifact - -Inherited from: Partial.unconfirmedWithdrawArtifact - ---- - -### upgrade - -• `Optional` **upgrade**: Upgrade - -Inherited from: Partial.upgrade - ---- - -### wormholeTo - -• `Optional` **wormholeTo**: LocationId - -Inherited from: Partial.wormholeTo diff --git a/docs/interfaces/backend_gamelogic_initialgamestatedownloader.initialgamestate.md b/docs/interfaces/backend_gamelogic_initialgamestatedownloader.initialgamestate.md deleted file mode 100644 index bf18b20d..00000000 --- a/docs/interfaces/backend_gamelogic_initialgamestatedownloader.initialgamestate.md +++ /dev/null @@ -1,127 +0,0 @@ -# Interface: InitialGameState - -[Backend/GameLogic/InitialGameStateDownloader](../modules/backend_gamelogic_initialgamestatedownloader.md).InitialGameState - -## Table of contents - -### Properties - -- [allRevealedCoords](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#allrevealedcoords) -- [allTouchedPlanetIds](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#alltouchedplanetids) -- [arrivals](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#arrivals) -- [artifactsOnVoyages](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#artifactsonvoyages) -- [balance](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#balance) -- [contractConstants](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#contractconstants) -- [gptCreditPriceEther](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#gptcreditpriceether) -- [heldArtifacts](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#heldartifacts) -- [loadedPlanets](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#loadedplanets) -- [myArtifacts](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#myartifacts) -- [myGPTCredits](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#mygptcredits) -- [pendingMoves](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#pendingmoves) -- [planetVoyageIdMap](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#planetvoyageidmap) -- [players](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#players) -- [revealedCoordsMap](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#revealedcoordsmap) -- [touchedAndLocatedPlanets](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#touchedandlocatedplanets) -- [worldRadius](backend_gamelogic_initialgamestatedownloader.initialgamestate.md#worldradius) - -## Properties - -### allRevealedCoords - -• **allRevealedCoords**: RevealedCoords[] - ---- - -### allTouchedPlanetIds - -• **allTouchedPlanetIds**: LocationId[] - ---- - -### arrivals - -• **arrivals**: _Map_ - ---- - -### artifactsOnVoyages - -• **artifactsOnVoyages**: Artifact[] - ---- - -### balance - -• **balance**: _number_ - ---- - -### contractConstants - -• **contractConstants**: [_ContractConstants_](_types_darkforest_api_contractsapitypes.contractconstants.md) - ---- - -### gptCreditPriceEther - -• **gptCreditPriceEther**: _number_ - ---- - -### heldArtifacts - -• **heldArtifacts**: Artifact[][] - ---- - -### loadedPlanets - -• **loadedPlanets**: LocationId[] - ---- - -### myArtifacts - -• **myArtifacts**: Artifact[] - ---- - -### myGPTCredits - -• **myGPTCredits**: _number_ - ---- - -### pendingMoves - -• **pendingMoves**: QueuedArrival[] - ---- - -### planetVoyageIdMap - -• **planetVoyageIdMap**: _Map_ - ---- - -### players - -• **players**: _Map_ - ---- - -### revealedCoordsMap - -• **revealedCoordsMap**: _Map_ - ---- - -### touchedAndLocatedPlanets - -• **touchedAndLocatedPlanets**: _Map_ - ---- - -### worldRadius - -• **worldRadius**: _number_ diff --git a/docs/interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md b/docs/interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md deleted file mode 100644 index 3ceba6f7..00000000 --- a/docs/interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md +++ /dev/null @@ -1,22 +0,0 @@ -# Interface: PlanetRenderInfo - -[Backend/GameLogic/ViewportEntities](../modules/backend_gamelogic_viewportentities.md).PlanetRenderInfo - -## Table of contents - -### Properties - -- [planet](backend_gamelogic_viewportentities.planetrenderinfo.md#planet) -- [radii](backend_gamelogic_viewportentities.planetrenderinfo.md#radii) - -## Properties - -### planet - -• **planet**: LocatablePlanet - ---- - -### radii - -• **radii**: [_Radii_](backend_gamelogic_viewportentities.radii.md) diff --git a/docs/interfaces/backend_gamelogic_viewportentities.radii.md b/docs/interfaces/backend_gamelogic_viewportentities.radii.md deleted file mode 100644 index 9c7f23e5..00000000 --- a/docs/interfaces/backend_gamelogic_viewportentities.radii.md +++ /dev/null @@ -1,22 +0,0 @@ -# Interface: Radii - -[Backend/GameLogic/ViewportEntities](../modules/backend_gamelogic_viewportentities.md).Radii - -## Table of contents - -### Properties - -- [radiusPixels](backend_gamelogic_viewportentities.radii.md#radiuspixels) -- [radiusWorld](backend_gamelogic_viewportentities.radii.md#radiusworld) - -## Properties - -### radiusPixels - -• **radiusPixels**: _number_ - ---- - -### radiusWorld - -• **radiusWorld**: _number_ diff --git a/docs/interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md b/docs/interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md deleted file mode 100644 index ff7ec9d7..00000000 --- a/docs/interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md +++ /dev/null @@ -1,35 +0,0 @@ -# Interface: DiagnosticUpdater - -[Backend/Interfaces/DiagnosticUpdater](../modules/backend_interfaces_diagnosticupdater.md).DiagnosticUpdater - -Various parts of our codebase need to be able to self-report diagnostics. To enable them to do -so, you must provide them with an object that conforms to this interface. Currently, the only -implementation of this function is `GameManager`. However, in the future, we might want to stream -a sample of these diagnostic updates to our backend, so that we can analyze performance, catch -bugs, etc. - -## Table of contents - -### Properties - -- [updateDiagnostics](backend_interfaces_diagnosticupdater.diagnosticupdater.md#updatediagnostics) - -## Properties - -### updateDiagnostics - -• **updateDiagnostics**: (`updateFn`: (`d`: [_Diagnostics_](frontend_panes_diagnosticspane.diagnostics.md)) => _void_) => _void_ - -Updates the diagnostics using the provided updater function. - -#### Type declaration - -▸ (`updateFn`: (`d`: [_Diagnostics_](frontend_panes_diagnosticspane.diagnostics.md)) => _void_): _void_ - -#### Parameters - -| Name | Type | -| :--------- | :------------------------------------------------------------------------------ | -| `updateFn` | (`d`: [_Diagnostics_](frontend_panes_diagnosticspane.diagnostics.md)) => _void_ | - -**Returns:** _void_ diff --git a/docs/interfaces/backend_miner_miningpatterns.miningpattern.md b/docs/interfaces/backend_miner_miningpatterns.miningpattern.md deleted file mode 100644 index 58c0a986..00000000 --- a/docs/interfaces/backend_miner_miningpatterns.miningpattern.md +++ /dev/null @@ -1,46 +0,0 @@ -# Interface: MiningPattern - -[Backend/Miner/MiningPatterns](../modules/backend_miner_miningpatterns.md).MiningPattern - -## Implemented by - -- [_SpiralPattern_](../classes/backend_miner_miningpatterns.spiralpattern.md) -- [_SwissCheesePattern_](../classes/backend_miner_miningpatterns.swisscheesepattern.md) - -## Table of contents - -### Properties - -- [fromChunk](backend_miner_miningpatterns.miningpattern.md#fromchunk) -- [nextChunk](backend_miner_miningpatterns.miningpattern.md#nextchunk) -- [type](backend_miner_miningpatterns.miningpattern.md#type) - -## Properties - -### fromChunk - -• **fromChunk**: [_Rectangle_](_types_global_globaltypes.rectangle.md) - ---- - -### nextChunk - -• **nextChunk**: (`prevLoc`: [_Rectangle_](_types_global_globaltypes.rectangle.md)) => [_Rectangle_](_types_global_globaltypes.rectangle.md) - -#### Type declaration - -▸ (`prevLoc`: [_Rectangle_](_types_global_globaltypes.rectangle.md)): [_Rectangle_](_types_global_globaltypes.rectangle.md) - -#### Parameters - -| Name | Type | -| :-------- | :---------------------------------------------------- | -| `prevLoc` | [_Rectangle_](_types_global_globaltypes.rectangle.md) | - -**Returns:** [_Rectangle_](_types_global_globaltypes.rectangle.md) - ---- - -### type - -• **type**: [_MiningPatternType_](../enums/backend_miner_miningpatterns.miningpatterntype.md) diff --git a/docs/interfaces/backend_network_txexecutor.pendingtransaction.md b/docs/interfaces/backend_network_txexecutor.pendingtransaction.md deleted file mode 100644 index f3e75e2b..00000000 --- a/docs/interfaces/backend_network_txexecutor.pendingtransaction.md +++ /dev/null @@ -1,22 +0,0 @@ -# Interface: PendingTransaction - -[Backend/Network/TxExecutor](../modules/backend_network_txexecutor.md).PendingTransaction - -## Table of contents - -### Properties - -- [confirmed](backend_network_txexecutor.pendingtransaction.md#confirmed) -- [submitted](backend_network_txexecutor.pendingtransaction.md#submitted) - -## Properties - -### confirmed - -• **confirmed**: _Promise_ - ---- - -### submitted - -• **submitted**: _Promise_ diff --git a/docs/interfaces/backend_network_txexecutor.queuedtxrequest.md b/docs/interfaces/backend_network_txexecutor.queuedtxrequest.md deleted file mode 100644 index 7f85dec1..00000000 --- a/docs/interfaces/backend_network_txexecutor.queuedtxrequest.md +++ /dev/null @@ -1,119 +0,0 @@ -# Interface: QueuedTxRequest - -[Backend/Network/TxExecutor](../modules/backend_network_txexecutor.md).QueuedTxRequest - -## Table of contents - -### Properties - -- [actionId](backend_network_txexecutor.queuedtxrequest.md#actionid) -- [args](backend_network_txexecutor.queuedtxrequest.md#args) -- [contract](backend_network_txexecutor.queuedtxrequest.md#contract) -- [onReceiptError](backend_network_txexecutor.queuedtxrequest.md#onreceipterror) -- [onSubmissionError](backend_network_txexecutor.queuedtxrequest.md#onsubmissionerror) -- [onTransactionReceipt](backend_network_txexecutor.queuedtxrequest.md#ontransactionreceipt) -- [onTransactionResponse](backend_network_txexecutor.queuedtxrequest.md#ontransactionresponse) -- [overrides](backend_network_txexecutor.queuedtxrequest.md#overrides) -- [type](backend_network_txexecutor.queuedtxrequest.md#type) - -## Properties - -### actionId - -• **actionId**: _string_ - ---- - -### args - -• **args**: _unknown_[] - ---- - -### contract - -• **contract**: _Contract_ - ---- - -### onReceiptError - -• **onReceiptError**: (`e`: Error) => _void_ - -#### Type declaration - -▸ (`e`: Error): _void_ - -#### Parameters - -| Name | Type | -| :--- | :---- | -| `e` | Error | - -**Returns:** _void_ - ---- - -### onSubmissionError - -• **onSubmissionError**: (`e`: Error) => _void_ - -#### Type declaration - -▸ (`e`: Error): _void_ - -#### Parameters - -| Name | Type | -| :--- | :---- | -| `e` | Error | - -**Returns:** _void_ - ---- - -### onTransactionReceipt - -• **onTransactionReceipt**: (`e`: TransactionReceipt) => _void_ - -#### Type declaration - -▸ (`e`: TransactionReceipt): _void_ - -#### Parameters - -| Name | Type | -| :--- | :----------------- | -| `e` | TransactionReceipt | - -**Returns:** _void_ - ---- - -### onTransactionResponse - -• **onTransactionResponse**: (`e`: TransactionResponse) => _void_ - -#### Type declaration - -▸ (`e`: TransactionResponse): _void_ - -#### Parameters - -| Name | Type | -| :--- | :------------------ | -| `e` | TransactionResponse | - -**Returns:** _void_ - ---- - -### overrides - -• **overrides**: TransactionRequest - ---- - -### type - -• **type**: EthTxType diff --git a/docs/interfaces/backend_plugins_embeddedpluginloader.embeddedplugin.md b/docs/interfaces/backend_plugins_embeddedpluginloader.embeddedplugin.md deleted file mode 100644 index 7664ae5d..00000000 --- a/docs/interfaces/backend_plugins_embeddedpluginloader.embeddedplugin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Interface: EmbeddedPlugin - -[Backend/Plugins/EmbeddedPluginLoader](../modules/backend_plugins_embeddedpluginloader.md).EmbeddedPlugin - -This interface represents an embedded plugin, which is stored in `embedded_plugins/`. - -## Table of contents - -### Properties - -- [code](backend_plugins_embeddedpluginloader.embeddedplugin.md#code) -- [id](backend_plugins_embeddedpluginloader.embeddedplugin.md#id) -- [name](backend_plugins_embeddedpluginloader.embeddedplugin.md#name) - -## Properties - -### code - -• **code**: _string_ - ---- - -### id - -• **id**: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) - ---- - -### name - -• **name**: _string_ diff --git a/docs/interfaces/backend_plugins_pluginprocess.pluginprocess.md b/docs/interfaces/backend_plugins_pluginprocess.pluginprocess.md deleted file mode 100644 index 4b7ddd73..00000000 --- a/docs/interfaces/backend_plugins_pluginprocess.pluginprocess.md +++ /dev/null @@ -1,84 +0,0 @@ -# Interface: PluginProcess - -[Backend/Plugins/PluginProcess](../modules/backend_plugins_pluginprocess.md).PluginProcess - -All plugins must conform to this interface. Provides facilities for -displaying an interactive UI, as well as references to game state, -which are set externally. - -## Table of contents - -### Constructors - -- [constructor](backend_plugins_pluginprocess.pluginprocess.md#constructor) - -### Properties - -- [destroy](backend_plugins_pluginprocess.pluginprocess.md#destroy) -- [draw](backend_plugins_pluginprocess.pluginprocess.md#draw) -- [render](backend_plugins_pluginprocess.pluginprocess.md#render) - -## Constructors - -### constructor - -\+ **new PluginProcess**(): [_PluginProcess_](backend_plugins_pluginprocess.pluginprocess.md) - -**Returns:** [_PluginProcess_](backend_plugins_pluginprocess.pluginprocess.md) - -## Properties - -### destroy - -• `Optional` **destroy**: () => _void_ - -Called when the plugin is unloaded. Plugins unload whenever the -plugin is edited (modified and saved, or deleted). - -#### Type declaration - -▸ (): _void_ - -**Returns:** _void_ - ---- - -### draw - -• `Optional` **draw**: (`ctx`: CanvasRenderingContext2D) => _void_ - -If present, called at the same framerate the the game is running at, -and allows you to draw on top of the game UI. - -#### Type declaration - -▸ (`ctx`: CanvasRenderingContext2D): _void_ - -#### Parameters - -| Name | Type | -| :---- | :----------------------- | -| `ctx` | CanvasRenderingContext2D | - -**Returns:** _void_ - ---- - -### render - -• `Optional` **render**: (`into`: HTMLDivElement) => _void_ - -If present, called once when the user clicks 'run' in the plugin -manager modal. - -#### Type declaration - -▸ (`into`: HTMLDivElement): _void_ - -#### Parameters - -| Name | Type | -| :----- | :------------- | -| `into` | HTMLDivElement | - -**Returns:** _void_ diff --git a/docs/interfaces/backend_plugins_serializedplugin.serializedplugin.md b/docs/interfaces/backend_plugins_serializedplugin.serializedplugin.md deleted file mode 100644 index 4b2c2940..00000000 --- a/docs/interfaces/backend_plugins_serializedplugin.serializedplugin.md +++ /dev/null @@ -1,48 +0,0 @@ -# Interface: SerializedPlugin - -[Backend/Plugins/SerializedPlugin](../modules/backend_plugins_serializedplugin.md).SerializedPlugin - -Represents a plugin that the user has added to their game. Used -internally for storing plugins. Not used for evaluating plugins! - -## Table of contents - -### Properties - -- [code](backend_plugins_serializedplugin.serializedplugin.md#code) -- [id](backend_plugins_serializedplugin.serializedplugin.md#id) -- [lastEdited](backend_plugins_serializedplugin.serializedplugin.md#lastedited) -- [name](backend_plugins_serializedplugin.serializedplugin.md#name) - -## Properties - -### code - -• **code**: _string_ - -This code is a javascript object that complies with the -[PluginProcess](backend_plugins_pluginprocess.pluginprocess.md) interface. - ---- - -### id - -• **id**: [_PluginId_](../modules/backend_plugins_serializedplugin.md#pluginid) - -Unique ID, assigned at the time the plugin is first saved. - ---- - -### lastEdited - -• **lastEdited**: _number_ - -{@code new Date.getTime()} at the point that this plugin was saved - ---- - -### name - -• **name**: _string_ - -Shown in the list of plugins. diff --git a/docs/interfaces/backend_utils_coordinates.canvascoords.md b/docs/interfaces/backend_utils_coordinates.canvascoords.md deleted file mode 100644 index bfcd8741..00000000 --- a/docs/interfaces/backend_utils_coordinates.canvascoords.md +++ /dev/null @@ -1,22 +0,0 @@ -# Interface: CanvasCoords - -[Backend/Utils/Coordinates](../modules/backend_utils_coordinates.md).CanvasCoords - -## Table of contents - -### Properties - -- [x](backend_utils_coordinates.canvascoords.md#x) -- [y](backend_utils_coordinates.canvascoords.md#y) - -## Properties - -### x - -• **x**: _number_ - ---- - -### y - -• **y**: _number_ diff --git a/docs/interfaces/backend_utils_utilstypes.planetcosmeticinfo.md b/docs/interfaces/backend_utils_utilstypes.planetcosmeticinfo.md deleted file mode 100644 index 9c9d4791..00000000 --- a/docs/interfaces/backend_utils_utilstypes.planetcosmeticinfo.md +++ /dev/null @@ -1,155 +0,0 @@ -# Interface: PlanetCosmeticInfo - -[Backend/Utils/UtilsTypes](../modules/backend_utils_utilstypes.md).PlanetCosmeticInfo - -## Table of contents - -### Properties - -- [asteroidHsl](backend_utils_utilstypes.planetcosmeticinfo.md#asteroidhsl) -- [backgroundColor](backend_utils_utilstypes.planetcosmeticinfo.md#backgroundcolor) -- [baseColor](backend_utils_utilstypes.planetcosmeticinfo.md#basecolor) -- [baseColor2](backend_utils_utilstypes.planetcosmeticinfo.md#basecolor2) -- [baseColor3](backend_utils_utilstypes.planetcosmeticinfo.md#basecolor3) -- [baseHue](backend_utils_utilstypes.planetcosmeticinfo.md#basehue) -- [baseStr](backend_utils_utilstypes.planetcosmeticinfo.md#basestr) -- [beachRgb](backend_utils_utilstypes.planetcosmeticinfo.md#beachrgb) -- [bgStr](backend_utils_utilstypes.planetcosmeticinfo.md#bgstr) -- [hatType](backend_utils_utilstypes.planetcosmeticinfo.md#hattype) -- [landRgb](backend_utils_utilstypes.planetcosmeticinfo.md#landrgb) -- [mtnColor](backend_utils_utilstypes.planetcosmeticinfo.md#mtncolor) -- [mtnColor2](backend_utils_utilstypes.planetcosmeticinfo.md#mtncolor2) -- [mtnColor3](backend_utils_utilstypes.planetcosmeticinfo.md#mtncolor3) -- [oceanRgb](backend_utils_utilstypes.planetcosmeticinfo.md#oceanrgb) -- [previewColor](backend_utils_utilstypes.planetcosmeticinfo.md#previewcolor) -- [ruins](backend_utils_utilstypes.planetcosmeticinfo.md#ruins) -- [seed](backend_utils_utilstypes.planetcosmeticinfo.md#seed) -- [spacetime1](backend_utils_utilstypes.planetcosmeticinfo.md#spacetime1) -- [spacetime2](backend_utils_utilstypes.planetcosmeticinfo.md#spacetime2) -- [spacetime3](backend_utils_utilstypes.planetcosmeticinfo.md#spacetime3) - -## Properties - -### asteroidHsl - -• **asteroidHsl**: [_HSLVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#hslvec) - ---- - -### backgroundColor - -• **backgroundColor**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### baseColor - -• **baseColor**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### baseColor2 - -• **baseColor2**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### baseColor3 - -• **baseColor3**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### baseHue - -• **baseHue**: _number_ - ---- - -### baseStr - -• **baseStr**: _string_ - ---- - -### beachRgb - -• **beachRgb**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### bgStr - -• **bgStr**: _string_ - ---- - -### hatType - -• **hatType**: [_HatType_](../enums/frontend_utils_hats.hattype.md) - ---- - -### landRgb - -• **landRgb**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### mtnColor - -• **mtnColor**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### mtnColor2 - -• **mtnColor2**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### mtnColor3 - -• **mtnColor3**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### oceanRgb - -• **oceanRgb**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### previewColor - -• **previewColor**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### ruins - -• `Optional` **ruins**: _Record_ - ---- - -### seed - -• **seed**: _number_ - ---- - -### spacetime1 - -• **spacetime1**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### spacetime2 - -• **spacetime2**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) - ---- - -### spacetime3 - -• **spacetime3**: [_RGBVec_](../modules/frontend_renderers_gamerenderer_enginetypes.md#rgbvec) diff --git a/docs/interfaces/frontend_components_btn.btnprops.md b/docs/interfaces/frontend_components_btn.btnprops.md deleted file mode 100644 index b1578cb7..00000000 --- a/docs/interfaces/frontend_components_btn.btnprops.md +++ /dev/null @@ -1,50 +0,0 @@ -# Interface: BtnProps - -[Frontend/Components/Btn](../modules/frontend_components_btn.md).BtnProps - -## Table of contents - -### Properties - -- [borderColor](frontend_components_btn.btnprops.md#bordercolor) -- [color](frontend_components_btn.btnprops.md#color) -- [disabled](frontend_components_btn.btnprops.md#disabled) -- [noBorder](frontend_components_btn.btnprops.md#noborder) -- [textColor](frontend_components_btn.btnprops.md#textcolor) -- [wide](frontend_components_btn.btnprops.md#wide) - -## Properties - -### borderColor - -• `Optional` **borderColor**: _string_ - ---- - -### color - -• `Optional` **color**: _string_ - ---- - -### disabled - -• `Optional` **disabled**: _boolean_ - ---- - -### noBorder - -• `Optional` **noBorder**: _boolean_ - ---- - -### textColor - -• `Optional` **textColor**: _string_ - ---- - -### wide - -• `Optional` **wide**: _boolean_ diff --git a/docs/interfaces/frontend_components_textloadingbar.loadingbarhandle.md b/docs/interfaces/frontend_components_textloadingbar.loadingbarhandle.md deleted file mode 100644 index e1d7b48f..00000000 --- a/docs/interfaces/frontend_components_textloadingbar.loadingbarhandle.md +++ /dev/null @@ -1,27 +0,0 @@ -# Interface: LoadingBarHandle - -[Frontend/Components/TextLoadingBar](../modules/frontend_components_textloadingbar.md).LoadingBarHandle - -## Table of contents - -### Properties - -- [setFractionCompleted](frontend_components_textloadingbar.loadingbarhandle.md#setfractioncompleted) - -## Properties - -### setFractionCompleted - -• **setFractionCompleted**: (`fractionCompleted`: _number_) => _void_ - -#### Type declaration - -▸ (`fractionCompleted`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :------------------ | :------- | -| `fractionCompleted` | _number_ | - -**Returns:** _void_ diff --git a/docs/interfaces/frontend_panes_diagnosticspane.diagnostics.md b/docs/interfaces/frontend_panes_diagnosticspane.diagnostics.md deleted file mode 100644 index 6e94266a..00000000 --- a/docs/interfaces/frontend_panes_diagnosticspane.diagnostics.md +++ /dev/null @@ -1,78 +0,0 @@ -# Interface: Diagnostics - -[Frontend/Panes/DiagnosticsPane](../modules/frontend_panes_diagnosticspane.md).Diagnostics - -## Table of contents - -### Properties - -- [callsInQueue](frontend_panes_diagnosticspane.diagnostics.md#callsinqueue) -- [chunkUpdates](frontend_panes_diagnosticspane.diagnostics.md#chunkupdates) -- [fps](frontend_panes_diagnosticspane.diagnostics.md#fps) -- [totalCalls](frontend_panes_diagnosticspane.diagnostics.md#totalcalls) -- [totalChunks](frontend_panes_diagnosticspane.diagnostics.md#totalchunks) -- [totalPlanets](frontend_panes_diagnosticspane.diagnostics.md#totalplanets) -- [totalTransactions](frontend_panes_diagnosticspane.diagnostics.md#totaltransactions) -- [transactionsInQueue](frontend_panes_diagnosticspane.diagnostics.md#transactionsinqueue) -- [visibleChunks](frontend_panes_diagnosticspane.diagnostics.md#visiblechunks) -- [visiblePlanets](frontend_panes_diagnosticspane.diagnostics.md#visibleplanets) - -## Properties - -### callsInQueue - -• **callsInQueue**: _number_ - ---- - -### chunkUpdates - -• **chunkUpdates**: _number_ - ---- - -### fps - -• **fps**: _number_ - ---- - -### totalCalls - -• **totalCalls**: _number_ - ---- - -### totalChunks - -• **totalChunks**: _number_ - ---- - -### totalPlanets - -• **totalPlanets**: _number_ - ---- - -### totalTransactions - -• **totalTransactions**: _number_ - ---- - -### transactionsInQueue - -• **transactionsInQueue**: _number_ - ---- - -### visibleChunks - -• **visibleChunks**: _number_ - ---- - -### visiblePlanets - -• **visiblePlanets**: _number_ diff --git a/docs/interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.attributes.md b/docs/interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.attributes.md deleted file mode 100644 index 627e2c19..00000000 --- a/docs/interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.attributes.md +++ /dev/null @@ -1,7 +0,0 @@ -# Interface: Attributes - -[Frontend/Renderers/GameRenderer/WebGL/WebGLLibTypes](../modules/frontend_renderers_gamerenderer_webgl_webgllibtypes.md).Attributes - -## Indexable - -▪ [k: *string*]: DataType diff --git a/docs/interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.uniforms.md b/docs/interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.uniforms.md deleted file mode 100644 index 8f988704..00000000 --- a/docs/interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.uniforms.md +++ /dev/null @@ -1,7 +0,0 @@ -# Interface: Uniforms - -[Frontend/Renderers/GameRenderer/WebGL/WebGLLibTypes](../modules/frontend_renderers_gamerenderer_webgl_webgllibtypes.md).Uniforms - -## Indexable - -▪ [k: *string*]: DataType diff --git a/docs/interfaces/frontend_views_share.shareprops.md b/docs/interfaces/frontend_views_share.shareprops.md deleted file mode 100644 index 7a315e86..00000000 --- a/docs/interfaces/frontend_views_share.shareprops.md +++ /dev/null @@ -1,54 +0,0 @@ -# Interface: ShareProps - -[Frontend/Views/Share](../modules/frontend_views_share.md).ShareProps - -## Type parameters - -| Name | -| :--- | -| `T` | - -## Table of contents - -### Properties - -- [children](frontend_views_share.shareprops.md#children) -- [load](frontend_views_share.shareprops.md#load) - -## Properties - -### children - -• **children**: (`state`: _undefined_ \| T, `loading`: _boolean_, `error`: _undefined_ \| Error) => ReactNode - -#### Type declaration - -▸ (`state`: _undefined_ \| T, `loading`: _boolean_, `error`: _undefined_ \| Error): ReactNode - -#### Parameters - -| Name | Type | -| :-------- | :------------------- | -| `state` | _undefined_ \| T | -| `loading` | _boolean_ | -| `error` | _undefined_ \| Error | - -**Returns:** ReactNode - ---- - -### load - -• **load**: (`store`: [_default_](../classes/backend_storage_readerdatastore.default.md)) => _Promise_ - -#### Type declaration - -▸ (`store`: [_default_](../classes/backend_storage_readerdatastore.default.md)): _Promise_ - -#### Parameters - -| Name | Type | -| :------ | :----------------------------------------------------------------- | -| `store` | [_default_](../classes/backend_storage_readerdatastore.default.md) | - -**Returns:** _Promise_ diff --git a/docs/interfaces/frontend_views_terminal.terminalhandle.md b/docs/interfaces/frontend_views_terminal.terminalhandle.md deleted file mode 100644 index 61bdc1bd..00000000 --- a/docs/interfaces/frontend_views_terminal.terminalhandle.md +++ /dev/null @@ -1,251 +0,0 @@ -# Interface: TerminalHandle - -[Frontend/Views/Terminal](../modules/frontend_views_terminal.md).TerminalHandle - -## Table of contents - -### Properties - -- [clear](frontend_views_terminal.terminalhandle.md#clear) -- [focus](frontend_views_terminal.terminalhandle.md#focus) -- [getInput](frontend_views_terminal.terminalhandle.md#getinput) -- [newline](frontend_views_terminal.terminalhandle.md#newline) -- [print](frontend_views_terminal.terminalhandle.md#print) -- [printElement](frontend_views_terminal.terminalhandle.md#printelement) -- [printLink](frontend_views_terminal.terminalhandle.md#printlink) -- [printLoadingBar](frontend_views_terminal.terminalhandle.md#printloadingbar) -- [printLoadingSpinner](frontend_views_terminal.terminalhandle.md#printloadingspinner) -- [printShellLn](frontend_views_terminal.terminalhandle.md#printshellln) -- [println](frontend_views_terminal.terminalhandle.md#println) -- [removeLast](frontend_views_terminal.terminalhandle.md#removelast) -- [setInput](frontend_views_terminal.terminalhandle.md#setinput) -- [setUserInputEnabled](frontend_views_terminal.terminalhandle.md#setuserinputenabled) - -## Properties - -### clear - -• **clear**: () => _void_ - -#### Type declaration - -▸ (): _void_ - -**Returns:** _void_ - ---- - -### focus - -• **focus**: () => _void_ - -#### Type declaration - -▸ (): _void_ - -**Returns:** _void_ - ---- - -### getInput - -• **getInput**: () => _Promise_ - -#### Type declaration - -▸ (): _Promise_ - -**Returns:** _Promise_ - ---- - -### newline - -• **newline**: () => _void_ - -#### Type declaration - -▸ (): _void_ - -**Returns:** _void_ - ---- - -### print - -• **print**: (`str`: _string_, `style?`: [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable), `hoverContents?`: () => _Element_) => _void_ - -#### Type declaration - -▸ (`str`: _string_, `style?`: [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable), `hoverContents?`: () => _Element_): _void_ - -#### Parameters - -| Name | Type | -| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `str` | _string_ | -| `style?` | [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable) | -| `hoverContents?` | () => _Element_ | - -**Returns:** _void_ - ---- - -### printElement - -• **printElement**: (`element`: _ReactElement_ `null` \| _ReactElement_ \| (`props`: _any_) => _Component_\>) => _void_ - -#### Type declaration - -▸ (`element`: _ReactElement_ `null` \| _ReactElement_ \| (`props`: _any_) => _Component_\>): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| `element` | _ReactElement_ `null` \| _ReactElement_ \| (`props`: _any_) => _Component_\> | - -**Returns:** _void_ - ---- - -### printLink - -• **printLink**: (`str`: _string_, `onClick`: () => _void_, `style`: [_TerminalTextStyle_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md)) => _void_ - -#### Type declaration - -▸ (`str`: _string_, `onClick`: () => _void_, `style`: [_TerminalTextStyle_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md)): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :-------------------------------------------------------------------------------- | -| `str` | _string_ | -| `onClick` | () => _void_ | -| `style` | [_TerminalTextStyle_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md) | - -**Returns:** _void_ - ---- - -### printLoadingBar - -• **printLoadingBar**: (`prettyEntityName`: _string_, `ref`: _RefObject_<[_LoadingBarHandle_](frontend_components_textloadingbar.loadingbarhandle.md)\>) => _void_ - -#### Type declaration - -▸ (`prettyEntityName`: _string_, `ref`: _RefObject_<[_LoadingBarHandle_](frontend_components_textloadingbar.loadingbarhandle.md)\>): _void_ - -#### Parameters - -| Name | Type | -| :----------------- | :----------------------------------------------------------------------------------------- | -| `prettyEntityName` | _string_ | -| `ref` | _RefObject_<[_LoadingBarHandle_](frontend_components_textloadingbar.loadingbarhandle.md)\> | - -**Returns:** _void_ - ---- - -### printLoadingSpinner - -• **printLoadingSpinner**: () => _void_ - -#### Type declaration - -▸ (): _void_ - -**Returns:** _void_ - ---- - -### printShellLn - -• **printShellLn**: (`str`: _string_) => _void_ - -#### Type declaration - -▸ (`str`: _string_): _void_ - -#### Parameters - -| Name | Type | -| :---- | :------- | -| `str` | _string_ | - -**Returns:** _void_ - ---- - -### println - -• **println**: (`str`: _string_, `style?`: [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable), `hoverContents?`: () => _Element_) => _void_ - -#### Type declaration - -▸ (`str`: _string_, `style?`: [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable), `hoverContents?`: () => _Element_): _void_ - -#### Parameters - -| Name | Type | -| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `str` | _string_ | -| `style?` | [_Green_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#green) \| [_Sub_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#sub) \| [_White_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#white) \| [_Red_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#red) \| [_Blue_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#blue) \| [_Invisible_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#invisible) \| [_Default_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#default) \| [_Underline_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#underline) \| [_Hoverable_](../enums/frontend_utils_terminaltypes.terminaltextstyle.md#hoverable) | -| `hoverContents?` | () => _Element_ | - -**Returns:** _void_ - ---- - -### removeLast - -• **removeLast**: (`n`: _number_) => _void_ - -#### Type declaration - -▸ (`n`: _number_): _void_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `n` | _number_ | - -**Returns:** _void_ - ---- - -### setInput - -• **setInput**: (`input`: _string_) => _void_ - -#### Type declaration - -▸ (`input`: _string_): _void_ - -#### Parameters - -| Name | Type | -| :------ | :------- | -| `input` | _string_ | - -**Returns:** _void_ - ---- - -### setUserInputEnabled - -• **setUserInputEnabled**: (`enabled`: _boolean_) => _void_ - -#### Type declaration - -▸ (`enabled`: _boolean_): _void_ - -#### Parameters - -| Name | Type | -| :-------- | :-------- | -| `enabled` | _boolean_ | - -**Returns:** _void_ diff --git a/docs/interfaces/frontend_views_terminal.terminalprops.md b/docs/interfaces/frontend_views_terminal.terminalprops.md deleted file mode 100644 index b9a65e91..00000000 --- a/docs/interfaces/frontend_views_terminal.terminalprops.md +++ /dev/null @@ -1,15 +0,0 @@ -# Interface: TerminalProps - -[Frontend/Views/Terminal](../modules/frontend_views_terminal.md).TerminalProps - -## Table of contents - -### Properties - -- [promptCharacter](frontend_views_terminal.terminalprops.md#promptcharacter) - -## Properties - -### promptCharacter - -• **promptCharacter**: _string_ diff --git a/docs/interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md b/docs/interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md new file mode 100644 index 00000000..a9a5ea50 --- /dev/null +++ b/docs/interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md @@ -0,0 +1,33 @@ +# Interface: ChunkStore + +[\_types/darkforest/api/ChunkStoreTypes](../modules/types_darkforest_api_ChunkStoreTypes.md).ChunkStore + +Abstract interface shared between different types of chunk stores. Currently we have one that +writes to IndexedDB, and one that simply throws away the data. + +## Implemented by + +- [`HomePlanetMinerChunkStore`](../classes/Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md) +- [`default`](../classes/Backend_Storage_PersistentChunkStore.default.md) + +## Table of contents + +### Methods + +- [hasMinedChunk](types_darkforest_api_ChunkStoreTypes.ChunkStore.md#hasminedchunk) + +## Methods + +### hasMinedChunk + +▸ **hasMinedChunk**(`chunkFootprint`): `boolean` + +#### Parameters + +| Name | Type | +| :--------------- | :---------- | +| `chunkFootprint` | `Rectangle` | + +#### Returns + +`boolean` diff --git a/docs/interfaces/types_darkforest_api_ChunkStoreTypes.PersistedChunk.md b/docs/interfaces/types_darkforest_api_ChunkStoreTypes.PersistedChunk.md new file mode 100644 index 00000000..d371d0b9 --- /dev/null +++ b/docs/interfaces/types_darkforest_api_ChunkStoreTypes.PersistedChunk.md @@ -0,0 +1,47 @@ +# Interface: PersistedChunk + +[\_types/darkforest/api/ChunkStoreTypes](../modules/types_darkforest_api_ChunkStoreTypes.md).PersistedChunk + +Chunks represent map data in some rectangle. This type represents a chunk when it is at rest in +IndexedDB. The reason for this type's existence is that we want to reduce the amount of data we +store on the user's computer. Shorter names hopefully means less data. + +## Table of contents + +### Properties + +- [l](types_darkforest_api_ChunkStoreTypes.PersistedChunk.md#l) +- [p](types_darkforest_api_ChunkStoreTypes.PersistedChunk.md#p) +- [s](types_darkforest_api_ChunkStoreTypes.PersistedChunk.md#s) +- [x](types_darkforest_api_ChunkStoreTypes.PersistedChunk.md#x) +- [y](types_darkforest_api_ChunkStoreTypes.PersistedChunk.md#y) + +## Properties + +### l + +• **l**: [`PersistedLocation`](types_darkforest_api_ChunkStoreTypes.PersistedLocation.md)[] + +--- + +### p + +• **p**: `number` + +--- + +### s + +• **s**: `number` + +--- + +### x + +• **x**: `number` + +--- + +### y + +• **y**: `number` diff --git a/docs/interfaces/types_darkforest_api_ChunkStoreTypes.PersistedLocation.md b/docs/interfaces/types_darkforest_api_ChunkStoreTypes.PersistedLocation.md new file mode 100644 index 00000000..f9b3554b --- /dev/null +++ b/docs/interfaces/types_darkforest_api_ChunkStoreTypes.PersistedLocation.md @@ -0,0 +1,46 @@ +# Interface: PersistedLocation + +[\_types/darkforest/api/ChunkStoreTypes](../modules/types_darkforest_api_ChunkStoreTypes.md).PersistedLocation + +A location is a point sample of the universe. This type represents that point sample at rest when +it is stored in IndexedDB. + +## Table of contents + +### Properties + +- [b](types_darkforest_api_ChunkStoreTypes.PersistedLocation.md#b) +- [h](types_darkforest_api_ChunkStoreTypes.PersistedLocation.md#h) +- [p](types_darkforest_api_ChunkStoreTypes.PersistedLocation.md#p) +- [x](types_darkforest_api_ChunkStoreTypes.PersistedLocation.md#x) +- [y](types_darkforest_api_ChunkStoreTypes.PersistedLocation.md#y) + +## Properties + +### b + +• **b**: `number` + +--- + +### h + +• **h**: `LocationId` + +--- + +### p + +• **p**: `number` + +--- + +### x + +• **x**: `number` + +--- + +### y + +• **y**: `number` diff --git a/docs/interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md b/docs/interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md new file mode 100644 index 00000000..4b1cd125 --- /dev/null +++ b/docs/interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md @@ -0,0 +1,422 @@ +# Interface: ContractConstants + +[\_types/darkforest/api/ContractsAPITypes](../modules/types_darkforest_api_ContractsAPITypes.md).ContractConstants + +## Table of contents + +### Properties + +- [ABANDON_RANGE_CHANGE_PERCENT](types_darkforest_api_ContractsAPITypes.ContractConstants.md#abandon_range_change_percent) +- [ABANDON_SPEED_CHANGE_PERCENT](types_darkforest_api_ContractsAPITypes.ContractConstants.md#abandon_speed_change_percent) +- [ADMIN_CAN_ADD_PLANETS](types_darkforest_api_ContractsAPITypes.ContractConstants.md#admin_can_add_planets) +- [ARTIFACT_POINT_VALUES](types_darkforest_api_ContractsAPITypes.ContractConstants.md#artifact_point_values) +- [BIOMEBASE_KEY](types_darkforest_api_ContractsAPITypes.ContractConstants.md#biomebase_key) +- [BIOME_THRESHOLD_1](types_darkforest_api_ContractsAPITypes.ContractConstants.md#biome_threshold_1) +- [BIOME_THRESHOLD_2](types_darkforest_api_ContractsAPITypes.ContractConstants.md#biome_threshold_2) +- [CAPTURE_ZONES_ENABLED](types_darkforest_api_ContractsAPITypes.ContractConstants.md#capture_zones_enabled) +- [CAPTURE_ZONES_PER_5000_WORLD_RADIUS](types_darkforest_api_ContractsAPITypes.ContractConstants.md#capture_zones_per_5000_world_radius) +- [CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL](types_darkforest_api_ContractsAPITypes.ContractConstants.md#capture_zone_change_block_interval) +- [CAPTURE_ZONE_COUNT](types_darkforest_api_ContractsAPITypes.ContractConstants.md#capture_zone_count) +- [CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED](types_darkforest_api_ContractsAPITypes.ContractConstants.md#capture_zone_hold_blocks_required) +- [CAPTURE_ZONE_PLANET_LEVEL_SCORE](types_darkforest_api_ContractsAPITypes.ContractConstants.md#capture_zone_planet_level_score) +- [CAPTURE_ZONE_RADIUS](types_darkforest_api_ContractsAPITypes.ContractConstants.md#capture_zone_radius) +- [CLAIM_PLANET_COOLDOWN](types_darkforest_api_ContractsAPITypes.ContractConstants.md#claim_planet_cooldown) +- [DISABLE_ZK_CHECKS](types_darkforest_api_ContractsAPITypes.ContractConstants.md#disable_zk_checks) +- [GAME_START_BLOCK](types_darkforest_api_ContractsAPITypes.ContractConstants.md#game_start_block) +- [INIT_PERLIN_MAX](types_darkforest_api_ContractsAPITypes.ContractConstants.md#init_perlin_max) +- [INIT_PERLIN_MIN](types_darkforest_api_ContractsAPITypes.ContractConstants.md#init_perlin_min) +- [LOCATION_REVEAL_COOLDOWN](types_darkforest_api_ContractsAPITypes.ContractConstants.md#location_reveal_cooldown) +- [MAX_NATURAL_PLANET_LEVEL](types_darkforest_api_ContractsAPITypes.ContractConstants.md#max_natural_planet_level) +- [PERLIN_LENGTH_SCALE](types_darkforest_api_ContractsAPITypes.ContractConstants.md#perlin_length_scale) +- [PERLIN_MIRROR_X](types_darkforest_api_ContractsAPITypes.ContractConstants.md#perlin_mirror_x) +- [PERLIN_MIRROR_Y](types_darkforest_api_ContractsAPITypes.ContractConstants.md#perlin_mirror_y) +- [PERLIN_THRESHOLD_1](types_darkforest_api_ContractsAPITypes.ContractConstants.md#perlin_threshold_1) +- [PERLIN_THRESHOLD_2](types_darkforest_api_ContractsAPITypes.ContractConstants.md#perlin_threshold_2) +- [PERLIN_THRESHOLD_3](types_darkforest_api_ContractsAPITypes.ContractConstants.md#perlin_threshold_3) +- [PHOTOID_ACTIVATION_DELAY](types_darkforest_api_ContractsAPITypes.ContractConstants.md#photoid_activation_delay) +- [PLANETHASH_KEY](types_darkforest_api_ContractsAPITypes.ContractConstants.md#planethash_key) +- [PLANET_LEVEL_JUNK](types_darkforest_api_ContractsAPITypes.ContractConstants.md#planet_level_junk) +- [PLANET_LEVEL_THRESHOLDS](types_darkforest_api_ContractsAPITypes.ContractConstants.md#planet_level_thresholds) +- [PLANET_RARITY](types_darkforest_api_ContractsAPITypes.ContractConstants.md#planet_rarity) +- [PLANET_TRANSFER_ENABLED](types_darkforest_api_ContractsAPITypes.ContractConstants.md#planet_transfer_enabled) +- [PLANET_TYPE_WEIGHTS](types_darkforest_api_ContractsAPITypes.ContractConstants.md#planet_type_weights) +- [SILVER_SCORE_VALUE](types_darkforest_api_ContractsAPITypes.ContractConstants.md#silver_score_value) +- [SPACETYPE_KEY](types_darkforest_api_ContractsAPITypes.ContractConstants.md#spacetype_key) +- [SPACE_JUNK_ENABLED](types_darkforest_api_ContractsAPITypes.ContractConstants.md#space_junk_enabled) +- [SPACE_JUNK_LIMIT](types_darkforest_api_ContractsAPITypes.ContractConstants.md#space_junk_limit) +- [SPAWN_RIM_AREA](types_darkforest_api_ContractsAPITypes.ContractConstants.md#spawn_rim_area) +- [TIME_FACTOR_HUNDREDTHS](types_darkforest_api_ContractsAPITypes.ContractConstants.md#time_factor_hundredths) +- [TOKEN_MINT_END_SECONDS](types_darkforest_api_ContractsAPITypes.ContractConstants.md#token_mint_end_seconds) +- [WORLD_RADIUS_LOCKED](types_darkforest_api_ContractsAPITypes.ContractConstants.md#world_radius_locked) +- [WORLD_RADIUS_MIN](types_darkforest_api_ContractsAPITypes.ContractConstants.md#world_radius_min) +- [adminAddress](types_darkforest_api_ContractsAPITypes.ContractConstants.md#adminaddress) +- [defaultBarbarianPercentage](types_darkforest_api_ContractsAPITypes.ContractConstants.md#defaultbarbarianpercentage) +- [defaultDefense](types_darkforest_api_ContractsAPITypes.ContractConstants.md#defaultdefense) +- [defaultPopulationCap](types_darkforest_api_ContractsAPITypes.ContractConstants.md#defaultpopulationcap) +- [defaultPopulationGrowth](types_darkforest_api_ContractsAPITypes.ContractConstants.md#defaultpopulationgrowth) +- [defaultRange](types_darkforest_api_ContractsAPITypes.ContractConstants.md#defaultrange) +- [defaultSilverCap](types_darkforest_api_ContractsAPITypes.ContractConstants.md#defaultsilvercap) +- [defaultSilverGrowth](types_darkforest_api_ContractsAPITypes.ContractConstants.md#defaultsilvergrowth) +- [defaultSpeed](types_darkforest_api_ContractsAPITypes.ContractConstants.md#defaultspeed) +- [planetCumulativeRarities](types_darkforest_api_ContractsAPITypes.ContractConstants.md#planetcumulativerarities) +- [planetLevelThresholds](types_darkforest_api_ContractsAPITypes.ContractConstants.md#planetlevelthresholds) +- [upgrades](types_darkforest_api_ContractsAPITypes.ContractConstants.md#upgrades) + +## Properties + +### ABANDON_RANGE_CHANGE_PERCENT + +• **ABANDON_RANGE_CHANGE_PERCENT**: `number` + +The range boost a movement receives when abandoning +a planet. + +--- + +### ABANDON_SPEED_CHANGE_PERCENT + +• **ABANDON_SPEED_CHANGE_PERCENT**: `number` + +The speed boost a movement receives when abandoning +a planet. + +--- + +### ADMIN_CAN_ADD_PLANETS + +• **ADMIN_CAN_ADD_PLANETS**: `boolean` + +--- + +### ARTIFACT_POINT_VALUES + +• **ARTIFACT_POINT_VALUES**: `ArtifactPointValues` + +--- + +### BIOMEBASE_KEY + +• **BIOMEBASE_KEY**: `number` + +--- + +### BIOME_THRESHOLD_1 + +• **BIOME_THRESHOLD_1**: `number` + +--- + +### BIOME_THRESHOLD_2 + +• **BIOME_THRESHOLD_2**: `number` + +--- + +### CAPTURE_ZONES_ENABLED + +• **CAPTURE_ZONES_ENABLED**: `boolean` + +--- + +### CAPTURE_ZONES_PER_5000_WORLD_RADIUS + +• **CAPTURE_ZONES_PER_5000_WORLD_RADIUS**: `number` + +--- + +### CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL + +• **CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL**: `number` + +--- + +### CAPTURE_ZONE_COUNT + +• **CAPTURE_ZONE_COUNT**: `number` + +--- + +### CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED + +• **CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED**: `number` + +--- + +### CAPTURE_ZONE_PLANET_LEVEL_SCORE + +• **CAPTURE_ZONE_PLANET_LEVEL_SCORE**: [`number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`] + +--- + +### CAPTURE_ZONE_RADIUS + +• **CAPTURE_ZONE_RADIUS**: `number` + +--- + +### CLAIM_PLANET_COOLDOWN + +• `Optional` **CLAIM_PLANET_COOLDOWN**: `number` + +--- + +### DISABLE_ZK_CHECKS + +• **DISABLE_ZK_CHECKS**: `boolean` + +--- + +### GAME_START_BLOCK + +• **GAME_START_BLOCK**: `number` + +--- + +### INIT_PERLIN_MAX + +• **INIT_PERLIN_MAX**: `number` + +--- + +### INIT_PERLIN_MIN + +• **INIT_PERLIN_MIN**: `number` + +--- + +### LOCATION_REVEAL_COOLDOWN + +• **LOCATION_REVEAL_COOLDOWN**: `number` + +--- + +### MAX_NATURAL_PLANET_LEVEL + +• **MAX_NATURAL_PLANET_LEVEL**: `number` + +--- + +### PERLIN_LENGTH_SCALE + +• **PERLIN_LENGTH_SCALE**: `number` + +--- + +### PERLIN_MIRROR_X + +• **PERLIN_MIRROR_X**: `boolean` + +--- + +### PERLIN_MIRROR_Y + +• **PERLIN_MIRROR_Y**: `boolean` + +--- + +### PERLIN_THRESHOLD_1 + +• **PERLIN_THRESHOLD_1**: `number` + +The perlin value at each coordinate determines the space type. There are four space +types, which means there are four ranges on the number line that correspond to +each space type. This function returns the boundary values between each of these +four ranges: `PERLIN_THRESHOLD_1`, `PERLIN_THRESHOLD_2`, `PERLIN_THRESHOLD_3`. + +--- + +### PERLIN_THRESHOLD_2 + +• **PERLIN_THRESHOLD_2**: `number` + +--- + +### PERLIN_THRESHOLD_3 + +• **PERLIN_THRESHOLD_3**: `number` + +--- + +### PHOTOID_ACTIVATION_DELAY + +• **PHOTOID_ACTIVATION_DELAY**: `number` + +--- + +### PLANETHASH_KEY + +• **PLANETHASH_KEY**: `number` + +--- + +### PLANET_LEVEL_JUNK + +• **PLANET_LEVEL_JUNK**: [`number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`] + +The amount of junk that each level of planet +gives the player when moving to it for the +first time. + +--- + +### PLANET_LEVEL_THRESHOLDS + +• **PLANET_LEVEL_THRESHOLDS**: [`number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`, `number`] + +The chance for a planet to be a specific level. +Each index corresponds to a planet level (index 5 is level 5 planet). +The lower the number the lower the chance. +Note: This does not control if a planet spawns or not, just the level +when it spawns. + +--- + +### PLANET_RARITY + +• **PLANET_RARITY**: `number` + +--- + +### PLANET_TRANSFER_ENABLED + +• **PLANET_TRANSFER_ENABLED**: `boolean` + +--- + +### PLANET_TYPE_WEIGHTS + +• **PLANET_TYPE_WEIGHTS**: [`PlanetTypeWeightsBySpaceType`](../modules/types_darkforest_api_ContractsAPITypes.md#planettypeweightsbyspacetype) + +--- + +### SILVER_SCORE_VALUE + +• **SILVER_SCORE_VALUE**: `number` + +How much score silver gives when withdrawing. +Expressed as a percentage integer. +(100 is 100%) + +--- + +### SPACETYPE_KEY + +• **SPACETYPE_KEY**: `number` + +--- + +### SPACE_JUNK_ENABLED + +• **SPACE_JUNK_ENABLED**: `boolean` + +--- + +### SPACE_JUNK_LIMIT + +• **SPACE_JUNK_LIMIT**: `number` + +Total amount of space junk a player can take on. +This can be overridden at runtime by updating +this value for a specific player in storage. + +--- + +### SPAWN_RIM_AREA + +• **SPAWN_RIM_AREA**: `number` + +--- + +### TIME_FACTOR_HUNDREDTHS + +• **TIME_FACTOR_HUNDREDTHS**: `number` + +--- + +### TOKEN_MINT_END_SECONDS + +• **TOKEN_MINT_END_SECONDS**: `number` + +--- + +### WORLD_RADIUS_LOCKED + +• **WORLD_RADIUS_LOCKED**: `boolean` + +--- + +### WORLD_RADIUS_MIN + +• **WORLD_RADIUS_MIN**: `number` + +--- + +### adminAddress + +• **adminAddress**: `EthAddress` + +--- + +### defaultBarbarianPercentage + +• **defaultBarbarianPercentage**: `number`[] + +--- + +### defaultDefense + +• **defaultDefense**: `number`[] + +--- + +### defaultPopulationCap + +• **defaultPopulationCap**: `number`[] + +--- + +### defaultPopulationGrowth + +• **defaultPopulationGrowth**: `number`[] + +--- + +### defaultRange + +• **defaultRange**: `number`[] + +--- + +### defaultSilverCap + +• **defaultSilverCap**: `number`[] + +--- + +### defaultSilverGrowth + +• **defaultSilverGrowth**: `number`[] + +--- + +### defaultSpeed + +• **defaultSpeed**: `number`[] + +--- + +### planetCumulativeRarities + +• **planetCumulativeRarities**: `number`[] + +--- + +### planetLevelThresholds + +• **planetLevelThresholds**: `number`[] + +--- + +### upgrades + +• **upgrades**: `UpgradeBranches` diff --git a/docs/interfaces/types_global_GlobalTypes.ClaimCountdownInfo.md b/docs/interfaces/types_global_GlobalTypes.ClaimCountdownInfo.md new file mode 100644 index 00000000..9e8a8366 --- /dev/null +++ b/docs/interfaces/types_global_GlobalTypes.ClaimCountdownInfo.md @@ -0,0 +1,29 @@ +# Interface: ClaimCountdownInfo + +[\_types/global/GlobalTypes](../modules/types_global_GlobalTypes.md).ClaimCountdownInfo + +## Table of contents + +### Properties + +- [claimCooldownTime](types_global_GlobalTypes.ClaimCountdownInfo.md#claimcooldowntime) +- [currentlyClaiming](types_global_GlobalTypes.ClaimCountdownInfo.md#currentlyclaiming) +- [myLastClaimTimestamp](types_global_GlobalTypes.ClaimCountdownInfo.md#mylastclaimtimestamp) + +## Properties + +### claimCooldownTime + +• **claimCooldownTime**: `number` + +--- + +### currentlyClaiming + +• **currentlyClaiming**: `boolean` + +--- + +### myLastClaimTimestamp + +• `Optional` **myLastClaimTimestamp**: `number` diff --git a/docs/interfaces/types_global_GlobalTypes.MinerWorkerMessage.md b/docs/interfaces/types_global_GlobalTypes.MinerWorkerMessage.md new file mode 100644 index 00000000..249123b9 --- /dev/null +++ b/docs/interfaces/types_global_GlobalTypes.MinerWorkerMessage.md @@ -0,0 +1,92 @@ +# Interface: MinerWorkerMessage + +[\_types/global/GlobalTypes](../modules/types_global_GlobalTypes.md).MinerWorkerMessage + +## Table of contents + +### Properties + +- [biomebaseKey](types_global_GlobalTypes.MinerWorkerMessage.md#biomebasekey) +- [chunkFootprint](types_global_GlobalTypes.MinerWorkerMessage.md#chunkfootprint) +- [jobId](types_global_GlobalTypes.MinerWorkerMessage.md#jobid) +- [perlinLengthScale](types_global_GlobalTypes.MinerWorkerMessage.md#perlinlengthscale) +- [perlinMirrorX](types_global_GlobalTypes.MinerWorkerMessage.md#perlinmirrorx) +- [perlinMirrorY](types_global_GlobalTypes.MinerWorkerMessage.md#perlinmirrory) +- [planetHashKey](types_global_GlobalTypes.MinerWorkerMessage.md#planethashkey) +- [planetRarity](types_global_GlobalTypes.MinerWorkerMessage.md#planetrarity) +- [spaceTypeKey](types_global_GlobalTypes.MinerWorkerMessage.md#spacetypekey) +- [totalWorkers](types_global_GlobalTypes.MinerWorkerMessage.md#totalworkers) +- [useMockHash](types_global_GlobalTypes.MinerWorkerMessage.md#usemockhash) +- [workerIndex](types_global_GlobalTypes.MinerWorkerMessage.md#workerindex) + +## Properties + +### biomebaseKey + +• **biomebaseKey**: `number` + +--- + +### chunkFootprint + +• **chunkFootprint**: `Rectangle` + +--- + +### jobId + +• **jobId**: `number` + +--- + +### perlinLengthScale + +• **perlinLengthScale**: `number` + +--- + +### perlinMirrorX + +• **perlinMirrorX**: `boolean` + +--- + +### perlinMirrorY + +• **perlinMirrorY**: `boolean` + +--- + +### planetHashKey + +• **planetHashKey**: `number` + +--- + +### planetRarity + +• **planetRarity**: `number` + +--- + +### spaceTypeKey + +• **spaceTypeKey**: `number` + +--- + +### totalWorkers + +• **totalWorkers**: `number` + +--- + +### useMockHash + +• **useMockHash**: `boolean` + +--- + +### workerIndex + +• **workerIndex**: `number` diff --git a/docs/interfaces/types_global_GlobalTypes.RevealCountdownInfo.md b/docs/interfaces/types_global_GlobalTypes.RevealCountdownInfo.md new file mode 100644 index 00000000..c858293e --- /dev/null +++ b/docs/interfaces/types_global_GlobalTypes.RevealCountdownInfo.md @@ -0,0 +1,29 @@ +# Interface: RevealCountdownInfo + +[\_types/global/GlobalTypes](../modules/types_global_GlobalTypes.md).RevealCountdownInfo + +## Table of contents + +### Properties + +- [currentlyRevealing](types_global_GlobalTypes.RevealCountdownInfo.md#currentlyrevealing) +- [myLastRevealTimestamp](types_global_GlobalTypes.RevealCountdownInfo.md#mylastrevealtimestamp) +- [revealCooldownTime](types_global_GlobalTypes.RevealCountdownInfo.md#revealcooldowntime) + +## Properties + +### currentlyRevealing + +• **currentlyRevealing**: `boolean` + +--- + +### myLastRevealTimestamp + +• `Optional` **myLastRevealTimestamp**: `number` + +--- + +### revealCooldownTime + +• **revealCooldownTime**: `number` diff --git a/docs/modules/Backend_GameLogic_ArrivalUtils.md b/docs/modules/Backend_GameLogic_ArrivalUtils.md new file mode 100644 index 00000000..93138f43 --- /dev/null +++ b/docs/modules/Backend_GameLogic_ArrivalUtils.md @@ -0,0 +1,162 @@ +# Module: Backend/GameLogic/ArrivalUtils + +## Table of contents + +### Interfaces + +- [PlanetDiff](../interfaces/Backend_GameLogic_ArrivalUtils.PlanetDiff.md) + +### Functions + +- [applyUpgrade](Backend_GameLogic_ArrivalUtils.md#applyupgrade) +- [arrive](Backend_GameLogic_ArrivalUtils.md#arrive) +- [blocksLeftToProspectExpiration](Backend_GameLogic_ArrivalUtils.md#blockslefttoprospectexpiration) +- [getEmojiMessage](Backend_GameLogic_ArrivalUtils.md#getemojimessage) +- [isFindable](Backend_GameLogic_ArrivalUtils.md#isfindable) +- [isProspectable](Backend_GameLogic_ArrivalUtils.md#isprospectable) +- [prospectExpired](Backend_GameLogic_ArrivalUtils.md#prospectexpired) +- [updatePlanetToTime](Backend_GameLogic_ArrivalUtils.md#updateplanettotime) + +## Functions + +### applyUpgrade + +▸ **applyUpgrade**(`planet`, `upgrade`, `unApply?`): `void` + +#### Parameters + +| Name | Type | Default value | +| :-------- | :-------- | :------------ | +| `planet` | `Planet` | `undefined` | +| `upgrade` | `Upgrade` | `undefined` | +| `unApply` | `boolean` | `false` | + +#### Returns + +`void` + +--- + +### arrive + +▸ **arrive**(`toPlanet`, `artifactsOnPlanet`, `arrival`, `arrivingArtifact`, `contractConstants`): [`PlanetDiff`](../interfaces/Backend_GameLogic_ArrivalUtils.PlanetDiff.md) + +#### Parameters + +| Name | Type | +| :------------------ | :----------------------------------------------------------------------------------------------- | +| `toPlanet` | `Planet` | +| `artifactsOnPlanet` | `Artifact`[] | +| `arrival` | `QueuedArrival` | +| `arrivingArtifact` | `undefined` \| `Artifact` | +| `contractConstants` | [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) | + +#### Returns + +[`PlanetDiff`](../interfaces/Backend_GameLogic_ArrivalUtils.PlanetDiff.md) + +--- + +### blocksLeftToProspectExpiration + +▸ **blocksLeftToProspectExpiration**(`currentBlockNumber`, `prospectedBlockNumber?`): `number` + +#### Parameters + +| Name | Type | +| :----------------------- | :------- | +| `currentBlockNumber` | `number` | +| `prospectedBlockNumber?` | `number` | + +#### Returns + +`number` + +--- + +### getEmojiMessage + +▸ **getEmojiMessage**(`planet`): `PlanetMessage`<`EmojiFlagBody`\> \| `undefined` + +**`todo`** ArrivalUtils has become a dumping ground for functions that should just live inside of a +`Planet` class. + +#### Parameters + +| Name | Type | +| :------- | :---------------------- | +| `planet` | `undefined` \| `Planet` | + +#### Returns + +`PlanetMessage`<`EmojiFlagBody`\> \| `undefined` + +--- + +### isFindable + +▸ **isFindable**(`planet`, `currentBlockNumber?`): `boolean` + +#### Parameters + +| Name | Type | +| :-------------------- | :------- | +| `planet` | `Planet` | +| `currentBlockNumber?` | `number` | + +#### Returns + +`boolean` + +--- + +### isProspectable + +▸ **isProspectable**(`planet`): `boolean` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`boolean` + +--- + +### prospectExpired + +▸ **prospectExpired**(`currentBlockNumber`, `prospectedBlockNumber`): `boolean` + +#### Parameters + +| Name | Type | +| :---------------------- | :------- | +| `currentBlockNumber` | `number` | +| `prospectedBlockNumber` | `number` | + +#### Returns + +`boolean` + +--- + +### updatePlanetToTime + +▸ **updatePlanetToTime**(`planet`, `planetArtifacts`, `atTimeMillis`, `contractConstants`, `setPlanet?`): `void` + +#### Parameters + +| Name | Type | +| :------------------ | :----------------------------------------------------------------------------------------------- | +| `planet` | `Planet` | +| `planetArtifacts` | `Artifact`[] | +| `atTimeMillis` | `number` | +| `contractConstants` | [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) | +| `setPlanet` | (`p`: `Planet`) => `void` | + +#### Returns + +`void` diff --git a/docs/modules/Backend_GameLogic_CaptureZoneGenerator.md b/docs/modules/Backend_GameLogic_CaptureZoneGenerator.md new file mode 100644 index 00000000..5e54b33f --- /dev/null +++ b/docs/modules/Backend_GameLogic_CaptureZoneGenerator.md @@ -0,0 +1,25 @@ +# Module: Backend/GameLogic/CaptureZoneGenerator + +## Table of contents + +### Classes + +- [CaptureZoneGenerator](../classes/Backend_GameLogic_CaptureZoneGenerator.CaptureZoneGenerator.md) + +### Type aliases + +- [CaptureZonesGeneratedEvent](Backend_GameLogic_CaptureZoneGenerator.md#capturezonesgeneratedevent) + +## Type aliases + +### CaptureZonesGeneratedEvent + +Ƭ **CaptureZonesGeneratedEvent**: `Object` + +#### Type declaration + +| Name | Type | +| :---------------- | :-------------- | +| `changeBlock` | `number` | +| `nextChangeBlock` | `number` | +| `zones` | `CaptureZone`[] | diff --git a/docs/modules/Backend_GameLogic_ContractsAPI.md b/docs/modules/Backend_GameLogic_ContractsAPI.md new file mode 100644 index 00000000..048363eb --- /dev/null +++ b/docs/modules/Backend_GameLogic_ContractsAPI.md @@ -0,0 +1,27 @@ +# Module: Backend/GameLogic/ContractsAPI + +## Table of contents + +### Classes + +- [ContractsAPI](../classes/Backend_GameLogic_ContractsAPI.ContractsAPI.md) + +### Functions + +- [makeContractsAPI](Backend_GameLogic_ContractsAPI.md#makecontractsapi) + +## Functions + +### makeContractsAPI + +▸ **makeContractsAPI**(`__namedParameters`): `Promise`<[`ContractsAPI`](../classes/Backend_GameLogic_ContractsAPI.ContractsAPI.md)\> + +#### Parameters + +| Name | Type | +| :------------------ | :------------------- | +| `__namedParameters` | `ContractsApiConfig` | + +#### Returns + +`Promise`<[`ContractsAPI`](../classes/Backend_GameLogic_ContractsAPI.ContractsAPI.md)\> diff --git a/docs/modules/Backend_GameLogic_GameManager.md b/docs/modules/Backend_GameLogic_GameManager.md new file mode 100644 index 00000000..222fec57 --- /dev/null +++ b/docs/modules/Backend_GameLogic_GameManager.md @@ -0,0 +1,11 @@ +# Module: Backend/GameLogic/GameManager + +## Table of contents + +### Enumerations + +- [GameManagerEvent](../enums/Backend_GameLogic_GameManager.GameManagerEvent.md) + +### Classes + +- [default](../classes/Backend_GameLogic_GameManager.default.md) diff --git a/docs/modules/Backend_GameLogic_GameObjects.md b/docs/modules/Backend_GameLogic_GameObjects.md new file mode 100644 index 00000000..c1540269 --- /dev/null +++ b/docs/modules/Backend_GameLogic_GameObjects.md @@ -0,0 +1,7 @@ +# Module: Backend/GameLogic/GameObjects + +## Table of contents + +### Classes + +- [GameObjects](../classes/Backend_GameLogic_GameObjects.GameObjects.md) diff --git a/docs/modules/Backend_GameLogic_GameUIManager.md b/docs/modules/Backend_GameLogic_GameUIManager.md new file mode 100644 index 00000000..c1c2984e --- /dev/null +++ b/docs/modules/Backend_GameLogic_GameUIManager.md @@ -0,0 +1,11 @@ +# Module: Backend/GameLogic/GameUIManager + +## Table of contents + +### Enumerations + +- [GameUIManagerEvent](../enums/Backend_GameLogic_GameUIManager.GameUIManagerEvent.md) + +### Classes + +- [default](../classes/Backend_GameLogic_GameUIManager.default.md) diff --git a/docs/modules/Backend_GameLogic_InitialGameStateDownloader.md b/docs/modules/Backend_GameLogic_InitialGameStateDownloader.md new file mode 100644 index 00000000..99b99fe7 --- /dev/null +++ b/docs/modules/Backend_GameLogic_InitialGameStateDownloader.md @@ -0,0 +1,11 @@ +# Module: Backend/GameLogic/InitialGameStateDownloader + +## Table of contents + +### Classes + +- [InitialGameStateDownloader](../classes/Backend_GameLogic_InitialGameStateDownloader.InitialGameStateDownloader.md) + +### Interfaces + +- [InitialGameState](../interfaces/Backend_GameLogic_InitialGameStateDownloader.InitialGameState.md) diff --git a/docs/modules/Backend_GameLogic_LayeredMap.md b/docs/modules/Backend_GameLogic_LayeredMap.md new file mode 100644 index 00000000..bb135646 --- /dev/null +++ b/docs/modules/Backend_GameLogic_LayeredMap.md @@ -0,0 +1,7 @@ +# Module: Backend/GameLogic/LayeredMap + +## Table of contents + +### Classes + +- [LayeredMap](../classes/Backend_GameLogic_LayeredMap.LayeredMap.md) diff --git a/docs/modules/Backend_GameLogic_PluginManager.md b/docs/modules/Backend_GameLogic_PluginManager.md new file mode 100644 index 00000000..aef9fa25 --- /dev/null +++ b/docs/modules/Backend_GameLogic_PluginManager.md @@ -0,0 +1,8 @@ +# Module: Backend/GameLogic/PluginManager + +## Table of contents + +### Classes + +- [PluginManager](../classes/Backend_GameLogic_PluginManager.PluginManager.md) +- [ProcessInfo](../classes/Backend_GameLogic_PluginManager.ProcessInfo.md) diff --git a/docs/modules/Backend_GameLogic_TutorialManager.md b/docs/modules/Backend_GameLogic_TutorialManager.md new file mode 100644 index 00000000..7079d079 --- /dev/null +++ b/docs/modules/Backend_GameLogic_TutorialManager.md @@ -0,0 +1,12 @@ +# Module: Backend/GameLogic/TutorialManager + +## Table of contents + +### Enumerations + +- [TutorialManagerEvent](../enums/Backend_GameLogic_TutorialManager.TutorialManagerEvent.md) +- [TutorialState](../enums/Backend_GameLogic_TutorialManager.TutorialState.md) + +### Classes + +- [default](../classes/Backend_GameLogic_TutorialManager.default.md) diff --git a/docs/modules/Backend_GameLogic_ViewportEntities.md b/docs/modules/Backend_GameLogic_ViewportEntities.md new file mode 100644 index 00000000..13a651da --- /dev/null +++ b/docs/modules/Backend_GameLogic_ViewportEntities.md @@ -0,0 +1,7 @@ +# Module: Backend/GameLogic/ViewportEntities + +## Table of contents + +### Classes + +- [ViewportEntities](../classes/Backend_GameLogic_ViewportEntities.ViewportEntities.md) diff --git a/docs/modules/Backend_Miner_ChunkUtils.md b/docs/modules/Backend_Miner_ChunkUtils.md new file mode 100644 index 00000000..a11f5ce6 --- /dev/null +++ b/docs/modules/Backend_Miner_ChunkUtils.md @@ -0,0 +1,179 @@ +# Module: Backend/Miner/ChunkUtils + +## Table of contents + +### Functions + +- [addToChunkMap](Backend_Miner_ChunkUtils.md#addtochunkmap) +- [getBucket](Backend_Miner_ChunkUtils.md#getbucket) +- [getChunkKey](Backend_Miner_ChunkUtils.md#getchunkkey) +- [getChunkOfSideLengthContainingPoint](Backend_Miner_ChunkUtils.md#getchunkofsidelengthcontainingpoint) +- [getSiblingLocations](Backend_Miner_ChunkUtils.md#getsiblinglocations) +- [toExploredChunk](Backend_Miner_ChunkUtils.md#toexploredchunk) +- [toPersistedChunk](Backend_Miner_ChunkUtils.md#topersistedchunk) + +## Functions + +### addToChunkMap + +▸ **addToChunkMap**(`existingChunks`, `newChunk`, `onAdd?`, `onRemove?`, `maxChunkSize?`): `void` + +At a high level, call this function to update an efficient quadtree-like store containing all of +the chunks that a player has either mined or imported in their client. + +More speecifically, adds the given new chunk to the given map of chunks. If the map of chunks +contains all of the "sibling" chunks to this new chunk, then instead of adding it, we merge the 4 +sibling chunks, and add the merged chunk to the map and remove the existing sibling chunks. This +function is recursive, which means that if the newly created merged chunk can also be merged with +its siblings, then we merge it, add the new larger chunk, and also remove the previously existing +sibling chunks. + +The maximum chunk size is represented by the `maxChunkSize` parameter (which has to be a power of +two). If no `maxChunkSize` parameter is provided, then there is no maxmimum chunk size, meaning +that chunks will be merged until no further merging is possible. + +`onAdd` and `onRemove` are called for each of the chunks that we add and remove to/from the +`existingChunks` map. `onAdd` will be called exactly once, whereas `onRemove` only ever be called +for sibling chunks that existed prior to this function being called. + +#### Parameters + +| Name | Type | +| :--------------- | :---------------------------------------------------------------------------- | +| `existingChunks` | `Map`<[`ChunkId`](types_darkforest_api_ChunkStoreTypes.md#chunkid), `Chunk`\> | +| `newChunk` | `Chunk` | +| `onAdd?` | (`arg`: `Chunk`) => `void` | +| `onRemove?` | (`arg`: `Chunk`) => `void` | +| `maxChunkSize?` | `number` | + +#### Returns + +`void` + +--- + +### getBucket + +▸ **getBucket**(`chunk`): [`BucketId`](types_darkforest_api_ChunkStoreTypes.md#bucketid) + +Deterministically assigns a bucket ID to a rectangle, based on its position and size in the +universe. This is kind of like a shitty hash function. Its purpose is to distribute chunks +roughly evenly between the buckets. + +#### Parameters + +| Name | Type | +| :------ | :---------- | +| `chunk` | `Rectangle` | + +#### Returns + +[`BucketId`](types_darkforest_api_ChunkStoreTypes.md#bucketid) + +--- + +### getChunkKey + +▸ **getChunkKey**(`chunkLoc`): [`ChunkId`](types_darkforest_api_ChunkStoreTypes.md#chunkid) + +A unique ID generated for each chunk based on its rectangle, as well as its bucket. It's the +primary key by which chunks are identified. + +#### Parameters + +| Name | Type | +| :--------- | :---------- | +| `chunkLoc` | `Rectangle` | + +#### Returns + +[`ChunkId`](types_darkforest_api_ChunkStoreTypes.md#chunkid) + +--- + +### getChunkOfSideLengthContainingPoint + +▸ **getChunkOfSideLengthContainingPoint**(`coords`, `sideLength`): `Rectangle` + +Returns the unique aligned chunk (for definition of "aligned" see comment on +`getSiblingLocations`) with the given side length that contains the given point. A chunk contains +all of the points strictly inside of its bounds, as well as the bottom and left edges. This means +it does not contain points which are on its right or top edges. + +#### Parameters + +| Name | Type | +| :----------- | :------------ | +| `coords` | `WorldCoords` | +| `sideLength` | `number` | + +#### Returns + +`Rectangle` + +--- + +### getSiblingLocations + +▸ **getSiblingLocations**(`chunkLoc`): [`Rectangle`, `Rectangle`, `Rectangle`] + +An aligned chunk is one whose corner's coordinates are multiples of its side length, and its side +length is a power of two between [MIN_CHUNK_SIZE](Frontend_Utils_constants.md#min_chunk_size) and [MAX_CHUNK_SIZE](Frontend_Utils_constants.md#max_chunk_size) inclusive. + +"Aligned" chunks is that they can be merged into other aligned chunks. Non-aligned chunks cannot +always be merged into squares. The reason we care about merging is that merging chunks allows us +to represent more world-space using fewer chunks. This saves memory at both runtime and +storage-time. Therefore, we only store aligned chunks. + +As an example, chunks with any corner at (0, 0) are always aligned. A chunk with side length 4 is +aligned if it's on (4, 4), (8, 12), but not (4, 6). + +This function returns the other three chunks with the same side length of the given chunk, such +that the four chunks, if merged, would result in an "aligned" chunk whose side length is double +the given chunk. + +#### Parameters + +| Name | Type | +| :--------- | :---------- | +| `chunkLoc` | `Rectangle` | + +#### Returns + +[`Rectangle`, `Rectangle`, `Rectangle`] + +--- + +### toExploredChunk + +▸ **toExploredChunk**(`chunk`): `Chunk` + +Converts from the persisted representation of a chunk to the in-game representation of a chunk. + +#### Parameters + +| Name | Type | +| :------ | :--------------------------------------------------------------------------------------- | +| `chunk` | [`PersistedChunk`](../interfaces/types_darkforest_api_ChunkStoreTypes.PersistedChunk.md) | + +#### Returns + +`Chunk` + +--- + +### toPersistedChunk + +▸ **toPersistedChunk**(`chunk`): [`PersistedChunk`](../interfaces/types_darkforest_api_ChunkStoreTypes.PersistedChunk.md) + +Converts from the in-game representation of a chunk to its persisted representation. + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `chunk` | `Chunk` | + +#### Returns + +[`PersistedChunk`](../interfaces/types_darkforest_api_ChunkStoreTypes.PersistedChunk.md) diff --git a/docs/modules/Backend_Miner_MinerManager.md b/docs/modules/Backend_Miner_MinerManager.md new file mode 100644 index 00000000..b6353bd6 --- /dev/null +++ b/docs/modules/Backend_Miner_MinerManager.md @@ -0,0 +1,30 @@ +# Module: Backend/Miner/MinerManager + +## Table of contents + +### Enumerations + +- [MinerManagerEvent](../enums/Backend_Miner_MinerManager.MinerManagerEvent.md) + +### Classes + +- [HomePlanetMinerChunkStore](../classes/Backend_Miner_MinerManager.HomePlanetMinerChunkStore.md) +- [default](../classes/Backend_Miner_MinerManager.default.md) + +### Type aliases + +- [workerFactory](Backend_Miner_MinerManager.md#workerfactory) + +## Type aliases + +### workerFactory + +Ƭ **workerFactory**: () => `Worker` + +#### Type declaration + +▸ (): `Worker` + +##### Returns + +`Worker` diff --git a/docs/modules/Backend_Miner_MiningPatterns.md b/docs/modules/Backend_Miner_MiningPatterns.md new file mode 100644 index 00000000..3a2dcb73 --- /dev/null +++ b/docs/modules/Backend_Miner_MiningPatterns.md @@ -0,0 +1,18 @@ +# Module: Backend/Miner/MiningPatterns + +## Table of contents + +### Enumerations + +- [MiningPatternType](../enums/Backend_Miner_MiningPatterns.MiningPatternType.md) + +### Classes + +- [SpiralPattern](../classes/Backend_Miner_MiningPatterns.SpiralPattern.md) +- [SwissCheesePattern](../classes/Backend_Miner_MiningPatterns.SwissCheesePattern.md) +- [TowardsCenterPattern](../classes/Backend_Miner_MiningPatterns.TowardsCenterPattern.md) +- [TowardsCenterPatternV2](../classes/Backend_Miner_MiningPatterns.TowardsCenterPatternV2.md) + +### Interfaces + +- [MiningPattern](../interfaces/Backend_Miner_MiningPatterns.MiningPattern.md) diff --git a/docs/modules/Backend_Miner_permutation.md b/docs/modules/Backend_Miner_permutation.md new file mode 100644 index 00000000..d32d4723 --- /dev/null +++ b/docs/modules/Backend_Miner_permutation.md @@ -0,0 +1,40 @@ +# Module: Backend/Miner/permutation + +## Table of contents + +### Functions + +- [getPlanetLocations](Backend_Miner_permutation.md#getplanetlocations) + +## Functions + +### getPlanetLocations + +▸ **getPlanetLocations**(`spaceTypeKey`, `biomebaseKey`, `perlinLengthScale`, `perlinMirrorX`, `perlinMirrorY`): (`chunkFootprint`: `Rectangle`, `planetRarity`: `number`) => `WorldLocation`[] + +#### Parameters + +| Name | Type | +| :------------------ | :-------- | +| `spaceTypeKey` | `number` | +| `biomebaseKey` | `number` | +| `perlinLengthScale` | `number` | +| `perlinMirrorX` | `boolean` | +| `perlinMirrorY` | `boolean` | + +#### Returns + +`fn` + +▸ (`chunkFootprint`, `planetRarity`): `WorldLocation`[] + +##### Parameters + +| Name | Type | +| :--------------- | :---------- | +| `chunkFootprint` | `Rectangle` | +| `planetRarity` | `number` | + +##### Returns + +`WorldLocation`[] diff --git a/docs/modules/Backend_Network_AccountManager.md b/docs/modules/Backend_Network_AccountManager.md new file mode 100644 index 00000000..db8cb089 --- /dev/null +++ b/docs/modules/Backend_Network_AccountManager.md @@ -0,0 +1,42 @@ +# Module: Backend/Network/AccountManager + +## Table of contents + +### Interfaces + +- [Account](../interfaces/Backend_Network_AccountManager.Account.md) + +### Functions + +- [addAccount](Backend_Network_AccountManager.md#addaccount) +- [getAccounts](Backend_Network_AccountManager.md#getaccounts) + +## Functions + +### addAccount + +▸ **addAccount**(`privateKey`): `void` + +Adds the given account, and saves it to localstorage. + +#### Parameters + +| Name | Type | +| :----------- | :------- | +| `privateKey` | `string` | + +#### Returns + +`void` + +--- + +### getAccounts + +▸ **getAccounts**(): [`Account`](../interfaces/Backend_Network_AccountManager.Account.md)[] + +Returns the list of accounts that are logged into the game. + +#### Returns + +[`Account`](../interfaces/Backend_Network_AccountManager.Account.md)[] diff --git a/docs/modules/Backend_Network_Blockchain.md b/docs/modules/Backend_Network_Blockchain.md new file mode 100644 index 00000000..4997006b --- /dev/null +++ b/docs/modules/Backend_Network_Blockchain.md @@ -0,0 +1,44 @@ +# Module: Backend/Network/Blockchain + +## Table of contents + +### Functions + +- [getEthConnection](Backend_Network_Blockchain.md#getethconnection) +- [loadDiamondContract](Backend_Network_Blockchain.md#loaddiamondcontract) + +## Functions + +### getEthConnection + +▸ **getEthConnection**(): `Promise`<`EthConnection`\> + +#### Returns + +`Promise`<`EthConnection`\> + +--- + +### loadDiamondContract + +▸ **loadDiamondContract**<`T`\>(`address`, `provider`, `signer?`): `Promise`<`T`\> + +Loads the game contract, which is responsible for updating the state of the game. + +#### Type parameters + +| Name | Type | +| :--- | :----------------------- | +| `T` | extends `Contract`<`T`\> | + +#### Parameters + +| Name | Type | +| :--------- | :---------------- | +| `address` | `string` | +| `provider` | `JsonRpcProvider` | +| `signer?` | `Wallet` | + +#### Returns + +`Promise`<`T`\> diff --git a/docs/modules/Backend_Network_EventLogger.md b/docs/modules/Backend_Network_EventLogger.md new file mode 100644 index 00000000..116237f1 --- /dev/null +++ b/docs/modules/Backend_Network_EventLogger.md @@ -0,0 +1,21 @@ +# Module: Backend/Network/EventLogger + +## Table of contents + +### Enumerations + +- [EventType](../enums/Backend_Network_EventLogger.EventType.md) + +### Classes + +- [EventLogger](../classes/Backend_Network_EventLogger.EventLogger.md) + +### Variables + +- [eventLogger](Backend_Network_EventLogger.md#eventlogger) + +## Variables + +### eventLogger + +• `Const` **eventLogger**: [`EventLogger`](../classes/Backend_Network_EventLogger.EventLogger.md) diff --git a/docs/modules/Backend_Network_LeaderboardApi.md b/docs/modules/Backend_Network_LeaderboardApi.md new file mode 100644 index 00000000..f82fdcd1 --- /dev/null +++ b/docs/modules/Backend_Network_LeaderboardApi.md @@ -0,0 +1,17 @@ +# Module: Backend/Network/LeaderboardApi + +## Table of contents + +### Functions + +- [loadLeaderboard](Backend_Network_LeaderboardApi.md#loadleaderboard) + +## Functions + +### loadLeaderboard + +▸ **loadLeaderboard**(): `Promise`<`Leaderboard`\> + +#### Returns + +`Promise`<`Leaderboard`\> diff --git a/docs/modules/Backend_Network_MessageAPI.md b/docs/modules/Backend_Network_MessageAPI.md new file mode 100644 index 00000000..fd6a7c94 --- /dev/null +++ b/docs/modules/Backend_Network_MessageAPI.md @@ -0,0 +1,57 @@ +# Module: Backend/Network/MessageAPI + +## Table of contents + +### Functions + +- [addMessage](Backend_Network_MessageAPI.md#addmessage) +- [deleteMessages](Backend_Network_MessageAPI.md#deletemessages) +- [getMessagesOnPlanets](Backend_Network_MessageAPI.md#getmessagesonplanets) + +## Functions + +### addMessage + +▸ **addMessage**(`request`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :-------- | :------------------------------------------------- | +| `request` | `SignedMessage`<`PostMessageRequest`<`unknown`\>\> | + +#### Returns + +`Promise`<`void`\> + +--- + +### deleteMessages + +▸ **deleteMessages**(`request`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :-------- | :---------------------------------------- | +| `request` | `SignedMessage`<`DeleteMessagesRequest`\> | + +#### Returns + +`Promise`<`void`\> + +--- + +### getMessagesOnPlanets + +▸ **getMessagesOnPlanets**(`request`): `Promise`<`PlanetMessageResponse`\> + +#### Parameters + +| Name | Type | +| :-------- | :--------------------- | +| `request` | `PlanetMessageRequest` | + +#### Returns + +`Promise`<`PlanetMessageResponse`\> diff --git a/docs/modules/Backend_Network_NetworkHealthApi.md b/docs/modules/Backend_Network_NetworkHealthApi.md new file mode 100644 index 00000000..212ce9ca --- /dev/null +++ b/docs/modules/Backend_Network_NetworkHealthApi.md @@ -0,0 +1,20 @@ +# Module: Backend/Network/NetworkHealthApi + +## Table of contents + +### Functions + +- [loadNetworkHealth](Backend_Network_NetworkHealthApi.md#loadnetworkhealth) + +## Functions + +### loadNetworkHealth + +▸ **loadNetworkHealth**(): `Promise`<`NetworkHealthSummary`\> + +The Dark Forest webserver keeps track of network health, this function loads that information +from the webserver. + +#### Returns + +`Promise`<`NetworkHealthSummary`\> diff --git a/docs/modules/Backend_Network_UtilityServerAPI.md b/docs/modules/Backend_Network_UtilityServerAPI.md new file mode 100644 index 00000000..c95dfc5d --- /dev/null +++ b/docs/modules/Backend_Network_UtilityServerAPI.md @@ -0,0 +1,215 @@ +# Module: Backend/Network/UtilityServerAPI + +## Table of contents + +### Enumerations + +- [EmailResponse](../enums/Backend_Network_UtilityServerAPI.EmailResponse.md) + +### Type aliases + +- [RegisterConfirmationResponse](Backend_Network_UtilityServerAPI.md#registerconfirmationresponse) + +### Functions + +- [callRegisterAndWaitForConfirmation](Backend_Network_UtilityServerAPI.md#callregisterandwaitforconfirmation) +- [disconnectTwitter](Backend_Network_UtilityServerAPI.md#disconnecttwitter) +- [getAllTwitters](Backend_Network_UtilityServerAPI.md#getalltwitters) +- [requestDevFaucet](Backend_Network_UtilityServerAPI.md#requestdevfaucet) +- [submitInterestedEmail](Backend_Network_UtilityServerAPI.md#submitinterestedemail) +- [submitPlayerEmail](Backend_Network_UtilityServerAPI.md#submitplayeremail) +- [submitUnsubscribeEmail](Backend_Network_UtilityServerAPI.md#submitunsubscribeemail) +- [submitWhitelistKey](Backend_Network_UtilityServerAPI.md#submitwhitelistkey) +- [tryGetAllTwitters](Backend_Network_UtilityServerAPI.md#trygetalltwitters) +- [verifyTwitterHandle](Backend_Network_UtilityServerAPI.md#verifytwitterhandle) +- [whitelistStatus](Backend_Network_UtilityServerAPI.md#whiteliststatus) + +## Type aliases + +### RegisterConfirmationResponse + +Ƭ **RegisterConfirmationResponse**: `Object` + +#### Type declaration + +| Name | Type | Description | +| :-------------- | :-------- | :------------------------------------------------------------------------------------------------------- | +| `canRetry?` | `boolean` | If the whitelist registration is unsuccessful, this is true if the client is able to retry registration. | +| `errorMessage?` | `string` | If the whitelist registration is unsuccessful, this is populated with the error message explaining why. | +| `txHash?` | `string` | If the whitelist registration is successful, this is populated with the hash of the transaction. | + +## Functions + +### callRegisterAndWaitForConfirmation + +▸ **callRegisterAndWaitForConfirmation**(`key`, `address`, `terminal`): `Promise`<[`RegisterConfirmationResponse`](Backend_Network_UtilityServerAPI.md#registerconfirmationresponse)\> + +Starts the registration process for the user then +polls for success. + +#### Parameters + +| Name | Type | +| :--------- | :-------------------------------------------------------------------------------------------------------------- | +| `key` | `string` | +| `address` | `EthAddress` | +| `terminal` | `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> | + +#### Returns + +`Promise`<[`RegisterConfirmationResponse`](Backend_Network_UtilityServerAPI.md#registerconfirmationresponse)\> + +--- + +### disconnectTwitter + +▸ **disconnectTwitter**(`disconnectMessage`): `Promise`<`boolean`\> + +#### Parameters + +| Name | Type | +| :------------------ | :---------------------------------------- | +| `disconnectMessage` | `SignedMessage`<{ `twitter`: `string` }\> | + +#### Returns + +`Promise`<`boolean`\> + +--- + +### getAllTwitters + +▸ **getAllTwitters**(): `Promise`<[`AddressTwitterMap`](types_darkforest_api_UtilityServerAPITypes.md#addresstwittermap)\> + +#### Returns + +`Promise`<[`AddressTwitterMap`](types_darkforest_api_UtilityServerAPITypes.md#addresstwittermap)\> + +--- + +### requestDevFaucet + +▸ **requestDevFaucet**(`address`): `Promise`<`boolean`\> + +#### Parameters + +| Name | Type | +| :-------- | :----------- | +| `address` | `EthAddress` | + +#### Returns + +`Promise`<`boolean`\> + +--- + +### submitInterestedEmail + +▸ **submitInterestedEmail**(`email`): `Promise`<[`EmailResponse`](../enums/Backend_Network_UtilityServerAPI.EmailResponse.md)\> + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `email` | `string` | + +#### Returns + +`Promise`<[`EmailResponse`](../enums/Backend_Network_UtilityServerAPI.EmailResponse.md)\> + +--- + +### submitPlayerEmail + +▸ **submitPlayerEmail**(`request?`): `Promise`<[`EmailResponse`](../enums/Backend_Network_UtilityServerAPI.EmailResponse.md)\> + +#### Parameters + +| Name | Type | +| :--------- | :-------------------------------------- | +| `request?` | `SignedMessage`<{ `email`: `string` }\> | + +#### Returns + +`Promise`<[`EmailResponse`](../enums/Backend_Network_UtilityServerAPI.EmailResponse.md)\> + +--- + +### submitUnsubscribeEmail + +▸ **submitUnsubscribeEmail**(`email`): `Promise`<[`EmailResponse`](../enums/Backend_Network_UtilityServerAPI.EmailResponse.md)\> + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `email` | `string` | + +#### Returns + +`Promise`<[`EmailResponse`](../enums/Backend_Network_UtilityServerAPI.EmailResponse.md)\> + +--- + +### submitWhitelistKey + +▸ **submitWhitelistKey**(`key`, `address`): `Promise`<`null` \| `RegisterResponse`\> + +Submits a whitelist key to register the given player to the game. Returns null if there was an +error. + +#### Parameters + +| Name | Type | +| :-------- | :----------- | +| `key` | `string` | +| `address` | `EthAddress` | + +#### Returns + +`Promise`<`null` \| `RegisterResponse`\> + +--- + +### tryGetAllTwitters + +▸ **tryGetAllTwitters**(): `Promise`<[`AddressTwitterMap`](types_darkforest_api_UtilityServerAPITypes.md#addresstwittermap)\> + +Swallows all errors. Either loads the address to twitter map from the webserver in 5 seconds, or +returan empty map. + +#### Returns + +`Promise`<[`AddressTwitterMap`](types_darkforest_api_UtilityServerAPITypes.md#addresstwittermap)\> + +--- + +### verifyTwitterHandle + +▸ **verifyTwitterHandle**(`verifyMessage`): `Promise`<`boolean`\> + +#### Parameters + +| Name | Type | +| :-------------- | :---------------------------------------- | +| `verifyMessage` | `SignedMessage`<{ `twitter`: `string` }\> | + +#### Returns + +`Promise`<`boolean`\> + +--- + +### whitelistStatus + +▸ **whitelistStatus**(`address`): `Promise`<`null` \| `WhitelistStatusResponse`\> + +#### Parameters + +| Name | Type | +| :-------- | :----------- | +| `address` | `EthAddress` | + +#### Returns + +`Promise`<`null` \| `WhitelistStatusResponse`\> diff --git a/docs/modules/Backend_Plugins_EmbeddedPluginLoader.md b/docs/modules/Backend_Plugins_EmbeddedPluginLoader.md new file mode 100644 index 00000000..18469bcb --- /dev/null +++ b/docs/modules/Backend_Plugins_EmbeddedPluginLoader.md @@ -0,0 +1,27 @@ +# Module: Backend/Plugins/EmbeddedPluginLoader + +## Table of contents + +### Interfaces + +- [EmbeddedPlugin](../interfaces/Backend_Plugins_EmbeddedPluginLoader.EmbeddedPlugin.md) + +### Functions + +- [getEmbeddedPlugins](Backend_Plugins_EmbeddedPluginLoader.md#getembeddedplugins) + +## Functions + +### getEmbeddedPlugins + +▸ **getEmbeddedPlugins**(`isAdmin`): { `code`: `string` ; `id`: `PluginId` ; `name`: `string` }[] + +#### Parameters + +| Name | Type | +| :-------- | :-------- | +| `isAdmin` | `boolean` | + +#### Returns + +{ `code`: `string` ; `id`: `PluginId` ; `name`: `string` }[] diff --git a/docs/modules/Backend_Plugins_PluginProcess.md b/docs/modules/Backend_Plugins_PluginProcess.md new file mode 100644 index 00000000..7ea3b368 --- /dev/null +++ b/docs/modules/Backend_Plugins_PluginProcess.md @@ -0,0 +1,7 @@ +# Module: Backend/Plugins/PluginProcess + +## Table of contents + +### Interfaces + +- [PluginProcess](../interfaces/Backend_Plugins_PluginProcess.PluginProcess.md) diff --git a/docs/modules/Backend_Plugins_PluginTemplate.md b/docs/modules/Backend_Plugins_PluginTemplate.md new file mode 100644 index 00000000..f5d66224 --- /dev/null +++ b/docs/modules/Backend_Plugins_PluginTemplate.md @@ -0,0 +1,13 @@ +# Module: Backend/Plugins/PluginTemplate + +## Table of contents + +### Variables + +- [PLUGIN_TEMPLATE](Backend_Plugins_PluginTemplate.md#plugin_template) + +## Variables + +### PLUGIN_TEMPLATE + +• `Const` **PLUGIN_TEMPLATE**: `string` diff --git a/docs/modules/Backend_Plugins_SerializedPlugin.md b/docs/modules/Backend_Plugins_SerializedPlugin.md new file mode 100644 index 00000000..9d83de54 --- /dev/null +++ b/docs/modules/Backend_Plugins_SerializedPlugin.md @@ -0,0 +1,7 @@ +# Module: Backend/Plugins/SerializedPlugin + +## Table of contents + +### Interfaces + +- [SerializedPlugin](../interfaces/Backend_Plugins_SerializedPlugin.SerializedPlugin.md) diff --git a/docs/modules/Backend_Storage_PersistentChunkStore.md b/docs/modules/Backend_Storage_PersistentChunkStore.md new file mode 100644 index 00000000..ab3b5494 --- /dev/null +++ b/docs/modules/Backend_Storage_PersistentChunkStore.md @@ -0,0 +1,17 @@ +# Module: Backend/Storage/PersistentChunkStore + +## Table of contents + +### Classes + +- [default](../classes/Backend_Storage_PersistentChunkStore.default.md) + +### Variables + +- [MODAL_POSITIONS_KEY](Backend_Storage_PersistentChunkStore.md#modal_positions_key) + +## Variables + +### MODAL_POSITIONS_KEY + +• `Const` **MODAL_POSITIONS_KEY**: `"modal_positions"` diff --git a/docs/modules/Backend_Storage_ReaderDataStore.md b/docs/modules/Backend_Storage_ReaderDataStore.md new file mode 100644 index 00000000..437512b9 --- /dev/null +++ b/docs/modules/Backend_Storage_ReaderDataStore.md @@ -0,0 +1,11 @@ +# Module: Backend/Storage/ReaderDataStore + +## Table of contents + +### Enumerations + +- [SinglePlanetDataStoreEvent](../enums/Backend_Storage_ReaderDataStore.SinglePlanetDataStoreEvent.md) + +### Classes + +- [default](../classes/Backend_Storage_ReaderDataStore.default.md) diff --git a/docs/modules/Backend_Utils_Animation.md b/docs/modules/Backend_Utils_Animation.md new file mode 100644 index 00000000..d0c526bf --- /dev/null +++ b/docs/modules/Backend_Utils_Animation.md @@ -0,0 +1,93 @@ +# Module: Backend/Utils/Animation + +## Table of contents + +### Functions + +- [constantAnimation](Backend_Utils_Animation.md#constantanimation) +- [easeInAnimation](Backend_Utils_Animation.md#easeinanimation) +- [emojiEaseOutAnimation](Backend_Utils_Animation.md#emojieaseoutanimation) +- [planetLevelToAnimationSpeed](Backend_Utils_Animation.md#planetleveltoanimationspeed) +- [sinusoidalAnimation](Backend_Utils_Animation.md#sinusoidalanimation) + +## Functions + +### constantAnimation + +▸ **constantAnimation**(`constant`): `DFAnimation` + +#### Parameters + +| Name | Type | +| :--------- | :------- | +| `constant` | `number` | + +#### Returns + +`DFAnimation` + +--- + +### easeInAnimation + +▸ **easeInAnimation**(`durationMs`, `delayMs?`): `DFAnimation` + +#### Parameters + +| Name | Type | +| :----------- | :------- | +| `durationMs` | `number` | +| `delayMs?` | `number` | + +#### Returns + +`DFAnimation` + +--- + +### emojiEaseOutAnimation + +▸ **emojiEaseOutAnimation**(`durationMs`, `emoji`): `DFStatefulAnimation`<`string`\> + +#### Parameters + +| Name | Type | +| :----------- | :------- | +| `durationMs` | `number` | +| `emoji` | `string` | + +#### Returns + +`DFStatefulAnimation`<`string`\> + +--- + +### planetLevelToAnimationSpeed + +▸ **planetLevelToAnimationSpeed**(`level`): `number` + +#### Parameters + +| Name | Type | +| :------ | :------------ | +| `level` | `PlanetLevel` | + +#### Returns + +`number` + +--- + +### sinusoidalAnimation + +▸ **sinusoidalAnimation**(`rps`): `DFAnimation` + +#### Parameters + +| Name | Type | +| :---- | :------- | +| `rps` | `number` | + +#### Returns + +`DFAnimation` diff --git a/docs/modules/Backend_Utils_Coordinates.md b/docs/modules/Backend_Utils_Coordinates.md new file mode 100644 index 00000000..00e311a1 --- /dev/null +++ b/docs/modules/Backend_Utils_Coordinates.md @@ -0,0 +1,99 @@ +# Module: Backend/Utils/Coordinates + +## Table of contents + +### Functions + +- [coordsEqual](Backend_Utils_Coordinates.md#coordsequal) +- [distL2](Backend_Utils_Coordinates.md#distl2) +- [normalizeVector](Backend_Utils_Coordinates.md#normalizevector) +- [scaleVector](Backend_Utils_Coordinates.md#scalevector) +- [vectorLength](Backend_Utils_Coordinates.md#vectorlength) + +## Functions + +### coordsEqual + +▸ **coordsEqual**(`a`, `b`): `boolean` + +#### Parameters + +| Name | Type | +| :--- | :------------ | +| `a` | `WorldCoords` | +| `b` | `WorldCoords` | + +#### Returns + +`boolean` + +--- + +### distL2 + +▸ **distL2**(`a`, `b`): `number` + +#### Parameters + +| Name | Type | +| :--- | :------------------------------ | +| `a` | `WorldCoords` \| `CanvasCoords` | +| `b` | `WorldCoords` \| `CanvasCoords` | + +#### Returns + +`number` + +--- + +### normalizeVector + +▸ **normalizeVector**(`a`): `WorldCoords` + +#### Parameters + +| Name | Type | +| :--- | :------------ | +| `a` | `WorldCoords` | + +#### Returns + +`WorldCoords` + +--- + +### scaleVector + +▸ **scaleVector**(`a`, `k`): `Object` + +#### Parameters + +| Name | Type | +| :--- | :------------ | +| `a` | `WorldCoords` | +| `k` | `number` | + +#### Returns + +`Object` + +| Name | Type | +| :--- | :------- | +| `x` | `number` | +| `y` | `number` | + +--- + +### vectorLength + +▸ **vectorLength**(`a`): `number` + +#### Parameters + +| Name | Type | +| :--- | :------------------------------ | +| `a` | `WorldCoords` \| `CanvasCoords` | + +#### Returns + +`number` diff --git a/docs/modules/Backend_Utils_SnarkArgsHelper.md b/docs/modules/Backend_Utils_SnarkArgsHelper.md new file mode 100644 index 00000000..6a5b8411 --- /dev/null +++ b/docs/modules/Backend_Utils_SnarkArgsHelper.md @@ -0,0 +1,7 @@ +# Module: Backend/Utils/SnarkArgsHelper + +## Table of contents + +### Classes + +- [default](../classes/Backend_Utils_SnarkArgsHelper.default.md) diff --git a/docs/modules/Backend_Utils_Utils.md b/docs/modules/Backend_Utils_Utils.md new file mode 100644 index 00000000..9fe49170 --- /dev/null +++ b/docs/modules/Backend_Utils_Utils.md @@ -0,0 +1,252 @@ +# Module: Backend/Utils/Utils + +## Table of contents + +### Variables + +- [ONE_DAY](Backend_Utils_Utils.md#one_day) + +### Functions + +- [getFormatProp](Backend_Utils_Utils.md#getformatprop) +- [getOwnerColor](Backend_Utils_Utils.md#getownercolor) +- [getPlanetMaxRank](Backend_Utils_Utils.md#getplanetmaxrank) +- [getPlanetRank](Backend_Utils_Utils.md#getplanetrank) +- [getPlanetShortHash](Backend_Utils_Utils.md#getplanetshorthash) +- [getPlayerColor](Backend_Utils_Utils.md#getplayercolor) +- [getPlayerShortHash](Backend_Utils_Utils.md#getplayershorthash) +- [getRandomActionId](Backend_Utils_Utils.md#getrandomactionid) +- [getUpgradeStat](Backend_Utils_Utils.md#getupgradestat) +- [hexifyBigIntNestedArray](Backend_Utils_Utils.md#hexifybigintnestedarray) +- [hslStr](Backend_Utils_Utils.md#hslstr) +- [isFullRank](Backend_Utils_Utils.md#isfullrank) +- [titleCase](Backend_Utils_Utils.md#titlecase) +- [upgradeName](Backend_Utils_Utils.md#upgradename) + +## Variables + +### ONE_DAY + +• `Const` **ONE_DAY**: `number` + +## Functions + +### getFormatProp + +▸ **getFormatProp**(`planet`, `prop`): `string` + +#### Parameters + +| Name | Type | +| :------- | :---------------------- | +| `planet` | `undefined` \| `Planet` | +| `prop` | `string` | + +#### Returns + +`string` + +--- + +### getOwnerColor + +▸ **getOwnerColor**(`planet`): `string` + +#### Parameters + +| Name | Type | +| :------- | :------- | +| `planet` | `Planet` | + +#### Returns + +`string` + +--- + +### getPlanetMaxRank + +▸ **getPlanetMaxRank**(`planet`): `number` + +#### Parameters + +| Name | Type | +| :------- | :---------------------- | +| `planet` | `undefined` \| `Planet` | + +#### Returns + +`number` + +--- + +### getPlanetRank + +▸ **getPlanetRank**(`planet`): `number` + +#### Parameters + +| Name | Type | +| :------- | :---------------------- | +| `planet` | `undefined` \| `Planet` | + +#### Returns + +`number` + +--- + +### getPlanetShortHash + +▸ **getPlanetShortHash**(`planet`): `string` + +#### Parameters + +| Name | Type | +| :------- | :---------------------- | +| `planet` | `undefined` \| `Planet` | + +#### Returns + +`string` + +--- + +### getPlayerColor + +▸ **getPlayerColor**(`player`): `string` + +#### Parameters + +| Name | Type | +| :------- | :----------- | +| `player` | `EthAddress` | + +#### Returns + +`string` + +--- + +### getPlayerShortHash + +▸ **getPlayerShortHash**(`address`): `string` + +#### Parameters + +| Name | Type | +| :-------- | :----------- | +| `address` | `EthAddress` | + +#### Returns + +`string` + +--- + +### getRandomActionId + +▸ **getRandomActionId**(): `string` + +#### Returns + +`string` + +--- + +### getUpgradeStat + +▸ **getUpgradeStat**(`upgrade`, `stat`): `number` + +#### Parameters + +| Name | Type | +| :-------- | :-------------------------------------------------------- | +| `upgrade` | `Upgrade` | +| `stat` | [`StatIdx`](../enums/types_global_GlobalTypes.StatIdx.md) | + +#### Returns + +`number` + +--- + +### hexifyBigIntNestedArray + +▸ **hexifyBigIntNestedArray**(`arr`): `NestedStringArray` + +#### Parameters + +| Name | Type | +| :---- | :------------------ | +| `arr` | `NestedBigIntArray` | + +#### Returns + +`NestedStringArray` + +--- + +### hslStr + +▸ **hslStr**(`h`, `s`, `l`): `string` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `h` | `number` | +| `s` | `number` | +| `l` | `number` | + +#### Returns + +`string` + +--- + +### isFullRank + +▸ **isFullRank**(`planet`): `boolean` + +#### Parameters + +| Name | Type | +| :------- | :---------------------- | +| `planet` | `undefined` \| `Planet` | + +#### Returns + +`boolean` + +--- + +### titleCase + +▸ **titleCase**(`title`): `string` + +#### Parameters + +| Name | Type | +| :------ | :------- | +| `title` | `string` | + +#### Returns + +`string` + +--- + +### upgradeName + +▸ **upgradeName**(`branchName`): `string` + +#### Parameters + +| Name | Type | +| :----------- | :------------------ | +| `branchName` | `UpgradeBranchName` | + +#### Returns + +`string` diff --git a/docs/modules/Backend_Utils_WhitelistSnarkArgsHelper.md b/docs/modules/Backend_Utils_WhitelistSnarkArgsHelper.md new file mode 100644 index 00000000..4796ea0c --- /dev/null +++ b/docs/modules/Backend_Utils_WhitelistSnarkArgsHelper.md @@ -0,0 +1,30 @@ +# Module: Backend/Utils/WhitelistSnarkArgsHelper + +## Table of contents + +### Functions + +- [getWhitelistArgs](Backend_Utils_WhitelistSnarkArgsHelper.md#getwhitelistargs) + +## Functions + +### getWhitelistArgs + +▸ **getWhitelistArgs**(`key`, `recipient`, `terminal?`): `Promise`<`WhitelistSnarkContractCallArgs`\> + +Helper method for generating whitelist SNARKS. +This is separate from the existing {@link SnarkArgsHelper} +because whitelist txs require far less setup compared +to SNARKS that are sent in context of the game. + +#### Parameters + +| Name | Type | +| :---------- | :-------------------------------------------------------------------------------------------------------------- | +| `key` | `BigInteger` | +| `recipient` | `EthAddress` | +| `terminal?` | `MutableRefObject`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\> | + +#### Returns + +`Promise`<`WhitelistSnarkContractCallArgs`\> diff --git a/docs/modules/Backend_Utils_Wrapper.md b/docs/modules/Backend_Utils_Wrapper.md new file mode 100644 index 00000000..21585565 --- /dev/null +++ b/docs/modules/Backend_Utils_Wrapper.md @@ -0,0 +1,7 @@ +# Module: Backend/Utils/Wrapper + +## Table of contents + +### Classes + +- [Wrapper](../classes/Backend_Utils_Wrapper.Wrapper.md) diff --git a/docs/modules/Frontend_Components_AncientLabel.md b/docs/modules/Frontend_Components_AncientLabel.md new file mode 100644 index 00000000..1be5b560 --- /dev/null +++ b/docs/modules/Frontend_Components_AncientLabel.md @@ -0,0 +1,38 @@ +# Module: Frontend/Components/AncientLabel + +## Table of contents + +### Variables + +- [ancientAnim](Frontend_Components_AncientLabel.md#ancientanim) + +### Functions + +- [AncientLabel](Frontend_Components_AncientLabel.md#ancientlabel) +- [AncientLabelAnim](Frontend_Components_AncientLabel.md#ancientlabelanim) + +## Variables + +### ancientAnim + +• `Const` **ancientAnim**: `FlattenSimpleInterpolation` + +## Functions + +### AncientLabel + +▸ **AncientLabel**(): `Element` + +#### Returns + +`Element` + +--- + +### AncientLabelAnim + +▸ **AncientLabelAnim**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_ArtifactImage.md b/docs/modules/Frontend_Components_ArtifactImage.md new file mode 100644 index 00000000..bdae2890 --- /dev/null +++ b/docs/modules/Frontend_Components_ArtifactImage.md @@ -0,0 +1,37 @@ +# Module: Frontend/Components/ArtifactImage + +## Table of contents + +### Variables + +- [ARTIFACT_URL](Frontend_Components_ArtifactImage.md#artifact_url) + +### Functions + +- [ArtifactImage](Frontend_Components_ArtifactImage.md#artifactimage) + +## Variables + +### ARTIFACT_URL + +• `Const` **ARTIFACT_URL**: `"https://d2wspbczt15cqu.cloudfront.net/v0.6.0-artifacts/"` + +## Functions + +### ArtifactImage + +▸ **ArtifactImage**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :------------------ | +| `__namedParameters` | `Object` | +| `__namedParameters.artifact` | `Artifact` | +| `__namedParameters.bgColor?` | `ArtifactFileColor` | +| `__namedParameters.size` | `number` | +| `__namedParameters.thumb?` | `boolean` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_BiomeAnims.md b/docs/modules/Frontend_Components_BiomeAnims.md new file mode 100644 index 00000000..6b6374a3 --- /dev/null +++ b/docs/modules/Frontend_Components_BiomeAnims.md @@ -0,0 +1,34 @@ +# Module: Frontend/Components/BiomeAnims + +## Table of contents + +### Variables + +- [burnAnim](Frontend_Components_BiomeAnims.md#burnanim) +- [icyAnim](Frontend_Components_BiomeAnims.md#icyanim) +- [shakeAnim](Frontend_Components_BiomeAnims.md#shakeanim) +- [wiggle](Frontend_Components_BiomeAnims.md#wiggle) + +## Variables + +### burnAnim + +• `Const` **burnAnim**: `FlattenSimpleInterpolation` + +--- + +### icyAnim + +• `Const` **icyAnim**: `FlattenSimpleInterpolation` + +--- + +### shakeAnim + +• `Const` **shakeAnim**: `FlattenSimpleInterpolation` + +--- + +### wiggle + +• `Const` **wiggle**: `Keyframes` diff --git a/docs/modules/Frontend_Components_Btn.md b/docs/modules/Frontend_Components_Btn.md new file mode 100644 index 00000000..0439a9c5 --- /dev/null +++ b/docs/modules/Frontend_Components_Btn.md @@ -0,0 +1,26 @@ +# Module: Frontend/Components/Btn + +## Table of contents + +### Classes + +- [DarkForestButton](../classes/Frontend_Components_Btn.DarkForestButton.md) +- [DarkForestShortcutButton](../classes/Frontend_Components_Btn.DarkForestShortcutButton.md) +- [ShortcutPressedEvent](../classes/Frontend_Components_Btn.ShortcutPressedEvent.md) + +### Variables + +- [Btn](Frontend_Components_Btn.md#btn) +- [ShortcutBtn](Frontend_Components_Btn.md#shortcutbtn) + +## Variables + +### Btn + +• `Const` **Btn**: `ForwardRefExoticComponent`<`Partial`<`Omit`<[`DarkForestButton`](../classes/Frontend_Components_Btn.DarkForestButton.md), `"children"`\>\> & `Events`<{ `onClick`: (`evt`: `Event` & `MouseEvent`<[`DarkForestButton`](../classes/Frontend_Components_Btn.DarkForestButton.md), `MouseEvent`\>) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> + +--- + +### ShortcutBtn + +• `Const` **ShortcutBtn**: `ForwardRefExoticComponent`<`Partial`<`Omit`<[`DarkForestShortcutButton`](../classes/Frontend_Components_Btn.DarkForestShortcutButton.md), `"children"`\>\> & `Events`<{ `onClick`: (`evt`: `Event` & `MouseEvent`<[`DarkForestShortcutButton`](../classes/Frontend_Components_Btn.DarkForestShortcutButton.md), `MouseEvent`\>) => `void` ; `onShortcutPressed`: (`evt`: [`ShortcutPressedEvent`](../classes/Frontend_Components_Btn.ShortcutPressedEvent.md)) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> diff --git a/docs/modules/Frontend_Components_Button.md b/docs/modules/Frontend_Components_Button.md new file mode 100644 index 00000000..9d8eaf44 --- /dev/null +++ b/docs/modules/Frontend_Components_Button.md @@ -0,0 +1,23 @@ +# Module: Frontend/Components/Button + +## Table of contents + +### Functions + +- [default](Frontend_Components_Button.md#default) + +## Functions + +### default + +▸ **default**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------ | +| `__namedParameters` | `ButtonProps` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_CapturePlanetButton.md b/docs/modules/Frontend_Components_CapturePlanetButton.md new file mode 100644 index 00000000..69384ecd --- /dev/null +++ b/docs/modules/Frontend_Components_CapturePlanetButton.md @@ -0,0 +1,24 @@ +# Module: Frontend/Components/CapturePlanetButton + +## Table of contents + +### Functions + +- [CapturePlanetButton](Frontend_Components_CapturePlanetButton.md#captureplanetbutton) + +## Functions + +### CapturePlanetButton + +▸ **CapturePlanetButton**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------------- | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planetWrapper` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_CoreUI.md b/docs/modules/Frontend_Components_CoreUI.md new file mode 100644 index 00000000..1084c071 --- /dev/null +++ b/docs/modules/Frontend_Components_CoreUI.md @@ -0,0 +1,306 @@ +# Module: Frontend/Components/CoreUI + +## Table of contents + +### Variables + +- [AlignCenterHorizontally](Frontend_Components_CoreUI.md#aligncenterhorizontally) +- [AlignCenterVertically](Frontend_Components_CoreUI.md#aligncentervertically) +- [BorderlessPane](Frontend_Components_CoreUI.md#borderlesspane) +- [Bottom](Frontend_Components_CoreUI.md#bottom) +- [CenterBackgroundSubtext](Frontend_Components_CoreUI.md#centerbackgroundsubtext) +- [CenterRow](Frontend_Components_CoreUI.md#centerrow) +- [Display](Frontend_Components_CoreUI.md#display) +- [DontShrink](Frontend_Components_CoreUI.md#dontshrink) +- [EmSpacer](Frontend_Components_CoreUI.md#emspacer) +- [Emphasized](Frontend_Components_CoreUI.md#emphasized) +- [Expand](Frontend_Components_CoreUI.md#expand) +- [FloatRight](Frontend_Components_CoreUI.md#floatright) +- [FullHeight](Frontend_Components_CoreUI.md#fullheight) +- [HeaderText](Frontend_Components_CoreUI.md#headertext) +- [Hidden](Frontend_Components_CoreUI.md#hidden) +- [InlineBlock](Frontend_Components_CoreUI.md#inlineblock) +- [MaxWidth](Frontend_Components_CoreUI.md#maxwidth) +- [Padded](Frontend_Components_CoreUI.md#padded) +- [PluginElements](Frontend_Components_CoreUI.md#pluginelements) +- [Section](Frontend_Components_CoreUI.md#section) +- [SectionHeader](Frontend_Components_CoreUI.md#sectionheader) +- [Select](Frontend_Components_CoreUI.md#select) +- [Separator](Frontend_Components_CoreUI.md#separator) +- [Spacer](Frontend_Components_CoreUI.md#spacer) +- [Spread](Frontend_Components_CoreUI.md#spread) +- [SpreadApart](Frontend_Components_CoreUI.md#spreadapart) +- [TextButton](Frontend_Components_CoreUI.md#textbutton) +- [Title](Frontend_Components_CoreUI.md#title) +- [Truncate](Frontend_Components_CoreUI.md#truncate) +- [Underline](Frontend_Components_CoreUI.md#underline) + +### Functions + +- [Link](Frontend_Components_CoreUI.md#link) +- [SelectFrom](Frontend_Components_CoreUI.md#selectfrom) +- [VerticalSplit](Frontend_Components_CoreUI.md#verticalsplit) + +## Variables + +### AlignCenterHorizontally + +• `Const` **AlignCenterHorizontally**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +Fills parent width, aligns children horizontally in the center. + +--- + +### AlignCenterVertically + +• `Const` **AlignCenterVertically**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### BorderlessPane + +• `Const` **BorderlessPane**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### Bottom + +• `Const` **Bottom**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### CenterBackgroundSubtext + +• `Const` **CenterBackgroundSubtext**: `StyledComponent`<`"div"`, `any`, { `height`: `string` ; `width`: `string` }, `never`\> + +A box which centers some darkened text. Useful for displaying +_somthing_ instead of empty space, if there isn't something to +be displayed. Think of it as a placeholder. + +--- + +### CenterRow + +• `Const` **CenterRow**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### Display + +• `Const` **Display**: `StyledComponent`<`"div"`, `any`, { `visible?`: `boolean` }, `never`\> + +--- + +### DontShrink + +• `Const` **DontShrink**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +Don't shrink in a flexbox. + +--- + +### EmSpacer + +• `Const` **EmSpacer**: `StyledComponent`<`"div"`, `any`, { `height?`: `number` ; `width?`: `number` }, `never`\> + +Inline block rectangle, measured in ems, default 1em by 1em. + +--- + +### Emphasized + +• `Const` **Emphasized**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Expand + +• `Const` **Expand**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +Expands to fill space in a flexbox. + +--- + +### FloatRight + +• `Const` **FloatRight**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### FullHeight + +• `Const` **FullHeight**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### HeaderText + +• `Const` **HeaderText**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### Hidden + +• `Const` **Hidden**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### InlineBlock + +• `Const` **InlineBlock**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### MaxWidth + +• `Const` **MaxWidth**: `StyledComponent`<`"div"`, `any`, { `width`: `string` }, `never`\> + +--- + +### Padded + +• `Const` **Padded**: `StyledComponent`<`"div"`, `any`, { `bottom?`: `string` ; `left?`: `string` ; `right?`: `string` ; `top?`: `string` }, `never`\> + +--- + +### PluginElements + +• `Const` **PluginElements**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +The container element into which a plugin renders its html elements. +Contains styles for child elements so that plugins can use UI +that is consistent with the rest of Dark Forest's UI. Keeping this up +to date will be an ongoing challange, but there's probably some better +way to do this. + +--- + +### Section + +• `Const` **Section**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### SectionHeader + +• `Const` **SectionHeader**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### Select + +• `Const` **Select**: `StyledComponent`<`"select"`, `any`, { `wide?`: `boolean` }, `never`\> + +--- + +### Separator + +• `Const` **Separator**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### Spacer + +• `Const` **Spacer**: `StyledComponent`<`"div"`, `any`, { `height?`: `number` ; `width?`: `number` }, `never`\> + +--- + +### Spread + +• `Const` **Spread**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +Expands to fit the width of container. Is itself a flex box that spreads out its children +horizontally. + +--- + +### SpreadApart + +• `Const` **SpreadApart**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +Expands to fit the width of container. Is itself a flex box that spreads out its children +horizontally. + +--- + +### TextButton + +• `Const` **TextButton**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Title + +• `Const` **Title**: `StyledComponent`<`"div"`, `any`, { `maxWidth?`: `string` }, `never`\> + +--- + +### Truncate + +• `Const` **Truncate**: `StyledComponent`<`"div"`, `any`, { `maxWidth?`: `string` }, `never`\> + +--- + +### Underline + +• `Const` **Underline**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +## Functions + +### Link + +▸ **Link**(`props`): `Element` + +This is the link that all core ui in Dark Forest should use. Please! + +#### Parameters + +| Name | Type | +| :------ | :-------------------------------------------------------------------------------------------------------------------------------------------- | +| `props` | { `children`: `ReactNode` ; `color?`: `string` ; `openInThisTab?`: `boolean` ; `to?`: `string` } & `HtmlHTMLAttributes`<`HTMLAnchorElement`\> | + +#### Returns + +`Element` + +--- + +### SelectFrom + +▸ **SelectFrom**(`__namedParameters`): `Element` + +Controllable input that allows the user to select from one of the +given string values. + +#### Parameters + +| Name | Type | +| :--------------------------- | :---------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.labels` | `string`[] | +| `__namedParameters.style?` | `CSSProperties` | +| `__namedParameters.value` | `string` | +| `__namedParameters.values` | `string`[] | +| `__namedParameters.wide?` | `boolean` | +| `__namedParameters.setValue` | (`value`: `string`) => `void` | + +#### Returns + +`Element` + +--- + +### VerticalSplit + +▸ **VerticalSplit**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.children` | [`ReactNode`, `ReactNode`] | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Corner.md b/docs/modules/Frontend_Components_Corner.md new file mode 100644 index 00000000..cfd9398b --- /dev/null +++ b/docs/modules/Frontend_Components_Corner.md @@ -0,0 +1,23 @@ +# Module: Frontend/Components/Corner + +## Table of contents + +### Functions + +- [Corner](Frontend_Components_Corner.md#corner) + +## Functions + +### Corner + +▸ **Corner**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------ | +| `__namedParameters` | `CornerProps` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_DisplayGasPrices.md b/docs/modules/Frontend_Components_DisplayGasPrices.md new file mode 100644 index 00000000..4cc86618 --- /dev/null +++ b/docs/modules/Frontend_Components_DisplayGasPrices.md @@ -0,0 +1,24 @@ +# Module: Frontend/Components/DisplayGasPrices + +## Table of contents + +### Functions + +- [DisplayGasPrices](Frontend_Components_DisplayGasPrices.md#displaygasprices) + +## Functions + +### DisplayGasPrices + +▸ **DisplayGasPrices**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :----------------------------- | :---------- | +| `__namedParameters` | `Object` | +| `__namedParameters.gasPrices?` | `GasPrices` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Email.md b/docs/modules/Frontend_Components_Email.md new file mode 100644 index 00000000..0a8bc013 --- /dev/null +++ b/docs/modules/Frontend_Components_Email.md @@ -0,0 +1,28 @@ +# Module: Frontend/Components/Email + +## Table of contents + +### Enumerations + +- [EmailCTAMode](../enums/Frontend_Components_Email.EmailCTAMode.md) + +### Functions + +- [EmailCTA](Frontend_Components_Email.md#emailcta) + +## Functions + +### EmailCTA + +▸ **EmailCTA**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :----------------------- | :------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.mode` | [`EmailCTAMode`](../enums/Frontend_Components_Email.EmailCTAMode.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_GameLandingPageComponents.md b/docs/modules/Frontend_Components_GameLandingPageComponents.md new file mode 100644 index 00000000..7d2b7a49 --- /dev/null +++ b/docs/modules/Frontend_Components_GameLandingPageComponents.md @@ -0,0 +1,90 @@ +# Module: Frontend/Components/GameLandingPageComponents + +## Table of contents + +### Enumerations + +- [InitRenderState](../enums/Frontend_Components_GameLandingPageComponents.InitRenderState.md) + +### Variables + +- [Hidden](Frontend_Components_GameLandingPageComponents.md#hidden) + +### Functions + +- [GameWindowWrapper](Frontend_Components_GameLandingPageComponents.md#gamewindowwrapper) +- [TerminalToggler](Frontend_Components_GameLandingPageComponents.md#terminaltoggler) +- [TerminalWrapper](Frontend_Components_GameLandingPageComponents.md#terminalwrapper) +- [Wrapper](Frontend_Components_GameLandingPageComponents.md#wrapper) + +## Variables + +### Hidden + +• `Const` **Hidden**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +## Functions + +### GameWindowWrapper + +▸ **GameWindowWrapper**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :-------------------- | +| `__namedParameters` | `LandingWrapperProps` | + +#### Returns + +`Element` + +--- + +### TerminalToggler + +▸ **TerminalToggler**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------------- | :---------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.setTerminalEnabled` | `Dispatch`<`SetStateAction`<`boolean`\>\> | +| `__namedParameters.terminalEnabled` | `boolean` | + +#### Returns + +`Element` + +--- + +### TerminalWrapper + +▸ **TerminalWrapper**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :-------------------- | +| `__namedParameters` | `LandingWrapperProps` | + +#### Returns + +`Element` + +--- + +### Wrapper + +▸ **Wrapper**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :-------------------- | +| `__namedParameters` | `LandingWrapperProps` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_GameWindowComponents.md b/docs/modules/Frontend_Components_GameWindowComponents.md new file mode 100644 index 00000000..bca88696 --- /dev/null +++ b/docs/modules/Frontend_Components_GameWindowComponents.md @@ -0,0 +1,66 @@ +# Module: Frontend/Components/GameWindowComponents + +## Table of contents + +### Type aliases + +- [PaneProps](Frontend_Components_GameWindowComponents.md#paneprops) + +### Variables + +- [CanvasContainer](Frontend_Components_GameWindowComponents.md#canvascontainer) +- [CanvasWrapper](Frontend_Components_GameWindowComponents.md#canvaswrapper) +- [MainWindow](Frontend_Components_GameWindowComponents.md#mainwindow) +- [StyledPane](Frontend_Components_GameWindowComponents.md#styledpane) +- [UpperLeft](Frontend_Components_GameWindowComponents.md#upperleft) +- [WindowWrapper](Frontend_Components_GameWindowComponents.md#windowwrapper) + +## Type aliases + +### PaneProps + +Ƭ **PaneProps**: `Object` + +#### Type declaration + +| Name | Type | +| :------------- | :---------------------------------------------------- | +| `children` | `React.ReactNode` | +| `headerItems?` | `React.ReactNode` | +| `title` | `string` \| (`small`: `boolean`) => `React.ReactNode` | + +## Variables + +### CanvasContainer + +• `Const` **CanvasContainer**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### CanvasWrapper + +• `Const` **CanvasWrapper**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### MainWindow + +• `Const` **MainWindow**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### StyledPane + +• `Const` **StyledPane**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### UpperLeft + +• `Const` **UpperLeft**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +--- + +### WindowWrapper + +• `Const` **WindowWrapper**: `StyledComponent`<`"div"`, `any`, {}, `never`\> diff --git a/docs/modules/Frontend_Components_Icons.md b/docs/modules/Frontend_Components_Icons.md new file mode 100644 index 00000000..2cf45fc7 --- /dev/null +++ b/docs/modules/Frontend_Components_Icons.md @@ -0,0 +1,648 @@ +# Module: Frontend/Components/Icons + +## Table of contents + +### Type aliases + +- [IconType](Frontend_Components_Icons.md#icontype) + +### Variables + +- [Icon](Frontend_Components_Icons.md#icon) +- [IconType](Frontend_Components_Icons.md#icontype) + +### Functions + +- [ArtifactFound](Frontend_Components_Icons.md#artifactfound) +- [ArtifactProspected](Frontend_Components_Icons.md#artifactprospected) +- [BranchIcon](Frontend_Components_Icons.md#branchicon) +- [FoundCorrupted](Frontend_Components_Icons.md#foundcorrupted) +- [FoundDeadSpace](Frontend_Components_Icons.md#founddeadspace) +- [FoundDeepSpace](Frontend_Components_Icons.md#founddeepspace) +- [FoundDesert](Frontend_Components_Icons.md#founddesert) +- [FoundForest](Frontend_Components_Icons.md#foundforest) +- [FoundGrassland](Frontend_Components_Icons.md#foundgrassland) +- [FoundIce](Frontend_Components_Icons.md#foundice) +- [FoundLava](Frontend_Components_Icons.md#foundlava) +- [FoundOcean](Frontend_Components_Icons.md#foundocean) +- [FoundPirates](Frontend_Components_Icons.md#foundpirates) +- [FoundRuins](Frontend_Components_Icons.md#foundruins) +- [FoundSilver](Frontend_Components_Icons.md#foundsilver) +- [FoundSpace](Frontend_Components_Icons.md#foundspace) +- [FoundSpacetimeRip](Frontend_Components_Icons.md#foundspacetimerip) +- [FoundSwamp](Frontend_Components_Icons.md#foundswamp) +- [FoundTradingPost](Frontend_Components_Icons.md#foundtradingpost) +- [FoundTundra](Frontend_Components_Icons.md#foundtundra) +- [FoundWasteland](Frontend_Components_Icons.md#foundwasteland) +- [Generic](Frontend_Components_Icons.md#generic) +- [MetPlayer](Frontend_Components_Icons.md#metplayer) +- [PlanetAttacked](Frontend_Components_Icons.md#planetattacked) +- [PlanetConquered](Frontend_Components_Icons.md#planetconquered) +- [PlanetLost](Frontend_Components_Icons.md#planetlost) +- [Quasar](Frontend_Components_Icons.md#quasar) +- [RankIcon](Frontend_Components_Icons.md#rankicon) +- [StatIcon](Frontend_Components_Icons.md#staticon) +- [TxAccepted](Frontend_Components_Icons.md#txaccepted) +- [TxConfirmed](Frontend_Components_Icons.md#txconfirmed) +- [TxDeclined](Frontend_Components_Icons.md#txdeclined) +- [TxInitialized](Frontend_Components_Icons.md#txinitialized) + +## Type aliases + +### IconType + +Ƭ **IconType**: `Abstract`<`string`, `"IconType"`\> + +## Variables + +### Icon + +• `Const` **Icon**: `ForwardRefExoticComponent`<`Partial`<`Omit`<`DarkForestIcon`, `"children"`\>\> & `Events`<`unknown`\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> + +--- + +### IconType + +• **IconType**: `Object` + +#### Type declaration + +| Name | Type | +| :------------- | :-------------------------------------------------- | +| `Activate` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Artifact` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Broadcast` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Capturable` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Check` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Deactivate` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Defense` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Deposit` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Destroyed` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `DoubleArrows` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Energy` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `EnergyGrowth` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `FastForward` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Hat` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Help` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Invadable` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Leaderboard` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Lock` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `MaxLevel` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Pause` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Pirates` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Planet` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `PlanetDex` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Play` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Plugin` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Range` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `RankFour` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `RankMax` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `RankOne` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `RankThree` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `RankTwo` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Refresh` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `RightArrow` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Settings` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Share` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Silver` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `SilverGrowth` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `SilverProd` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Sparkles` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Speed` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Target` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `TrashCan` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Twitter` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Upgrade` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `Withdraw` | [`IconType`](Frontend_Components_Icons.md#icontype) | +| `X` | [`IconType`](Frontend_Components_Icons.md#icontype) | + +## Functions + +### ArtifactFound + +▸ **ArtifactFound**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### ArtifactProspected + +▸ **ArtifactProspected**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### BranchIcon + +▸ **BranchIcon**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :------- | +| `__namedParameters` | `Object` | +| `__namedParameters.branch` | `number` | + +#### Returns + +`Element` + +--- + +### FoundCorrupted + +▸ **FoundCorrupted**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundDeadSpace + +▸ **FoundDeadSpace**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundDeepSpace + +▸ **FoundDeepSpace**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundDesert + +▸ **FoundDesert**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundForest + +▸ **FoundForest**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundGrassland + +▸ **FoundGrassland**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundIce + +▸ **FoundIce**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundLava + +▸ **FoundLava**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundOcean + +▸ **FoundOcean**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundPirates + +▸ **FoundPirates**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundRuins + +▸ **FoundRuins**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundSilver + +▸ **FoundSilver**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundSpace + +▸ **FoundSpace**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundSpacetimeRip + +▸ **FoundSpacetimeRip**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundSwamp + +▸ **FoundSwamp**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundTradingPost + +▸ **FoundTradingPost**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundTundra + +▸ **FoundTundra**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### FoundWasteland + +▸ **FoundWasteland**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### Generic + +▸ **Generic**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### MetPlayer + +▸ **MetPlayer**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### PlanetAttacked + +▸ **PlanetAttacked**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### PlanetConquered + +▸ **PlanetConquered**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### PlanetLost + +▸ **PlanetLost**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### Quasar + +▸ **Quasar**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### RankIcon + +▸ **RankIcon**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### StatIcon + +▸ **StatIcon**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :----------------------- | :-------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.stat` | [`StatIdx`](../enums/types_global_GlobalTypes.StatIdx.md) | + +#### Returns + +`Element` + +--- + +### TxAccepted + +▸ **TxAccepted**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### TxConfirmed + +▸ **TxConfirmed**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### TxDeclined + +▸ **TxDeclined**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` + +--- + +### TxInitialized + +▸ **TxInitialized**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------- | +| `__namedParameters` | `AlertIcon` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Input.md b/docs/modules/Frontend_Components_Input.md new file mode 100644 index 00000000..db8b83b6 --- /dev/null +++ b/docs/modules/Frontend_Components_Input.md @@ -0,0 +1,41 @@ +# Module: Frontend/Components/Input + +## Table of contents + +### Classes + +- [DarkForestCheckbox](../classes/Frontend_Components_Input.DarkForestCheckbox.md) +- [DarkForestColorInput](../classes/Frontend_Components_Input.DarkForestColorInput.md) +- [DarkForestNumberInput](../classes/Frontend_Components_Input.DarkForestNumberInput.md) +- [DarkForestTextInput](../classes/Frontend_Components_Input.DarkForestTextInput.md) + +### Variables + +- [Checkbox](Frontend_Components_Input.md#checkbox) +- [ColorInput](Frontend_Components_Input.md#colorinput) +- [NumberInput](Frontend_Components_Input.md#numberinput) +- [TextInput](Frontend_Components_Input.md#textinput) + +## Variables + +### Checkbox + +• `Const` **Checkbox**: `ForwardRefExoticComponent`<`Partial`<`Omit`<[`DarkForestCheckbox`](../classes/Frontend_Components_Input.DarkForestCheckbox.md), `"children"`\>\> & `Events`<{ `onChange`: (`e`: `Event` & `ChangeEvent`<[`DarkForestCheckbox`](../classes/Frontend_Components_Input.DarkForestCheckbox.md)\>) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> + +--- + +### ColorInput + +• `Const` **ColorInput**: `ForwardRefExoticComponent`<`Partial`<`Omit`<[`DarkForestColorInput`](../classes/Frontend_Components_Input.DarkForestColorInput.md), `"children"`\>\> & `Events`<{ `onChange`: (`e`: `Event` & `ChangeEvent`<[`DarkForestColorInput`](../classes/Frontend_Components_Input.DarkForestColorInput.md)\>) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> + +--- + +### NumberInput + +• `Const` **NumberInput**: `ForwardRefExoticComponent`<`Partial`<`Omit`<[`DarkForestNumberInput`](../classes/Frontend_Components_Input.DarkForestNumberInput.md), `"children"`\>\> & `Events`<{ `onChange`: (`e`: `Event` & `ChangeEvent`<[`DarkForestNumberInput`](../classes/Frontend_Components_Input.DarkForestNumberInput.md)\>) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> + +--- + +### TextInput + +• `Const` **TextInput**: `ForwardRefExoticComponent`<`Partial`<`Omit`<[`DarkForestTextInput`](../classes/Frontend_Components_Input.DarkForestTextInput.md), `"children"`\>\> & `Events`<{ `onBlur`: (`e`: `Event`) => `void` ; `onChange`: (`e`: `Event` & `ChangeEvent`<[`DarkForestTextInput`](../classes/Frontend_Components_Input.DarkForestTextInput.md)\>) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> diff --git a/docs/modules/Frontend_Components_Labels_ArtifactLabels.md b/docs/modules/Frontend_Components_Labels_ArtifactLabels.md new file mode 100644 index 00000000..84b9e0e7 --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_ArtifactLabels.md @@ -0,0 +1,124 @@ +# Module: Frontend/Components/Labels/ArtifactLabels + +## Table of contents + +### Variables + +- [StyledArtifactRarityLabel](Frontend_Components_Labels_ArtifactLabels.md#styledartifactraritylabel) + +### Functions + +- [ArtifactBiomeText](Frontend_Components_Labels_ArtifactLabels.md#artifactbiometext) +- [ArtifactRarityBiomeTypeText](Frontend_Components_Labels_ArtifactLabels.md#artifactraritybiometypetext) +- [ArtifactRarityLabel](Frontend_Components_Labels_ArtifactLabels.md#artifactraritylabel) +- [ArtifactRarityLabelAnim](Frontend_Components_Labels_ArtifactLabels.md#artifactraritylabelanim) +- [ArtifactRarityText](Frontend_Components_Labels_ArtifactLabels.md#artifactraritytext) +- [ArtifactTypeText](Frontend_Components_Labels_ArtifactLabels.md#artifacttypetext) + +## Variables + +### StyledArtifactRarityLabel + +• `Const` **StyledArtifactRarityLabel**: `StyledComponent`<`"span"`, `any`, { `rarity`: `ArtifactRarity` }, `never`\> + +## Functions + +### ArtifactBiomeText + +▸ **ArtifactBiomeText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifact` | `Artifact` | + +#### Returns + +`Element` + +--- + +### ArtifactRarityBiomeTypeText + +▸ **ArtifactRarityBiomeTypeText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifact` | `Artifact` | + +#### Returns + +`Element` + +--- + +### ArtifactRarityLabel + +▸ **ArtifactRarityLabel**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :--------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.rarity` | `ArtifactRarity` | + +#### Returns + +`Element` + +--- + +### ArtifactRarityLabelAnim + +▸ **ArtifactRarityLabelAnim**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :--------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.rarity` | `ArtifactRarity` | + +#### Returns + +`Element` + +--- + +### ArtifactRarityText + +▸ **ArtifactRarityText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :--------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.rarity` | `ArtifactRarity` | + +#### Returns + +`Element` + +--- + +### ArtifactTypeText + +▸ **ArtifactTypeText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifact` | `Artifact` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Labels_BiomeLabels.md b/docs/modules/Frontend_Components_Labels_BiomeLabels.md new file mode 100644 index 00000000..08de6cff --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_BiomeLabels.md @@ -0,0 +1,110 @@ +# Module: Frontend/Components/Labels/BiomeLabels + +## Table of contents + +### Variables + +- [BiomeLabel](Frontend_Components_Labels_BiomeLabels.md#biomelabel) + +### Functions + +- [ArtifactBiomeLabel](Frontend_Components_Labels_BiomeLabels.md#artifactbiomelabel) +- [ArtifactBiomeLabelAnim](Frontend_Components_Labels_BiomeLabels.md#artifactbiomelabelanim) +- [BiomeLabelAnim](Frontend_Components_Labels_BiomeLabels.md#biomelabelanim) +- [OptionalPlanetBiomeLabelAnim](Frontend_Components_Labels_BiomeLabels.md#optionalplanetbiomelabelanim) +- [PlanetBiomeLabelAnim](Frontend_Components_Labels_BiomeLabels.md#planetbiomelabelanim) + +## Variables + +### BiomeLabel + +• `Const` **BiomeLabel**: `StyledComponent`<`"span"`, `any`, { `biome`: `Biome` }, `never`\> + +Renders colored text corresponding to a biome + +## Functions + +### ArtifactBiomeLabel + +▸ **ArtifactBiomeLabel**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifact` | `Artifact` | + +#### Returns + +`Element` + +--- + +### ArtifactBiomeLabelAnim + +▸ **ArtifactBiomeLabelAnim**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifact` | `Artifact` | + +#### Returns + +`Element` + +--- + +### BiomeLabelAnim + +▸ **BiomeLabelAnim**(`__namedParameters`): `Element` + +Renders animated colored text corresponding to a biome + +#### Parameters + +| Name | Type | +| :------------------------ | :------- | +| `__namedParameters` | `Object` | +| `__namedParameters.biome` | `Biome` | + +#### Returns + +`Element` + +--- + +### OptionalPlanetBiomeLabelAnim + +▸ **OptionalPlanetBiomeLabelAnim**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetBiomeLabelAnim + +▸ **PlanetBiomeLabelAnim**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `LocatablePlanet` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Labels_KeywordLabels.md b/docs/modules/Frontend_Components_Labels_KeywordLabels.md new file mode 100644 index 00000000..c4704dff --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_KeywordLabels.md @@ -0,0 +1,50 @@ +# Module: Frontend/Components/Labels/KeywordLabels + +## Table of contents + +### Functions + +- [ScoreLabel](Frontend_Components_Labels_KeywordLabels.md#scorelabel) +- [ScoreLabelTip](Frontend_Components_Labels_KeywordLabels.md#scorelabeltip) +- [SilverLabel](Frontend_Components_Labels_KeywordLabels.md#silverlabel) +- [SilverLabelTip](Frontend_Components_Labels_KeywordLabels.md#silverlabeltip) + +## Functions + +### ScoreLabel + +▸ **ScoreLabel**(): `Element` + +#### Returns + +`Element` + +--- + +### ScoreLabelTip + +▸ **ScoreLabelTip**(): `Element` + +#### Returns + +`Element` + +--- + +### SilverLabel + +▸ **SilverLabel**(): `Element` + +#### Returns + +`Element` + +--- + +### SilverLabelTip + +▸ **SilverLabelTip**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Labels_Labels.md b/docs/modules/Frontend_Components_Labels_Labels.md new file mode 100644 index 00000000..469a096d --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_Labels.md @@ -0,0 +1,48 @@ +# Module: Frontend/Components/Labels/Labels + +## Table of contents + +### Functions + +- [AccountLabel](Frontend_Components_Labels_Labels.md#accountlabel) +- [TwitterLink](Frontend_Components_Labels_Labels.md#twitterlink) + +## Functions + +### AccountLabel + +▸ **AccountLabel**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :---------------------------------------------- | :-------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.ethAddress?` | `EthAddress` | +| `__namedParameters.includeAddressIfHasTwitter?` | `boolean` | +| `__namedParameters.style?` | `CSSProperties` | +| `__namedParameters.width?` | `string` | + +#### Returns + +`Element` + +--- + +### TwitterLink + +▸ **TwitterLink**(`__namedParameters`): `Element` + +Link to a twitter account. + +#### Parameters + +| Name | Type | +| :-------------------------- | :------- | +| `__namedParameters` | `Object` | +| `__namedParameters.color?` | `string` | +| `__namedParameters.twitter` | `string` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Labels_LavaLabel.md b/docs/modules/Frontend_Components_Labels_LavaLabel.md new file mode 100644 index 00000000..969fd2ea --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_LavaLabel.md @@ -0,0 +1,27 @@ +# Module: Frontend/Components/Labels/LavaLabel + +## Table of contents + +### Variables + +- [LavaLabel](Frontend_Components_Labels_LavaLabel.md#lavalabel) + +### Functions + +- [LavaLabelRaw](Frontend_Components_Labels_LavaLabel.md#lavalabelraw) + +## Variables + +### LavaLabel + +• `Const` **LavaLabel**: `MemoExoticComponent`<() => `Element`\> + +## Functions + +### LavaLabelRaw + +▸ **LavaLabelRaw**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Labels_LegendaryLabel.md b/docs/modules/Frontend_Components_Labels_LegendaryLabel.md new file mode 100644 index 00000000..6a0155a9 --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_LegendaryLabel.md @@ -0,0 +1,13 @@ +# Module: Frontend/Components/Labels/LegendaryLabel + +## Table of contents + +### Variables + +- [LegendaryLabel](Frontend_Components_Labels_LegendaryLabel.md#legendarylabel) + +## Variables + +### LegendaryLabel + +• `Const` **LegendaryLabel**: `MemoExoticComponent`<() => `Element`\> diff --git a/docs/modules/Frontend_Components_Labels_MythicLabel.md b/docs/modules/Frontend_Components_Labels_MythicLabel.md new file mode 100644 index 00000000..3595e5fd --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_MythicLabel.md @@ -0,0 +1,35 @@ +# Module: Frontend/Components/Labels/MythicLabel + +## Table of contents + +### Variables + +- [MythicLabel](Frontend_Components_Labels_MythicLabel.md#mythiclabel) + +### Functions + +- [MythicLabelText](Frontend_Components_Labels_MythicLabel.md#mythiclabeltext) + +## Variables + +### MythicLabel + +• `Const` **MythicLabel**: `MemoExoticComponent`<() => `Element`\> + +## Functions + +### MythicLabelText + +▸ **MythicLabelText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :-------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.style?` | `CSSProperties` | +| `__namedParameters.text` | `string` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Labels_PlanetLabels.md b/docs/modules/Frontend_Components_Labels_PlanetLabels.md new file mode 100644 index 00000000..6fdeb986 --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_PlanetLabels.md @@ -0,0 +1,433 @@ +# Module: Frontend/Components/Labels/PlanetLabels + +## Table of contents + +### Functions + +- [DefenseText](Frontend_Components_Labels_PlanetLabels.md#defensetext) +- [EnergyCapText](Frontend_Components_Labels_PlanetLabels.md#energycaptext) +- [EnergyGrowthText](Frontend_Components_Labels_PlanetLabels.md#energygrowthtext) +- [EnergyText](Frontend_Components_Labels_PlanetLabels.md#energytext) +- [GrowthText](Frontend_Components_Labels_PlanetLabels.md#growthtext) +- [JunkText](Frontend_Components_Labels_PlanetLabels.md#junktext) +- [LevelRankText](Frontend_Components_Labels_PlanetLabels.md#levelranktext) +- [LevelRankTextEm](Frontend_Components_Labels_PlanetLabels.md#levelranktextem) +- [PlanetBiomeTypeLabelAnim](Frontend_Components_Labels_PlanetLabels.md#planetbiometypelabelanim) +- [PlanetEnergyLabel](Frontend_Components_Labels_PlanetLabels.md#planetenergylabel) +- [PlanetLevel](Frontend_Components_Labels_PlanetLabels.md#planetlevel) +- [PlanetLevelText](Frontend_Components_Labels_PlanetLabels.md#planetleveltext) +- [PlanetOwnerLabel](Frontend_Components_Labels_PlanetLabels.md#planetownerlabel) +- [PlanetRank](Frontend_Components_Labels_PlanetLabels.md#planetrank) +- [PlanetRankText](Frontend_Components_Labels_PlanetLabels.md#planetranktext) +- [PlanetSilverLabel](Frontend_Components_Labels_PlanetLabels.md#planetsilverlabel) +- [PlanetTypeLabelAnim](Frontend_Components_Labels_PlanetLabels.md#planettypelabelanim) +- [RangeText](Frontend_Components_Labels_PlanetLabels.md#rangetext) +- [SilverCapText](Frontend_Components_Labels_PlanetLabels.md#silvercaptext) +- [SilverGrowthText](Frontend_Components_Labels_PlanetLabels.md#silvergrowthtext) +- [SilverText](Frontend_Components_Labels_PlanetLabels.md#silvertext) +- [SpeedText](Frontend_Components_Labels_PlanetLabels.md#speedtext) +- [StatText](Frontend_Components_Labels_PlanetLabels.md#stattext) + +## Functions + +### DefenseText + +▸ **DefenseText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### EnergyCapText + +▸ **EnergyCapText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### EnergyGrowthText + +▸ **EnergyGrowthText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### EnergyText + +▸ **EnergyText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### GrowthText + +▸ **GrowthText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :-------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | +| `__namedParameters.style?` | `CSSProperties` | +| `__namedParameters.getStat` | (`p`: `Planet`) => `number` | + +#### Returns + +`Element` + +--- + +### JunkText + +▸ **JunkText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### LevelRankText + +▸ **LevelRankText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.delim?` | `string` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### LevelRankTextEm + +▸ **LevelRankTextEm**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.delim?` | `string` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetBiomeTypeLabelAnim + +▸ **PlanetBiomeTypeLabelAnim**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetEnergyLabel + +▸ **PlanetEnergyLabel**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetLevel + +▸ **PlanetLevel**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetLevelText + +▸ **PlanetLevelText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetOwnerLabel + +▸ **PlanetOwnerLabel**(`__namedParameters`): `Element` + +Either 'yours' in green text, + +#### Parameters + +| Name | Type | +| :---------------------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.abbreviateOwnAddress?` | `boolean` | +| `__namedParameters.colorWithOwnerColor?` | `boolean` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetRank + +▸ **PlanetRank**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetRankText + +▸ **PlanetRankText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetSilverLabel + +▸ **PlanetSilverLabel**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### PlanetTypeLabelAnim + +▸ **PlanetTypeLabelAnim**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### RangeText + +▸ **RangeText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.buff?` | `number` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### SilverCapText + +▸ **SilverCapText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### SilverGrowthText + +▸ **SilverGrowthText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### SilverText + +▸ **SilverText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### SpeedText + +▸ **SpeedText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.buff?` | `number` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### StatText + +▸ **StatText**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :-------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.buff?` | `number` | +| `__namedParameters.planet` | `undefined` \| `Planet` | +| `__namedParameters.style?` | `CSSProperties` | +| `__namedParameters.getStat` | (`p`: `Planet`) => `number` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Labels_SpacetimeRipLabel.md b/docs/modules/Frontend_Components_Labels_SpacetimeRipLabel.md new file mode 100644 index 00000000..53e7cb51 --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_SpacetimeRipLabel.md @@ -0,0 +1,13 @@ +# Module: Frontend/Components/Labels/SpacetimeRipLabel + +## Table of contents + +### Variables + +- [SpacetimeRipLabel](Frontend_Components_Labels_SpacetimeRipLabel.md#spacetimeriplabel) + +## Variables + +### SpacetimeRipLabel + +• `Const` **SpacetimeRipLabel**: `MemoExoticComponent`<() => `Element`\> diff --git a/docs/modules/Frontend_Components_Labels_WastelandLabel.md b/docs/modules/Frontend_Components_Labels_WastelandLabel.md new file mode 100644 index 00000000..a461d69d --- /dev/null +++ b/docs/modules/Frontend_Components_Labels_WastelandLabel.md @@ -0,0 +1,27 @@ +# Module: Frontend/Components/Labels/WastelandLabel + +## Table of contents + +### Variables + +- [WastelandLabel](Frontend_Components_Labels_WastelandLabel.md#wastelandlabel) + +### Functions + +- [WastelandLabelRaw](Frontend_Components_Labels_WastelandLabel.md#wastelandlabelraw) + +## Variables + +### WastelandLabel + +• `Const` **WastelandLabel**: `MemoExoticComponent`<() => `Element`\> + +## Functions + +### WastelandLabelRaw + +▸ **WastelandLabelRaw**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_LoadingSpinner.md b/docs/modules/Frontend_Components_LoadingSpinner.md new file mode 100644 index 00000000..4a0ae6a5 --- /dev/null +++ b/docs/modules/Frontend_Components_LoadingSpinner.md @@ -0,0 +1,25 @@ +# Module: Frontend/Components/LoadingSpinner + +## Table of contents + +### Functions + +- [LoadingSpinner](Frontend_Components_LoadingSpinner.md#loadingspinner) + +## Functions + +### LoadingSpinner + +▸ **LoadingSpinner**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------- | :------- | +| `__namedParameters` | `Object` | +| `__namedParameters.initialText?` | `string` | +| `__namedParameters.rate?` | `number` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_MaybeShortcutButton.md b/docs/modules/Frontend_Components_MaybeShortcutButton.md new file mode 100644 index 00000000..906d817b --- /dev/null +++ b/docs/modules/Frontend_Components_MaybeShortcutButton.md @@ -0,0 +1,27 @@ +# Module: Frontend/Components/MaybeShortcutButton + +## Table of contents + +### Functions + +- [MaybeShortcutButton](Frontend_Components_MaybeShortcutButton.md#maybeshortcutbutton) + +## Functions + +### MaybeShortcutButton + +▸ **MaybeShortcutButton**(`props`): `Element` + +A button that will show shortcuts if enabled globally in the game, otherwise it will display a normal button + +Must ONLY be used when a GameUIManager is available. + +#### Parameters + +| Name | Type | +| :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `props` | `Partial`<`Omit`<[`DarkForestButton`](../classes/Frontend_Components_Btn.DarkForestButton.md), `"children"`\>\> & `Events`<{ `onClick`: (`evt`: `Event` & `MouseEvent`<[`DarkForestButton`](../classes/Frontend_Components_Btn.DarkForestButton.md), `MouseEvent`\>) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\> \| `Partial`<`Omit`<[`DarkForestShortcutButton`](../classes/Frontend_Components_Btn.DarkForestShortcutButton.md), `"children"`\>\> & `Events`<{ `onClick`: (`evt`: `Event` & `MouseEvent`<[`DarkForestShortcutButton`](../classes/Frontend_Components_Btn.DarkForestShortcutButton.md), `MouseEvent`\>) => `void` ; `onShortcutPressed`: (`evt`: [`ShortcutPressedEvent`](../classes/Frontend_Components_Btn.ShortcutPressedEvent.md)) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_MineArtifactButton.md b/docs/modules/Frontend_Components_MineArtifactButton.md new file mode 100644 index 00000000..253816d9 --- /dev/null +++ b/docs/modules/Frontend_Components_MineArtifactButton.md @@ -0,0 +1,24 @@ +# Module: Frontend/Components/MineArtifactButton + +## Table of contents + +### Functions + +- [MineArtifactButton](Frontend_Components_MineArtifactButton.md#mineartifactbutton) + +## Functions + +### MineArtifactButton + +▸ **MineArtifactButton**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------------- | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planetWrapper` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Modal.md b/docs/modules/Frontend_Components_Modal.md new file mode 100644 index 00000000..f14380be --- /dev/null +++ b/docs/modules/Frontend_Components_Modal.md @@ -0,0 +1,18 @@ +# Module: Frontend/Components/Modal + +## Table of contents + +### Classes + +- [DarkForestModal](../classes/Frontend_Components_Modal.DarkForestModal.md) +- [PositionChangedEvent](../classes/Frontend_Components_Modal.PositionChangedEvent.md) + +### Variables + +- [Modal](Frontend_Components_Modal.md#modal) + +## Variables + +### Modal + +• `Const` **Modal**: `ForwardRefExoticComponent`<`Partial`<`Omit`<[`DarkForestModal`](../classes/Frontend_Components_Modal.DarkForestModal.md), `"children"`\>\> & `Events`<{ `onMouseDown`: (`evt`: `Event` & `MouseEvent`<[`DarkForestModal`](../classes/Frontend_Components_Modal.DarkForestModal.md), `MouseEvent`\>) => `void` ; `onPositionChanged`: (`evt`: [`PositionChangedEvent`](../classes/Frontend_Components_Modal.PositionChangedEvent.md)) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> diff --git a/docs/modules/Frontend_Components_OpenPaneButtons.md b/docs/modules/Frontend_Components_OpenPaneButtons.md new file mode 100644 index 00000000..fc92989f --- /dev/null +++ b/docs/modules/Frontend_Components_OpenPaneButtons.md @@ -0,0 +1,123 @@ +# Module: Frontend/Components/OpenPaneButtons + +## Table of contents + +### Functions + +- [OpenBroadcastPaneButton](Frontend_Components_OpenPaneButtons.md#openbroadcastpanebutton) +- [OpenHatPaneButton](Frontend_Components_OpenPaneButtons.md#openhatpanebutton) +- [OpenManagePlanetArtifactsButton](Frontend_Components_OpenPaneButtons.md#openmanageplanetartifactsbutton) +- [OpenPaneButton](Frontend_Components_OpenPaneButtons.md#openpanebutton) +- [OpenPlanetInfoButton](Frontend_Components_OpenPaneButtons.md#openplanetinfobutton) +- [OpenUpgradeDetailsPaneButton](Frontend_Components_OpenPaneButtons.md#openupgradedetailspanebutton) + +## Functions + +### OpenBroadcastPaneButton + +▸ **OpenBroadcastPaneButton**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.planetId` | `undefined` \| `LocationId` | + +#### Returns + +`Element` + +--- + +### OpenHatPaneButton + +▸ **OpenHatPaneButton**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.planetId` | `undefined` \| `LocationId` | + +#### Returns + +`Element` + +--- + +### OpenManagePlanetArtifactsButton + +▸ **OpenManagePlanetArtifactsButton**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.planetId` | `undefined` \| `LocationId` | + +#### Returns + +`Element` + +--- + +### OpenPaneButton + +▸ **OpenPaneButton**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------- | :------------------------------------------------------------------------ | +| `__namedParameters` | `Object` | +| `__namedParameters.helpContent?` | `ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.shortcut?` | `string` | +| `__namedParameters.title` | `string` | +| `__namedParameters.element` | () => `ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> | + +#### Returns + +`Element` + +--- + +### OpenPlanetInfoButton + +▸ **OpenPlanetInfoButton**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.planetId` | `undefined` \| `LocationId` | + +#### Returns + +`Element` + +--- + +### OpenUpgradeDetailsPaneButton + +▸ **OpenUpgradeDetailsPaneButton**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.planetId` | `undefined` \| `LocationId` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_PluginModal.md b/docs/modules/Frontend_Components_PluginModal.md new file mode 100644 index 00000000..661d421f --- /dev/null +++ b/docs/modules/Frontend_Components_PluginModal.md @@ -0,0 +1,29 @@ +# Module: Frontend/Components/PluginModal + +## Table of contents + +### Functions + +- [PluginModal](Frontend_Components_PluginModal.md#pluginmodal) + +## Functions + +### PluginModal + +▸ **PluginModal**(`__namedParameters`): `ReactPortal` + +#### Parameters + +| Name | Type | +| :---------------------------- | :--------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.container` | `Element` | +| `__namedParameters.id` | `ModalId` | +| `__namedParameters.title` | `string` | +| `__namedParameters.width?` | `string` | +| `__namedParameters.onClose` | () => `void` | +| `__namedParameters.onRender` | (`el`: `HTMLDivElement`) => `void` | + +#### Returns + +`ReactPortal` diff --git a/docs/modules/Frontend_Components_ReadMore.md b/docs/modules/Frontend_Components_ReadMore.md new file mode 100644 index 00000000..b5772ccd --- /dev/null +++ b/docs/modules/Frontend_Components_ReadMore.md @@ -0,0 +1,27 @@ +# Module: Frontend/Components/ReadMore + +## Table of contents + +### Functions + +- [ReadMore](Frontend_Components_ReadMore.md#readmore) + +## Functions + +### ReadMore + +▸ **ReadMore**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------------------- | :--------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.children` | `ReactNode` \| `ReactNode`[] | +| `__namedParameters.height?` | `string` | +| `__namedParameters.text?` | `string` | +| `__namedParameters.toggleButtonMargin?` | `string` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_RemoteModal.md b/docs/modules/Frontend_Components_RemoteModal.md new file mode 100644 index 00000000..14f91495 --- /dev/null +++ b/docs/modules/Frontend_Components_RemoteModal.md @@ -0,0 +1,27 @@ +# Module: Frontend/Components/RemoteModal + +## Table of contents + +### Functions + +- [RemoteModal](Frontend_Components_RemoteModal.md#remotemodal) + +## Functions + +### RemoteModal + +▸ **RemoteModal**(`__namedParameters`): `ReactPortal` + +Allows you to instantiate a modal, and render it into the desired element. +Useful for loading temporary modals from ANYWHERE in the UI, not just +[GameWindowLayout](Frontend_Views_GameWindowLayout.md#gamewindowlayout) + +#### Parameters + +| Name | Type | +| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | `PropsWithChildren`<{ `container`: `Element` ; `id`: `ModalId` ; `title`: `string` ; `visible`: `boolean` ; `width?`: `string` ; `onClose`: () => `void` }\> | + +#### Returns + +`ReactPortal` diff --git a/docs/modules/Frontend_Components_Row.md b/docs/modules/Frontend_Components_Row.md new file mode 100644 index 00000000..9ebc3c2c --- /dev/null +++ b/docs/modules/Frontend_Components_Row.md @@ -0,0 +1,13 @@ +# Module: Frontend/Components/Row + +## Table of contents + +### Variables + +- [Row](Frontend_Components_Row.md#row) + +## Variables + +### Row + +• `Const` **Row**: `ForwardRefExoticComponent`<`Partial`<`Omit`<`DarkForestRow`, `"children"`\>\> & `Events`<`unknown`\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> diff --git a/docs/modules/Frontend_Components_Slider.md b/docs/modules/Frontend_Components_Slider.md new file mode 100644 index 00000000..0ef258bd --- /dev/null +++ b/docs/modules/Frontend_Components_Slider.md @@ -0,0 +1,25 @@ +# Module: Frontend/Components/Slider + +## Table of contents + +### Classes + +- [DarkForestSlider](../classes/Frontend_Components_Slider.DarkForestSlider.md) +- [DarkForestSliderHandle](../classes/Frontend_Components_Slider.DarkForestSliderHandle.md) + +### Variables + +- [Slider](Frontend_Components_Slider.md#slider) +- [SliderHandle](Frontend_Components_Slider.md#sliderhandle) + +## Variables + +### Slider + +• `Const` **Slider**: `ForwardRefExoticComponent`<`Partial`<`Omit`<[`DarkForestSlider`](../classes/Frontend_Components_Slider.DarkForestSlider.md), `"children"`\>\> & `Events`<{ `onChange`: (`e`: `Event` & `ChangeEvent`<[`DarkForestSlider`](../classes/Frontend_Components_Slider.DarkForestSlider.md)\>) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> + +--- + +### SliderHandle + +• `Const` **SliderHandle**: `ForwardRefExoticComponent`<`Partial`<`Omit`<[`DarkForestSliderHandle`](../classes/Frontend_Components_Slider.DarkForestSliderHandle.md), `"children"`\>\> & `Events`<{ `onChange`: (`e`: `Event` & `ChangeEvent`<[`DarkForestSliderHandle`](../classes/Frontend_Components_Slider.DarkForestSliderHandle.md)\>) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> diff --git a/docs/modules/Frontend_Components_Text.md b/docs/modules/Frontend_Components_Text.md new file mode 100644 index 00000000..b9ee22da --- /dev/null +++ b/docs/modules/Frontend_Components_Text.md @@ -0,0 +1,243 @@ +# Module: Frontend/Components/Text + +## Table of contents + +### Variables + +- [Blue](Frontend_Components_Text.md#blue) +- [Colored](Frontend_Components_Text.md#colored) +- [Gold](Frontend_Components_Text.md#gold) +- [Green](Frontend_Components_Text.md#green) +- [HideSmall](Frontend_Components_Text.md#hidesmall) +- [Invisible](Frontend_Components_Text.md#invisible) +- [Red](Frontend_Components_Text.md#red) +- [Smaller](Frontend_Components_Text.md#smaller) +- [Sub](Frontend_Components_Text.md#sub) +- [Subber](Frontend_Components_Text.md#subber) +- [Text](Frontend_Components_Text.md#text) +- [White](Frontend_Components_Text.md#white) + +### Functions + +- [ArtifactNameLink](Frontend_Components_Text.md#artifactnamelink) +- [BlinkCursor](Frontend_Components_Text.md#blinkcursor) +- [CenterChunkLink](Frontend_Components_Text.md#centerchunklink) +- [CenterPlanetLink](Frontend_Components_Text.md#centerplanetlink) +- [Coords](Frontend_Components_Text.md#coords) +- [FAQ04Link](Frontend_Components_Text.md#faq04link) +- [LongDash](Frontend_Components_Text.md#longdash) +- [PlanetNameLink](Frontend_Components_Text.md#planetnamelink) +- [TxLink](Frontend_Components_Text.md#txlink) + +## Variables + +### Blue + +• `Const` **Blue**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Colored + +• `Const` **Colored**: `StyledComponent`<`"span"`, `any`, { `color`: `string` }, `never`\> + +--- + +### Gold + +• `Const` **Gold**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Green + +• `Const` **Green**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### HideSmall + +• `Const` **HideSmall**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Invisible + +• `Const` **Invisible**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Red + +• `Const` **Red**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Smaller + +• `Const` **Smaller**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Sub + +• `Const` **Sub**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Subber + +• `Const` **Subber**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### Text + +• `Const` **Text**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +--- + +### White + +• `Const` **White**: `StyledComponent`<`"span"`, `any`, {}, `never`\> + +## Functions + +### ArtifactNameLink + +▸ **ArtifactNameLink**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.id` | `ArtifactId` | + +#### Returns + +`Element` + +--- + +### BlinkCursor + +▸ **BlinkCursor**(): `Element` + +#### Returns + +`Element` + +--- + +### CenterChunkLink + +▸ **CenterChunkLink**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :---------- | +| `__namedParameters` | `Object` | +| `__namedParameters.children` | `ReactNode` | +| `__namedParameters.chunk` | `Chunk` | + +#### Returns + +`Element` + +--- + +### CenterPlanetLink + +▸ **CenterPlanetLink**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :---------- | +| `__namedParameters` | `Object` | +| `__namedParameters.children` | `ReactNode` | +| `__namedParameters.planet` | `Planet` | + +#### Returns + +`Element` + +--- + +### Coords + +▸ **Coords**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :------------ | +| `__namedParameters` | `Object` | +| `__namedParameters.coords` | `WorldCoords` | + +#### Returns + +`Element` + +--- + +### FAQ04Link + +▸ **FAQ04Link**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :---------- | +| `__namedParameters` | `Object` | +| `__namedParameters.children` | `ReactNode` | + +#### Returns + +`Element` + +--- + +### LongDash + +▸ **LongDash**(): `Element` + +#### Returns + +`Element` + +--- + +### PlanetNameLink + +▸ **PlanetNameLink**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `Planet` | + +#### Returns + +`Element` + +--- + +### TxLink + +▸ **TxLink**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------- | :------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.tx` | `Transaction`<`TxIntent`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_TextLoadingBar.md b/docs/modules/Frontend_Components_TextLoadingBar.md new file mode 100644 index 00000000..3ae8151a --- /dev/null +++ b/docs/modules/Frontend_Components_TextLoadingBar.md @@ -0,0 +1,38 @@ +# Module: Frontend/Components/TextLoadingBar + +## Table of contents + +### Interfaces + +- [LoadingBarHandle](../interfaces/Frontend_Components_TextLoadingBar.LoadingBarHandle.md) + +### Variables + +- [TextLoadingBar](Frontend_Components_TextLoadingBar.md#textloadingbar) + +### Functions + +- [TextLoadingBarImpl](Frontend_Components_TextLoadingBar.md#textloadingbarimpl) + +## Variables + +### TextLoadingBar + +• `Const` **TextLoadingBar**: `ForwardRefExoticComponent`<`LoadingBarProps` & `RefAttributes`<`undefined` \| [`LoadingBarHandle`](../interfaces/Frontend_Components_TextLoadingBar.LoadingBarHandle.md)\>\> + +## Functions + +### TextLoadingBarImpl + +▸ **TextLoadingBarImpl**(`__namedParameters`, `ref`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------------- | +| `__namedParameters` | `LoadingBarProps` | +| `ref` | `Ref`<[`LoadingBarHandle`](../interfaces/Frontend_Components_TextLoadingBar.LoadingBarHandle.md)\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_TextPreview.md b/docs/modules/Frontend_Components_TextPreview.md new file mode 100644 index 00000000..be8809a3 --- /dev/null +++ b/docs/modules/Frontend_Components_TextPreview.md @@ -0,0 +1,28 @@ +# Module: Frontend/Components/TextPreview + +## Table of contents + +### Functions + +- [TextPreview](Frontend_Components_TextPreview.md#textpreview) + +## Functions + +### TextPreview + +▸ **TextPreview**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :---------------------------------- | :-------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.focusedWidth?` | `string` | +| `__namedParameters.maxLength?` | `number` | +| `__namedParameters.style?` | `CSSProperties` | +| `__namedParameters.text?` | `string` | +| `__namedParameters.unFocusedWidth?` | `string` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Components_Theme.md b/docs/modules/Frontend_Components_Theme.md new file mode 100644 index 00000000..8f86244e --- /dev/null +++ b/docs/modules/Frontend_Components_Theme.md @@ -0,0 +1,13 @@ +# Module: Frontend/Components/Theme + +## Table of contents + +### Variables + +- [Theme](Frontend_Components_Theme.md#theme) + +## Variables + +### Theme + +• `Const` **Theme**: `ForwardRefExoticComponent`<`Partial`<`Omit`<`DarkForestTheme`, `"children"`\>\> & `Events`<`unknown`\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\> diff --git a/docs/modules/Frontend_Components_TimeUntil.md b/docs/modules/Frontend_Components_TimeUntil.md new file mode 100644 index 00000000..71bb9d6e --- /dev/null +++ b/docs/modules/Frontend_Components_TimeUntil.md @@ -0,0 +1,45 @@ +# Module: Frontend/Components/TimeUntil + +## Table of contents + +### Functions + +- [TimeUntil](Frontend_Components_TimeUntil.md#timeuntil) +- [formatDuration](Frontend_Components_TimeUntil.md#formatduration) + +## Functions + +### TimeUntil + +▸ **TimeUntil**(`__namedParameters`): `Element` + +Given a timestamp, displays the amount of time until the timestamp from now in hh:mm:ss format. +If the timestamp is in the past, displays the given hardcoded value. + +#### Parameters + +| Name | Type | +| :---------------------------- | :------- | +| `__namedParameters` | `Object` | +| `__namedParameters.ifPassed` | `string` | +| `__namedParameters.timestamp` | `number` | + +#### Returns + +`Element` + +--- + +### formatDuration + +▸ **formatDuration**(`msDuration`): `string` + +#### Parameters + +| Name | Type | +| :----------- | :------- | +| `msDuration` | `number` | + +#### Returns + +`string` diff --git a/docs/modules/Frontend_Game_ControllableCanvas.md b/docs/modules/Frontend_Game_ControllableCanvas.md new file mode 100644 index 00000000..5a17772d --- /dev/null +++ b/docs/modules/Frontend_Game_ControllableCanvas.md @@ -0,0 +1,17 @@ +# Module: Frontend/Game/ControllableCanvas + +## Table of contents + +### Functions + +- [default](Frontend_Game_ControllableCanvas.md#default) + +## Functions + +### default + +▸ **default**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Game_ModalManager.md b/docs/modules/Frontend_Game_ModalManager.md new file mode 100644 index 00000000..e2d48b35 --- /dev/null +++ b/docs/modules/Frontend_Game_ModalManager.md @@ -0,0 +1,7 @@ +# Module: Frontend/Game/ModalManager + +## Table of contents + +### Classes + +- [default](../classes/Frontend_Game_ModalManager.default.md) diff --git a/docs/modules/Frontend_Game_NotificationManager.md b/docs/modules/Frontend_Game_NotificationManager.md new file mode 100644 index 00000000..1ebbef41 --- /dev/null +++ b/docs/modules/Frontend_Game_NotificationManager.md @@ -0,0 +1,34 @@ +# Module: Frontend/Game/NotificationManager + +## Table of contents + +### Enumerations + +- [NotificationManagerEvent](../enums/Frontend_Game_NotificationManager.NotificationManagerEvent.md) +- [NotificationType](../enums/Frontend_Game_NotificationManager.NotificationType.md) + +### Classes + +- [default](../classes/Frontend_Game_NotificationManager.default.md) + +### Type aliases + +- [NotificationInfo](Frontend_Game_NotificationManager.md#notificationinfo) + +## Type aliases + +### NotificationInfo + +Ƭ **NotificationInfo**: `Object` + +#### Type declaration + +| Name | Type | +| :---------- | :----------------------------------------------------------------------------------- | +| `color?` | `string` | +| `icon` | `React.ReactNode` | +| `id` | `string` | +| `message` | `React.ReactNode` | +| `txData?` | `TxIntent` | +| `txStatus?` | `EthTxStatus` | +| `type` | [`NotificationType`](../enums/Frontend_Game_NotificationManager.NotificationType.md) | diff --git a/docs/modules/Frontend_Game_Popups.md b/docs/modules/Frontend_Game_Popups.md new file mode 100644 index 00000000..6f3b471b --- /dev/null +++ b/docs/modules/Frontend_Game_Popups.md @@ -0,0 +1,23 @@ +# Module: Frontend/Game/Popups + +## Table of contents + +### Functions + +- [openConfirmationWindowForTransaction](Frontend_Game_Popups.md#openconfirmationwindowfortransaction) + +## Functions + +### openConfirmationWindowForTransaction + +▸ **openConfirmationWindowForTransaction**(`__namedParameters`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------------------ | :----------------------- | +| `__namedParameters` | `OpenConfirmationConfig` | + +#### Returns + +`Promise`<`void`\> diff --git a/docs/modules/Frontend_Game_Viewport.md b/docs/modules/Frontend_Game_Viewport.md new file mode 100644 index 00000000..d6e276fc --- /dev/null +++ b/docs/modules/Frontend_Game_Viewport.md @@ -0,0 +1,21 @@ +# Module: Frontend/Game/Viewport + +## Table of contents + +### Classes + +- [default](../classes/Frontend_Game_Viewport.default.md) + +### Functions + +- [getDefaultScroll](Frontend_Game_Viewport.md#getdefaultscroll) + +## Functions + +### getDefaultScroll + +▸ **getDefaultScroll**(): `number` + +#### Returns + +`number` diff --git a/docs/modules/Frontend_Pages_App.md b/docs/modules/Frontend_Pages_App.md new file mode 100644 index 00000000..45088145 --- /dev/null +++ b/docs/modules/Frontend_Pages_App.md @@ -0,0 +1,17 @@ +# Module: Frontend/Pages/App + +## Table of contents + +### Functions + +- [default](Frontend_Pages_App.md#default) + +## Functions + +### default + +▸ **default**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_CreateLobby.md b/docs/modules/Frontend_Pages_CreateLobby.md new file mode 100644 index 00000000..d79a0313 --- /dev/null +++ b/docs/modules/Frontend_Pages_CreateLobby.md @@ -0,0 +1,23 @@ +# Module: Frontend/Pages/CreateLobby + +## Table of contents + +### Functions + +- [CreateLobby](Frontend_Pages_CreateLobby.md#createlobby) + +## Functions + +### CreateLobby + +▸ **CreateLobby**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------------------------------------------------------------- | +| `__namedParameters` | `RouteComponentProps`<{ `contract`: `string` }, `StaticContext`, `unknown`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_EventsPage.md b/docs/modules/Frontend_Pages_EventsPage.md new file mode 100644 index 00000000..07eab8fb --- /dev/null +++ b/docs/modules/Frontend_Pages_EventsPage.md @@ -0,0 +1,17 @@ +# Module: Frontend/Pages/EventsPage + +## Table of contents + +### Functions + +- [EventsPage](Frontend_Pages_EventsPage.md#eventspage) + +## Functions + +### EventsPage + +▸ **EventsPage**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_GameLandingPage.md b/docs/modules/Frontend_Pages_GameLandingPage.md new file mode 100644 index 00000000..1029c200 --- /dev/null +++ b/docs/modules/Frontend_Pages_GameLandingPage.md @@ -0,0 +1,23 @@ +# Module: Frontend/Pages/GameLandingPage + +## Table of contents + +### Functions + +- [GameLandingPage](Frontend_Pages_GameLandingPage.md#gamelandingpage) + +## Functions + +### GameLandingPage + +▸ **GameLandingPage**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------------------------------------------------------------- | +| `__namedParameters` | `RouteComponentProps`<{ `contract`: `string` }, `StaticContext`, `unknown`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_GifMaker.md b/docs/modules/Frontend_Pages_GifMaker.md new file mode 100644 index 00000000..f3d97c73 --- /dev/null +++ b/docs/modules/Frontend_Pages_GifMaker.md @@ -0,0 +1,31 @@ +# Module: Frontend/Pages/GifMaker + +## Table of contents + +### Variables + +- [GIF_ARTIFACT_COLOR](Frontend_Pages_GifMaker.md#gif_artifact_color) + +### Functions + +- [GifMaker](Frontend_Pages_GifMaker.md#gifmaker) + +## Variables + +### GIF_ARTIFACT_COLOR + +• `Const` **GIF_ARTIFACT_COLOR**: `ArtifactFileColor` = `ArtifactFileColor.APP_BACKGROUND` + +## Functions + +### GifMaker + +▸ **GifMaker**(): `Element` + +Entrypoint for gif and sprite generation, accessed via `yarn run gifs`. +Wait a second or so for the textures to get loaded, then click the buttons to download files as a zip. +gifs are saved as 60fps webm, and can take a while - open the console to see progress (logged verbosely) + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_LandingPage.md b/docs/modules/Frontend_Pages_LandingPage.md new file mode 100644 index 00000000..5d91073d --- /dev/null +++ b/docs/modules/Frontend_Pages_LandingPage.md @@ -0,0 +1,31 @@ +# Module: Frontend/Pages/LandingPage + +## Table of contents + +### Enumerations + +- [LandingPageZIndex](../enums/Frontend_Pages_LandingPage.LandingPageZIndex.md) + +### Variables + +- [LinkContainer](Frontend_Pages_LandingPage.md#linkcontainer) + +### Functions + +- [default](Frontend_Pages_LandingPage.md#default) + +## Variables + +### LinkContainer + +• `Const` **LinkContainer**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +## Functions + +### default + +▸ **default**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_LoadingPage.md b/docs/modules/Frontend_Pages_LoadingPage.md new file mode 100644 index 00000000..b540388e --- /dev/null +++ b/docs/modules/Frontend_Pages_LoadingPage.md @@ -0,0 +1,17 @@ +# Module: Frontend/Pages/LoadingPage + +## Table of contents + +### Functions + +- [default](Frontend_Pages_LoadingPage.md#default) + +## Functions + +### default + +▸ **default**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_LobbyLandingPage.md b/docs/modules/Frontend_Pages_LobbyLandingPage.md new file mode 100644 index 00000000..0f0ffe18 --- /dev/null +++ b/docs/modules/Frontend_Pages_LobbyLandingPage.md @@ -0,0 +1,24 @@ +# Module: Frontend/Pages/LobbyLandingPage + +## Table of contents + +### Functions + +- [LobbyLandingPage](Frontend_Pages_LobbyLandingPage.md#lobbylandingpage) + +## Functions + +### LobbyLandingPage + +▸ **LobbyLandingPage**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :---------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.onReady` | (`connection`: `EthConnection`) => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_NotFoundPage.md b/docs/modules/Frontend_Pages_NotFoundPage.md new file mode 100644 index 00000000..3f0c9d8e --- /dev/null +++ b/docs/modules/Frontend_Pages_NotFoundPage.md @@ -0,0 +1,17 @@ +# Module: Frontend/Pages/NotFoundPage + +## Table of contents + +### Functions + +- [NotFoundPage](Frontend_Pages_NotFoundPage.md#notfoundpage) + +## Functions + +### NotFoundPage + +▸ **NotFoundPage**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_ShareArtifact.md b/docs/modules/Frontend_Pages_ShareArtifact.md new file mode 100644 index 00000000..cc66c3f6 --- /dev/null +++ b/docs/modules/Frontend_Pages_ShareArtifact.md @@ -0,0 +1,23 @@ +# Module: Frontend/Pages/ShareArtifact + +## Table of contents + +### Functions + +- [ShareArtifact](Frontend_Pages_ShareArtifact.md#shareartifact) + +## Functions + +### ShareArtifact + +▸ **ShareArtifact**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `RouteComponentProps`<{ `artifactId`: `ArtifactId` }, `StaticContext`, `unknown`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_SharePlanet.md b/docs/modules/Frontend_Pages_SharePlanet.md new file mode 100644 index 00000000..3639784f --- /dev/null +++ b/docs/modules/Frontend_Pages_SharePlanet.md @@ -0,0 +1,23 @@ +# Module: Frontend/Pages/SharePlanet + +## Table of contents + +### Functions + +- [SharePlanet](Frontend_Pages_SharePlanet.md#shareplanet) + +## Functions + +### SharePlanet + +▸ **SharePlanet**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `RouteComponentProps`<{ `locationId`: `LocationId` }, `StaticContext`, `unknown`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_TestArtifactImages.md b/docs/modules/Frontend_Pages_TestArtifactImages.md new file mode 100644 index 00000000..4ac34427 --- /dev/null +++ b/docs/modules/Frontend_Pages_TestArtifactImages.md @@ -0,0 +1,17 @@ +# Module: Frontend/Pages/TestArtifactImages + +## Table of contents + +### Functions + +- [TestArtifactImages](Frontend_Pages_TestArtifactImages.md#testartifactimages) + +## Functions + +### TestArtifactImages + +▸ **TestArtifactImages**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_TxConfirmPopup.md b/docs/modules/Frontend_Pages_TxConfirmPopup.md new file mode 100644 index 00000000..922dccb7 --- /dev/null +++ b/docs/modules/Frontend_Pages_TxConfirmPopup.md @@ -0,0 +1,23 @@ +# Module: Frontend/Pages/TxConfirmPopup + +## Table of contents + +### Functions + +- [TxConfirmPopup](Frontend_Pages_TxConfirmPopup.md#txconfirmpopup) + +## Functions + +### TxConfirmPopup + +▸ **TxConfirmPopup**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | `RouteComponentProps`<{ `actionId`: `string` ; `addr`: `string` ; `balance`: `string` ; `contract`: `string` ; `method`: `string` }, `StaticContext`, `unknown`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_UnsubscribePage.md b/docs/modules/Frontend_Pages_UnsubscribePage.md new file mode 100644 index 00000000..bd4970a1 --- /dev/null +++ b/docs/modules/Frontend_Pages_UnsubscribePage.md @@ -0,0 +1,21 @@ +# Module: Frontend/Pages/UnsubscribePage + +## Table of contents + +### Enumerations + +- [LandingPageZIndex](../enums/Frontend_Pages_UnsubscribePage.LandingPageZIndex.md) + +### Functions + +- [default](Frontend_Pages_UnsubscribePage.md#default) + +## Functions + +### default + +▸ **default**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Pages_ValhallaPage.md b/docs/modules/Frontend_Pages_ValhallaPage.md new file mode 100644 index 00000000..2327537b --- /dev/null +++ b/docs/modules/Frontend_Pages_ValhallaPage.md @@ -0,0 +1,17 @@ +# Module: Frontend/Pages/ValhallaPage + +## Table of contents + +### Functions + +- [ValhallaPage](Frontend_Pages_ValhallaPage.md#valhallapage) + +## Functions + +### ValhallaPage + +▸ **ValhallaPage**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_ArtifactCard.md b/docs/modules/Frontend_Panes_ArtifactCard.md new file mode 100644 index 00000000..6193f1ba --- /dev/null +++ b/docs/modules/Frontend_Panes_ArtifactCard.md @@ -0,0 +1,24 @@ +# Module: Frontend/Panes/ArtifactCard + +## Table of contents + +### Functions + +- [ArtifactCard](Frontend_Panes_ArtifactCard.md#artifactcard) + +## Functions + +### ArtifactCard + +▸ **ArtifactCard**(`__namedParameters`): `null` \| `Element` + +#### Parameters + +| Name | Type | +| :------------------------------ | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifactId?` | `ArtifactId` | + +#### Returns + +`null` \| `Element` diff --git a/docs/modules/Frontend_Panes_ArtifactDetailsPane.md b/docs/modules/Frontend_Panes_ArtifactDetailsPane.md new file mode 100644 index 00000000..81189789 --- /dev/null +++ b/docs/modules/Frontend_Panes_ArtifactDetailsPane.md @@ -0,0 +1,78 @@ +# Module: Frontend/Panes/ArtifactDetailsPane + +## Table of contents + +### Functions + +- [ArtifactDetailsBody](Frontend_Panes_ArtifactDetailsPane.md#artifactdetailsbody) +- [ArtifactDetailsHelpContent](Frontend_Panes_ArtifactDetailsPane.md#artifactdetailshelpcontent) +- [ArtifactDetailsPane](Frontend_Panes_ArtifactDetailsPane.md#artifactdetailspane) +- [UpgradeStatInfo](Frontend_Panes_ArtifactDetailsPane.md#upgradestatinfo) + +## Functions + +### ArtifactDetailsBody + +▸ **ArtifactDetailsBody**(`__namedParameters`): `null` \| `Element` + +#### Parameters + +| Name | Type | +| :------------------------------------ | :----------------------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifactId` | `ArtifactId` | +| `__namedParameters.contractConstants` | [`ContractConstants`](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) | +| `__namedParameters.depositOn?` | `LocationId` | +| `__namedParameters.modal?` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.noActions?` | `boolean` | + +#### Returns + +`null` \| `Element` + +--- + +### ArtifactDetailsHelpContent + +▸ **ArtifactDetailsHelpContent**(): `Element` + +#### Returns + +`Element` + +--- + +### ArtifactDetailsPane + +▸ **ArtifactDetailsPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :----------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifactId` | `ArtifactId` | +| `__namedParameters.depositOn?` | `LocationId` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | + +#### Returns + +`Element` + +--- + +### UpgradeStatInfo + +▸ **UpgradeStatInfo**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :-------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.stat` | [`StatIdx`](../enums/types_global_GlobalTypes.StatIdx.md) | +| `__namedParameters.upgrades` | (`undefined` \| `Upgrade`)[] | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_ArtifactHoverPane.md b/docs/modules/Frontend_Panes_ArtifactHoverPane.md new file mode 100644 index 00000000..ba14e9d7 --- /dev/null +++ b/docs/modules/Frontend_Panes_ArtifactHoverPane.md @@ -0,0 +1,17 @@ +# Module: Frontend/Panes/ArtifactHoverPane + +## Table of contents + +### Functions + +- [ArtifactHoverPane](Frontend_Panes_ArtifactHoverPane.md#artifacthoverpane) + +## Functions + +### ArtifactHoverPane + +▸ **ArtifactHoverPane**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_ArtifactsList.md b/docs/modules/Frontend_Panes_ArtifactsList.md new file mode 100644 index 00000000..26ad7252 --- /dev/null +++ b/docs/modules/Frontend_Panes_ArtifactsList.md @@ -0,0 +1,72 @@ +# Module: Frontend/Panes/ArtifactsList + +## Table of contents + +### Functions + +- [AllArtifacts](Frontend_Panes_ArtifactsList.md#allartifacts) +- [ArtifactsList](Frontend_Panes_ArtifactsList.md#artifactslist) +- [ShipList](Frontend_Panes_ArtifactsList.md#shiplist) + +## Functions + +### AllArtifacts + +▸ **AllArtifacts**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifacts` | `Artifact`[] | +| `__namedParameters.depositOn?` | `LocationId` | +| `__namedParameters.maxRarity?` | `number` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.noArtifactsMessage?` | `ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> | +| `__namedParameters.noShipsMessage?` | `ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> | + +#### Returns + +`Element` + +--- + +### ArtifactsList + +▸ **ArtifactsList**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifacts` | `Artifact`[] | +| `__namedParameters.depositOn?` | `LocationId` | +| `__namedParameters.maxRarity?` | `number` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.noArtifactsMessage?` | `ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> | + +#### Returns + +`Element` + +--- + +### ShipList + +▸ **ShipList**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :---------------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifacts` | `Artifact`[] | +| `__namedParameters.depositOn?` | `LocationId` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.noShipsMessage?` | `ReactElement`<`any`, `string` \| `JSXElementConstructor`<`any`\>\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_BroadcastPane.md b/docs/modules/Frontend_Panes_BroadcastPane.md new file mode 100644 index 00000000..0d409ec2 --- /dev/null +++ b/docs/modules/Frontend_Panes_BroadcastPane.md @@ -0,0 +1,36 @@ +# Module: Frontend/Panes/BroadcastPane + +## Table of contents + +### Functions + +- [BroadcastPane](Frontend_Panes_BroadcastPane.md#broadcastpane) +- [BroadcastPaneHelpContent](Frontend_Panes_BroadcastPane.md#broadcastpanehelpcontent) + +## Functions + +### BroadcastPane + +▸ **BroadcastPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :---------------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.initialPlanetId` | `undefined` \| `LocationId` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | + +#### Returns + +`Element` + +--- + +### BroadcastPaneHelpContent + +▸ **BroadcastPaneHelpContent**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_CoordsPane.md b/docs/modules/Frontend_Panes_CoordsPane.md new file mode 100644 index 00000000..54d1094c --- /dev/null +++ b/docs/modules/Frontend_Panes_CoordsPane.md @@ -0,0 +1,17 @@ +# Module: Frontend/Panes/CoordsPane + +## Table of contents + +### Functions + +- [CoordsPane](Frontend_Panes_CoordsPane.md#coordspane) + +## Functions + +### CoordsPane + +▸ **CoordsPane**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_DiagnosticsPane.md b/docs/modules/Frontend_Panes_DiagnosticsPane.md new file mode 100644 index 00000000..8d8b9cb7 --- /dev/null +++ b/docs/modules/Frontend_Panes_DiagnosticsPane.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/DiagnosticsPane + +## Table of contents + +### Functions + +- [DiagnosticsPane](Frontend_Panes_DiagnosticsPane.md#diagnosticspane) + +## Functions + +### DiagnosticsPane + +▸ **DiagnosticsPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_ExplorePane.md b/docs/modules/Frontend_Panes_ExplorePane.md new file mode 100644 index 00000000..07d40a73 --- /dev/null +++ b/docs/modules/Frontend_Panes_ExplorePane.md @@ -0,0 +1,17 @@ +# Module: Frontend/Panes/ExplorePane + +## Table of contents + +### Functions + +- [ExplorePane](Frontend_Panes_ExplorePane.md#explorepane) + +## Functions + +### ExplorePane + +▸ **ExplorePane**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_HatPane.md b/docs/modules/Frontend_Panes_HatPane.md new file mode 100644 index 00000000..1af5e404 --- /dev/null +++ b/docs/modules/Frontend_Panes_HatPane.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/HatPane + +## Table of contents + +### Functions + +- [HatPane](Frontend_Panes_HatPane.md#hatpane) + +## Functions + +### HatPane + +▸ **HatPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :----------------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.initialPlanetId?` | `LocationId` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_HelpPane.md b/docs/modules/Frontend_Panes_HelpPane.md new file mode 100644 index 00000000..1055d618 --- /dev/null +++ b/docs/modules/Frontend_Panes_HelpPane.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/HelpPane + +## Table of contents + +### Functions + +- [HelpPane](Frontend_Panes_HelpPane.md#helppane) + +## Functions + +### HelpPane + +▸ **HelpPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_HoverPane.md b/docs/modules/Frontend_Panes_HoverPane.md new file mode 100644 index 00000000..ba07e6fc --- /dev/null +++ b/docs/modules/Frontend_Panes_HoverPane.md @@ -0,0 +1,28 @@ +# Module: Frontend/Panes/HoverPane + +## Table of contents + +### Functions + +- [HoverPane](Frontend_Panes_HoverPane.md#hoverpane) + +## Functions + +### HoverPane + +▸ **HoverPane**(`__namedParameters`): `Element` + +This is the pane that is rendered when you hover over a planet. + +#### Parameters + +| Name | Type | +| :-------------------------- | :-------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.element` | `ReactChild` | +| `__namedParameters.style?` | `CSSProperties` | +| `__namedParameters.visible` | `boolean` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_HoverPlanetPane.md b/docs/modules/Frontend_Panes_HoverPlanetPane.md new file mode 100644 index 00000000..95c13e20 --- /dev/null +++ b/docs/modules/Frontend_Panes_HoverPlanetPane.md @@ -0,0 +1,19 @@ +# Module: Frontend/Panes/HoverPlanetPane + +## Table of contents + +### Functions + +- [HoverPlanetPane](Frontend_Panes_HoverPlanetPane.md#hoverplanetpane) + +## Functions + +### HoverPlanetPane + +▸ **HoverPlanetPane**(): `Element` + +This is the pane that is rendered when you hover over a planet. + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_AdminPermissionsPane.md b/docs/modules/Frontend_Panes_Lobbies_AdminPermissionsPane.md new file mode 100644 index 00000000..e12f288f --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_AdminPermissionsPane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/AdminPermissionsPane + +## Table of contents + +### Functions + +- [AdminPermissionsPane](Frontend_Panes_Lobbies_AdminPermissionsPane.md#adminpermissionspane) + +## Functions + +### AdminPermissionsPane + +▸ **AdminPermissionsPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_ArtifactSettingsPane.md b/docs/modules/Frontend_Panes_Lobbies_ArtifactSettingsPane.md new file mode 100644 index 00000000..ed1039c9 --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_ArtifactSettingsPane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/ArtifactSettingsPane + +## Table of contents + +### Functions + +- [ArtifactSettingsPane](Frontend_Panes_Lobbies_ArtifactSettingsPane.md#artifactsettingspane) + +## Functions + +### ArtifactSettingsPane + +▸ **ArtifactSettingsPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_CaptureZonesPane.md b/docs/modules/Frontend_Panes_Lobbies_CaptureZonesPane.md new file mode 100644 index 00000000..f6e27895 --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_CaptureZonesPane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/CaptureZonesPane + +## Table of contents + +### Functions + +- [CaptureZonesPane](Frontend_Panes_Lobbies_CaptureZonesPane.md#capturezonespane) + +## Functions + +### CaptureZonesPane + +▸ **CaptureZonesPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_ConfigurationPane.md b/docs/modules/Frontend_Panes_Lobbies_ConfigurationPane.md new file mode 100644 index 00000000..2b7bc2b1 --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_ConfigurationPane.md @@ -0,0 +1,28 @@ +# Module: Frontend/Panes/Lobbies/ConfigurationPane + +## Table of contents + +### Functions + +- [ConfigurationPane](Frontend_Panes_Lobbies_ConfigurationPane.md#configurationpane) + +## Functions + +### ConfigurationPane + +▸ **ConfigurationPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------------- | :----------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.lobbyAddress` | `undefined` \| `EthAddress` | +| `__namedParameters.modalIndex` | `number` | +| `__namedParameters.startingConfig` | [`LobbyInitializers`](Frontend_Panes_Lobbies_Reducer.md#lobbyinitializers) | +| `__namedParameters.onCreate` | (`config`: [`LobbyInitializers`](Frontend_Panes_Lobbies_Reducer.md#lobbyinitializers)) => `Promise`<`void`\> | +| `__namedParameters.onMapChange` | (`props`: [`MinimapConfig`](Frontend_Panes_Lobbies_MinimapUtils.md#minimapconfig)) => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_GameSettingsPane.md b/docs/modules/Frontend_Panes_Lobbies_GameSettingsPane.md new file mode 100644 index 00000000..356f0b0a --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_GameSettingsPane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/GameSettingsPane + +## Table of contents + +### Functions + +- [GameSettingsPane](Frontend_Panes_Lobbies_GameSettingsPane.md#gamesettingspane) + +## Functions + +### GameSettingsPane + +▸ **GameSettingsPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_LobbiesUtils.md b/docs/modules/Frontend_Panes_Lobbies_LobbiesUtils.md new file mode 100644 index 00000000..77b3dd9b --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_LobbiesUtils.md @@ -0,0 +1,110 @@ +# Module: Frontend/Panes/Lobbies/LobbiesUtils + +## Table of contents + +### Interfaces + +- [LobbiesPaneProps](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) + +### Variables + +- [ButtonRow](Frontend_Panes_Lobbies_LobbiesUtils.md#buttonrow) + +### Functions + +- [ConfigDownload](Frontend_Panes_Lobbies_LobbiesUtils.md#configdownload) +- [ConfigUpload](Frontend_Panes_Lobbies_LobbiesUtils.md#configupload) +- [LinkButton](Frontend_Panes_Lobbies_LobbiesUtils.md#linkbutton) +- [NavigationTitle](Frontend_Panes_Lobbies_LobbiesUtils.md#navigationtitle) +- [Warning](Frontend_Panes_Lobbies_LobbiesUtils.md#warning) + +## Variables + +### ButtonRow + +• `Const` **ButtonRow**: `StyledComponent`<`ForwardRefExoticComponent`<`Partial`<`Omit`<`DarkForestRow`, `"children"`\>\> & `Events`<`unknown`\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\>\>, `any`, {}, `never`\> + +## Functions + +### ConfigDownload + +▸ **ConfigDownload**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.address` | `undefined` \| `EthAddress` | +| `__namedParameters.config` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | +| `__namedParameters.onError` | (`msg`: `string`) => `void` | + +#### Returns + +`Element` + +--- + +### ConfigUpload + +▸ **ConfigUpload**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.onError` | (`msg`: `string`) => `void` | +| `__namedParameters.onUpload` | (`initializers`: { `ABANDON_RANGE_CHANGE_PERCENT`: `number` ; `ABANDON_SPEED_CHANGE_PERCENT`: `number` ; `ADMIN_CAN_ADD_PLANETS`: `boolean` ; `ARTIFACT_POINT_VALUES`: `Tuple6`<`number`\> ; `BIOMEBASE_KEY`: `number` ; `BIOME_THRESHOLD_1`: `number` ; `BIOME_THRESHOLD_2`: `number` ; `CAPTURE_ZONES_ENABLED`: `boolean` ; `CAPTURE_ZONES_PER_5000_WORLD_RADIUS`: `number` ; `CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL`: `number` ; `CAPTURE_ZONE_COUNT`: `number` ; `CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED`: `number` ; `CAPTURE_ZONE_PLANET_LEVEL_SCORE`: `ExactArray10`<`number`\> ; `CAPTURE_ZONE_RADIUS`: `number` ; `CLAIM_PLANET_COOLDOWN`: `number` ; `DISABLE_ZK_CHECKS`: `boolean` ; `INIT_PERLIN_MAX`: `number` ; `INIT_PERLIN_MIN`: `number` ; `LOCATION_REVEAL_COOLDOWN`: `number` ; `MAX_NATURAL_PLANET_LEVEL`: `number` ; `PERLIN_LENGTH_SCALE`: `number` ; `PERLIN_MIRROR_X`: `boolean` ; `PERLIN_MIRROR_Y`: `boolean` ; `PERLIN_THRESHOLD_1`: `number` ; `PERLIN_THRESHOLD_2`: `number` ; `PERLIN_THRESHOLD_3`: `number` ; `PHOTOID_ACTIVATION_DELAY`: `number` ; `PLANETHASH_KEY`: `number` ; `PLANET_LEVEL_JUNK`: `ExactArray10`<`number`\> ; `PLANET_LEVEL_THRESHOLDS`: `ExactArray10`<`number`\> ; `PLANET_RARITY`: `number` ; `PLANET_TRANSFER_ENABLED`: `boolean` ; `PLANET_TYPE_WEIGHTS`: `PlanetTypeWeights` ; `SILVER_SCORE_VALUE`: `number` ; `SPACETYPE_KEY`: `number` ; `SPACE_JUNK_ENABLED`: `boolean` ; `SPACE_JUNK_LIMIT`: `number` ; `SPAWN_RIM_AREA`: `number` ; `START_PAUSED`: `boolean` ; `TIME_FACTOR_HUNDREDTHS`: `number` ; `TOKEN_MINT_END_TIMESTAMP`: `number` ; `WORLD_RADIUS_LOCKED`: `boolean` ; `WORLD_RADIUS_MIN`: `number` }) => `void` | + +#### Returns + +`Element` + +--- + +### LinkButton + +▸ **LinkButton**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------------------------------------------------- | +| `__namedParameters` | `PropsWithChildren`<{ `shortcut?`: `string` ; `to`: `string` }\> | + +#### Returns + +`Element` + +--- + +### NavigationTitle + +▸ **NavigationTitle**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------- | +| `__namedParameters` | `Object` | + +#### Returns + +`Element` + +--- + +### Warning + +▸ **Warning**(`__namedParameters`): `null` \| `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------- | +| `__namedParameters` | `Object` | + +#### Returns + +`null` \| `Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_MinimapPane.md b/docs/modules/Frontend_Panes_Lobbies_MinimapPane.md new file mode 100644 index 00000000..5e919cca --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_MinimapPane.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/Lobbies/MinimapPane + +## Table of contents + +### Functions + +- [Minimap](Frontend_Panes_Lobbies_MinimapPane.md#minimap) + +## Functions + +### Minimap + +▸ **Minimap**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :----------------------------- | :------------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.config` | `undefined` \| [`MinimapConfig`](Frontend_Panes_Lobbies_MinimapUtils.md#minimapconfig) | +| `__namedParameters.modalIndex` | `number` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_MinimapUtils.md b/docs/modules/Frontend_Panes_Lobbies_MinimapUtils.md new file mode 100644 index 00000000..f89e7ab4 --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_MinimapUtils.md @@ -0,0 +1,40 @@ +# Module: Frontend/Panes/Lobbies/MinimapUtils + +## Table of contents + +### Type aliases + +- [DrawMessage](Frontend_Panes_Lobbies_MinimapUtils.md#drawmessage) +- [MinimapConfig](Frontend_Panes_Lobbies_MinimapUtils.md#minimapconfig) + +## Type aliases + +### DrawMessage + +Ƭ **DrawMessage**: `Object` + +#### Type declaration + +| Name | Type | +| :------- | :-------------------------------------------------------- | +| `data` | { `type`: `SpaceType` ; `x`: `number` ; `y`: `number` }[] | +| `radius` | `number` | + +--- + +### MinimapConfig + +Ƭ **MinimapConfig**: `Object` + +#### Type declaration + +| Name | Type | +| :----------------- | :-------- | +| `key` | `number` | +| `mirrorX` | `boolean` | +| `mirrorY` | `boolean` | +| `perlinThreshold1` | `number` | +| `perlinThreshold2` | `number` | +| `perlinThreshold3` | `number` | +| `scale` | `number` | +| `worldRadius` | `number` | diff --git a/docs/modules/Frontend_Panes_Lobbies_PlanetPane.md b/docs/modules/Frontend_Panes_Lobbies_PlanetPane.md new file mode 100644 index 00000000..7aed8f2c --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_PlanetPane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/PlanetPane + +## Table of contents + +### Functions + +- [PlanetPane](Frontend_Panes_Lobbies_PlanetPane.md#planetpane) + +## Functions + +### PlanetPane + +▸ **PlanetPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_PlayerSpawnPane.md b/docs/modules/Frontend_Panes_Lobbies_PlayerSpawnPane.md new file mode 100644 index 00000000..2f481717 --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_PlayerSpawnPane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/PlayerSpawnPane + +## Table of contents + +### Functions + +- [PlayerSpawnPane](Frontend_Panes_Lobbies_PlayerSpawnPane.md#playerspawnpane) + +## Functions + +### PlayerSpawnPane + +▸ **PlayerSpawnPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_Reducer.md b/docs/modules/Frontend_Panes_Lobbies_Reducer.md new file mode 100644 index 00000000..2c081fa0 --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_Reducer.md @@ -0,0 +1,495 @@ +# Module: Frontend/Panes/Lobbies/Reducer + +## Table of contents + +### Classes + +- [InvalidConfigError](../classes/Frontend_Panes_Lobbies_Reducer.InvalidConfigError.md) + +### Type aliases + +- [LobbyAction](Frontend_Panes_Lobbies_Reducer.md#lobbyaction) +- [LobbyConfigAction](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigaction) +- [LobbyConfigState](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) +- [LobbyInitializers](Frontend_Panes_Lobbies_Reducer.md#lobbyinitializers) + +### Variables + +- [SAFE_UPPER_BOUNDS](Frontend_Panes_Lobbies_Reducer.md#safe_upper_bounds) + +### Functions + +- [lobbyConfigInit](Frontend_Panes_Lobbies_Reducer.md#lobbyconfiginit) +- [lobbyConfigReducer](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigreducer) +- [ofAny](Frontend_Panes_Lobbies_Reducer.md#ofany) +- [ofArtifactPointValues](Frontend_Panes_Lobbies_Reducer.md#ofartifactpointvalues) +- [ofBoolean](Frontend_Panes_Lobbies_Reducer.md#ofboolean) +- [ofCaptureZoneChangeBlockInterval](Frontend_Panes_Lobbies_Reducer.md#ofcapturezonechangeblockinterval) +- [ofCaptureZonePlanetLevelScore](Frontend_Panes_Lobbies_Reducer.md#ofcapturezoneplanetlevelscore) +- [ofCaptureZoneRadius](Frontend_Panes_Lobbies_Reducer.md#ofcapturezoneradius) +- [ofCaptureZonesPer5000WorldRadius](Frontend_Panes_Lobbies_Reducer.md#ofcapturezonesper5000worldradius) +- [ofMaxNaturalPlanetLevel](Frontend_Panes_Lobbies_Reducer.md#ofmaxnaturalplanetlevel) +- [ofNoop](Frontend_Panes_Lobbies_Reducer.md#ofnoop) +- [ofPerlinLengthScale](Frontend_Panes_Lobbies_Reducer.md#ofperlinlengthscale) +- [ofPlanetLevelJunk](Frontend_Panes_Lobbies_Reducer.md#ofplanetleveljunk) +- [ofPlanetLevelThresholds](Frontend_Panes_Lobbies_Reducer.md#ofplanetlevelthresholds) +- [ofPlanetRarity](Frontend_Panes_Lobbies_Reducer.md#ofplanetrarity) +- [ofPositiveFloat](Frontend_Panes_Lobbies_Reducer.md#ofpositivefloat) +- [ofPositiveInteger](Frontend_Panes_Lobbies_Reducer.md#ofpositiveinteger) +- [ofPositivePercent](Frontend_Panes_Lobbies_Reducer.md#ofpositivepercent) +- [ofSpaceJunkLimit](Frontend_Panes_Lobbies_Reducer.md#ofspacejunklimit) +- [ofSpawnRimArea](Frontend_Panes_Lobbies_Reducer.md#ofspawnrimarea) +- [ofTimeFactorHundredths](Frontend_Panes_Lobbies_Reducer.md#oftimefactorhundredths) +- [ofWorldRadiusMin](Frontend_Panes_Lobbies_Reducer.md#ofworldradiusmin) +- [toInitializers](Frontend_Panes_Lobbies_Reducer.md#toinitializers) + +## Type aliases + +### LobbyAction + +Ƭ **LobbyAction**: { `type`: `"RESET"` ; `value`: [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) } \| [`LobbyConfigAction`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigaction) + +--- + +### LobbyConfigAction + +Ƭ **LobbyConfigAction**: { `type`: `"START_PAUSED"` ; `value`: `Initializers`[``"START_PAUSED"``] \| `undefined` } \| { `type`: `"ADMIN_CAN_ADD_PLANETS"` ; `value`: `Initializers`[``"ADMIN_CAN_ADD_PLANETS"``] \| `undefined` } \| { `type`: `"TOKEN_MINT_END_TIMESTAMP"` ; `value`: `Initializers`[``"TOKEN_MINT_END_TIMESTAMP"``] \| `undefined` } \| { `type`: `"WORLD_RADIUS_LOCKED"` ; `value`: `Initializers`[``"WORLD_RADIUS_LOCKED"``] \| `undefined` } \| { `type`: `"WORLD_RADIUS_MIN"` ; `value`: `Initializers`[``"WORLD_RADIUS_MIN"``] \| `undefined` } \| { `type`: `"DISABLE_ZK_CHECKS"` ; `value`: `Initializers`[``"DISABLE_ZK_CHECKS"``] \| `undefined` } \| { `type`: `"PLANETHASH_KEY"` ; `value`: `Initializers`[``"PLANETHASH_KEY"``] \| `undefined` } \| { `type`: `"SPACETYPE_KEY"` ; `value`: `Initializers`[``"SPACETYPE_KEY"``] \| `undefined` } \| { `type`: `"BIOMEBASE_KEY"` ; `value`: `Initializers`[``"BIOMEBASE_KEY"``] \| `undefined` } \| { `type`: `"PERLIN_MIRROR_X"` ; `value`: `Initializers`[``"PERLIN_MIRROR_X"``] \| `undefined` } \| { `type`: `"PERLIN_MIRROR_Y"` ; `value`: `Initializers`[``"PERLIN_MIRROR_Y"``] \| `undefined` } \| { `type`: `"PERLIN_LENGTH_SCALE"` ; `value`: `Initializers`[``"PERLIN_LENGTH_SCALE"``] \| `undefined` } \| { `type`: `"MAX_NATURAL_PLANET_LEVEL"` ; `value`: `Initializers`[``"MAX_NATURAL_PLANET_LEVEL"``] \| `undefined` } \| { `type`: `"TIME_FACTOR_HUNDREDTHS"` ; `value`: `Initializers`[``"TIME_FACTOR_HUNDREDTHS"``] \| `undefined` } \| { `type`: `"PERLIN_THRESHOLD_1"` ; `value`: `Initializers`[``"PERLIN_THRESHOLD_1"``] \| `undefined` } \| { `type`: `"PERLIN_THRESHOLD_2"` ; `value`: `Initializers`[``"PERLIN_THRESHOLD_2"``] \| `undefined` } \| { `type`: `"PERLIN_THRESHOLD_3"` ; `value`: `Initializers`[``"PERLIN_THRESHOLD_3"``] \| `undefined` } \| { `type`: `"INIT_PERLIN_MIN"` ; `value`: `Initializers`[``"INIT_PERLIN_MIN"``] \| `undefined` } \| { `type`: `"INIT_PERLIN_MAX"` ; `value`: `Initializers`[``"INIT_PERLIN_MAX"``] \| `undefined` } \| { `type`: `"BIOME_THRESHOLD_1"` ; `value`: `Initializers`[``"BIOME_THRESHOLD_1"``] \| `undefined` } \| { `type`: `"BIOME_THRESHOLD_2"` ; `value`: `Initializers`[``"BIOME_THRESHOLD_2"``] \| `undefined` } \| { `index`: `number` ; `type`: `"PLANET_LEVEL_THRESHOLDS"` ; `value`: `number` \| `undefined` } \| { `type`: `"PLANET_RARITY"` ; `value`: `Initializers`[``"PLANET_RARITY"``] \| `undefined` } \| { `type`: `"PLANET_TRANSFER_ENABLED"` ; `value`: `Initializers`[``"PLANET_TRANSFER_ENABLED"``] \| `undefined` } \| { `type`: `"PHOTOID_ACTIVATION_DELAY"` ; `value`: `Initializers`[``"PHOTOID_ACTIVATION_DELAY"``] \| `undefined` } \| { `type`: `"SPAWN_RIM_AREA"` ; `value`: `Initializers`[``"SPAWN_RIM_AREA"``] \| `undefined` } \| { `type`: `"LOCATION_REVEAL_COOLDOWN"` ; `value`: `Initializers`[``"LOCATION_REVEAL_COOLDOWN"``] \| `undefined` } \| { `type`: `"PLANET_TYPE_WEIGHTS"` ; `value`: `Initializers`[``"PLANET_TYPE_WEIGHTS"``] \| `undefined` } \| { `type`: `"SILVER_SCORE_VALUE"` ; `value`: `Initializers`[``"SILVER_SCORE_VALUE"``] \| `undefined` } \| { `index`: `number` ; `type`: `"ARTIFACT_POINT_VALUES"` ; `value`: `number` \| `undefined` } \| { `type`: `"SPACE_JUNK_ENABLED"` ; `value`: `Initializers`[``"SPACE_JUNK_ENABLED"``] \| `undefined` } \| { `type`: `"SPACE_JUNK_LIMIT"` ; `value`: `Initializers`[``"SPACE_JUNK_LIMIT"``] \| `undefined` } \| { `index`: `number` ; `type`: `"PLANET_LEVEL_JUNK"` ; `value`: `number` \| `undefined` } \| { `type`: `"ABANDON_SPEED_CHANGE_PERCENT"` ; `value`: `Initializers`[``"ABANDON_SPEED_CHANGE_PERCENT"``] \| `undefined` } \| { `type`: `"ABANDON_RANGE_CHANGE_PERCENT"` ; `value`: `Initializers`[``"ABANDON_RANGE_CHANGE_PERCENT"``] \| `undefined` } \| { `type`: `"CAPTURE_ZONES_ENABLED"` ; `value`: `Initializers`[``"CAPTURE_ZONES_ENABLED"``] \| `undefined` } \| { `type`: `"CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL"` ; `value`: `Initializers`[``"CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL"``] \| `undefined` } \| { `type`: `"CAPTURE_ZONE_RADIUS"` ; `value`: `Initializers`[``"CAPTURE_ZONE_RADIUS"``] \| `undefined` } \| { `index`: `number` ; `type`: `"CAPTURE_ZONE_PLANET_LEVEL_SCORE"` ; `value`: `number` \| `undefined` } \| { `type`: `"CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED"` ; `value`: `Initializers`[``"CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED"``] \| `undefined` } \| { `type`: `"CAPTURE_ZONES_PER_5000_WORLD_RADIUS"` ; `value`: `Initializers`[``"CAPTURE_ZONES_PER_5000_WORLD_RADIUS"``] \| `undefined` } \| { `type`: `"WHITELIST_ENABLED"` ; `value`: `boolean` \| `undefined` } + +--- + +### LobbyConfigState + +Ƭ **LobbyConfigState**: { [key in keyof LobbyInitializers]: Object } + +--- + +### LobbyInitializers + +Ƭ **LobbyInitializers**: `Initializers` & { `WHITELIST_ENABLED`: `boolean` \| `undefined` } + +## Variables + +### SAFE_UPPER_BOUNDS + +• `Const` **SAFE_UPPER_BOUNDS**: `number` + +## Functions + +### lobbyConfigInit + +▸ **lobbyConfigInit**(`startingConfig`): [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) + +#### Parameters + +| Name | Type | +| :--------------- | :------------------------------------------------------------------------- | +| `startingConfig` | [`LobbyInitializers`](Frontend_Panes_Lobbies_Reducer.md#lobbyinitializers) | + +#### Returns + +[`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) + +--- + +### lobbyConfigReducer + +▸ **lobbyConfigReducer**(`state`, `action`): [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) + +#### Parameters + +| Name | Type | +| :------- | :----------------------------------------------------------------------- | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | +| `action` | [`LobbyAction`](Frontend_Panes_Lobbies_Reducer.md#lobbyaction) | + +#### Returns + +[`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) + +--- + +### ofAny + +▸ **ofAny**(`__namedParameters`, `state`): { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `PlanetTypeWeights` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `undefined` \| `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------- | +| `__namedParameters` | [`LobbyConfigAction`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigaction) | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `PlanetTypeWeights` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `defaultValue`: `undefined` \| `boolean` ; `displayValue`: `undefined` \| `number` \| `boolean` \| `PlanetTypeWeights` = value; `warning`: `undefined` = undefined } + +--- + +### ofArtifactPointValues + +▸ **ofArtifactPointValues**(`__namedParameters`, `state`): { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?] ; `warning`: `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` = undefined } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.index` | `number` | +| `__namedParameters.type` | `"ARTIFACT_POINT_VALUES"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?] ; `warning`: `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` = undefined } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `undefined` = undefined } + +--- + +### ofBoolean + +▸ **ofBoolean**(`__namedParameters`, `state`): { `currentValue`: `undefined` \| `boolean` ; `defaultValue`: `undefined` \| `boolean` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `boolean` = value; `defaultValue`: `undefined` \| `boolean` ; `displayValue`: `boolean` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | { `type`: `"START_PAUSED"` ; `value`: `undefined` \| `boolean` } \| { `type`: `"ADMIN_CAN_ADD_PLANETS"` ; `value`: `undefined` \| `boolean` } \| { `type`: `"WORLD_RADIUS_LOCKED"` ; `value`: `undefined` \| `boolean` } \| { `type`: `"DISABLE_ZK_CHECKS"` ; `value`: `undefined` \| `boolean` } \| { `type`: `"PERLIN_MIRROR_X"` ; `value`: `undefined` \| `boolean` } \| { `type`: `"PERLIN_MIRROR_Y"` ; `value`: `undefined` \| `boolean` } \| { `type`: `"PLANET_TRANSFER_ENABLED"` ; `value`: `undefined` \| `boolean` } \| { `type`: `"SPACE_JUNK_ENABLED"` ; `value`: `undefined` \| `boolean` } \| { `type`: `"CAPTURE_ZONES_ENABLED"` ; `value`: `undefined` \| `boolean` } \| { `type`: `"WHITELIST_ENABLED"` ; `value`: `undefined` \| `boolean` } | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `undefined` \| `boolean` ; `defaultValue`: `undefined` \| `boolean` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `boolean` = value; `defaultValue`: `undefined` \| `boolean` ; `displayValue`: `boolean` = value; `warning`: `undefined` = undefined } + +--- + +### ofCaptureZoneChangeBlockInterval + +▸ **ofCaptureZoneChangeBlockInterval**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofCaptureZonePlanetLevelScore + +▸ **ofCaptureZonePlanetLevelScore**(`__namedParameters`, `state`): { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.index` | `number` | +| `__namedParameters.type` | `"CAPTURE_ZONE_PLANET_LEVEL_SCORE"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `undefined` = undefined } + +--- + +### ofCaptureZoneRadius + +▸ **ofCaptureZoneRadius**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"CAPTURE_ZONE_RADIUS"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofCaptureZonesPer5000WorldRadius + +▸ **ofCaptureZonesPer5000WorldRadius**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"CAPTURE_ZONES_PER_5000_WORLD_RADIUS"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofMaxNaturalPlanetLevel + +▸ **ofMaxNaturalPlanetLevel**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"MAX_NATURAL_PLANET_LEVEL"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofNoop + +▸ **ofNoop**(`__namedParameters`, `state`): { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `PlanetTypeWeights` ; `defaultValue`: `PlanetTypeWeights` ; `displayValue`: `undefined` \| [ExactArray10\>?, ExactArray10\>?, ExactArray10\>?, ExactArray10\>?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `undefined` \| `boolean` ; `defaultValue`: `undefined` \| `boolean` ; `displayValue`: `Partial`<`undefined` \| `boolean`\> ; `warning`: `undefined` \| `string` } + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------- | +| `__namedParameters` | [`LobbyConfigAction`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigaction) | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `PlanetTypeWeights` ; `defaultValue`: `PlanetTypeWeights` ; `displayValue`: `undefined` \| [ExactArray10\>?, ExactArray10\>?, ExactArray10\>?, ExactArray10\>?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `boolean` ; `defaultValue`: `boolean` ; `displayValue`: `undefined` \| `Partial`<`boolean`\> ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` \| `number` ; `warning`: `undefined` \| `string` } \| { `currentValue`: `undefined` \| `boolean` ; `defaultValue`: `undefined` \| `boolean` ; `displayValue`: `Partial`<`undefined` \| `boolean`\> ; `warning`: `undefined` \| `string` } + +--- + +### ofPerlinLengthScale + +▸ **ofPerlinLengthScale**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `never` = value; `warning`: `string` = 'Value must be a number' } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"PERLIN_LENGTH_SCALE"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `never` = value; `warning`: `string` = 'Value must be a number' } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofPlanetLevelJunk + +▸ **ofPlanetLevelJunk**(`__namedParameters`, `state`): { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.index` | `number` | +| `__namedParameters.type` | `"PLANET_LEVEL_JUNK"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `undefined` = undefined } + +--- + +### ofPlanetLevelThresholds + +▸ **ofPlanetLevelThresholds**(`__namedParameters`, `state`): { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` = undefined } \| { `currentValue`: `number`[] ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.index` | `number` | +| `__namedParameters.type` | `"PLANET_LEVEL_THRESHOLDS"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `string` } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` \| [number?, number?, number?, number?, number?, number?, number?, number?, number?, number?] ; `warning`: `undefined` = undefined } \| { `currentValue`: `number`[] ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } \| { `currentValue`: `number`[] ; `displayValue`: (`undefined` \| `number`)[] ; `warning`: `string` } + +--- + +### ofPlanetRarity + +▸ **ofPlanetRarity**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"PLANET_RARITY"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofPositiveFloat + +▸ **ofPositiveFloat**(`__namedParameters`, `state`): { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | { `type`: `"TOKEN_MINT_END_TIMESTAMP"` ; `value`: `undefined` \| `number` } \| { `type`: `"WORLD_RADIUS_MIN"` ; `value`: `undefined` \| `number` } \| { `type`: `"PLANETHASH_KEY"` ; `value`: `undefined` \| `number` } \| { `type`: `"SPACETYPE_KEY"` ; `value`: `undefined` \| `number` } \| { `type`: `"BIOMEBASE_KEY"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_LENGTH_SCALE"` ; `value`: `undefined` \| `number` } \| { `type`: `"MAX_NATURAL_PLANET_LEVEL"` ; `value`: `undefined` \| `number` } \| { `type`: `"TIME_FACTOR_HUNDREDTHS"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_THRESHOLD_1"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_THRESHOLD_2"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_THRESHOLD_3"` ; `value`: `undefined` \| `number` } \| { `type`: `"INIT_PERLIN_MIN"` ; `value`: `undefined` \| `number` } \| { `type`: `"INIT_PERLIN_MAX"` ; `value`: `undefined` \| `number` } \| { `type`: `"BIOME_THRESHOLD_1"` ; `value`: `undefined` \| `number` } \| { `type`: `"BIOME_THRESHOLD_2"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"PLANET_LEVEL_THRESHOLDS"` ; `value`: `undefined` \| `number` } \| { `type`: `"PLANET_RARITY"` ; `value`: `undefined` \| `number` } \| { `type`: `"PHOTOID_ACTIVATION_DELAY"` ; `value`: `undefined` \| `number` } \| { `type`: `"SPAWN_RIM_AREA"` ; `value`: `undefined` \| `number` } \| { `type`: `"LOCATION_REVEAL_COOLDOWN"` ; `value`: `undefined` \| `number` } \| { `type`: `"SILVER_SCORE_VALUE"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"ARTIFACT_POINT_VALUES"` ; `value`: `undefined` \| `number` } \| { `type`: `"SPACE_JUNK_LIMIT"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"PLANET_LEVEL_JUNK"` ; `value`: `undefined` \| `number` } \| { `type`: `"ABANDON_SPEED_CHANGE_PERCENT"` ; `value`: `undefined` \| `number` } \| { `type`: `"ABANDON_RANGE_CHANGE_PERCENT"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONE_RADIUS"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"CAPTURE_ZONE_PLANET_LEVEL_SCORE"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONES_PER_5000_WORLD_RADIUS"` ; `value`: `undefined` \| `number` } | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofPositiveInteger + +▸ **ofPositiveInteger**(`__namedParameters`, `state`): { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | { `type`: `"TOKEN_MINT_END_TIMESTAMP"` ; `value`: `undefined` \| `number` } \| { `type`: `"WORLD_RADIUS_MIN"` ; `value`: `undefined` \| `number` } \| { `type`: `"PLANETHASH_KEY"` ; `value`: `undefined` \| `number` } \| { `type`: `"SPACETYPE_KEY"` ; `value`: `undefined` \| `number` } \| { `type`: `"BIOMEBASE_KEY"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_LENGTH_SCALE"` ; `value`: `undefined` \| `number` } \| { `type`: `"MAX_NATURAL_PLANET_LEVEL"` ; `value`: `undefined` \| `number` } \| { `type`: `"TIME_FACTOR_HUNDREDTHS"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_THRESHOLD_1"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_THRESHOLD_2"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_THRESHOLD_3"` ; `value`: `undefined` \| `number` } \| { `type`: `"INIT_PERLIN_MIN"` ; `value`: `undefined` \| `number` } \| { `type`: `"INIT_PERLIN_MAX"` ; `value`: `undefined` \| `number` } \| { `type`: `"BIOME_THRESHOLD_1"` ; `value`: `undefined` \| `number` } \| { `type`: `"BIOME_THRESHOLD_2"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"PLANET_LEVEL_THRESHOLDS"` ; `value`: `undefined` \| `number` } \| { `type`: `"PLANET_RARITY"` ; `value`: `undefined` \| `number` } \| { `type`: `"PHOTOID_ACTIVATION_DELAY"` ; `value`: `undefined` \| `number` } \| { `type`: `"SPAWN_RIM_AREA"` ; `value`: `undefined` \| `number` } \| { `type`: `"LOCATION_REVEAL_COOLDOWN"` ; `value`: `undefined` \| `number` } \| { `type`: `"SILVER_SCORE_VALUE"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"ARTIFACT_POINT_VALUES"` ; `value`: `undefined` \| `number` } \| { `type`: `"SPACE_JUNK_LIMIT"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"PLANET_LEVEL_JUNK"` ; `value`: `undefined` \| `number` } \| { `type`: `"ABANDON_SPEED_CHANGE_PERCENT"` ; `value`: `undefined` \| `number` } \| { `type`: `"ABANDON_RANGE_CHANGE_PERCENT"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONE_RADIUS"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"CAPTURE_ZONE_PLANET_LEVEL_SCORE"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONES_PER_5000_WORLD_RADIUS"` ; `value`: `undefined` \| `number` } | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofPositivePercent + +▸ **ofPositivePercent**(`__namedParameters`, `state`): { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | { `type`: `"TOKEN_MINT_END_TIMESTAMP"` ; `value`: `undefined` \| `number` } \| { `type`: `"WORLD_RADIUS_MIN"` ; `value`: `undefined` \| `number` } \| { `type`: `"PLANETHASH_KEY"` ; `value`: `undefined` \| `number` } \| { `type`: `"SPACETYPE_KEY"` ; `value`: `undefined` \| `number` } \| { `type`: `"BIOMEBASE_KEY"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_LENGTH_SCALE"` ; `value`: `undefined` \| `number` } \| { `type`: `"MAX_NATURAL_PLANET_LEVEL"` ; `value`: `undefined` \| `number` } \| { `type`: `"TIME_FACTOR_HUNDREDTHS"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_THRESHOLD_1"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_THRESHOLD_2"` ; `value`: `undefined` \| `number` } \| { `type`: `"PERLIN_THRESHOLD_3"` ; `value`: `undefined` \| `number` } \| { `type`: `"INIT_PERLIN_MIN"` ; `value`: `undefined` \| `number` } \| { `type`: `"INIT_PERLIN_MAX"` ; `value`: `undefined` \| `number` } \| { `type`: `"BIOME_THRESHOLD_1"` ; `value`: `undefined` \| `number` } \| { `type`: `"BIOME_THRESHOLD_2"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"PLANET_LEVEL_THRESHOLDS"` ; `value`: `undefined` \| `number` } \| { `type`: `"PLANET_RARITY"` ; `value`: `undefined` \| `number` } \| { `type`: `"PHOTOID_ACTIVATION_DELAY"` ; `value`: `undefined` \| `number` } \| { `type`: `"SPAWN_RIM_AREA"` ; `value`: `undefined` \| `number` } \| { `type`: `"LOCATION_REVEAL_COOLDOWN"` ; `value`: `undefined` \| `number` } \| { `type`: `"SILVER_SCORE_VALUE"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"ARTIFACT_POINT_VALUES"` ; `value`: `undefined` \| `number` } \| { `type`: `"SPACE_JUNK_LIMIT"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"PLANET_LEVEL_JUNK"` ; `value`: `undefined` \| `number` } \| { `type`: `"ABANDON_SPEED_CHANGE_PERCENT"` ; `value`: `undefined` \| `number` } \| { `type`: `"ABANDON_RANGE_CHANGE_PERCENT"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONE_RADIUS"` ; `value`: `undefined` \| `number` } \| { `index`: `number` ; `type`: `"CAPTURE_ZONE_PLANET_LEVEL_SCORE"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED"` ; `value`: `undefined` \| `number` } \| { `type`: `"CAPTURE_ZONES_PER_5000_WORLD_RADIUS"` ; `value`: `undefined` \| `number` } | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `ExactArray10`<`number`\> ; `defaultValue`: `ExactArray10`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `Tuple6`<`number`\> ; `defaultValue`: `Tuple6`<`number`\> ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofSpaceJunkLimit + +▸ **ofSpaceJunkLimit**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"SPACE_JUNK_LIMIT"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofSpawnRimArea + +▸ **ofSpawnRimArea**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` = 'Spawnable area must be larger' } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"SPAWN_RIM_AREA"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` = 'Spawnable area must be larger' } + +--- + +### ofTimeFactorHundredths + +▸ **ofTimeFactorHundredths**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"TIME_FACTOR_HUNDREDTHS"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### ofWorldRadiusMin + +▸ **ofWorldRadiusMin**(`__namedParameters`, `state`): { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +#### Parameters + +| Name | Type | +| :------------------------ | :----------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.type` | `"WORLD_RADIUS_MIN"` | +| `__namedParameters.value` | `undefined` \| `number` | +| `state` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +{ `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `undefined` = value; `warning`: `undefined` = undefined } \| { `currentValue`: `number` ; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `string` } \| { `currentValue`: `number` = value; `defaultValue`: `number` ; `displayValue`: `number` = value; `warning`: `undefined` = undefined } + +--- + +### toInitializers + +▸ **toInitializers**(`obj`): [`LobbyInitializers`](Frontend_Panes_Lobbies_Reducer.md#lobbyinitializers) + +#### Parameters + +| Name | Type | +| :---- | :----------------------------------------------------------------------- | +| `obj` | [`LobbyConfigState`](Frontend_Panes_Lobbies_Reducer.md#lobbyconfigstate) | + +#### Returns + +[`LobbyInitializers`](Frontend_Panes_Lobbies_Reducer.md#lobbyinitializers) diff --git a/docs/modules/Frontend_Panes_Lobbies_SnarkPane.md b/docs/modules/Frontend_Panes_Lobbies_SnarkPane.md new file mode 100644 index 00000000..6e280139 --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_SnarkPane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/SnarkPane + +## Table of contents + +### Functions + +- [SnarkPane](Frontend_Panes_Lobbies_SnarkPane.md#snarkpane) + +## Functions + +### SnarkPane + +▸ **SnarkPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_SpaceJunkPane.md b/docs/modules/Frontend_Panes_Lobbies_SpaceJunkPane.md new file mode 100644 index 00000000..4cac367b --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_SpaceJunkPane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/SpaceJunkPane + +## Table of contents + +### Functions + +- [SpaceJunkPane](Frontend_Panes_Lobbies_SpaceJunkPane.md#spacejunkpane) + +## Functions + +### SpaceJunkPane + +▸ **SpaceJunkPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_SpaceTypeBiomePane.md b/docs/modules/Frontend_Panes_Lobbies_SpaceTypeBiomePane.md new file mode 100644 index 00000000..5b1f3845 --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_SpaceTypeBiomePane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/SpaceTypeBiomePane + +## Table of contents + +### Functions + +- [SpaceTypeBiomePane](Frontend_Panes_Lobbies_SpaceTypeBiomePane.md#spacetypebiomepane) + +## Functions + +### SpaceTypeBiomePane + +▸ **SpaceTypeBiomePane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Lobbies_WorldSizePane.md b/docs/modules/Frontend_Panes_Lobbies_WorldSizePane.md new file mode 100644 index 00000000..5126db16 --- /dev/null +++ b/docs/modules/Frontend_Panes_Lobbies_WorldSizePane.md @@ -0,0 +1,23 @@ +# Module: Frontend/Panes/Lobbies/WorldSizePane + +## Table of contents + +### Functions + +- [WorldSizePane](Frontend_Panes_Lobbies_WorldSizePane.md#worldsizepane) + +## Functions + +### WorldSizePane + +▸ **WorldSizePane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------ | +| `__namedParameters` | [`LobbiesPaneProps`](../interfaces/Frontend_Panes_Lobbies_LobbiesUtils.LobbiesPaneProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_ManagePlanetArtifacts_ArtifactActions.md b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_ArtifactActions.md new file mode 100644 index 00000000..b3f6a280 --- /dev/null +++ b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_ArtifactActions.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/ManagePlanetArtifacts/ArtifactActions + +## Table of contents + +### Functions + +- [ArtifactActions](Frontend_Panes_ManagePlanetArtifacts_ArtifactActions.md#artifactactions) + +## Functions + +### ArtifactActions + +▸ **ArtifactActions**(`__namedParameters`): `null` \| `Element` + +#### Parameters + +| Name | Type | +| :----------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifactId` | `ArtifactId` | +| `__namedParameters.depositOn?` | `LocationId` | + +#### Returns + +`null` \| `Element` diff --git a/docs/modules/Frontend_Panes_ManagePlanetArtifacts_ManageArtifacts.md b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_ManageArtifacts.md new file mode 100644 index 00000000..097bd3c3 --- /dev/null +++ b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_ManageArtifacts.md @@ -0,0 +1,28 @@ +# Module: Frontend/Panes/ManagePlanetArtifacts/ManageArtifacts + +## Table of contents + +### Functions + +- [ManageArtifactsPane](Frontend_Panes_ManagePlanetArtifacts_ManageArtifacts.md#manageartifactspane) + +## Functions + +### ManageArtifactsPane + +▸ **ManageArtifactsPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------------ | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifactsInWallet` | `Artifact`[] | +| `__namedParameters.artifactsOnPlanet` | (`undefined` \| `Artifact`)[] | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `__namedParameters.planet` | `LocatablePlanet` | +| `__namedParameters.playerAddress` | `string` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_ManagePlanetArtifacts_ManagePlanetArtifactsPane.md b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_ManagePlanetArtifactsPane.md new file mode 100644 index 00000000..04da1a4a --- /dev/null +++ b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_ManagePlanetArtifactsPane.md @@ -0,0 +1,51 @@ +# Module: Frontend/Panes/ManagePlanetArtifacts/ManagePlanetArtifactsPane + +## Table of contents + +### Functions + +- [ManagePlanetArtifactsHelpContent](Frontend_Panes_ManagePlanetArtifacts_ManagePlanetArtifactsPane.md#manageplanetartifactshelpcontent) +- [ManagePlanetArtifactsPane](Frontend_Panes_ManagePlanetArtifacts_ManagePlanetArtifactsPane.md#manageplanetartifactspane) +- [PlanetInfoHelpContent](Frontend_Panes_ManagePlanetArtifacts_ManagePlanetArtifactsPane.md#planetinfohelpcontent) + +## Functions + +### ManagePlanetArtifactsHelpContent + +▸ **ManagePlanetArtifactsHelpContent**(): `Element` + +#### Returns + +`Element` + +--- + +### ManagePlanetArtifactsPane + +▸ **ManagePlanetArtifactsPane**(`__namedParameters`): `Element` + +This is the place where a user can manage all of their artifacts on a +particular planet. This includes prospecting, withdrawing, depositing, +activating, and deactivating artifacts. + +#### Parameters + +| Name | Type | +| :---------------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.initialPlanetId` | `undefined` \| `LocationId` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | + +#### Returns + +`Element` + +--- + +### PlanetInfoHelpContent + +▸ **PlanetInfoHelpContent**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_ManagePlanetArtifacts_SortBy.md b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_SortBy.md new file mode 100644 index 00000000..c21424f0 --- /dev/null +++ b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_SortBy.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/ManagePlanetArtifacts/SortBy + +## Table of contents + +### Functions + +- [SortBy](Frontend_Panes_ManagePlanetArtifacts_SortBy.md#sortby) + +## Functions + +### SortBy + +▸ **SortBy**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :---------------------------- | :---------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.sortBy` | `undefined` \| keyof `Upgrade` | +| `__namedParameters.setSortBy` | (`k`: `undefined` \| keyof `Upgrade`) => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_ManagePlanetArtifacts_UpgradeStatsView.md b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_UpgradeStatsView.md new file mode 100644 index 00000000..5f2ff44b --- /dev/null +++ b/docs/modules/Frontend_Panes_ManagePlanetArtifacts_UpgradeStatsView.md @@ -0,0 +1,26 @@ +# Module: Frontend/Panes/ManagePlanetArtifacts/UpgradeStatsView + +## Table of contents + +### Functions + +- [UpgradeStatsView](Frontend_Panes_ManagePlanetArtifacts_UpgradeStatsView.md#upgradestatsview) + +## Functions + +### UpgradeStatsView + +▸ **UpgradeStatsView**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------- | :------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifactType` | `ArtifactType` | +| `__namedParameters.isActive` | `boolean` | +| `__namedParameters.upgrade` | `Upgrade` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_OnboardingPane.md b/docs/modules/Frontend_Panes_OnboardingPane.md new file mode 100644 index 00000000..ac182ebc --- /dev/null +++ b/docs/modules/Frontend_Panes_OnboardingPane.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/OnboardingPane + +## Table of contents + +### Functions + +- [default](Frontend_Panes_OnboardingPane.md#default) + +## Functions + +### default + +▸ **default**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_PlanetContextPane.md b/docs/modules/Frontend_Panes_PlanetContextPane.md new file mode 100644 index 00000000..6c304740 --- /dev/null +++ b/docs/modules/Frontend_Panes_PlanetContextPane.md @@ -0,0 +1,36 @@ +# Module: Frontend/Panes/PlanetContextPane + +## Table of contents + +### Functions + +- [PlanetContextPane](Frontend_Panes_PlanetContextPane.md#planetcontextpane) +- [SelectedPlanetHelpContent](Frontend_Panes_PlanetContextPane.md#selectedplanethelpcontent) + +## Functions + +### PlanetContextPane + +▸ **PlanetContextPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` + +--- + +### SelectedPlanetHelpContent + +▸ **SelectedPlanetHelpContent**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_PlanetDexPane.md b/docs/modules/Frontend_Panes_PlanetDexPane.md new file mode 100644 index 00000000..327f4952 --- /dev/null +++ b/docs/modules/Frontend_Panes_PlanetDexPane.md @@ -0,0 +1,43 @@ +# Module: Frontend/Panes/PlanetDexPane + +## Table of contents + +### Functions + +- [PlanetDexPane](Frontend_Panes_PlanetDexPane.md#planetdexpane) +- [PlanetThumb](Frontend_Panes_PlanetDexPane.md#planetthumb) + +## Functions + +### PlanetDexPane + +▸ **PlanetDexPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` + +--- + +### PlanetThumb + +▸ **PlanetThumb**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `Planet` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_PlanetInfoPane.md b/docs/modules/Frontend_Panes_PlanetInfoPane.md new file mode 100644 index 00000000..2883519a --- /dev/null +++ b/docs/modules/Frontend_Panes_PlanetInfoPane.md @@ -0,0 +1,26 @@ +# Module: Frontend/Panes/PlanetInfoPane + +## Table of contents + +### Functions + +- [PlanetInfoPane](Frontend_Panes_PlanetInfoPane.md#planetinfopane) + +## Functions + +### PlanetInfoPane + +▸ **PlanetInfoPane**(`__namedParameters`): `Element` + +This pane contains misc info about the planet, which does not have a place in the main Planet Context Pane. + +#### Parameters + +| Name | Type | +| :---------------------------------- | :-------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.initialPlanetId` | `undefined` \| `LocationId` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_PlayerArtifactsPane.md b/docs/modules/Frontend_Panes_PlayerArtifactsPane.md new file mode 100644 index 00000000..2f2ca0db --- /dev/null +++ b/docs/modules/Frontend_Panes_PlayerArtifactsPane.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/PlayerArtifactsPane + +## Table of contents + +### Functions + +- [PlayerArtifactsPane](Frontend_Panes_PlayerArtifactsPane.md#playerartifactspane) + +## Functions + +### PlayerArtifactsPane + +▸ **PlayerArtifactsPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_PluginEditorPane.md b/docs/modules/Frontend_Panes_PluginEditorPane.md new file mode 100644 index 00000000..81715a90 --- /dev/null +++ b/docs/modules/Frontend_Panes_PluginEditorPane.md @@ -0,0 +1,32 @@ +# Module: Frontend/Panes/PluginEditorPane + +## Table of contents + +### Functions + +- [PluginEditorPane](Frontend_Panes_PluginEditorPane.md#plugineditorpane) + +## Functions + +### PluginEditorPane + +▸ **PluginEditorPane**(`__namedParameters`): `Element` + +Component for editing plugins. Saving causes its containing modal +to be closed, and the `overwrite` to be called, indicating that the +given plugin's source should be overwritten and reloaded. If no +plugin id is provided, assumes we're editing a new plugin. + +#### Parameters + +| Name | Type | +| :------------------------------ | :---------------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.pluginHost?` | `null` \| [`PluginManager`](../classes/Backend_GameLogic_PluginManager.PluginManager.md) | +| `__namedParameters.pluginId?` | `PluginId` | +| `__namedParameters.overwrite` | (`newPluginName`: `string`, `newPluginCode`: `string`, `pluginId?`: `PluginId`) => `void` | +| `__namedParameters.setIsOpen` | (`open`: `boolean`) => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_PluginLibraryPane.md b/docs/modules/Frontend_Panes_PluginLibraryPane.md new file mode 100644 index 00000000..c39ca90e --- /dev/null +++ b/docs/modules/Frontend_Panes_PluginLibraryPane.md @@ -0,0 +1,33 @@ +# Module: Frontend/Panes/PluginLibraryPane + +## Table of contents + +### Functions + +- [PluginLibraryPane](Frontend_Panes_PluginLibraryPane.md#pluginlibrarypane) + +## Functions + +### PluginLibraryPane + +▸ **PluginLibraryPane**(`__namedParameters`): `Element` + +This modal presents an overview of all of the player's plugins. Has a button to add a new plugin, +and lists out all the existing plugins, allowing the user to view their titles, as well as either +edit, delete, or open their modal. + +You can think of this as the plugin process list, the Activity Monitor of Dark forest. + +#### Parameters + +| Name | Type | +| :---------------------------------- | :----------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.gameUIManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | +| `__namedParameters.modalsContainer` | `Element` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_PrivatePane.md b/docs/modules/Frontend_Panes_PrivatePane.md new file mode 100644 index 00000000..eebee6f3 --- /dev/null +++ b/docs/modules/Frontend_Panes_PrivatePane.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/PrivatePane + +## Table of contents + +### Functions + +- [PrivatePane](Frontend_Panes_PrivatePane.md#privatepane) + +## Functions + +### PrivatePane + +▸ **PrivatePane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_SettingsPane.md b/docs/modules/Frontend_Panes_SettingsPane.md new file mode 100644 index 00000000..682fcedb --- /dev/null +++ b/docs/modules/Frontend_Panes_SettingsPane.md @@ -0,0 +1,27 @@ +# Module: Frontend/Panes/SettingsPane + +## Table of contents + +### Functions + +- [SettingsPane](Frontend_Panes_SettingsPane.md#settingspane) + +## Functions + +### SettingsPane + +▸ **SettingsPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------------- | :-------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.ethConnection` | `EthConnection` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | +| `__namedParameters.onOpenPrivate` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_Tooltip.md b/docs/modules/Frontend_Panes_Tooltip.md new file mode 100644 index 00000000..f268bcd6 --- /dev/null +++ b/docs/modules/Frontend_Panes_Tooltip.md @@ -0,0 +1,53 @@ +# Module: Frontend/Panes/Tooltip + +## Table of contents + +### Interfaces + +- [TooltipProps](../interfaces/Frontend_Panes_Tooltip.TooltipProps.md) +- [TooltipTriggerProps](../interfaces/Frontend_Panes_Tooltip.TooltipTriggerProps.md) + +### Functions + +- [Tooltip](Frontend_Panes_Tooltip.md#tooltip) +- [TooltipTrigger](Frontend_Panes_Tooltip.md#tooltiptrigger) + +## Functions + +### Tooltip + +▸ **Tooltip**(`props`): `null` \| `Element` + +At any given moment, there can only be one tooltip visible in the game. This is true because a +player only has one mouse cursor on the screen, and therefore can only be hovering over a single +[TooltipTrigger](Frontend_Panes_Tooltip.md#tooltiptrigger) element at any given time. This component is responsible for keeping track +of which tooltip has been hovered over, and rendering the corresponding content. + +#### Parameters + +| Name | Type | +| :------ | :--------------------------------------------------------------------- | +| `props` | [`TooltipProps`](../interfaces/Frontend_Panes_Tooltip.TooltipProps.md) | + +#### Returns + +`null` \| `Element` + +--- + +### TooltipTrigger + +▸ **TooltipTrigger**(`props`): `Element` + +When the player hovers over this element, triggers the tooltip with the given name to be +displayed on top of everything. + +#### Parameters + +| Name | Type | +| :------ | :----------------------------------------------------------------------------------- | +| `props` | [`TooltipTriggerProps`](../interfaces/Frontend_Panes_Tooltip.TooltipTriggerProps.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_TooltipPanes.md b/docs/modules/Frontend_Panes_TooltipPanes.md new file mode 100644 index 00000000..e4798ccc --- /dev/null +++ b/docs/modules/Frontend_Panes_TooltipPanes.md @@ -0,0 +1,552 @@ +# Module: Frontend/Panes/TooltipPanes + +## Table of contents + +### Functions + +- [ActivateArtifactPane](Frontend_Panes_TooltipPanes.md#activateartifactpane) +- [BonusDefenseTooltipPane](Frontend_Panes_TooltipPanes.md#bonusdefensetooltippane) +- [BonusEnergyCapTooltipPane](Frontend_Panes_TooltipPanes.md#bonusenergycaptooltippane) +- [BonusEnergyGroTooltipPane](Frontend_Panes_TooltipPanes.md#bonusenergygrotooltippane) +- [BonusRangeTooltipPane](Frontend_Panes_TooltipPanes.md#bonusrangetooltippane) +- [BonusSpaceJunkTooltipPane](Frontend_Panes_TooltipPanes.md#bonusspacejunktooltippane) +- [BonusSpeedTooltipPane](Frontend_Panes_TooltipPanes.md#bonusspeedtooltippane) +- [BonusTooltipPane](Frontend_Panes_TooltipPanes.md#bonustooltippane) +- [ClowntownTooltipPane](Frontend_Panes_TooltipPanes.md#clowntowntooltippane) +- [CurrentMiningTooltipPane](Frontend_Panes_TooltipPanes.md#currentminingtooltippane) +- [DeactivateArtifactPane](Frontend_Panes_TooltipPanes.md#deactivateartifactpane) +- [DefenseMultiplierPane](Frontend_Panes_TooltipPanes.md#defensemultiplierpane) +- [DepositArtifactPane](Frontend_Panes_TooltipPanes.md#depositartifactpane) +- [EnergyCapMultiplierPane](Frontend_Panes_TooltipPanes.md#energycapmultiplierpane) +- [EnergyGrowthMultiplierPane](Frontend_Panes_TooltipPanes.md#energygrowthmultiplierpane) +- [EnergyGrowthTooltipPane](Frontend_Panes_TooltipPanes.md#energygrowthtooltippane) +- [EnergyTooltipPane](Frontend_Panes_TooltipPanes.md#energytooltippane) +- [MaxLevelTooltipPane](Frontend_Panes_TooltipPanes.md#maxleveltooltippane) +- [MinEnergyTooltipPane](Frontend_Panes_TooltipPanes.md#minenergytooltippane) +- [MiningPauseTooltipPane](Frontend_Panes_TooltipPanes.md#miningpausetooltippane) +- [MiningTargetTooltipPane](Frontend_Panes_TooltipPanes.md#miningtargettooltippane) +- [ModalBroadcastTooltipPane](Frontend_Panes_TooltipPanes.md#modalbroadcasttooltippane) +- [ModalHelpTooltipPane](Frontend_Panes_TooltipPanes.md#modalhelptooltippane) +- [ModalLeaderboardTooltipPane](Frontend_Panes_TooltipPanes.md#modalleaderboardtooltippane) +- [ModalPlanetDetailsTooltipPane](Frontend_Panes_TooltipPanes.md#modalplanetdetailstooltippane) +- [ModalPlanetDexTooltipPane](Frontend_Panes_TooltipPanes.md#modalplanetdextooltippane) +- [ModalTwitterVerificationTooltipPane](Frontend_Panes_TooltipPanes.md#modaltwitterverificationtooltippane) +- [ModalUpgradeDetailsTooltipPane](Frontend_Panes_TooltipPanes.md#modalupgradedetailstooltippane) +- [NetworkHealthPane](Frontend_Panes_TooltipPanes.md#networkhealthpane) +- [PiratesTooltipPane](Frontend_Panes_TooltipPanes.md#piratestooltippane) +- [PlanetRankTooltipPane](Frontend_Panes_TooltipPanes.md#planetranktooltippane) +- [RangeMultiplierPane](Frontend_Panes_TooltipPanes.md#rangemultiplierpane) +- [RangeTooltipPane](Frontend_Panes_TooltipPanes.md#rangetooltippane) +- [RankTooltipPane](Frontend_Panes_TooltipPanes.md#ranktooltippane) +- [ScoreTooltipPane](Frontend_Panes_TooltipPanes.md#scoretooltippane) +- [SelectedSilverTooltipPane](Frontend_Panes_TooltipPanes.md#selectedsilvertooltippane) +- [SilverCapTooltipPane](Frontend_Panes_TooltipPanes.md#silvercaptooltippane) +- [SilverGrowthTooltipPane](Frontend_Panes_TooltipPanes.md#silvergrowthtooltippane) +- [SilverProdTooltipPane](Frontend_Panes_TooltipPanes.md#silverprodtooltippane) +- [SilverTooltipPane](Frontend_Panes_TooltipPanes.md#silvertooltippane) +- [SpeedMultiplierPane](Frontend_Panes_TooltipPanes.md#speedmultiplierpane) +- [Time50TooltipPane](Frontend_Panes_TooltipPanes.md#time50tooltippane) +- [Time90TooltipPane](Frontend_Panes_TooltipPanes.md#time90tooltippane) +- [TimeUntilActivationPossiblePane](Frontend_Panes_TooltipPanes.md#timeuntilactivationpossiblepane) +- [TooltipContent](Frontend_Panes_TooltipPanes.md#tooltipcontent) +- [TwitterHandleTooltipPane](Frontend_Panes_TooltipPanes.md#twitterhandletooltippane) +- [UpgradesTooltipPane](Frontend_Panes_TooltipPanes.md#upgradestooltippane) +- [WithdrawArtifactPane](Frontend_Panes_TooltipPanes.md#withdrawartifactpane) +- [WithdrawSilverButton](Frontend_Panes_TooltipPanes.md#withdrawsilverbutton) + +## Functions + +### ActivateArtifactPane + +▸ **ActivateArtifactPane**(): `Element` + +#### Returns + +`Element` + +--- + +### BonusDefenseTooltipPane + +▸ **BonusDefenseTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### BonusEnergyCapTooltipPane + +▸ **BonusEnergyCapTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### BonusEnergyGroTooltipPane + +▸ **BonusEnergyGroTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### BonusRangeTooltipPane + +▸ **BonusRangeTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### BonusSpaceJunkTooltipPane + +▸ **BonusSpaceJunkTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### BonusSpeedTooltipPane + +▸ **BonusSpeedTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### BonusTooltipPane + +▸ **BonusTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### ClowntownTooltipPane + +▸ **ClowntownTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### CurrentMiningTooltipPane + +▸ **CurrentMiningTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### DeactivateArtifactPane + +▸ **DeactivateArtifactPane**(): `Element` + +#### Returns + +`Element` + +--- + +### DefenseMultiplierPane + +▸ **DefenseMultiplierPane**(): `Element` + +#### Returns + +`Element` + +--- + +### DepositArtifactPane + +▸ **DepositArtifactPane**(): `Element` + +#### Returns + +`Element` + +--- + +### EnergyCapMultiplierPane + +▸ **EnergyCapMultiplierPane**(): `Element` + +#### Returns + +`Element` + +--- + +### EnergyGrowthMultiplierPane + +▸ **EnergyGrowthMultiplierPane**(): `Element` + +#### Returns + +`Element` + +--- + +### EnergyGrowthTooltipPane + +▸ **EnergyGrowthTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### EnergyTooltipPane + +▸ **EnergyTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### MaxLevelTooltipPane + +▸ **MaxLevelTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### MinEnergyTooltipPane + +▸ **MinEnergyTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### MiningPauseTooltipPane + +▸ **MiningPauseTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### MiningTargetTooltipPane + +▸ **MiningTargetTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### ModalBroadcastTooltipPane + +▸ **ModalBroadcastTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### ModalHelpTooltipPane + +▸ **ModalHelpTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### ModalLeaderboardTooltipPane + +▸ **ModalLeaderboardTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### ModalPlanetDetailsTooltipPane + +▸ **ModalPlanetDetailsTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### ModalPlanetDexTooltipPane + +▸ **ModalPlanetDexTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### ModalTwitterVerificationTooltipPane + +▸ **ModalTwitterVerificationTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### ModalUpgradeDetailsTooltipPane + +▸ **ModalUpgradeDetailsTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### NetworkHealthPane + +▸ **NetworkHealthPane**(): `Element` + +#### Returns + +`Element` + +--- + +### PiratesTooltipPane + +▸ **PiratesTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### PlanetRankTooltipPane + +▸ **PlanetRankTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### RangeMultiplierPane + +▸ **RangeMultiplierPane**(): `Element` + +#### Returns + +`Element` + +--- + +### RangeTooltipPane + +▸ **RangeTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### RankTooltipPane + +▸ **RankTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### ScoreTooltipPane + +▸ **ScoreTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### SelectedSilverTooltipPane + +▸ **SelectedSilverTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### SilverCapTooltipPane + +▸ **SilverCapTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### SilverGrowthTooltipPane + +▸ **SilverGrowthTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### SilverProdTooltipPane + +▸ **SilverProdTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### SilverTooltipPane + +▸ **SilverTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### SpeedMultiplierPane + +▸ **SpeedMultiplierPane**(): `Element` + +#### Returns + +`Element` + +--- + +### Time50TooltipPane + +▸ **Time50TooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### Time90TooltipPane + +▸ **Time90TooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### TimeUntilActivationPossiblePane + +▸ **TimeUntilActivationPossiblePane**(): `Element` + +#### Returns + +`Element` + +--- + +### TooltipContent + +▸ **TooltipContent**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :----------------------- | :--------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.name` | `undefined` \| `TooltipName` | + +#### Returns + +`Element` + +--- + +### TwitterHandleTooltipPane + +▸ **TwitterHandleTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### UpgradesTooltipPane + +▸ **UpgradesTooltipPane**(): `Element` + +#### Returns + +`Element` + +--- + +### WithdrawArtifactPane + +▸ **WithdrawArtifactPane**(): `Element` + +#### Returns + +`Element` + +--- + +### WithdrawSilverButton + +▸ **WithdrawSilverButton**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_TransactionLogPane.md b/docs/modules/Frontend_Panes_TransactionLogPane.md new file mode 100644 index 00000000..628a81d6 --- /dev/null +++ b/docs/modules/Frontend_Panes_TransactionLogPane.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/TransactionLogPane + +## Table of contents + +### Functions + +- [TransactionLogPane](Frontend_Panes_TransactionLogPane.md#transactionlogpane) + +## Functions + +### TransactionLogPane + +▸ **TransactionLogPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_TutorialPane.md b/docs/modules/Frontend_Panes_TutorialPane.md new file mode 100644 index 00000000..363762c3 --- /dev/null +++ b/docs/modules/Frontend_Panes_TutorialPane.md @@ -0,0 +1,24 @@ +# Module: Frontend/Panes/TutorialPane + +## Table of contents + +### Functions + +- [TutorialPane](Frontend_Panes_TutorialPane.md#tutorialpane) + +## Functions + +### TutorialPane + +▸ **TutorialPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------- | :----------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.tutorialHook` | [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_TwitterVerifyPane.md b/docs/modules/Frontend_Panes_TwitterVerifyPane.md new file mode 100644 index 00000000..0a02f45c --- /dev/null +++ b/docs/modules/Frontend_Panes_TwitterVerifyPane.md @@ -0,0 +1,25 @@ +# Module: Frontend/Panes/TwitterVerifyPane + +## Table of contents + +### Functions + +- [TwitterVerifyPane](Frontend_Panes_TwitterVerifyPane.md#twitterverifypane) + +## Functions + +### TwitterVerifyPane + +▸ **TwitterVerifyPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :----------- | +| `__namedParameters` | `Object` | +| `__namedParameters.visible` | `boolean` | +| `__namedParameters.onClose` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_UpgradeDetailsPane.md b/docs/modules/Frontend_Panes_UpgradeDetailsPane.md new file mode 100644 index 00000000..df8af651 --- /dev/null +++ b/docs/modules/Frontend_Panes_UpgradeDetailsPane.md @@ -0,0 +1,36 @@ +# Module: Frontend/Panes/UpgradeDetailsPane + +## Table of contents + +### Functions + +- [UpgradeDetailsPane](Frontend_Panes_UpgradeDetailsPane.md#upgradedetailspane) +- [UpgradeDetailsPaneHelpContent](Frontend_Panes_UpgradeDetailsPane.md#upgradedetailspanehelpcontent) + +## Functions + +### UpgradeDetailsPane + +▸ **UpgradeDetailsPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :---------------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.initialPlanetId` | `undefined` \| `LocationId` | +| `__namedParameters.modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | + +#### Returns + +`Element` + +--- + +### UpgradeDetailsPaneHelpContent + +▸ **UpgradeDetailsPaneHelpContent**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_WikiPane.md b/docs/modules/Frontend_Panes_WikiPane.md new file mode 100644 index 00000000..29ba1230 --- /dev/null +++ b/docs/modules/Frontend_Panes_WikiPane.md @@ -0,0 +1,24 @@ +# Module: Frontend/Panes/WikiPane + +## Table of contents + +### Functions + +- [WikiPane](Frontend_Panes_WikiPane.md#wikipane) + +## Functions + +### WikiPane + +▸ **WikiPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :---------- | +| `__namedParameters` | `Object` | +| `__namedParameters.children` | `ReactNode` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Panes_ZoomPane.md b/docs/modules/Frontend_Panes_ZoomPane.md new file mode 100644 index 00000000..c1b3169d --- /dev/null +++ b/docs/modules/Frontend_Panes_ZoomPane.md @@ -0,0 +1,17 @@ +# Module: Frontend/Panes/ZoomPane + +## Table of contents + +### Functions + +- [ZoomPane](Frontend_Panes_ZoomPane.md#zoompane) + +## Functions + +### ZoomPane + +▸ **ZoomPane**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Renderers_Artifacts_ArtifactRenderer.md b/docs/modules/Frontend_Renderers_Artifacts_ArtifactRenderer.md new file mode 100644 index 00000000..2661ebe8 --- /dev/null +++ b/docs/modules/Frontend_Renderers_Artifacts_ArtifactRenderer.md @@ -0,0 +1,52 @@ +# Module: Frontend/Renderers/Artifacts/ArtifactRenderer + +## Table of contents + +### Classes + +- [ArtifactRenderer](../classes/Frontend_Renderers_Artifacts_ArtifactRenderer.ArtifactRenderer.md) + +### Variables + +- [aDexCanvasH](Frontend_Renderers_Artifacts_ArtifactRenderer.md#adexcanvash) +- [aDexCanvasW](Frontend_Renderers_Artifacts_ArtifactRenderer.md#adexcanvasw) +- [aListCanvasH](Frontend_Renderers_Artifacts_ArtifactRenderer.md#alistcanvash) +- [aListCanvasW](Frontend_Renderers_Artifacts_ArtifactRenderer.md#alistcanvasw) +- [artifactColM](Frontend_Renderers_Artifacts_ArtifactRenderer.md#artifactcolm) +- [artifactColW](Frontend_Renderers_Artifacts_ArtifactRenderer.md#artifactcolw) + +## Variables + +### aDexCanvasH + +• `Const` **aDexCanvasH**: `number` + +--- + +### aDexCanvasW + +• `Const` **aDexCanvasW**: `number` + +--- + +### aListCanvasH + +• `Const` **aListCanvasH**: `400` + +--- + +### aListCanvasW + +• `Const` **aListCanvasW**: `48` + +--- + +### artifactColM + +• `Const` **artifactColM**: `32` + +--- + +### artifactColW + +• `Const` **artifactColW**: `number` diff --git a/docs/modules/Frontend_Renderers_GifRenderer.md b/docs/modules/Frontend_Renderers_GifRenderer.md new file mode 100644 index 00000000..79704b5a --- /dev/null +++ b/docs/modules/Frontend_Renderers_GifRenderer.md @@ -0,0 +1,7 @@ +# Module: Frontend/Renderers/GifRenderer + +## Table of contents + +### Classes + +- [GifRenderer](../classes/Frontend_Renderers_GifRenderer.GifRenderer.md) diff --git a/docs/modules/Frontend_Renderers_LandingPageCanvas.md b/docs/modules/Frontend_Renderers_LandingPageCanvas.md new file mode 100644 index 00000000..fa62b992 --- /dev/null +++ b/docs/modules/Frontend_Renderers_LandingPageCanvas.md @@ -0,0 +1,28 @@ +# Module: Frontend/Renderers/LandingPageCanvas + +## Table of contents + +### Functions + +- [LandingPageBackground](Frontend_Renderers_LandingPageCanvas.md#landingpagebackground) +- [default](Frontend_Renderers_LandingPageCanvas.md#default) + +## Functions + +### LandingPageBackground + +▸ **LandingPageBackground**(): `Element` + +#### Returns + +`Element` + +--- + +### default + +▸ **default**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Renderers_PlanetscapeRenderer_PlanetIcons.md b/docs/modules/Frontend_Renderers_PlanetscapeRenderer_PlanetIcons.md new file mode 100644 index 00000000..2db93547 --- /dev/null +++ b/docs/modules/Frontend_Renderers_PlanetscapeRenderer_PlanetIcons.md @@ -0,0 +1,24 @@ +# Module: Frontend/Renderers/PlanetscapeRenderer/PlanetIcons + +## Table of contents + +### Functions + +- [PlanetIcons](Frontend_Renderers_PlanetscapeRenderer_PlanetIcons.md#planeticons) + +## Functions + +### PlanetIcons + +▸ **PlanetIcons**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Styles_Colors.md b/docs/modules/Frontend_Styles_Colors.md new file mode 100644 index 00000000..b29ece27 --- /dev/null +++ b/docs/modules/Frontend_Styles_Colors.md @@ -0,0 +1,41 @@ +# Module: Frontend/Styles/Colors + +## Table of contents + +### Variables + +- [ANCIENT_BLUE](Frontend_Styles_Colors.md#ancient_blue) +- [ANCIENT_PURPLE](Frontend_Styles_Colors.md#ancient_purple) +- [BiomeBackgroundColors](Frontend_Styles_Colors.md#biomebackgroundcolors) +- [BiomeTextColors](Frontend_Styles_Colors.md#biometextcolors) +- [RarityColors](Frontend_Styles_Colors.md#raritycolors) + +## Variables + +### ANCIENT_BLUE + +• `Const` **ANCIENT_BLUE**: `"#b2fffc"` + +--- + +### ANCIENT_PURPLE + +• `Const` **ANCIENT_PURPLE**: `"#d23191"` + +--- + +### BiomeBackgroundColors + +• `Const` **BiomeBackgroundColors**: `Object` + +--- + +### BiomeTextColors + +• `Const` **BiomeTextColors**: `Object` + +--- + +### RarityColors + +• `Const` **RarityColors**: `Object` diff --git a/docs/modules/Frontend_Styles_Mixins.md b/docs/modules/Frontend_Styles_Mixins.md new file mode 100644 index 00000000..d47e00a6 --- /dev/null +++ b/docs/modules/Frontend_Styles_Mixins.md @@ -0,0 +1,24 @@ +# Module: Frontend/Styles/Mixins + +## Table of contents + +### Functions + +- [planetBackground](Frontend_Styles_Mixins.md#planetbackground) + +## Functions + +### planetBackground + +▸ **planetBackground**(`__namedParameters`): `""` \| `FlattenSimpleInterpolation` + +#### Parameters + +| Name | Type | +| :------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`""` \| `FlattenSimpleInterpolation` diff --git a/docs/modules/Frontend_Styles_dfstyles.md b/docs/modules/Frontend_Styles_dfstyles.md new file mode 100644 index 00000000..1fa2ffca --- /dev/null +++ b/docs/modules/Frontend_Styles_dfstyles.md @@ -0,0 +1,117 @@ +# Module: Frontend/Styles/dfstyles + +## Table of contents + +### Variables + +- [ARTIFACT_ROW_H](Frontend_Styles_dfstyles.md#artifact_row_h) +- [SPACE_TYPE_COLORS](Frontend_Styles_dfstyles.md#space_type_colors) +- [default](Frontend_Styles_dfstyles.md#default) +- [snips](Frontend_Styles_dfstyles.md#snips) + +## Variables + +### ARTIFACT_ROW_H + +• `Const` **ARTIFACT_ROW_H**: `48` + +--- + +### SPACE_TYPE_COLORS + +• `Const` **SPACE_TYPE_COLORS**: `Object` + +--- + +### default + +• `Const` **default**: `Object` + +#### Type declaration + +| Name | Type | +| :----------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `borderRadius` | `string` | +| `colors` | { `artifactBackground`: `string` = 'rgb(21, 17, 71)'; `background`: `string` ; `backgrounddark`: `string` ; `backgroundlight`: `string` ; `backgroundlighter`: `string` ; `blueBackground`: `string` ; `border`: `string` ; `borderDark`: `string` ; `borderDarker`: `string` ; `borderDarkest`: `string` ; `dfblue`: `string` ; `dfgreen`: `string` ; `dfgreendark`: `string` ; `dfgreenlight`: `string` ; `dforange`: `string` ; `dfpurple`: `string` ; `dfred`: `string` ; `dfwhite`: `string` ; `dfyellow`: `string` ; `icons`: { `blog`: `string` = '#ffcb1f'; `discord`: `string` = '#7289da'; `email`: `string` = '#D44638'; `github`: `string` = '#8e65db'; `twitter`: `string` = '#1DA1F2' } ; `subbertext`: `string` ; `subbesttext`: `string` ; `subtext`: `string` ; `text`: `string` ; `textLight`: `string` } | +| `colors.artifactBackground` | `string` | +| `colors.background` | `string` | +| `colors.backgrounddark` | `string` | +| `colors.backgroundlight` | `string` | +| `colors.backgroundlighter` | `string` | +| `colors.blueBackground` | `string` | +| `colors.border` | `string` | +| `colors.borderDark` | `string` | +| `colors.borderDarker` | `string` | +| `colors.borderDarkest` | `string` | +| `colors.dfblue` | `string` | +| `colors.dfgreen` | `string` | +| `colors.dfgreendark` | `string` | +| `colors.dfgreenlight` | `string` | +| `colors.dforange` | `string` | +| `colors.dfpurple` | `string` | +| `colors.dfred` | `string` | +| `colors.dfwhite` | `string` | +| `colors.dfyellow` | `string` | +| `colors.icons` | { `blog`: `string` = '#ffcb1f'; `discord`: `string` = '#7289da'; `email`: `string` = '#D44638'; `github`: `string` = '#8e65db'; `twitter`: `string` = '#1DA1F2' } | +| `colors.icons.blog` | `string` | +| `colors.icons.discord` | `string` | +| `colors.icons.email` | `string` | +| `colors.icons.github` | `string` | +| `colors.icons.twitter` | `string` | +| `colors.subbertext` | `string` | +| `colors.subbesttext` | `string` | +| `colors.subtext` | `string` | +| `colors.text` | `string` | +| `colors.textLight` | `string` | +| `fontH1` | `string` | +| `fontH1S` | `string` | +| `fontH2` | `string` | +| `fontSize` | `string` | +| `fontSizeS` | `string` | +| `fontSizeXS` | `string` | +| `game` | { `bonuscolors`: { `def`: `string` = 'hsl(231, 73%, 70%)'; `energyCap`: `string` = 'hsl(360, 73%, 70%)'; `energyGro`: `string` = 'hsl(136, 73%, 70%)'; `range`: `string` = 'hsl(50, 73%, 70%)'; `spaceJunk`: `string` = 'hsl(43, 33%, 29%)'; `speed`: `string` = 'hsl(290, 73%, 70%)' } ; `canvasbg`: `string` = '#100544'; `fontSize`: `string` = '12pt'; `rangecolors`: { `color100`: `string` = '#050228'; `color25`: `string` = '#050238'; `color50`: `string` = '#050233'; `colorenergy`: `string` = '#080330'; `dash`: `string` = '#9691bf'; `dashenergy`: `string` = '#f5c082' } ; `styles`: { `active`: `string` = 'filter: brightness(80%)'; `animProps`: `string` = 'ease-in-out infinite alternate-reverse' } ; `terminalFontSize`: `string` = '10pt'; `terminalWidth`: `string` = '240pt'; `toolbarHeight`: `string` = '12em' } | +| `game.bonuscolors` | { `def`: `string` = 'hsl(231, 73%, 70%)'; `energyCap`: `string` = 'hsl(360, 73%, 70%)'; `energyGro`: `string` = 'hsl(136, 73%, 70%)'; `range`: `string` = 'hsl(50, 73%, 70%)'; `spaceJunk`: `string` = 'hsl(43, 33%, 29%)'; `speed`: `string` = 'hsl(290, 73%, 70%)' } | +| `game.bonuscolors.def` | `string` | +| `game.bonuscolors.energyCap` | `string` | +| `game.bonuscolors.energyGro` | `string` | +| `game.bonuscolors.range` | `string` | +| `game.bonuscolors.spaceJunk` | `string` | +| `game.bonuscolors.speed` | `string` | +| `game.canvasbg` | `string` | +| `game.fontSize` | `string` | +| `game.rangecolors` | { `color100`: `string` = '#050228'; `color25`: `string` = '#050238'; `color50`: `string` = '#050233'; `colorenergy`: `string` = '#080330'; `dash`: `string` = '#9691bf'; `dashenergy`: `string` = '#f5c082' } | +| `game.rangecolors.color100` | `string` | +| `game.rangecolors.color25` | `string` | +| `game.rangecolors.color50` | `string` | +| `game.rangecolors.colorenergy` | `string` | +| `game.rangecolors.dash` | `string` | +| `game.rangecolors.dashenergy` | `string` | +| `game.styles` | { `active`: `string` = 'filter: brightness(80%)'; `animProps`: `string` = 'ease-in-out infinite alternate-reverse' } | +| `game.styles.active` | `string` | +| `game.styles.animProps` | `string` | +| `game.terminalFontSize` | `string` | +| `game.terminalWidth` | `string` | +| `game.toolbarHeight` | `string` | +| `prefabs` | { `noselect`: `FlattenSimpleInterpolation` } | +| `prefabs.noselect` | `FlattenSimpleInterpolation` | +| `screenSizeS` | `string` | +| `titleFont` | `string` | + +--- + +### snips + +• `Const` **snips**: `Object` + +#### Type declaration + +| Name | Type | +| :----------------------- | :-------------------------------------- | +| `absoluteTopLeft` | `FlattenSimpleInterpolation` | +| `bigPadding` | `FlattenSimpleInterpolation` | +| `defaultBackground` | `string` | +| `defaultModalWidth` | `FlattenSimpleInterpolation` | +| `destroyedBackground` | `CSSStyleDeclaration` & `CSSProperties` | +| `pane` | `string` | +| `roundedBorders` | `string` | +| `roundedBordersWithEdge` | `FlattenSimpleInterpolation` | diff --git a/docs/modules/Frontend_Utils_AppHooks.md b/docs/modules/Frontend_Utils_AppHooks.md new file mode 100644 index 00000000..39343ae8 --- /dev/null +++ b/docs/modules/Frontend_Utils_AppHooks.md @@ -0,0 +1,388 @@ +# Module: Frontend/Utils/AppHooks + +## Table of contents + +### Type aliases + +- [TransactionRecord](Frontend_Utils_AppHooks.md#transactionrecord) + +### Variables + +- [TopLevelDivProvider](Frontend_Utils_AppHooks.md#topleveldivprovider) +- [UIManagerProvider](Frontend_Utils_AppHooks.md#uimanagerprovider) + +### Functions + +- [useAccount](Frontend_Utils_AppHooks.md#useaccount) +- [useActiveArtifact](Frontend_Utils_AppHooks.md#useactiveartifact) +- [useArtifact](Frontend_Utils_AppHooks.md#useartifact) +- [useHoverArtifact](Frontend_Utils_AppHooks.md#usehoverartifact) +- [useHoverArtifactId](Frontend_Utils_AppHooks.md#usehoverartifactid) +- [useHoverPlanet](Frontend_Utils_AppHooks.md#usehoverplanet) +- [useLeaderboard](Frontend_Utils_AppHooks.md#useleaderboard) +- [useMyArtifactsList](Frontend_Utils_AppHooks.md#usemyartifactslist) +- [useOverlayContainer](Frontend_Utils_AppHooks.md#useoverlaycontainer) +- [usePaused](Frontend_Utils_AppHooks.md#usepaused) +- [usePlanet](Frontend_Utils_AppHooks.md#useplanet) +- [usePlanetArtifacts](Frontend_Utils_AppHooks.md#useplanetartifacts) +- [usePlanetInactiveArtifacts](Frontend_Utils_AppHooks.md#useplanetinactiveartifacts) +- [usePlayer](Frontend_Utils_AppHooks.md#useplayer) +- [usePopAllOnSelectedPlanetChanged](Frontend_Utils_AppHooks.md#usepopallonselectedplanetchanged) +- [useSelectedArtifact](Frontend_Utils_AppHooks.md#useselectedartifact) +- [useSelectedPlanet](Frontend_Utils_AppHooks.md#useselectedplanet) +- [useSelectedPlanetId](Frontend_Utils_AppHooks.md#useselectedplanetid) +- [useTopLevelDiv](Frontend_Utils_AppHooks.md#usetopleveldiv) +- [useTransactionLog](Frontend_Utils_AppHooks.md#usetransactionlog) +- [useUIManager](Frontend_Utils_AppHooks.md#useuimanager) + +## Type aliases + +### TransactionRecord + +Ƭ **TransactionRecord**: `Record`<`TransactionId`, `Transaction`\> + +## Variables + +### TopLevelDivProvider + +• **TopLevelDivProvider**: `Provider`<`HTMLDivElement`\> + +--- + +### UIManagerProvider + +• **UIManagerProvider**: `Provider`<[`default`](../classes/Backend_GameLogic_GameUIManager.default.md)\> + +## Functions + +### useAccount + +▸ **useAccount**(`uiManager`): `EthAddress` \| `undefined` + +Get the currently used account on the client. + +#### Parameters + +| Name | Type | Description | +| :---------- | :----------------------------------------------------------------- | :------------------------ | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | instance of GameUIManager | + +#### Returns + +`EthAddress` \| `undefined` + +--- + +### useActiveArtifact + +▸ **useActiveArtifact**(`planet`, `uiManager`): `Artifact` \| `undefined` + +#### Parameters + +| Name | Type | +| :---------- | :--------------------------------------------------------------------------------- | +| `planet` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +`Artifact` \| `undefined` + +--- + +### useArtifact + +▸ **useArtifact**(`uiManager`, `artifactId`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Artifact`\> + +#### Parameters + +| Name | Type | +| :----------- | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | +| `artifactId` | `ArtifactId` | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Artifact`\> + +--- + +### useHoverArtifact + +▸ **useHoverArtifact**(`uiManager`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Artifact` \| `undefined`\> + +#### Parameters + +| Name | Type | +| :---------- | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Artifact` \| `undefined`\> + +--- + +### useHoverArtifactId + +▸ **useHoverArtifactId**(`uiManager`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`ArtifactId` \| `undefined`\> + +#### Parameters + +| Name | Type | +| :---------- | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`ArtifactId` \| `undefined`\> + +--- + +### useHoverPlanet + +▸ **useHoverPlanet**(`uiManager`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Planet` \| `undefined`\> + +Create a subscription to the currently hovering planet. + +#### Parameters + +| Name | Type | Description | +| :---------- | :----------------------------------------------------------------- | :------------------------ | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | instance of GameUIManager | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Planet` \| `undefined`\> + +--- + +### useLeaderboard + +▸ **useLeaderboard**(`poll?`): `Object` + +Loads the leaderboard + +#### Parameters + +| Name | Type | Default value | +| :----- | :---------------------- | :------------ | +| `poll` | `undefined` \| `number` | `undefined` | + +#### Returns + +`Object` + +| Name | Type | +| :------------ | :--------------------------- | +| `error` | `Error` \| `undefined` | +| `leaderboard` | `Leaderboard` \| `undefined` | + +--- + +### useMyArtifactsList + +▸ **useMyArtifactsList**(`uiManager`): `Artifact`[] + +#### Parameters + +| Name | Type | +| :---------- | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +`Artifact`[] + +--- + +### useOverlayContainer + +▸ **useOverlayContainer**(): `HTMLDivElement` \| `null` + +#### Returns + +`HTMLDivElement` \| `null` + +--- + +### usePaused + +▸ **usePaused**(): `boolean` + +#### Returns + +`boolean` + +--- + +### usePlanet + +▸ **usePlanet**(`uiManager`, `locationId`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Planet` \| `undefined`\> + +#### Parameters + +| Name | Type | +| :----------- | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | +| `locationId` | `undefined` \| `LocationId` | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Planet` \| `undefined`\> + +--- + +### usePlanetArtifacts + +▸ **usePlanetArtifacts**(`planet`, `uiManager`): `Artifact`[] + +#### Parameters + +| Name | Type | +| :---------- | :--------------------------------------------------------------------------------- | +| `planet` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +`Artifact`[] + +--- + +### usePlanetInactiveArtifacts + +▸ **usePlanetInactiveArtifacts**(`planet`, `uiManager`): `Artifact`[] + +#### Parameters + +| Name | Type | +| :---------- | :--------------------------------------------------------------------------------- | +| `planet` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +`Artifact`[] + +--- + +### usePlayer + +▸ **usePlayer**(`uiManager`, `ethAddress?`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Player` \| `undefined`\> + +Hook which gets you the player, and updates whenever that player's twitter or score changes. + +#### Parameters + +| Name | Type | +| :------------ | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | +| `ethAddress?` | `EthAddress` | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Player` \| `undefined`\> + +--- + +### usePopAllOnSelectedPlanetChanged + +▸ **usePopAllOnSelectedPlanetChanged**(`modal`, `startingId`): `void` + +#### Parameters + +| Name | Type | +| :----------- | :--------------------------------------------------------------------- | +| `modal` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | +| `startingId` | `undefined` \| `LocationId` | + +#### Returns + +`void` + +--- + +### useSelectedArtifact + +▸ **useSelectedArtifact**(`uiManager`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Artifact` \| `undefined`\> + +Create a subscription to the currently selected artifact. + +#### Parameters + +| Name | Type | Description | +| :---------- | :----------------------------------------------------------------- | :------------------------ | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | instance of GameUIManager | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Artifact` \| `undefined`\> + +--- + +### useSelectedPlanet + +▸ **useSelectedPlanet**(`uiManager`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Planet` \| `undefined`\> + +Create a subscription to the currently selected planet. + +#### Parameters + +| Name | Type | Description | +| :---------- | :----------------------------------------------------------------- | :------------------------ | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | instance of GameUIManager | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`Planet` \| `undefined`\> + +--- + +### useSelectedPlanetId + +▸ **useSelectedPlanetId**(`uiManager`, `defaultId?`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `LocationId`\> + +#### Parameters + +| Name | Type | +| :----------- | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | +| `defaultId?` | `LocationId` | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `LocationId`\> + +--- + +### useTopLevelDiv + +▸ **useTopLevelDiv**(): `HTMLDivElement` + +#### Returns + +`HTMLDivElement` + +--- + +### useTransactionLog + +▸ **useTransactionLog**(): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<[`TransactionRecord`](Frontend_Utils_AppHooks.md#transactionrecord)\> + +Creates subscriptions to all contract transaction events to keep an up to date +list of all transactions and their states. + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<[`TransactionRecord`](Frontend_Utils_AppHooks.md#transactionrecord)\> + +--- + +### useUIManager + +▸ **useUIManager**(): [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) + +#### Returns + +[`default`](../classes/Backend_GameLogic_GameUIManager.default.md) diff --git a/docs/modules/Frontend_Utils_BrowserChecks.md b/docs/modules/Frontend_Utils_BrowserChecks.md new file mode 100644 index 00000000..10b61976 --- /dev/null +++ b/docs/modules/Frontend_Utils_BrowserChecks.md @@ -0,0 +1,76 @@ +# Module: Frontend/Utils/BrowserChecks + +## Table of contents + +### Enumerations + +- [Incompatibility](../enums/Frontend_Utils_BrowserChecks.Incompatibility.md) + +### Functions + +- [hasTouchscreen](Frontend_Utils_BrowserChecks.md#hastouchscreen) +- [isBrave](Frontend_Utils_BrowserChecks.md#isbrave) +- [isChrome](Frontend_Utils_BrowserChecks.md#ischrome) +- [isFirefox](Frontend_Utils_BrowserChecks.md#isfirefox) +- [isMobileOrTablet](Frontend_Utils_BrowserChecks.md#ismobileortablet) +- [unsupportedFeatures](Frontend_Utils_BrowserChecks.md#unsupportedfeatures) + +## Functions + +### hasTouchscreen + +▸ **hasTouchscreen**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isBrave + +▸ **isBrave**(): `Promise`<`boolean`\> + +#### Returns + +`Promise`<`boolean`\> + +--- + +### isChrome + +▸ **isChrome**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isFirefox + +▸ **isFirefox**(): `boolean` + +#### Returns + +`boolean` + +--- + +### isMobileOrTablet + +▸ **isMobileOrTablet**(): `boolean` + +#### Returns + +`boolean` + +--- + +### unsupportedFeatures + +▸ **unsupportedFeatures**(): `Promise`<[`Incompatibility`](../enums/Frontend_Utils_BrowserChecks.Incompatibility.md)[]\> + +#### Returns + +`Promise`<[`Incompatibility`](../enums/Frontend_Utils_BrowserChecks.Incompatibility.md)[]\> diff --git a/docs/modules/Frontend_Utils_EmitterHooks.md b/docs/modules/Frontend_Utils_EmitterHooks.md new file mode 100644 index 00000000..3352f5d0 --- /dev/null +++ b/docs/modules/Frontend_Utils_EmitterHooks.md @@ -0,0 +1,85 @@ +# Module: Frontend/Utils/EmitterHooks + +## Table of contents + +### Functions + +- [useEmitterSubscribe](Frontend_Utils_EmitterHooks.md#useemittersubscribe) +- [useEmitterValue](Frontend_Utils_EmitterHooks.md#useemittervalue) +- [useWrappedEmitter](Frontend_Utils_EmitterHooks.md#usewrappedemitter) + +## Functions + +### useEmitterSubscribe + +▸ **useEmitterSubscribe**<`T`\>(`emitter`, `callback`, `deps`): `void` + +Execute something on emitter callback + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | Description | +| :--------- | :----------------- | :--------------------------- | +| `emitter` | `Monomitter`<`T`\> | `Monomitter` to subscribe to | +| `callback` | `Callback`<`T`\> | callback to subscribe | +| `deps` | `DependencyList` | - | + +#### Returns + +`void` + +--- + +### useEmitterValue + +▸ **useEmitterValue**<`T`\>(`emitter`, `initialVal`): `T` + +Use returned value from an emitter + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | Description | +| :----------- | :----------------- | :--------------------------- | +| `emitter` | `Monomitter`<`T`\> | `Monomitter` to subscribe to | +| `initialVal` | `T` | initial state value | + +#### Returns + +`T` + +--- + +### useWrappedEmitter + +▸ **useWrappedEmitter**<`T`\>(`emitter`, `initialVal`): [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`T` \| `undefined`\> + +Use returned value from an emitter, and clone the reference - used to force an update to the UI + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | Description | +| :----------- | :-------------------------------- | :--------------------------- | +| `emitter` | `Monomitter`<`undefined` \| `T`\> | `Monomitter` to subscribe to | +| `initialVal` | `undefined` \| `T` | initial state value | + +#### Returns + +[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`T` \| `undefined`\> diff --git a/docs/modules/Frontend_Utils_EmitterUtils.md b/docs/modules/Frontend_Utils_EmitterUtils.md new file mode 100644 index 00000000..dc254311 --- /dev/null +++ b/docs/modules/Frontend_Utils_EmitterUtils.md @@ -0,0 +1,194 @@ +# Module: Frontend/Utils/EmitterUtils + +## Table of contents + +### Interfaces + +- [Diff](../interfaces/Frontend_Utils_EmitterUtils.Diff.md) + +### Functions + +- [generateDiffEmitter](Frontend_Utils_EmitterUtils.md#generatediffemitter) +- [getArtifactId](Frontend_Utils_EmitterUtils.md#getartifactid) +- [getArtifactOwner](Frontend_Utils_EmitterUtils.md#getartifactowner) +- [getDisposableEmitter](Frontend_Utils_EmitterUtils.md#getdisposableemitter) +- [getObjectWithIdFromMap](Frontend_Utils_EmitterUtils.md#getobjectwithidfrommap) +- [getPlanetId](Frontend_Utils_EmitterUtils.md#getplanetid) +- [getPlanetOwner](Frontend_Utils_EmitterUtils.md#getplanetowner) +- [setObjectSyncState](Frontend_Utils_EmitterUtils.md#setobjectsyncstate) + +## Functions + +### generateDiffEmitter + +▸ **generateDiffEmitter**<`Obj`\>(`emitter`): `Monomitter`<[`Diff`](../interfaces/Frontend_Utils_EmitterUtils.Diff.md)<`Obj`\> \| `undefined`\> + +Wraps an existing emitter and emits an event with the current and previous values + +#### Type parameters + +| Name | +| :---- | +| `Obj` | + +#### Parameters + +| Name | Type | Description | +| :-------- | :---------------------------------- | :--------------------------------- | +| `emitter` | `Monomitter`<`undefined` \| `Obj`\> | an emitter announcing game objects | + +#### Returns + +`Monomitter`<[`Diff`](../interfaces/Frontend_Utils_EmitterUtils.Diff.md)<`Obj`\> \| `undefined`\> + +--- + +### getArtifactId + +▸ **getArtifactId**(`a`): `ArtifactId` + +#### Parameters + +| Name | Type | +| :--- | :--------- | +| `a` | `Artifact` | + +#### Returns + +`ArtifactId` + +--- + +### getArtifactOwner + +▸ **getArtifactOwner**(`a`): `EthAddress` + +#### Parameters + +| Name | Type | +| :--- | :--------- | +| `a` | `Artifact` | + +#### Returns + +`EthAddress` + +--- + +### getDisposableEmitter + +▸ **getDisposableEmitter**<`Obj`, `Id`\>(`objMap`, `objId`, `objUpdated$`): `Monomitter`<`Obj` \| `undefined`\> + +Create a monomitter to emit objects with a given id from a cached map of ids to objects. Not intended for re-use + +#### Type parameters + +| Name | +| :---- | +| `Obj` | +| `Id` | + +#### Parameters + +| Name | Type | Description | +| :------------ | :------------------ | :------------------------------------------------------ | +| `objMap` | `Map`<`Id`, `Obj`\> | the cached map of `` | +| `objId` | `Id` | the object id to select | +| `objUpdated$` | `Monomitter`<`Id`\> | emitter which indicates when an object has been updated | + +#### Returns + +`Monomitter`<`Obj` \| `undefined`\> + +--- + +### getObjectWithIdFromMap + +▸ **getObjectWithIdFromMap**<`Obj`, `Id`\>(`objMap`, `objId$`, `objUpdated$`): `Monomitter`<`Obj` \| `undefined`\> + +Create a monomitter to emit objects with a given id from a cached map of ids to objects. + +#### Type parameters + +| Name | +| :---- | +| `Obj` | +| `Id` | + +#### Parameters + +| Name | Type | Description | +| :------------ | :--------------------------------- | :------------------------------------------------------ | +| `objMap` | `Map`<`Id`, `Obj`\> | the cached map of `` | +| `objId$` | `Monomitter`<`undefined` \| `Id`\> | the object id to select | +| `objUpdated$` | `Monomitter`<`Id`\> | emitter which indicates when an object has been updated | + +#### Returns + +`Monomitter`<`Obj` \| `undefined`\> + +--- + +### getPlanetId + +▸ **getPlanetId**(`p`): `LocationId` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `p` | `Planet` | + +#### Returns + +`LocationId` + +--- + +### getPlanetOwner + +▸ **getPlanetOwner**(`p`): `EthAddress` + +#### Parameters + +| Name | Type | +| :--- | :------- | +| `p` | `Planet` | + +#### Returns + +`EthAddress` + +--- + +### setObjectSyncState + +▸ **setObjectSyncState**<`Obj`, `Id`\>(`objectMap`, `myObjectMap`, `address`, `objUpdated$`, `myObjListUpdated$`, `getId`, `getOwner`, `obj`): `void` + +Utility function for setting a game entity into our internal data stores in a way +that is friendly to our application. Caches the object into a map, syncs it to a map +of our owned objects, and also emits a message that the object was updated. + +#### Type parameters + +| Name | +| :---- | +| `Obj` | +| `Id` | + +#### Parameters + +| Name | Type | Description | +| :------------------ | :--------------------------------- | :---------------------------------------------- | +| `objectMap` | `Map`<`Id`, `Obj`\> | map that caches known objects | +| `myObjectMap` | `Map`<`Id`, `Obj`\> | map that caches known objects owned by the user | +| `address` | `undefined` \| `EthAddress` | the user's account address | +| `objUpdated$` | `Monomitter`<`Id`\> | emitter for announcing object updates | +| `myObjListUpdated$` | `Monomitter`<`Map`<`Id`, `Obj`\>\> | - | +| `getId` | (`o`: `Obj`) => `Id` | - | +| `getOwner` | (`o`: `Obj`) => `EthAddress` | - | +| `obj` | `Obj` | the object we want to cache | + +#### Returns + +`void` diff --git a/docs/modules/Frontend_Utils_Hooks.md b/docs/modules/Frontend_Utils_Hooks.md new file mode 100644 index 00000000..e3189433 --- /dev/null +++ b/docs/modules/Frontend_Utils_Hooks.md @@ -0,0 +1,27 @@ +# Module: Frontend/Utils/Hooks + +## Table of contents + +### Functions + +- [usePoll](Frontend_Utils_Hooks.md#usepoll) + +## Functions + +### usePoll + +▸ **usePoll**(`cb`, `poll?`, `execFirst?`): `void` + +Executes the callback `cb` every `poll` ms + +#### Parameters + +| Name | Type | Default value | Description | +| :---------- | :----------------------- | :------------ | :------------------------------------------------- | +| `cb` | () => `void` | `undefined` | callback to execute | +| `poll` | `undefined` \| `number` | `undefined` | ms to poll | +| `execFirst` | `undefined` \| `boolean` | `undefined` | if we want to execute the callback on first render | + +#### Returns + +`void` diff --git a/docs/modules/Frontend_Utils_KeyEmitters.md b/docs/modules/Frontend_Utils_KeyEmitters.md new file mode 100644 index 00000000..650e57c3 --- /dev/null +++ b/docs/modules/Frontend_Utils_KeyEmitters.md @@ -0,0 +1,81 @@ +# Module: Frontend/Utils/KeyEmitters + +## Table of contents + +### Variables + +- [keyDown$](Frontend_Utils_KeyEmitters.md#keydown$) +- [keyUp$](Frontend_Utils_KeyEmitters.md#keyup$) + +### Functions + +- [listenForKeyboardEvents](Frontend_Utils_KeyEmitters.md#listenforkeyboardevents) +- [unlinkKeyboardEvents](Frontend_Utils_KeyEmitters.md#unlinkkeyboardevents) +- [useIsDown](Frontend_Utils_KeyEmitters.md#useisdown) +- [useOnUp](Frontend_Utils_KeyEmitters.md#useonup) + +## Variables + +### keyDown$ + +• `Const` **keyDown$**: `Monomitter`<[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`string`\>\> + +--- + +### keyUp$ + +• `Const` **keyUp$**: `Monomitter`<[`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`string`\>\> + +## Functions + +### listenForKeyboardEvents + +▸ **listenForKeyboardEvents**(): `void` + +#### Returns + +`void` + +--- + +### unlinkKeyboardEvents + +▸ **unlinkKeyboardEvents**(): `void` + +#### Returns + +`void` + +--- + +### useIsDown + +▸ **useIsDown**(`key?`): `boolean` + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `key?` | `string` | + +#### Returns + +`boolean` + +--- + +### useOnUp + +▸ **useOnUp**(`key`, `onUp`, `deps?`): `void` + +#### Parameters + +| Name | Type | Default value | +| :----- | :--------------- | :------------ | +| `key` | `string` | `undefined` | +| `onUp` | () => `void` | `undefined` | +| `deps` | `DependencyList` | `[]` | + +#### Returns + +`void` diff --git a/docs/modules/Frontend_Utils_SettingsHooks.md b/docs/modules/Frontend_Utils_SettingsHooks.md new file mode 100644 index 00000000..a9726267 --- /dev/null +++ b/docs/modules/Frontend_Utils_SettingsHooks.md @@ -0,0 +1,363 @@ +# Module: Frontend/Utils/SettingsHooks + +## Table of contents + +### Variables + +- [ALL_AUTO_GAS_SETTINGS](Frontend_Utils_SettingsHooks.md#all_auto_gas_settings) +- [settingChanged$](Frontend_Utils_SettingsHooks.md#settingchanged$) + +### Functions + +- [BooleanSetting](Frontend_Utils_SettingsHooks.md#booleansetting) +- [ColorSetting](Frontend_Utils_SettingsHooks.md#colorsetting) +- [MultiSelectSetting](Frontend_Utils_SettingsHooks.md#multiselectsetting) +- [NumberSetting](Frontend_Utils_SettingsHooks.md#numbersetting) +- [StringSetting](Frontend_Utils_SettingsHooks.md#stringsetting) +- [getBooleanSetting](Frontend_Utils_SettingsHooks.md#getbooleansetting) +- [getLocalStorageSettingKey](Frontend_Utils_SettingsHooks.md#getlocalstoragesettingkey) +- [getNumberSetting](Frontend_Utils_SettingsHooks.md#getnumbersetting) +- [getSetting](Frontend_Utils_SettingsHooks.md#getsetting) +- [pollSetting](Frontend_Utils_SettingsHooks.md#pollsetting) +- [setBooleanSetting](Frontend_Utils_SettingsHooks.md#setbooleansetting) +- [setNumberSetting](Frontend_Utils_SettingsHooks.md#setnumbersetting) +- [setSetting](Frontend_Utils_SettingsHooks.md#setsetting) +- [useBooleanSetting](Frontend_Utils_SettingsHooks.md#usebooleansetting) +- [useNumberSetting](Frontend_Utils_SettingsHooks.md#usenumbersetting) +- [useSetting](Frontend_Utils_SettingsHooks.md#usesetting) + +## Variables + +### ALL_AUTO_GAS_SETTINGS + +• `Const` **ALL_AUTO_GAS_SETTINGS**: `AutoGasSetting`[] + +--- + +### settingChanged$ + +• `Const` **settingChanged$**: `Monomitter`<`Setting`\> + +Whenever a setting changes, we publish the setting's name to this event emitter. + +## Functions + +### BooleanSetting + +▸ **BooleanSetting**(`__namedParameters`): `Element` + +React component that renders a checkbox representing the current value of this particular +setting, interpreting its value as a boolean. Allows the player to click on the checkbox to +toggle the setting. Toggling the setting both notifies the rest of the game that the given +setting was changed, and also saves it to local storage. + +#### Parameters + +| Name | Type | +| :-------------------------------------- | :----------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.setting` | `Setting` | +| `__namedParameters.settingDescription?` | `string` | +| `__namedParameters.uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +`Element` + +--- + +### ColorSetting + +▸ **ColorSetting**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------------------- | :----------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.setting` | `Setting` | +| `__namedParameters.settingDescription?` | `string` | +| `__namedParameters.uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +`Element` + +--- + +### MultiSelectSetting + +▸ **MultiSelectSetting**(`__namedParameters`): `Element` + +UI that is kept in-sync with a particular setting which allows you to set that setting to one of +several options. + +#### Parameters + +| Name | Type | +| :---------------------------- | :----------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.labels` | `string`[] | +| `__namedParameters.setting` | `Setting` | +| `__namedParameters.style?` | `CSSProperties` | +| `__namedParameters.uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | +| `__namedParameters.values` | `string`[] | +| `__namedParameters.wide?` | `boolean` | + +#### Returns + +`Element` + +--- + +### NumberSetting + +▸ **NumberSetting**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :---------------------------- | :----------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.setting` | `Setting` | +| `__namedParameters.uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +`Element` + +--- + +### StringSetting + +▸ **StringSetting**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------------------- | :----------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.setting` | `Setting` | +| `__namedParameters.settingDescription?` | `string` | +| `__namedParameters.uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | + +#### Returns + +`Element` + +--- + +### getBooleanSetting + +▸ **getBooleanSetting**(`config`, `setting`): `boolean` + +Loads from local storage, and interprets as a boolean the setting with the given name. + +#### Parameters + +| Name | Type | +| :-------- | :--------------------- | +| `config` | `SettingStorageConfig` | +| `setting` | `Setting` | + +#### Returns + +`boolean` + +--- + +### getLocalStorageSettingKey + +▸ **getLocalStorageSettingKey**(`__namedParameters`, `setting`): `string` + +Each setting is stored in local storage. Each account has their own setting. + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------- | +| `__namedParameters` | `SettingStorageConfig` | +| `setting` | `Setting` | + +#### Returns + +`string` + +--- + +### getNumberSetting + +▸ **getNumberSetting**(`config`, `setting`): `number` + +Loads from local storage, and interprets as a boolean the setting with the given name. + +#### Parameters + +| Name | Type | +| :-------- | :--------------------- | +| `config` | `SettingStorageConfig` | +| `setting` | `Setting` | + +#### Returns + +`number` + +--- + +### getSetting + +▸ **getSetting**(`config`, `setting`): `string` + +Read the local storage setting from local storage. + +#### Parameters + +| Name | Type | +| :-------- | :--------------------- | +| `config` | `SettingStorageConfig` | +| `setting` | `Setting` | + +#### Returns + +`string` + +--- + +### pollSetting + +▸ **pollSetting**(`config`, `setting`): `ReturnType` + +Some settings can be set from another browser window. In particular, the 'auto accept +transaction' setting is set from multiple browser windows. As a result, the local storage setting +can get out of sync with the in memory setting. To fix this, we can poll the given setting from +local storage, and notify the rest of the game that it changed if it changed. + +#### Parameters + +| Name | Type | +| :-------- | :--------------------- | +| `config` | `SettingStorageConfig` | +| `setting` | `Setting` | + +#### Returns + +`ReturnType` + +--- + +### setBooleanSetting + +▸ **setBooleanSetting**(`config`, `setting`, `value`): `void` + +Save the given setting to local storage. Publish an event to [settingChanged$](Frontend_Utils_SettingsHooks.md#settingchanged$). + +#### Parameters + +| Name | Type | +| :-------- | :--------------------- | +| `config` | `SettingStorageConfig` | +| `setting` | `Setting` | +| `value` | `boolean` | + +#### Returns + +`void` + +--- + +### setNumberSetting + +▸ **setNumberSetting**(`config`, `setting`, `value`): `void` + +Save the given setting to local storage. Publish an event to [settingChanged$](Frontend_Utils_SettingsHooks.md#settingchanged$). + +#### Parameters + +| Name | Type | +| :-------- | :--------------------- | +| `config` | `SettingStorageConfig` | +| `setting` | `Setting` | +| `value` | `number` | + +#### Returns + +`void` + +--- + +### setSetting + +▸ **setSetting**(`__namedParameters`, `setting`, `value`): `void` + +Save the given setting to local storage. Publish an event to [settingChanged$](Frontend_Utils_SettingsHooks.md#settingchanged$). + +#### Parameters + +| Name | Type | +| :------------------ | :--------------------- | +| `__namedParameters` | `SettingStorageConfig` | +| `setting` | `Setting` | +| `value` | `string` | + +#### Returns + +`void` + +--- + +### useBooleanSetting + +▸ **useBooleanSetting**(`uiManager`, `setting`): [`boolean`, (`newValue`: `boolean`) => `void`] + +Allows a react component to subscribe to changes to the given setting, interpreting its value as +a boolean. + +#### Parameters + +| Name | Type | +| :---------- | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | +| `setting` | `Setting` | + +#### Returns + +[`boolean`, (`newValue`: `boolean`) => `void`] + +--- + +### useNumberSetting + +▸ **useNumberSetting**(`uiManager`, `setting`): [`number`, (`newValue`: `number`) => `void`] + +Allows a react component to subscribe to changes and set the given setting as a number. Doesn't +allow you to set the value of this setting to anything but a valid number. + +#### Parameters + +| Name | Type | +| :---------- | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | +| `setting` | `Setting` | + +#### Returns + +[`number`, (`newValue`: `number`) => `void`] + +--- + +### useSetting + +▸ **useSetting**(`uiManager`, `setting`): [`string`, (`newValue`: `string` \| `undefined`) => `void`] + +Allows a react component to subscribe to changes and set the given setting. + +#### Parameters + +| Name | Type | +| :---------- | :----------------------------------------------------------------- | +| `uiManager` | [`default`](../classes/Backend_GameLogic_GameUIManager.default.md) | +| `setting` | `Setting` | + +#### Returns + +[`string`, (`newValue`: `string` \| `undefined`) => `void`] diff --git a/docs/modules/Frontend_Utils_ShortcutConstants.md b/docs/modules/Frontend_Utils_ShortcutConstants.md new file mode 100644 index 00000000..dc01820b --- /dev/null +++ b/docs/modules/Frontend_Utils_ShortcutConstants.md @@ -0,0 +1,153 @@ +# Module: Frontend/Utils/ShortcutConstants + +## Table of contents + +### Variables + +- [CLOSE_MODAL](Frontend_Utils_ShortcutConstants.md#close_modal) +- [EXIT_PANE](Frontend_Utils_ShortcutConstants.md#exit_pane) +- [INVADE](Frontend_Utils_ShortcutConstants.md#invade) +- [MINE_ARTIFACT](Frontend_Utils_ShortcutConstants.md#mine_artifact) +- [MODAL_BACK_SHORTCUT](Frontend_Utils_ShortcutConstants.md#modal_back_shortcut) +- [TOGGLE_ABANDON](Frontend_Utils_ShortcutConstants.md#toggle_abandon) +- [TOGGLE_BROADCAST_PANE](Frontend_Utils_ShortcutConstants.md#toggle_broadcast_pane) +- [TOGGLE_DIAGNOSTICS_PANE](Frontend_Utils_ShortcutConstants.md#toggle_diagnostics_pane) +- [TOGGLE_EXPLORE](Frontend_Utils_ShortcutConstants.md#toggle_explore) +- [TOGGLE_HAT_PANE](Frontend_Utils_ShortcutConstants.md#toggle_hat_pane) +- [TOGGLE_HELP_PANE](Frontend_Utils_ShortcutConstants.md#toggle_help_pane) +- [TOGGLE_PLANET_ARTIFACTS_PANE](Frontend_Utils_ShortcutConstants.md#toggle_planet_artifacts_pane) +- [TOGGLE_PLANET_INFO_PANE](Frontend_Utils_ShortcutConstants.md#toggle_planet_info_pane) +- [TOGGLE_PLUGINS_PANE](Frontend_Utils_ShortcutConstants.md#toggle_plugins_pane) +- [TOGGLE_SEND](Frontend_Utils_ShortcutConstants.md#toggle_send) +- [TOGGLE_SETTINGS_PANE](Frontend_Utils_ShortcutConstants.md#toggle_settings_pane) +- [TOGGLE_TARGETTING](Frontend_Utils_ShortcutConstants.md#toggle_targetting) +- [TOGGLE_TRANSACTIONS_PANE](Frontend_Utils_ShortcutConstants.md#toggle_transactions_pane) +- [TOGGLE_UPGRADES_PANE](Frontend_Utils_ShortcutConstants.md#toggle_upgrades_pane) +- [TOGGLE_YOUR_ARTIFACTS_PANE](Frontend_Utils_ShortcutConstants.md#toggle_your_artifacts_pane) +- [TOGGLE_YOUR_PLANETS_DEX_PANE](Frontend_Utils_ShortcutConstants.md#toggle_your_planets_dex_pane) + +## Variables + +### CLOSE_MODAL + +• `Const` **CLOSE_MODAL**: `"t"` + +--- + +### EXIT_PANE + +• `Const` **EXIT_PANE**: `"Escape"` + +--- + +### INVADE + +• `Const` **INVADE**: `"y"` + +--- + +### MINE_ARTIFACT + +• `Const` **MINE_ARTIFACT**: `"f"` + +--- + +### MODAL_BACK_SHORTCUT + +• `Const` **MODAL_BACK_SHORTCUT**: `"t"` + +--- + +### TOGGLE_ABANDON + +• `Const` **TOGGLE_ABANDON**: `"r"` + +--- + +### TOGGLE_BROADCAST_PANE + +• `Const` **TOGGLE_BROADCAST_PANE**: `"z"` + +--- + +### TOGGLE_DIAGNOSTICS_PANE + +• `Const` **TOGGLE_DIAGNOSTICS_PANE**: `"i"` + +--- + +### TOGGLE_EXPLORE + +• `Const` **TOGGLE_EXPLORE**: `" "` + +--- + +### TOGGLE_HAT_PANE + +• `Const` **TOGGLE_HAT_PANE**: `"x"` + +--- + +### TOGGLE_HELP_PANE + +• `Const` **TOGGLE_HELP_PANE**: `"j"` + +--- + +### TOGGLE_PLANET_ARTIFACTS_PANE + +• `Const` **TOGGLE_PLANET_ARTIFACTS_PANE**: `"s"` + +--- + +### TOGGLE_PLANET_INFO_PANE + +• `Const` **TOGGLE_PLANET_INFO_PANE**: `"c"` + +--- + +### TOGGLE_PLUGINS_PANE + +• `Const` **TOGGLE_PLUGINS_PANE**: `"k"` + +--- + +### TOGGLE_SEND + +• `Const` **TOGGLE_SEND**: `"q"` + +--- + +### TOGGLE_SETTINGS_PANE + +• `Const` **TOGGLE_SETTINGS_PANE**: `"h"` + +--- + +### TOGGLE_TARGETTING + +• `Const` **TOGGLE_TARGETTING**: `` "`" `` + +--- + +### TOGGLE_TRANSACTIONS_PANE + +• `Const` **TOGGLE_TRANSACTIONS_PANE**: `"'"` + +--- + +### TOGGLE_UPGRADES_PANE + +• `Const` **TOGGLE_UPGRADES_PANE**: `"a"` + +--- + +### TOGGLE_YOUR_ARTIFACTS_PANE + +• `Const` **TOGGLE_YOUR_ARTIFACTS_PANE**: `"l"` + +--- + +### TOGGLE_YOUR_PLANETS_DEX_PANE + +• `Const` **TOGGLE_YOUR_PLANETS_DEX_PANE**: `";"` diff --git a/docs/modules/Frontend_Utils_TerminalTypes.md b/docs/modules/Frontend_Utils_TerminalTypes.md new file mode 100644 index 00000000..2be452db --- /dev/null +++ b/docs/modules/Frontend_Utils_TerminalTypes.md @@ -0,0 +1,7 @@ +# Module: Frontend/Utils/TerminalTypes + +## Table of contents + +### Enumerations + +- [TerminalTextStyle](../enums/Frontend_Utils_TerminalTypes.TerminalTextStyle.md) diff --git a/docs/modules/Frontend_Utils_TimeUtils.md b/docs/modules/Frontend_Utils_TimeUtils.md new file mode 100644 index 00000000..36ef7974 --- /dev/null +++ b/docs/modules/Frontend_Utils_TimeUtils.md @@ -0,0 +1,23 @@ +# Module: Frontend/Utils/TimeUtils + +## Table of contents + +### Functions + +- [formatDuration](Frontend_Utils_TimeUtils.md#formatduration) + +## Functions + +### formatDuration + +▸ **formatDuration**(`durationMs`): `string` + +#### Parameters + +| Name | Type | +| :----------- | :------- | +| `durationMs` | `number` | + +#### Returns + +`string` diff --git a/docs/modules/Frontend_Utils_UIEmitter.md b/docs/modules/Frontend_Utils_UIEmitter.md new file mode 100644 index 00000000..b0d7ad91 --- /dev/null +++ b/docs/modules/Frontend_Utils_UIEmitter.md @@ -0,0 +1,11 @@ +# Module: Frontend/Utils/UIEmitter + +## Table of contents + +### Enumerations + +- [UIEmitterEvent](../enums/Frontend_Utils_UIEmitter.UIEmitterEvent.md) + +### Classes + +- [default](../classes/Frontend_Utils_UIEmitter.default.md) diff --git a/docs/modules/Frontend_Utils_constants.md b/docs/modules/Frontend_Utils_constants.md new file mode 100644 index 00000000..77af9a1c --- /dev/null +++ b/docs/modules/Frontend_Utils_constants.md @@ -0,0 +1,37 @@ +# Module: Frontend/Utils/constants + +## Table of contents + +### Enumerations + +- [DFZIndex](../enums/Frontend_Utils_constants.DFZIndex.md) + +### Variables + +- [LOCATION_ID_UB](Frontend_Utils_constants.md#location_id_ub) +- [MAX_CHUNK_SIZE](Frontend_Utils_constants.md#max_chunk_size) +- [MIN_CHUNK_SIZE](Frontend_Utils_constants.md#min_chunk_size) + +## Variables + +### LOCATION_ID_UB + +• `Const` **LOCATION_ID_UB**: `BigInteger` + +--- + +### MAX_CHUNK_SIZE + +• `Const` **MAX_CHUNK_SIZE**: `number` + +**`tutorial`** to speed up the game's background rendering code, it is possible to set this value to +be a higher power of two. This means that smaller chunks will be merged into larger chunks via +the algorithms implemented in {@link ChunkUtils}. + +{@code Math.floor(Math.pow(2, 16))} should be large enough for most. + +--- + +### MIN_CHUNK_SIZE + +• `Const` **MIN_CHUNK_SIZE**: `16` diff --git a/docs/modules/Frontend_Utils_createDefinedContext.md b/docs/modules/Frontend_Utils_createDefinedContext.md new file mode 100644 index 00000000..dd6fceb8 --- /dev/null +++ b/docs/modules/Frontend_Utils_createDefinedContext.md @@ -0,0 +1,28 @@ +# Module: Frontend/Utils/createDefinedContext + +## Table of contents + +### Functions + +- [createDefinedContext](Frontend_Utils_createDefinedContext.md#createdefinedcontext) + +## Functions + +### createDefinedContext + +▸ **createDefinedContext**<`T`\>(): `ContextHookWithProvider`<`T`\> + +Return a hook and a provider which return a value that must be defined. Normally is difficult +because `React.createContext()` defaults to `undefined`. + +`useDefinedContext()` must be called inside of `provider`, otherwise an error will be thrown. + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Returns + +`ContextHookWithProvider`<`T`\> diff --git a/docs/modules/Frontend_Views_ArtifactLink.md b/docs/modules/Frontend_Views_ArtifactLink.md new file mode 100644 index 00000000..ddd4b7af --- /dev/null +++ b/docs/modules/Frontend_Views_ArtifactLink.md @@ -0,0 +1,27 @@ +# Module: Frontend/Views/ArtifactLink + +## Table of contents + +### Functions + +- [ArtifactLink](Frontend_Views_ArtifactLink.md#artifactlink) + +## Functions + +### ArtifactLink + +▸ **ArtifactLink**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :----------------------------- | :--------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifact` | `Artifact` | +| `__namedParameters.children` | `ReactNode` \| `ReactNode`[] | +| `__namedParameters.depositOn?` | `LocationId` | +| `__namedParameters.modal?` | [`ModalHandle`](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_ArtifactRow.md b/docs/modules/Frontend_Views_ArtifactRow.md new file mode 100644 index 00000000..2c461e64 --- /dev/null +++ b/docs/modules/Frontend_Views_ArtifactRow.md @@ -0,0 +1,46 @@ +# Module: Frontend/Views/ArtifactRow + +## Table of contents + +### Functions + +- [ArtifactThumb](Frontend_Views_ArtifactRow.md#artifactthumb) +- [SelectArtifactRow](Frontend_Views_ArtifactRow.md#selectartifactrow) + +## Functions + +### ArtifactThumb + +▸ **ArtifactThumb**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------------ | :------------------------------------------------ | +| `__namedParameters` | `Object` | +| `__namedParameters.artifact` | `Artifact` | +| `__namedParameters.selectedArtifact?` | `Artifact` | +| `__namedParameters.onArtifactChange?` | (`artifact`: `undefined` \| `Artifact`) => `void` | + +#### Returns + +`Element` + +--- + +### SelectArtifactRow + +▸ **SelectArtifactRow**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------------ | :------------------------------------------------ | +| `__namedParameters` | `Object` | +| `__namedParameters.artifacts` | `Artifact`[] | +| `__namedParameters.selectedArtifact?` | `Artifact` | +| `__namedParameters.onArtifactChange?` | (`artifact`: `undefined` \| `Artifact`) => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_CadetWormhole.md b/docs/modules/Frontend_Views_CadetWormhole.md new file mode 100644 index 00000000..6867b73a --- /dev/null +++ b/docs/modules/Frontend_Views_CadetWormhole.md @@ -0,0 +1,24 @@ +# Module: Frontend/Views/CadetWormhole + +## Table of contents + +### Functions + +- [CadetWormhole](Frontend_Views_CadetWormhole.md#cadetwormhole) + +## Functions + +### CadetWormhole + +▸ **CadetWormhole**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :------- | +| `__namedParameters` | `Object` | +| `__namedParameters.imgUrl` | `string` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_DFErrorBoundary.md b/docs/modules/Frontend_Views_DFErrorBoundary.md new file mode 100644 index 00000000..ab5e1faf --- /dev/null +++ b/docs/modules/Frontend_Views_DFErrorBoundary.md @@ -0,0 +1,7 @@ +# Module: Frontend/Views/DFErrorBoundary + +## Table of contents + +### Classes + +- [DFErrorBoundary](../classes/Frontend_Views_DFErrorBoundary.DFErrorBoundary.md) diff --git a/docs/modules/Frontend_Views_DarkForestTips.md b/docs/modules/Frontend_Views_DarkForestTips.md new file mode 100644 index 00000000..19e39f3d --- /dev/null +++ b/docs/modules/Frontend_Views_DarkForestTips.md @@ -0,0 +1,42 @@ +# Module: Frontend/Views/DarkForestTips + +## Table of contents + +### Functions + +- [DarkForestTips](Frontend_Views_DarkForestTips.md#darkforesttips) +- [MakeDarkForestTips](Frontend_Views_DarkForestTips.md#makedarkforesttips) + +## Functions + +### DarkForestTips + +▸ **DarkForestTips**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :------------------------ | +| `__namedParameters` | `Object` | +| `__namedParameters.tips` | (`string` \| `Element`)[] | +| `__namedParameters.title?` | `string` | + +#### Returns + +`Element` + +--- + +### MakeDarkForestTips + +▸ **MakeDarkForestTips**(`tips`): `Element` + +#### Parameters + +| Name | Type | +| :----- | :--------- | +| `tips` | `string`[] | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_EmojiPicker.md b/docs/modules/Frontend_Views_EmojiPicker.md new file mode 100644 index 00000000..3bae152e --- /dev/null +++ b/docs/modules/Frontend_Views_EmojiPicker.md @@ -0,0 +1,25 @@ +# Module: Frontend/Views/EmojiPicker + +## Table of contents + +### Functions + +- [EmojiPicker](Frontend_Views_EmojiPicker.md#emojipicker) + +## Functions + +### EmojiPicker + +▸ **EmojiPicker**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :---------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.emoji` | `undefined` \| `string` | +| `__namedParameters.setEmoji` | (`emoji`: `string`) => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_EmojiPlanetNotification.md b/docs/modules/Frontend_Views_EmojiPlanetNotification.md new file mode 100644 index 00000000..b7f18846 --- /dev/null +++ b/docs/modules/Frontend_Views_EmojiPlanetNotification.md @@ -0,0 +1,24 @@ +# Module: Frontend/Views/EmojiPlanetNotification + +## Table of contents + +### Functions + +- [EmojiPlanetNotification](Frontend_Views_EmojiPlanetNotification.md#emojiplanetnotification) + +## Functions + +### EmojiPlanetNotification + +▸ **EmojiPlanetNotification**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.wrapper` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_GameWindowLayout.md b/docs/modules/Frontend_Views_GameWindowLayout.md new file mode 100644 index 00000000..e311d85f --- /dev/null +++ b/docs/modules/Frontend_Views_GameWindowLayout.md @@ -0,0 +1,25 @@ +# Module: Frontend/Views/GameWindowLayout + +## Table of contents + +### Functions + +- [GameWindowLayout](Frontend_Views_GameWindowLayout.md#gamewindowlayout) + +## Functions + +### GameWindowLayout + +▸ **GameWindowLayout**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------------- | :------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.terminalVisible` | `boolean` | +| `__namedParameters.setTerminalVisible` | (`visible`: `boolean`) => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_GenericErrorBoundary.md b/docs/modules/Frontend_Views_GenericErrorBoundary.md new file mode 100644 index 00000000..aaff26d5 --- /dev/null +++ b/docs/modules/Frontend_Views_GenericErrorBoundary.md @@ -0,0 +1,7 @@ +# Module: Frontend/Views/GenericErrorBoundary + +## Table of contents + +### Classes + +- [GenericErrorBoundary](../classes/Frontend_Views_GenericErrorBoundary.GenericErrorBoundary.md) diff --git a/docs/modules/Frontend_Views_LandingPageRoundArt.md b/docs/modules/Frontend_Views_LandingPageRoundArt.md new file mode 100644 index 00000000..99739d1e --- /dev/null +++ b/docs/modules/Frontend_Views_LandingPageRoundArt.md @@ -0,0 +1,17 @@ +# Module: Frontend/Views/LandingPageRoundArt + +## Table of contents + +### Functions + +- [LandingPageRoundArt](Frontend_Views_LandingPageRoundArt.md#landingpageroundart) + +## Functions + +### LandingPageRoundArt + +▸ **LandingPageRoundArt**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_Leaderboard.md b/docs/modules/Frontend_Views_Leaderboard.md new file mode 100644 index 00000000..76d58463 --- /dev/null +++ b/docs/modules/Frontend_Views_Leaderboard.md @@ -0,0 +1,17 @@ +# Module: Frontend/Views/Leaderboard + +## Table of contents + +### Functions + +- [LeadboardDisplay](Frontend_Views_Leaderboard.md#leadboarddisplay) + +## Functions + +### LeadboardDisplay + +▸ **LeadboardDisplay**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_ModalIcon.md b/docs/modules/Frontend_Views_ModalIcon.md new file mode 100644 index 00000000..238c455c --- /dev/null +++ b/docs/modules/Frontend_Views_ModalIcon.md @@ -0,0 +1,25 @@ +# Module: Frontend/Views/ModalIcon + +## Table of contents + +### Functions + +- [ModalToggleButton](Frontend_Views_ModalIcon.md#modaltogglebutton) + +## Functions + +### ModalToggleButton + +▸ **ModalToggleButton**(`__namedParameters`): `Element` + +A button which allows you to open a modal. + +#### Parameters + +| Name | Type | +| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `__namedParameters` | { `hook`: [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> ; `modal`: `ModalName` ; `style?`: `CSSProperties` ; `text?`: `string` } & `Partial`<`Omit`<[`DarkForestButton`](../classes/Frontend_Components_Btn.DarkForestButton.md), `"children"`\>\> & `Events`<{ `onClick`: (`evt`: `Event` & `MouseEvent`<[`DarkForestButton`](../classes/Frontend_Components_Btn.DarkForestButton.md), `MouseEvent`\>) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\> & { `hook`: [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> ; `modal`: `ModalName` ; `style?`: `CSSProperties` ; `text?`: `string` } & `Partial`<`Omit`<[`DarkForestShortcutButton`](../classes/Frontend_Components_Btn.DarkForestShortcutButton.md), `"children"`\>\> & `Events`<{ `onClick`: (`evt`: `Event` & `MouseEvent`<[`DarkForestShortcutButton`](../classes/Frontend_Components_Btn.DarkForestShortcutButton.md), `MouseEvent`\>) => `void` ; `onShortcutPressed`: (`evt`: [`ShortcutPressedEvent`](../classes/Frontend_Components_Btn.ShortcutPressedEvent.md)) => `void` }\> & `HTMLAttributes`<`HTMLElement`\> & {} & `RefAttributes`<`unknown`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_ModalPane.md b/docs/modules/Frontend_Views_ModalPane.md new file mode 100644 index 00000000..25dce5f5 --- /dev/null +++ b/docs/modules/Frontend_Views_ModalPane.md @@ -0,0 +1,38 @@ +# Module: Frontend/Views/ModalPane + +## Table of contents + +### Interfaces + +- [ModalFrame](../interfaces/Frontend_Views_ModalPane.ModalFrame.md) +- [ModalHandle](../interfaces/Frontend_Views_ModalPane.ModalHandle.md) + +### Type aliases + +- [ModalProps](Frontend_Views_ModalPane.md#modalprops) + +### Functions + +- [ModalPane](Frontend_Views_ModalPane.md#modalpane) + +## Type aliases + +### ModalProps + +Ƭ **ModalProps**: [`PaneProps`](Frontend_Components_GameWindowComponents.md#paneprops) & { `hideClose?`: `boolean` ; `id`: `ModalId` ; `initialPosition?`: { `x`: `number` ; `y`: `number` } ; `style?`: `CSSStyleDeclaration` & `React.CSSProperties` ; `title`: `string` \| `React.ReactNode` ; `visible`: `boolean` ; `width?`: `string` ; `helpContent?`: () => `ReactNode` ; `onClose`: () => `void` } + +## Functions + +### ModalPane + +▸ **ModalPane**(`__namedParameters`): `null` \| `Element` + +#### Parameters + +| Name | Type | +| :------------------ | :----------------------------------------------------- | +| `__namedParameters` | [`ModalProps`](Frontend_Views_ModalPane.md#modalprops) | + +#### Returns + +`null` \| `Element` diff --git a/docs/modules/Frontend_Views_NetworkHealth.md b/docs/modules/Frontend_Views_NetworkHealth.md new file mode 100644 index 00000000..aec0f680 --- /dev/null +++ b/docs/modules/Frontend_Views_NetworkHealth.md @@ -0,0 +1,17 @@ +# Module: Frontend/Views/NetworkHealth + +## Table of contents + +### Functions + +- [NetworkHealth](Frontend_Views_NetworkHealth.md#networkhealth) + +## Functions + +### NetworkHealth + +▸ **NetworkHealth**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_Notifications.md b/docs/modules/Frontend_Views_Notifications.md new file mode 100644 index 00000000..a3e27172 --- /dev/null +++ b/docs/modules/Frontend_Views_Notifications.md @@ -0,0 +1,20 @@ +# Module: Frontend/Views/Notifications + +## Table of contents + +### Functions + +- [NotificationsPane](Frontend_Views_Notifications.md#notificationspane) + +## Functions + +### NotificationsPane + +▸ **NotificationsPane**(): `Element` + +React component in charge of listening for new notifications and displaying them interactively to +the user. + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_Paused.md b/docs/modules/Frontend_Views_Paused.md new file mode 100644 index 00000000..9bf9d3a0 --- /dev/null +++ b/docs/modules/Frontend_Views_Paused.md @@ -0,0 +1,17 @@ +# Module: Frontend/Views/Paused + +## Table of contents + +### Functions + +- [Paused](Frontend_Views_Paused.md#paused) + +## Functions + +### Paused + +▸ **Paused**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_PlanetCard.md b/docs/modules/Frontend_Views_PlanetCard.md new file mode 100644 index 00000000..3549f064 --- /dev/null +++ b/docs/modules/Frontend_Views_PlanetCard.md @@ -0,0 +1,46 @@ +# Module: Frontend/Views/PlanetCard + +## Table of contents + +### Functions + +- [PlanetCard](Frontend_Views_PlanetCard.md#planetcard) +- [PlanetCardTitle](Frontend_Views_PlanetCard.md#planetcardtitle) + +## Functions + +### PlanetCard + +▸ **PlanetCard**(`__namedParameters`): `Element` + +Preview basic planet information - used in `PlanetContextPane` and `HoverPlanetPane` + +#### Parameters + +| Name | Type | +| :-------------------------------- | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planetWrapper` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | +| `__namedParameters.standalone?` | `boolean` | + +#### Returns + +`Element` + +--- + +### PlanetCardTitle + +▸ **PlanetCardTitle**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | +| `__namedParameters.small?` | `boolean` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_PlanetCardComponents.md b/docs/modules/Frontend_Views_PlanetCardComponents.md new file mode 100644 index 00000000..394b4ed6 --- /dev/null +++ b/docs/modules/Frontend_Views_PlanetCardComponents.md @@ -0,0 +1,76 @@ +# Module: Frontend/Views/PlanetCardComponents + +## Table of contents + +### Variables + +- [TitleBar](Frontend_Views_PlanetCardComponents.md#titlebar) + +### Functions + +- [Halved](Frontend_Views_PlanetCardComponents.md#halved) +- [PlanetActiveArtifact](Frontend_Views_PlanetCardComponents.md#planetactiveartifact) +- [RowTip](Frontend_Views_PlanetCardComponents.md#rowtip) +- [TimesTwo](Frontend_Views_PlanetCardComponents.md#timestwo) + +## Variables + +### TitleBar + +• `Const` **TitleBar**: `StyledComponent`<`"div"`, `any`, {}, `never`\> + +## Functions + +### Halved + +▸ **Halved**(): `Element` + +#### Returns + +`Element` + +--- + +### PlanetActiveArtifact + +▸ **PlanetActiveArtifact**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :---------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.artifact` | `Artifact` | +| `__namedParameters.planet` | `undefined` \| `Planet` | + +#### Returns + +`Element` + +--- + +### RowTip + +▸ **RowTip**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :------------ | +| `__namedParameters` | `Object` | +| `__namedParameters.children` | `ReactNode` | +| `__namedParameters.name` | `TooltipName` | + +#### Returns + +`Element` + +--- + +### TimesTwo + +▸ **TimesTwo**(): `Element` + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_PlanetLink.md b/docs/modules/Frontend_Views_PlanetLink.md new file mode 100644 index 00000000..2fd36457 --- /dev/null +++ b/docs/modules/Frontend_Views_PlanetLink.md @@ -0,0 +1,25 @@ +# Module: Frontend/Views/PlanetLink + +## Table of contents + +### Functions + +- [PlanetLink](Frontend_Views_PlanetLink.md#planetlink) + +## Functions + +### PlanetLink + +▸ **PlanetLink**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :--------------------------- | :---------- | +| `__namedParameters` | `Object` | +| `__namedParameters.children` | `ReactNode` | +| `__namedParameters.planet` | `Planet` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_PlanetNotifications.md b/docs/modules/Frontend_Views_PlanetNotifications.md new file mode 100644 index 00000000..b128f18b --- /dev/null +++ b/docs/modules/Frontend_Views_PlanetNotifications.md @@ -0,0 +1,83 @@ +# Module: Frontend/Views/PlanetNotifications + +## Table of contents + +### Enumerations + +- [PlanetNotifType](../enums/Frontend_Views_PlanetNotifications.PlanetNotifType.md) + +### Functions + +- [DistanceFromCenterRow](Frontend_Views_PlanetNotifications.md#distancefromcenterrow) +- [PlanetClaimedRow](Frontend_Views_PlanetNotifications.md#planetclaimedrow) +- [PlanetNotifications](Frontend_Views_PlanetNotifications.md#planetnotifications) +- [getNotifsForPlanet](Frontend_Views_PlanetNotifications.md#getnotifsforplanet) + +## Functions + +### DistanceFromCenterRow + +▸ **DistanceFromCenterRow**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | + +#### Returns + +`Element` + +--- + +### PlanetClaimedRow + +▸ **PlanetClaimedRow**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planet` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | + +#### Returns + +`Element` + +--- + +### PlanetNotifications + +▸ **PlanetNotifications**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------- | :------------------------------------------------------------------------------------ | +| `__namedParameters` | `Object` | +| `__namedParameters.notifs` | [`PlanetNotifType`](../enums/Frontend_Views_PlanetNotifications.PlanetNotifType.md)[] | +| `__namedParameters.planet` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | + +#### Returns + +`Element` + +--- + +### getNotifsForPlanet + +▸ **getNotifsForPlanet**(`planet`, `account`): [`PlanetNotifType`](../enums/Frontend_Views_PlanetNotifications.PlanetNotifType.md)[] + +#### Parameters + +| Name | Type | +| :-------- | :-------------------------- | +| `planet` | `undefined` \| `Planet` | +| `account` | `undefined` \| `EthAddress` | + +#### Returns + +[`PlanetNotifType`](../enums/Frontend_Views_PlanetNotifications.PlanetNotifType.md)[] diff --git a/docs/modules/Frontend_Views_SendResources.md b/docs/modules/Frontend_Views_SendResources.md new file mode 100644 index 00000000..468d511a --- /dev/null +++ b/docs/modules/Frontend_Views_SendResources.md @@ -0,0 +1,26 @@ +# Module: Frontend/Views/SendResources + +## Table of contents + +### Functions + +- [SendResources](Frontend_Views_SendResources.md#sendresources) + +## Functions + +### SendResources + +▸ **SendResources**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------------- | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.planetWrapper` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | +| `__namedParameters.onToggleAbandon` | () => `void` | +| `__namedParameters.onToggleSendForces` | () => `void` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_Share.md b/docs/modules/Frontend_Views_Share.md new file mode 100644 index 00000000..34dbce9d --- /dev/null +++ b/docs/modules/Frontend_Views_Share.md @@ -0,0 +1,41 @@ +# Module: Frontend/Views/Share + +## Table of contents + +### Interfaces + +- [ShareProps](../interfaces/Frontend_Views_Share.ShareProps.md) + +### Functions + +- [Share](Frontend_Views_Share.md#share) + +## Functions + +### Share + +▸ **Share**<`T`\>(`props`): `Element` + +Helper component that allows you to load data from the contract, as if it was +viewed from a particular account. Allows you to switch accounts. Just pass in: + +1. a function that loads the data you want, given a [[ReaderDataStore]] +2. a function that renders the given data with React + +... and this component will take care of loading what you want. + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | +| :------ | :--------------------------------------------------------------------- | +| `props` | [`ShareProps`](../interfaces/Frontend_Views_Share.ShareProps.md)<`T`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_SidebarPane.md b/docs/modules/Frontend_Views_SidebarPane.md new file mode 100644 index 00000000..edbfef57 --- /dev/null +++ b/docs/modules/Frontend_Views_SidebarPane.md @@ -0,0 +1,29 @@ +# Module: Frontend/Views/SidebarPane + +## Table of contents + +### Functions + +- [SidebarPane](Frontend_Views_SidebarPane.md#sidebarpane) + +## Functions + +### SidebarPane + +▸ **SidebarPane**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------------- | :----------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.helpHook` | [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> | +| `__namedParameters.planetdexHook` | [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> | +| `__namedParameters.pluginsHook` | [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> | +| `__namedParameters.settingsHook` | [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> | +| `__namedParameters.transactionLogHook` | [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> | +| `__namedParameters.yourArtifactsHook` | [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_SortableTable.md b/docs/modules/Frontend_Views_SortableTable.md new file mode 100644 index 00000000..50f028eb --- /dev/null +++ b/docs/modules/Frontend_Views_SortableTable.md @@ -0,0 +1,35 @@ +# Module: Frontend/Views/SortableTable + +## Table of contents + +### Functions + +- [SortableTable](Frontend_Views_SortableTable.md#sortabletable) + +## Functions + +### SortableTable + +▸ **SortableTable**<`T`\>(`__namedParameters`): `Element` + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | +| :-------------------------------- | :----------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.alignments?` | (`"r"` \| `"l"` \| `"c"`)[] | +| `__namedParameters.columns` | (`t`: `T`, `i`: `number`) => `ReactNode`[] | +| `__namedParameters.headers` | `ReactNode`[] | +| `__namedParameters.paginated?` | `boolean` | +| `__namedParameters.rows` | `T`[] | +| `__namedParameters.sortFunctions` | (`left`: `T`, `right`: `T`) => `number`[] | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_TabbedView.md b/docs/modules/Frontend_Views_TabbedView.md new file mode 100644 index 00000000..e20b4329 --- /dev/null +++ b/docs/modules/Frontend_Views_TabbedView.md @@ -0,0 +1,30 @@ +# Module: Frontend/Views/TabbedView + +## Table of contents + +### Functions + +- [TabbedView](Frontend_Views_TabbedView.md#tabbedview) + +## Functions + +### TabbedView + +▸ **TabbedView**(`__namedParameters`): `Element` + +This component allows you to render several tabs of content. Each tab can be selected for viewing +by clicking on its corresponding tab button. Useful for displaying lots of slightly different but +related information to the user. + +#### Parameters + +| Name | Type | +| :------------------------------ | :------------------------------------ | +| `__namedParameters` | `Object` | +| `__namedParameters.style?` | `CSSProperties` | +| `__namedParameters.tabTitles` | `string`[] | +| `__namedParameters.tabContents` | (`tabIndex`: `number`) => `ReactNode` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_Table.md b/docs/modules/Frontend_Views_Table.md new file mode 100644 index 00000000..d1c8e8ef --- /dev/null +++ b/docs/modules/Frontend_Views_Table.md @@ -0,0 +1,37 @@ +# Module: Frontend/Views/Table + +## Table of contents + +### Functions + +- [Table](Frontend_Views_Table.md#table) + +## Functions + +### Table + +▸ **Table**<`T`\>(`__namedParameters`): `Element` + +React api for creating tables. + +#### Type parameters + +| Name | +| :--- | +| `T` | + +#### Parameters + +| Name | Type | +| :------------------------------- | :----------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.alignments?` | (`"r"` \| `"l"` \| `"c"`)[] | +| `__namedParameters.columns` | (`t`: `T`, `i`: `number`) => `ReactNode`[] | +| `__namedParameters.headerStyle?` | `CSSProperties` | +| `__namedParameters.headers` | `ReactNode`[] | +| `__namedParameters.paginated?` | `boolean` | +| `__namedParameters.rows` | `T`[] | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_Terminal.md b/docs/modules/Frontend_Views_Terminal.md new file mode 100644 index 00000000..4f7b72bc --- /dev/null +++ b/docs/modules/Frontend_Views_Terminal.md @@ -0,0 +1,18 @@ +# Module: Frontend/Views/Terminal + +## Table of contents + +### Interfaces + +- [TerminalHandle](../interfaces/Frontend_Views_Terminal.TerminalHandle.md) +- [TerminalProps](../interfaces/Frontend_Views_Terminal.TerminalProps.md) + +### Variables + +- [Terminal](Frontend_Views_Terminal.md#terminal) + +## Variables + +### Terminal + +• `Const` **Terminal**: `ForwardRefExoticComponent`<[`TerminalProps`](../interfaces/Frontend_Views_Terminal.TerminalProps.md) & `RefAttributes`<`undefined` \| [`TerminalHandle`](../interfaces/Frontend_Views_Terminal.TerminalHandle.md)\>\> diff --git a/docs/modules/Frontend_Views_TopBar.md b/docs/modules/Frontend_Views_TopBar.md new file mode 100644 index 00000000..aebe462e --- /dev/null +++ b/docs/modules/Frontend_Views_TopBar.md @@ -0,0 +1,24 @@ +# Module: Frontend/Views/TopBar + +## Table of contents + +### Functions + +- [TopBar](Frontend_Views_TopBar.md#topbar) + +## Functions + +### TopBar + +▸ **TopBar**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------------ | :----------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.twitterVerifyHook` | [`Hook`](types_global_GlobalTypes.md#hook)<`boolean`\> | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_UpgradePreview.md b/docs/modules/Frontend_Views_UpgradePreview.md new file mode 100644 index 00000000..800d306c --- /dev/null +++ b/docs/modules/Frontend_Views_UpgradePreview.md @@ -0,0 +1,27 @@ +# Module: Frontend/Views/UpgradePreview + +## Table of contents + +### Functions + +- [UpgradePreview](Frontend_Views_UpgradePreview.md#upgradepreview) + +## Functions + +### UpgradePreview + +▸ **UpgradePreview**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :------------------------------ | :--------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.branchName` | `undefined` \| `UpgradeBranchName` | +| `__namedParameters.cantUpgrade` | `boolean` | +| `__namedParameters.planet` | `undefined` \| `Planet` | +| `__namedParameters.upgrade` | `undefined` \| `Upgrade` | + +#### Returns + +`Element` diff --git a/docs/modules/Frontend_Views_WithdrawSilver.md b/docs/modules/Frontend_Views_WithdrawSilver.md new file mode 100644 index 00000000..46d066f0 --- /dev/null +++ b/docs/modules/Frontend_Views_WithdrawSilver.md @@ -0,0 +1,24 @@ +# Module: Frontend/Views/WithdrawSilver + +## Table of contents + +### Functions + +- [WithdrawSilver](Frontend_Views_WithdrawSilver.md#withdrawsilver) + +## Functions + +### WithdrawSilver + +▸ **WithdrawSilver**(`__namedParameters`): `Element` + +#### Parameters + +| Name | Type | +| :-------------------------- | :--------------------------------------------------------------------------------- | +| `__namedParameters` | `Object` | +| `__namedParameters.wrapper` | [`Wrapper`](../classes/Backend_Utils_Wrapper.Wrapper.md)<`undefined` \| `Planet`\> | + +#### Returns + +`Element` diff --git a/docs/modules/_types_darkforest_api_chunkstoretypes.md b/docs/modules/_types_darkforest_api_chunkstoretypes.md deleted file mode 100644 index cc627025..00000000 --- a/docs/modules/_types_darkforest_api_chunkstoretypes.md +++ /dev/null @@ -1,30 +0,0 @@ -# Module: \_types/darkforest/api/ChunkStoreTypes - -## Table of contents - -### Interfaces - -- [ChunkStore](../interfaces/_types_darkforest_api_chunkstoretypes.chunkstore.md) -- [PersistedChunk](../interfaces/_types_darkforest_api_chunkstoretypes.persistedchunk.md) -- [PersistedLocation](../interfaces/_types_darkforest_api_chunkstoretypes.persistedlocation.md) - -### Type aliases - -- [BucketId](_types_darkforest_api_chunkstoretypes.md#bucketid) -- [ChunkId](_types_darkforest_api_chunkstoretypes.md#chunkid) - -## Type aliases - -### BucketId - -Ƭ **BucketId**: _string_ & { `__value__`: _never_ } - -one of "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" - ---- - -### ChunkId - -Ƭ **ChunkId**: _string_ & { `__value__`: _never_ } - -Don't worry about the values here. Never base code off the values here. PLEASE. diff --git a/docs/modules/_types_darkforest_api_contractsapitypes.md b/docs/modules/_types_darkforest_api_contractsapitypes.md deleted file mode 100644 index bb5239e4..00000000 --- a/docs/modules/_types_darkforest_api_contractsapitypes.md +++ /dev/null @@ -1,76 +0,0 @@ -# Module: \_types/darkforest/api/ContractsAPITypes - -## Table of contents - -### Enumerations - -- [ContractEvent](../enums/_types_darkforest_api_contractsapitypes.contractevent.md) -- [ContractsAPIEvent](../enums/_types_darkforest_api_contractsapitypes.contractsapievent.md) -- [InitArgIdxs](../enums/_types_darkforest_api_contractsapitypes.initargidxs.md) -- [MoveArgIdxs](../enums/_types_darkforest_api_contractsapitypes.moveargidxs.md) -- [PlanetEventType](../enums/_types_darkforest_api_contractsapitypes.planeteventtype.md) -- [UpgradeArgIdxs](../enums/_types_darkforest_api_contractsapitypes.upgradeargidxs.md) -- [ZKArgIdx](../enums/_types_darkforest_api_contractsapitypes.zkargidx.md) - -### Interfaces - -- [ContractConstants](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) - -### Type aliases - -- [ClientMockchainData](_types_darkforest_api_contractsapitypes.md#clientmockchaindata) -- [DepositArtifactArgs](_types_darkforest_api_contractsapitypes.md#depositartifactargs) -- [MoveArgs](_types_darkforest_api_contractsapitypes.md#moveargs) -- [PlanetTypeWeights](_types_darkforest_api_contractsapitypes.md#planettypeweights) -- [PlanetTypeWeightsByLevel](_types_darkforest_api_contractsapitypes.md#planettypeweightsbylevel) -- [PlanetTypeWeightsBySpaceType](_types_darkforest_api_contractsapitypes.md#planettypeweightsbyspacetype) -- [UpgradeArgs](_types_darkforest_api_contractsapitypes.md#upgradeargs) -- [WithdrawArtifactArgs](_types_darkforest_api_contractsapitypes.md#withdrawartifactargs) - -## Type aliases - -### ClientMockchainData - -Ƭ **ClientMockchainData**: `null` \| _undefined_ \| _number_ \| _string_ \| _boolean_ \| EthersBN \| [_ClientMockchainData_](_types_darkforest_api_contractsapitypes.md#clientmockchaindata)[] \| { [key in string \| number]: ClientMockchainData} - ---- - -### DepositArtifactArgs - -Ƭ **DepositArtifactArgs**: [*string*, *string*] - ---- - -### MoveArgs - -Ƭ **MoveArgs**: [[*string*, *string*], [[*string*, *string*], [*string*, *string*]], [*string*, *string*], [*string*, *string*, *string*, *string*, *string*, *string*, *string*, *string*, *string*, *string*, *string*, *string*, *string*]] - ---- - -### PlanetTypeWeights - -Ƭ **PlanetTypeWeights**: [*number*, *number*, *number*, *number*, *number*] - ---- - -### PlanetTypeWeightsByLevel - -Ƭ **PlanetTypeWeightsByLevel**: [[_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights), [_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights), [_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights), [_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights), [_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights), [_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights), [_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights), [_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights), [_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights), [_PlanetTypeWeights_](_types_darkforest_api_contractsapitypes.md#planettypeweights)] - ---- - -### PlanetTypeWeightsBySpaceType - -Ƭ **PlanetTypeWeightsBySpaceType**: [[_PlanetTypeWeightsByLevel_](_types_darkforest_api_contractsapitypes.md#planettypeweightsbylevel), [_PlanetTypeWeightsByLevel_](_types_darkforest_api_contractsapitypes.md#planettypeweightsbylevel), [_PlanetTypeWeightsByLevel_](_types_darkforest_api_contractsapitypes.md#planettypeweightsbylevel), [_PlanetTypeWeightsByLevel_](_types_darkforest_api_contractsapitypes.md#planettypeweightsbylevel)] - ---- - -### UpgradeArgs - -Ƭ **UpgradeArgs**: [*string*, *string*] - ---- - -### WithdrawArtifactArgs - -Ƭ **WithdrawArtifactArgs**: [*string*, *string*] diff --git a/docs/modules/_types_darkforest_api_utilityserverapitypes.md b/docs/modules/_types_darkforest_api_utilityserverapitypes.md deleted file mode 100644 index bb3c3640..00000000 --- a/docs/modules/_types_darkforest_api_utilityserverapitypes.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: \_types/darkforest/api/UtilityServerAPITypes - -## Table of contents - -### Type aliases - -- [AddressTwitterMap](_types_darkforest_api_utilityserverapitypes.md#addresstwittermap) - -## Type aliases - -### AddressTwitterMap - -Ƭ **AddressTwitterMap**: _object_ - -#### Type declaration diff --git a/docs/modules/_types_file_loader_fileworkertypes.__darkforest_eth_contracts_abis___json_.md b/docs/modules/_types_file_loader_fileworkertypes.__darkforest_eth_contracts_abis___json_.md deleted file mode 100644 index b80374e9..00000000 --- a/docs/modules/_types_file_loader_fileworkertypes.__darkforest_eth_contracts_abis___json_.md +++ /dev/null @@ -1,15 +0,0 @@ -# Namespace: "@darkforest_eth/contracts/abis/\*.json" - -[\_types/file-loader/FileWorkerTypes](_types_file_loader_fileworkertypes.md)."@darkforest_eth/contracts/abis/\*.json" - -## Table of contents - -### Variables - -- [default](_types_file_loader_fileworkertypes.__darkforest_eth_contracts_abis___json_.md#default) - -## Variables - -### default - -• `Const` **default**: _string_ diff --git a/docs/modules/_types_file_loader_fileworkertypes.__darkforest_eth_snarks___wasm_.md b/docs/modules/_types_file_loader_fileworkertypes.__darkforest_eth_snarks___wasm_.md deleted file mode 100644 index 1c99bb7c..00000000 --- a/docs/modules/_types_file_loader_fileworkertypes.__darkforest_eth_snarks___wasm_.md +++ /dev/null @@ -1,15 +0,0 @@ -# Namespace: "@darkforest_eth/snarks/\*.wasm" - -[\_types/file-loader/FileWorkerTypes](_types_file_loader_fileworkertypes.md)."@darkforest_eth/snarks/\*.wasm" - -## Table of contents - -### Variables - -- [default](_types_file_loader_fileworkertypes.__darkforest_eth_snarks___wasm_.md#default) - -## Variables - -### default - -• `Const` **default**: _string_ diff --git a/docs/modules/_types_file_loader_fileworkertypes.__darkforest_eth_snarks___zkey_.md b/docs/modules/_types_file_loader_fileworkertypes.__darkforest_eth_snarks___zkey_.md deleted file mode 100644 index e5ba3bf8..00000000 --- a/docs/modules/_types_file_loader_fileworkertypes.__darkforest_eth_snarks___zkey_.md +++ /dev/null @@ -1,15 +0,0 @@ -# Namespace: "@darkforest_eth/snarks/\*.zkey" - -[\_types/file-loader/FileWorkerTypes](_types_file_loader_fileworkertypes.md)."@darkforest_eth/snarks/\*.zkey" - -## Table of contents - -### Variables - -- [default](_types_file_loader_fileworkertypes.__darkforest_eth_snarks___zkey_.md#default) - -## Variables - -### default - -• `Const` **default**: _string_ diff --git a/docs/modules/_types_file_loader_fileworkertypes.md b/docs/modules/_types_file_loader_fileworkertypes.md deleted file mode 100644 index bb6e634a..00000000 --- a/docs/modules/_types_file_loader_fileworkertypes.md +++ /dev/null @@ -1,9 +0,0 @@ -# Module: \_types/file-loader/FileWorkerTypes - -## Table of contents - -### Namespaces - -- ["@darkforest_eth/contracts/abis/\*.json"](_types_file_loader_fileworkertypes.__darkforest_eth_contracts_abis___json_.md) -- ["@darkforest_eth/snarks/\*.wasm"](_types_file_loader_fileworkertypes.__darkforest_eth_snarks___wasm_.md) -- ["@darkforest_eth/snarks/\*.zkey"](_types_file_loader_fileworkertypes.__darkforest_eth_snarks___zkey_.md) diff --git a/docs/modules/_types_global_globals.md b/docs/modules/_types_global_globals.md deleted file mode 100644 index af47e6a7..00000000 --- a/docs/modules/_types_global_globals.md +++ /dev/null @@ -1 +0,0 @@ -# Module: \_types/global/globals diff --git a/docs/modules/_types_global_globaltypes.md b/docs/modules/_types_global_globaltypes.md deleted file mode 100644 index 681a3ca1..00000000 --- a/docs/modules/_types_global_globaltypes.md +++ /dev/null @@ -1,98 +0,0 @@ -# Module: \_types/global/GlobalTypes - -## Table of contents - -### Enumerations - -- [StatIdx](../enums/_types_global_globaltypes.statidx.md) - -### Classes - -- [Chunk](../classes/_types_global_globaltypes.chunk.md) - -### Interfaces - -- [MinerWorkerMessage](../interfaces/_types_global_globaltypes.minerworkermessage.md) -- [Rectangle](../interfaces/_types_global_globaltypes.rectangle.md) -- [RevealCountdownInfo](../interfaces/_types_global_globaltypes.revealcountdowninfo.md) - -### Type aliases - -- [HashConfig](_types_global_globaltypes.md#hashconfig) -- [Hook](_types_global_globaltypes.md#hook) -- [Wormhole](_types_global_globaltypes.md#wormhole) - -### Functions - -- [isEmojiFlagMessage](_types_global_globaltypes.md#isemojiflagmessage) -- [isLocatable](_types_global_globaltypes.md#islocatable) - -## Type aliases - -### HashConfig - -Ƭ **HashConfig**: _object_ - -#### Type declaration - -| Name | Type | -| :------------------ | :-------- | -| `biomebaseKey` | _number_ | -| `perlinLengthScale` | _number_ | -| `perlinMirrorX` | _boolean_ | -| `perlinMirrorY` | _boolean_ | -| `planetHashKey` | _number_ | -| `spaceTypeKey` | _number_ | - ---- - -### Hook - -Ƭ **Hook**: [T, *Dispatch*\>] - -#### Type parameters - -| Name | -| :--- | -| `T` | - ---- - -### Wormhole - -Ƭ **Wormhole**: _object_ - -#### Type declaration - -| Name | Type | -| :----- | :--------- | -| `from` | LocationId | -| `to` | LocationId | - -## Functions - -### isEmojiFlagMessage - -▸ **isEmojiFlagMessage**(`planetMessage`: _PlanetMessage_): planetMessage is PlanetMessage - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------ | -| `planetMessage` | _PlanetMessage_ | - -**Returns:** planetMessage is PlanetMessage - ---- - -### isLocatable - -▸ **isLocatable**(`planet`: Planet): planet is LocatablePlanet - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** planet is LocatablePlanet diff --git a/docs/modules/_types_worker_loader_workertypes.md b/docs/modules/_types_worker_loader_workertypes.md deleted file mode 100644 index 4923dde3..00000000 --- a/docs/modules/_types_worker_loader_workertypes.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: \_types/worker-loader/WorkerTypes - -## Table of contents - -### Classes - -- [default](../classes/_types_worker_loader_workertypes.default.md) diff --git a/docs/modules/backend_gamelogic_arrivalutils.md b/docs/modules/backend_gamelogic_arrivalutils.md deleted file mode 100644 index 643cb4f0..00000000 --- a/docs/modules/backend_gamelogic_arrivalutils.md +++ /dev/null @@ -1,156 +0,0 @@ -# Module: Backend/GameLogic/ArrivalUtils - -## Table of contents - -### Functions - -- [applyUpgrade](backend_gamelogic_arrivalutils.md#applyupgrade) -- [arrive](backend_gamelogic_arrivalutils.md#arrive) -- [blocksLeftToProspectExpiration](backend_gamelogic_arrivalutils.md#blockslefttoprospectexpiration) -- [enoughEnergyToProspect](backend_gamelogic_arrivalutils.md#enoughenergytoprospect) -- [getEmojiMessage](backend_gamelogic_arrivalutils.md#getemojimessage) -- [isFindable](backend_gamelogic_arrivalutils.md#isfindable) -- [isProspectable](backend_gamelogic_arrivalutils.md#isprospectable) -- [prospectExpired](backend_gamelogic_arrivalutils.md#prospectexpired) -- [updatePlanetToTime](backend_gamelogic_arrivalutils.md#updateplanettotime) - -## Functions - -### applyUpgrade - -▸ `Const` **applyUpgrade**(`planet`: Planet, `upgrade`: Upgrade, `unApply?`: _boolean_): _void_ - -#### Parameters - -| Name | Type | Default value | -| :-------- | :-------- | :------------ | -| `planet` | Planet | - | -| `upgrade` | Upgrade | - | -| `unApply` | _boolean_ | false | - -**Returns:** _void_ - ---- - -### arrive - -▸ `Const` **arrive**(`toPlanet`: Planet, `artifactsOnPlanet`: Artifact[], `arrival`: QueuedArrival, `contractConstants`: [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md)): _void_ - -#### Parameters - -| Name | Type | -| :------------------ | :------------------------------------------------------------------------------------------------ | -| `toPlanet` | Planet | -| `artifactsOnPlanet` | Artifact[] | -| `arrival` | QueuedArrival | -| `contractConstants` | [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) | - -**Returns:** _void_ - ---- - -### blocksLeftToProspectExpiration - -▸ `Const` **blocksLeftToProspectExpiration**(`currentBlockNumber`: _number_, `prospectedBlockNumber?`: _number_): _number_ - -#### Parameters - -| Name | Type | -| :----------------------- | :------- | -| `currentBlockNumber` | _number_ | -| `prospectedBlockNumber?` | _number_ | - -**Returns:** _number_ - ---- - -### enoughEnergyToProspect - -▸ `Const` **enoughEnergyToProspect**(`p`: Planet): _boolean_ - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** _boolean_ - ---- - -### getEmojiMessage - -▸ **getEmojiMessage**(`planet`: Planet \| _undefined_): _PlanetMessage_ \| _undefined_ - -**`todo`** ArrivalUtils has become a dumping ground for functions that should just live inside of a -`Planet` class. - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | Planet \| _undefined_ | - -**Returns:** _PlanetMessage_ \| _undefined_ - ---- - -### isFindable - -▸ `Const` **isFindable**(`planet`: Planet, `currentBlockNumber?`: _number_): _boolean_ - -#### Parameters - -| Name | Type | -| :-------------------- | :------- | -| `planet` | Planet | -| `currentBlockNumber?` | _number_ | - -**Returns:** _boolean_ - ---- - -### isProspectable - -▸ `Const` **isProspectable**(`planet`: Planet): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _boolean_ - ---- - -### prospectExpired - -▸ `Const` **prospectExpired**(`currentBlockNumber`: _number_, `prospectedBlockNumber`: _number_): _boolean_ - -#### Parameters - -| Name | Type | -| :---------------------- | :------- | -| `currentBlockNumber` | _number_ | -| `prospectedBlockNumber` | _number_ | - -**Returns:** _boolean_ - ---- - -### updatePlanetToTime - -▸ `Const` **updatePlanetToTime**(`planet`: Planet, `planetArtifacts`: Artifact[], `atTimeMillis`: _number_, `contractConstants`: [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md), `setPlanet?`: (`p`: Planet) => _void_): _void_ - -#### Parameters - -| Name | Type | -| :------------------ | :------------------------------------------------------------------------------------------------ | -| `planet` | Planet | -| `planetArtifacts` | Artifact[] | -| `atTimeMillis` | _number_ | -| `contractConstants` | [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) | -| `setPlanet` | (`p`: Planet) => _void_ | - -**Returns:** _void_ diff --git a/docs/modules/backend_gamelogic_artifactutils.md b/docs/modules/backend_gamelogic_artifactutils.md deleted file mode 100644 index 910230fe..00000000 --- a/docs/modules/backend_gamelogic_artifactutils.md +++ /dev/null @@ -1,287 +0,0 @@ -# Module: Backend/GameLogic/ArtifactUtils - -## Table of contents - -### Enumerations - -- [ArtifactFileColor](../enums/backend_gamelogic_artifactutils.artifactfilecolor.md) - -### Interfaces - -- [RenderedArtifact](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md) - -### Variables - -- [RelicsList](backend_gamelogic_artifactutils.md#relicslist) - -### Functions - -- [artifactAvailableTimestamp](backend_gamelogic_artifactutils.md#artifactavailabletimestamp) -- [artifactBiomeName](backend_gamelogic_artifactutils.md#artifactbiomename) -- [artifactFileName](backend_gamelogic_artifactutils.md#artifactfilename) -- [artifactRoll](backend_gamelogic_artifactutils.md#artifactroll) -- [biomeName](backend_gamelogic_artifactutils.md#biomename) -- [getActivatedArtifact](backend_gamelogic_artifactutils.md#getactivatedartifact) -- [getActiveBlackDomain](backend_gamelogic_artifactutils.md#getactiveblackdomain) -- [getArtifactDebugName](backend_gamelogic_artifactutils.md#getartifactdebugname) -- [hasUnconfirmedArtifactTx](backend_gamelogic_artifactutils.md#hasunconfirmedartifacttx) -- [isActivated](backend_gamelogic_artifactutils.md#isactivated) -- [isAncient](backend_gamelogic_artifactutils.md#isancient) -- [isBasic](backend_gamelogic_artifactutils.md#isbasic) -- [isRelic](backend_gamelogic_artifactutils.md#isrelic) -- [levelFromRarity](backend_gamelogic_artifactutils.md#levelfromrarity) -- [rarityName](backend_gamelogic_artifactutils.md#rarityname) -- [rarityNameFromArtifact](backend_gamelogic_artifactutils.md#raritynamefromartifact) -- [setForceAncient](backend_gamelogic_artifactutils.md#setforceancient) - -## Variables - -### RelicsList - -• `Const` **RelicsList**: ArtifactType[] - -## Functions - -### artifactAvailableTimestamp - -▸ **artifactAvailableTimestamp**(`artifact`: Artifact): _number_ - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `artifact` | Artifact | - -**Returns:** _number_ - ---- - -### artifactBiomeName - -▸ **artifactBiomeName**(`artifact`: Artifact): _string_ - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `artifact` | Artifact | - -**Returns:** _string_ - ---- - -### artifactFileName - -▸ **artifactFileName**(`videoMode`: _boolean_, `thumb`: _boolean_, `artifact`: [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md), `color`: [_ArtifactFileColor_](../enums/backend_gamelogic_artifactutils.artifactfilecolor.md), `debugProps?`: { `forceAncient`: _boolean_ ; `skipCaching`: _boolean_ } \| _undefined_): _string_ - -#### Parameters - -| Name | Type | -| :----------- | :-------------------------------------------------------------------------------------- | -| `videoMode` | _boolean_ | -| `thumb` | _boolean_ | -| `artifact` | [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md) | -| `color` | [_ArtifactFileColor_](../enums/backend_gamelogic_artifactutils.artifactfilecolor.md) | -| `debugProps` | { `forceAncient`: _boolean_ ; `skipCaching`: _boolean_ } \| _undefined_ | - -**Returns:** _string_ - ---- - -### artifactRoll - -▸ **artifactRoll**(`id`: ArtifactId): _number_ - -Convert an `artifactId` to an int in [0, 255] - -#### Parameters - -| Name | Type | -| :--- | :--------- | -| `id` | ArtifactId | - -**Returns:** _number_ - ---- - -### biomeName - -▸ `Const` **biomeName**(`biome`: Biome): _string_ - -#### Parameters - -| Name | Type | -| :------ | :---- | -| `biome` | Biome | - -**Returns:** _string_ - ---- - -### getActivatedArtifact - -▸ **getActivatedArtifact**(`artifacts`: Artifact[]): Artifact \| _undefined_ - -#### Parameters - -| Name | Type | -| :---------- | :--------- | -| `artifacts` | Artifact[] | - -**Returns:** Artifact \| _undefined_ - ---- - -### getActiveBlackDomain - -▸ **getActiveBlackDomain**(`artifacts`: Artifact[]): Artifact \| _undefined_ - -#### Parameters - -| Name | Type | -| :---------- | :--------- | -| `artifacts` | Artifact[] | - -**Returns:** Artifact \| _undefined_ - ---- - -### getArtifactDebugName - -▸ **getArtifactDebugName**(`a?`: Artifact): _string_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `a?` | Artifact | - -**Returns:** _string_ - ---- - -### hasUnconfirmedArtifactTx - -▸ `Const` **hasUnconfirmedArtifactTx**(`p`: _undefined_ \| Planet): _boolean_ - -#### Parameters - -| Name | Type | -| :--- | :-------------------- | -| `p` | _undefined_ \| Planet | - -**Returns:** _boolean_ - ---- - -### isActivated - -▸ **isActivated**(`artifact`: Artifact \| _undefined_): _boolean_ - -#### Parameters - -| Name | Type | -| :--------- | :---------------------- | -| `artifact` | Artifact \| _undefined_ | - -**Returns:** _boolean_ - ---- - -### isAncient - -▸ **isAncient**(`artifact`: [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md)): _boolean_ - -#### Parameters - -| Name | Type | -| :--------- | :-------------------------------------------------------------------------------------- | -| `artifact` | [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md) | - -**Returns:** _boolean_ - ---- - -### isBasic - -▸ **isBasic**(`type`: ArtifactType): _boolean_ - -#### Parameters - -| Name | Type | -| :----- | :----------- | -| `type` | ArtifactType | - -**Returns:** _boolean_ - ---- - -### isRelic - -▸ **isRelic**(`type`: ArtifactType): _boolean_ - -#### Parameters - -| Name | Type | -| :----- | :----------- | -| `type` | ArtifactType | - -**Returns:** _boolean_ - ---- - -### levelFromRarity - -▸ `Const` **levelFromRarity**(`rarity`: ArtifactRarity): PlanetLevel - -#### Parameters - -| Name | Type | -| :------- | :------------- | -| `rarity` | ArtifactRarity | - -**Returns:** PlanetLevel - ---- - -### rarityName - -▸ `Const` **rarityName**(`rarity`: ArtifactRarity): _string_ - -#### Parameters - -| Name | Type | -| :------- | :------------- | -| `rarity` | ArtifactRarity | - -**Returns:** _string_ - ---- - -### rarityNameFromArtifact - -▸ `Const` **rarityNameFromArtifact**(`a`: Artifact): _string_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `a` | Artifact | - -**Returns:** _string_ - ---- - -### setForceAncient - -▸ **setForceAncient**(`force`: _boolean_): _void_ - -Really, really shitty workaround to add a `return true` or `return false` to the above `isAncient`. Used in `GifRenderer.ts` - -#### Parameters - -| Name | Type | -| :------ | :-------- | -| `force` | _boolean_ | - -**Returns:** _void_ diff --git a/docs/modules/backend_gamelogic_contractcaller.md b/docs/modules/backend_gamelogic_contractcaller.md deleted file mode 100644 index ac394d53..00000000 --- a/docs/modules/backend_gamelogic_contractcaller.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/GameLogic/ContractCaller - -## Table of contents - -### Classes - -- [ContractCaller](../classes/backend_gamelogic_contractcaller.contractcaller.md) diff --git a/docs/modules/backend_gamelogic_contractsapi.md b/docs/modules/backend_gamelogic_contractsapi.md deleted file mode 100644 index 3c025ae6..00000000 --- a/docs/modules/backend_gamelogic_contractsapi.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/GameLogic/ContractsAPI - -## Table of contents - -### Classes - -- [default](../classes/backend_gamelogic_contractsapi.default.md) diff --git a/docs/modules/backend_gamelogic_conversationmanager.md b/docs/modules/backend_gamelogic_conversationmanager.md deleted file mode 100644 index 1e9e6a60..00000000 --- a/docs/modules/backend_gamelogic_conversationmanager.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/GameLogic/ConversationManager - -## Table of contents - -### Classes - -- [ConversationManager](../classes/backend_gamelogic_conversationmanager.conversationmanager.md) diff --git a/docs/modules/backend_gamelogic_gamemanager.md b/docs/modules/backend_gamelogic_gamemanager.md deleted file mode 100644 index 60318d58..00000000 --- a/docs/modules/backend_gamelogic_gamemanager.md +++ /dev/null @@ -1,11 +0,0 @@ -# Module: Backend/GameLogic/GameManager - -## Table of contents - -### Enumerations - -- [GameManagerEvent](../enums/backend_gamelogic_gamemanager.gamemanagerevent.md) - -### Classes - -- [default](../classes/backend_gamelogic_gamemanager.default.md) diff --git a/docs/modules/backend_gamelogic_gameobjects.md b/docs/modules/backend_gamelogic_gameobjects.md deleted file mode 100644 index fb9a8285..00000000 --- a/docs/modules/backend_gamelogic_gameobjects.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/GameLogic/GameObjects - -## Table of contents - -### Classes - -- [GameObjects](../classes/backend_gamelogic_gameobjects.gameobjects.md) diff --git a/docs/modules/backend_gamelogic_gameuimanager.md b/docs/modules/backend_gamelogic_gameuimanager.md deleted file mode 100644 index 74db3e2b..00000000 --- a/docs/modules/backend_gamelogic_gameuimanager.md +++ /dev/null @@ -1,11 +0,0 @@ -# Module: Backend/GameLogic/GameUIManager - -## Table of contents - -### Enumerations - -- [GameUIManagerEvent](../enums/backend_gamelogic_gameuimanager.gameuimanagerevent.md) - -### Classes - -- [default](../classes/backend_gamelogic_gameuimanager.default.md) diff --git a/docs/modules/backend_gamelogic_initialgamestatedownloader.md b/docs/modules/backend_gamelogic_initialgamestatedownloader.md deleted file mode 100644 index 68f44bc0..00000000 --- a/docs/modules/backend_gamelogic_initialgamestatedownloader.md +++ /dev/null @@ -1,11 +0,0 @@ -# Module: Backend/GameLogic/InitialGameStateDownloader - -## Table of contents - -### Classes - -- [InitialGameStateDownloader](../classes/backend_gamelogic_initialgamestatedownloader.initialgamestatedownloader.md) - -### Interfaces - -- [InitialGameState](../interfaces/backend_gamelogic_initialgamestatedownloader.initialgamestate.md) diff --git a/docs/modules/backend_gamelogic_layeredmap.md b/docs/modules/backend_gamelogic_layeredmap.md deleted file mode 100644 index 7ef09d4e..00000000 --- a/docs/modules/backend_gamelogic_layeredmap.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/GameLogic/LayeredMap - -## Table of contents - -### Classes - -- [LayeredMap](../classes/backend_gamelogic_layeredmap.layeredmap.md) diff --git a/docs/modules/backend_gamelogic_paidconversationmanager.md b/docs/modules/backend_gamelogic_paidconversationmanager.md deleted file mode 100644 index 83dc5133..00000000 --- a/docs/modules/backend_gamelogic_paidconversationmanager.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/GameLogic/PaidConversationManager - -## Table of contents - -### Classes - -- [PaidConversationManager](../classes/backend_gamelogic_paidconversationmanager.paidconversationmanager.md) diff --git a/docs/modules/backend_gamelogic_pluginmanager.md b/docs/modules/backend_gamelogic_pluginmanager.md deleted file mode 100644 index 32d0daf4..00000000 --- a/docs/modules/backend_gamelogic_pluginmanager.md +++ /dev/null @@ -1,8 +0,0 @@ -# Module: Backend/GameLogic/PluginManager - -## Table of contents - -### Classes - -- [PluginManager](../classes/backend_gamelogic_pluginmanager.pluginmanager.md) -- [ProcessInfo](../classes/backend_gamelogic_pluginmanager.processinfo.md) diff --git a/docs/modules/backend_gamelogic_tutorialmanager.md b/docs/modules/backend_gamelogic_tutorialmanager.md deleted file mode 100644 index 731db306..00000000 --- a/docs/modules/backend_gamelogic_tutorialmanager.md +++ /dev/null @@ -1,12 +0,0 @@ -# Module: Backend/GameLogic/TutorialManager - -## Table of contents - -### Enumerations - -- [TutorialManagerEvent](../enums/backend_gamelogic_tutorialmanager.tutorialmanagerevent.md) -- [TutorialState](../enums/backend_gamelogic_tutorialmanager.tutorialstate.md) - -### Classes - -- [default](../classes/backend_gamelogic_tutorialmanager.default.md) diff --git a/docs/modules/backend_gamelogic_viewportentities.md b/docs/modules/backend_gamelogic_viewportentities.md deleted file mode 100644 index b9982131..00000000 --- a/docs/modules/backend_gamelogic_viewportentities.md +++ /dev/null @@ -1,12 +0,0 @@ -# Module: Backend/GameLogic/ViewportEntities - -## Table of contents - -### Classes - -- [ViewportEntities](../classes/backend_gamelogic_viewportentities.viewportentities.md) - -### Interfaces - -- [PlanetRenderInfo](../interfaces/backend_gamelogic_viewportentities.planetrenderinfo.md) -- [Radii](../interfaces/backend_gamelogic_viewportentities.radii.md) diff --git a/docs/modules/backend_interfaces_diagnosticupdater.md b/docs/modules/backend_interfaces_diagnosticupdater.md deleted file mode 100644 index 6c471947..00000000 --- a/docs/modules/backend_interfaces_diagnosticupdater.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Interfaces/DiagnosticUpdater - -## Table of contents - -### Interfaces - -- [DiagnosticUpdater](../interfaces/backend_interfaces_diagnosticupdater.diagnosticupdater.md) diff --git a/docs/modules/backend_miner_chunkutils.md b/docs/modules/backend_miner_chunkutils.md deleted file mode 100644 index 87e94ec4..00000000 --- a/docs/modules/backend_miner_chunkutils.md +++ /dev/null @@ -1,165 +0,0 @@ -# Module: Backend/Miner/ChunkUtils - -## Table of contents - -### Functions - -- [addToChunkMap](backend_miner_chunkutils.md#addtochunkmap) -- [getBucket](backend_miner_chunkutils.md#getbucket) -- [getChunkKey](backend_miner_chunkutils.md#getchunkkey) -- [getChunkOfSideLengthContainingPoint](backend_miner_chunkutils.md#getchunkofsidelengthcontainingpoint) -- [getSiblingLocations](backend_miner_chunkutils.md#getsiblinglocations) -- [toExploredChunk](backend_miner_chunkutils.md#toexploredchunk) -- [toPersistedChunk](backend_miner_chunkutils.md#topersistedchunk) - -## Functions - -### addToChunkMap - -▸ **addToChunkMap**(`existingChunks`: _Map_<[_ChunkId_](_types_darkforest_api_chunkstoretypes.md#chunkid), [_Chunk_](../classes/_types_global_globaltypes.chunk.md)\>, `newChunk`: [_Chunk_](../classes/_types_global_globaltypes.chunk.md), `onAdd?`: (`arg`: [_Chunk_](../classes/_types_global_globaltypes.chunk.md)) => _void_, `onRemove?`: (`arg`: [_Chunk_](../classes/_types_global_globaltypes.chunk.md)) => _void_, `maxChunkSize?`: _number_): _void_ - -At a high level, call this function to update an efficient quadtree-like store containing all of -the chunks that a player has either mined or imported in their client. - -More speecifically, adds the given new chunk to the given map of chunks. If the map of chunks -contains all of the "sibling" chunks to this new chunk, then instead of adding it, we merge the 4 -sibling chunks, and add the merged chunk to the map and remove the existing sibling chunks. This -function is recursive, which means that if the newly created merged chunk can also be merged with -its siblings, then we merge it, add the new larger chunk, and also remove the previously existing -sibling chunks. - -The maximum chunk size is represented by the `maxChunkSize` parameter (which has to be a power of -two). If no `maxChunkSize` parameter is provided, then there is no maxmimum chunk size, meaning -that chunks will be merged until no further merging is possible. - -`onAdd` and `onRemove` are called for each of the chunks that we add and remove to/from the -`existingChunks` map. `onAdd` will be called exactly once, whereas `onRemove` only ever be called -for sibling chunks that existed prior to this function being called. - -#### Parameters - -| Name | Type | -| :--------------- | :------------------------------------------------------------------------------------------------------------------------------ | -| `existingChunks` | _Map_<[_ChunkId_](_types_darkforest_api_chunkstoretypes.md#chunkid), [_Chunk_](../classes/_types_global_globaltypes.chunk.md)\> | -| `newChunk` | [_Chunk_](../classes/_types_global_globaltypes.chunk.md) | -| `onAdd?` | (`arg`: [_Chunk_](../classes/_types_global_globaltypes.chunk.md)) => _void_ | -| `onRemove?` | (`arg`: [_Chunk_](../classes/_types_global_globaltypes.chunk.md)) => _void_ | -| `maxChunkSize?` | _number_ | - -**Returns:** _void_ - ---- - -### getBucket - -▸ **getBucket**(`chunk`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): [_BucketId_](_types_darkforest_api_chunkstoretypes.md#bucketid) - -Deterministically assigns a bucket ID to a rectangle, based on its position and size in the -universe. This is kind of like a shitty hash function. Its purpose is to distribute chunks -roughly evenly between the buckets. - -#### Parameters - -| Name | Type | -| :------ | :------------------------------------------------------------------ | -| `chunk` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** [_BucketId_](_types_darkforest_api_chunkstoretypes.md#bucketid) - ---- - -### getChunkKey - -▸ **getChunkKey**(`chunkLoc`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): [_ChunkId_](_types_darkforest_api_chunkstoretypes.md#chunkid) - -A unique ID generated for each chunk based on its rectangle, as well as its bucket. It's the -primary key by which chunks are identified. - -#### Parameters - -| Name | Type | -| :--------- | :------------------------------------------------------------------ | -| `chunkLoc` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** [_ChunkId_](_types_darkforest_api_chunkstoretypes.md#chunkid) - ---- - -### getChunkOfSideLengthContainingPoint - -▸ **getChunkOfSideLengthContainingPoint**(`coords`: WorldCoords, `sideLength`: _number_): [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - -Returns the unique aligned chunk (for definition of "aligned" see comment on -`getSiblingLocations`) with the given side length that contains the given point. A chunk contains -all of the points strictly inside of its bounds, as well as the bottom and left edges. This means -it does not contain points which are on its right or top edges. - -#### Parameters - -| Name | Type | -| :----------- | :---------- | -| `coords` | WorldCoords | -| `sideLength` | _number_ | - -**Returns:** [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) - ---- - -### getSiblingLocations - -▸ `Const` **getSiblingLocations**(`chunkLoc`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)): [[_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)] - -An aligned chunk is one whose corner's coordinates are multiples of its side length, and its side -length is a power of two between [MIN_CHUNK_SIZE](frontend_utils_constants.md#min_chunk_size) and [MAX_CHUNK_SIZE](frontend_utils_constants.md#max_chunk_size) inclusive. - -"Aligned" chunks is that they can be merged into other aligned chunks. Non-aligned chunks cannot -always be merged into squares. The reason we care about merging is that merging chunks allows us -to represent more world-space using fewer chunks. This saves memory at both runtime and -storage-time. Therefore, we only store aligned chunks. - -As an example, chunks with any corner at (0, 0) are always aligned. A chunk with side length 4 is -aligned if it's on (4, 4), (8, 12), but not (4, 6). - -This function returns the other three chunks with the same side length of the given chunk, such -that the four chunks, if merged, would result in an "aligned" chunk whose side length is double -the given chunk. - -#### Parameters - -| Name | Type | -| :--------- | :------------------------------------------------------------------ | -| `chunkLoc` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | - -**Returns:** [[_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)] - ---- - -### toExploredChunk - -▸ `Const` **toExploredChunk**(`chunk`: [_PersistedChunk_](../interfaces/_types_darkforest_api_chunkstoretypes.persistedchunk.md)): [_Chunk_](../classes/_types_global_globaltypes.chunk.md) - -Converts from the persisted representation of a chunk to the in-game representation of a chunk. - -#### Parameters - -| Name | Type | -| :------ | :---------------------------------------------------------------------------------------- | -| `chunk` | [_PersistedChunk_](../interfaces/_types_darkforest_api_chunkstoretypes.persistedchunk.md) | - -**Returns:** [_Chunk_](../classes/_types_global_globaltypes.chunk.md) - ---- - -### toPersistedChunk - -▸ **toPersistedChunk**(`chunk`: [_Chunk_](../classes/_types_global_globaltypes.chunk.md)): [_PersistedChunk_](../interfaces/_types_darkforest_api_chunkstoretypes.persistedchunk.md) - -Converts from the in-game representation of a chunk to its persisted representation. - -#### Parameters - -| Name | Type | -| :------ | :------------------------------------------------------- | -| `chunk` | [_Chunk_](../classes/_types_global_globaltypes.chunk.md) | - -**Returns:** [_PersistedChunk_](../interfaces/_types_darkforest_api_chunkstoretypes.persistedchunk.md) diff --git a/docs/modules/backend_miner_miner_worker.md b/docs/modules/backend_miner_miner_worker.md deleted file mode 100644 index 3feafe53..00000000 --- a/docs/modules/backend_miner_miner_worker.md +++ /dev/null @@ -1 +0,0 @@ -# Module: Backend/Miner/miner.worker diff --git a/docs/modules/backend_miner_minermanager.md b/docs/modules/backend_miner_minermanager.md deleted file mode 100644 index 7d891220..00000000 --- a/docs/modules/backend_miner_minermanager.md +++ /dev/null @@ -1,12 +0,0 @@ -# Module: Backend/Miner/MinerManager - -## Table of contents - -### Enumerations - -- [MinerManagerEvent](../enums/backend_miner_minermanager.minermanagerevent.md) - -### Classes - -- [HomePlanetMinerChunkStore](../classes/backend_miner_minermanager.homeplanetminerchunkstore.md) -- [default](../classes/backend_miner_minermanager.default.md) diff --git a/docs/modules/backend_miner_miningpatterns.md b/docs/modules/backend_miner_miningpatterns.md deleted file mode 100644 index 0b67fff3..00000000 --- a/docs/modules/backend_miner_miningpatterns.md +++ /dev/null @@ -1,16 +0,0 @@ -# Module: Backend/Miner/MiningPatterns - -## Table of contents - -### Enumerations - -- [MiningPatternType](../enums/backend_miner_miningpatterns.miningpatterntype.md) - -### Classes - -- [SpiralPattern](../classes/backend_miner_miningpatterns.spiralpattern.md) -- [SwissCheesePattern](../classes/backend_miner_miningpatterns.swisscheesepattern.md) - -### Interfaces - -- [MiningPattern](../interfaces/backend_miner_miningpatterns.miningpattern.md) diff --git a/docs/modules/backend_miner_permutation.md b/docs/modules/backend_miner_permutation.md deleted file mode 100644 index c004e1f7..00000000 --- a/docs/modules/backend_miner_permutation.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Backend/Miner/permutation - -## Table of contents - -### Functions - -- [getPlanetLocations](backend_miner_permutation.md#getplanetlocations) - -## Functions - -### getPlanetLocations - -▸ `Const` **getPlanetLocations**(`spaceTypeKey`: _number_, `biomebaseKey`: _number_, `perlinLengthScale`: _number_, `perlinMirrorX`: _boolean_, `perlinMirrorY`: _boolean_): _function_ - -#### Parameters - -| Name | Type | -| :------------------ | :-------- | -| `spaceTypeKey` | _number_ | -| `biomebaseKey` | _number_ | -| `perlinLengthScale` | _number_ | -| `perlinMirrorX` | _boolean_ | -| `perlinMirrorY` | _boolean_ | - -**Returns:** (`chunkFootprint`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), `planetRarity`: _number_) => WorldLocation[] diff --git a/docs/modules/backend_network_conversationapi.md b/docs/modules/backend_network_conversationapi.md deleted file mode 100644 index 688c33e9..00000000 --- a/docs/modules/backend_network_conversationapi.md +++ /dev/null @@ -1,93 +0,0 @@ -# Module: Backend/Network/ConversationAPI - -## Table of contents - -### Functions - -- [getConversation](backend_network_conversationapi.md#getconversation) -- [startConversation](backend_network_conversationapi.md#startconversation) -- [startConversationOpenAI](backend_network_conversationapi.md#startconversationopenai) -- [stepConversation](backend_network_conversationapi.md#stepconversation) -- [stepConversationOpenAI](backend_network_conversationapi.md#stepconversationopenai) - -## Functions - -### getConversation - -▸ **getConversation**(`artifactId`: ArtifactId): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `artifactId` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### startConversation - -▸ **startConversation**(`timestamp`: _number_, `player`: EthAddress, `signature`: _string_, `artifactId`: ArtifactId): _Promise_ - -IN-GAME ROUTES - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `timestamp` | _number_ | -| `player` | EthAddress | -| `signature` | _string_ | -| `artifactId` | ArtifactId | - -**Returns:** _Promise_ - ---- - -### startConversationOpenAI - -▸ **startConversationOpenAI**(`artifact`: ConversationArtifact, `artifactId`: _string_, `username`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :------------------- | -| `artifact` | ConversationArtifact | -| `artifactId` | _string_ | -| `username` | _string_ | - -**Returns:** _Promise_ - ---- - -### stepConversation - -▸ **stepConversation**(`timestamp`: _number_, `player`: EthAddress, `signature`: _string_, `artifactId`: ArtifactId, `message`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `timestamp` | _number_ | -| `player` | EthAddress | -| `signature` | _string_ | -| `artifactId` | ArtifactId | -| `message` | _string_ | - -**Returns:** _Promise_ - ---- - -### stepConversationOpenAI - -▸ **stepConversationOpenAI**(`artifactId`: _string_, `message`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :----------- | :------- | -| `artifactId` | _string_ | -| `message` | _string_ | - -**Returns:** _Promise_ diff --git a/docs/modules/backend_network_ethconnection.md b/docs/modules/backend_network_ethconnection.md deleted file mode 100644 index c2d916b2..00000000 --- a/docs/modules/backend_network_ethconnection.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Network/EthConnection - -## Table of contents - -### Classes - -- [default](../classes/backend_network_ethconnection.default.md) diff --git a/docs/modules/backend_network_eventlogger.md b/docs/modules/backend_network_eventlogger.md deleted file mode 100644 index e9e2c515..00000000 --- a/docs/modules/backend_network_eventlogger.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Network/EventLogger - -## Table of contents - -### Classes - -- [EventLogger](../classes/backend_network_eventlogger.eventlogger.md) diff --git a/docs/modules/backend_network_leaderboardapi.md b/docs/modules/backend_network_leaderboardapi.md deleted file mode 100644 index eeeacaaa..00000000 --- a/docs/modules/backend_network_leaderboardapi.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Backend/Network/LeaderboardApi - -## Table of contents - -### Functions - -- [loadLeaderboard](backend_network_leaderboardapi.md#loadleaderboard) - -## Functions - -### loadLeaderboard - -▸ **loadLeaderboard**(): _Promise_ - -**Returns:** _Promise_ diff --git a/docs/modules/backend_network_messageapi.md b/docs/modules/backend_network_messageapi.md deleted file mode 100644 index 5ec964bc..00000000 --- a/docs/modules/backend_network_messageapi.md +++ /dev/null @@ -1,51 +0,0 @@ -# Module: Backend/Network/MessageAPI - -## Table of contents - -### Functions - -- [addMessage](backend_network_messageapi.md#addmessage) -- [deleteMessages](backend_network_messageapi.md#deletemessages) -- [getMessagesOnPlanets](backend_network_messageapi.md#getmessagesonplanets) - -## Functions - -### addMessage - -▸ **addMessage**(`request`: _SignedMessage_\>): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :--------------------------------------------- | -| `request` | _SignedMessage_\> | - -**Returns:** _Promise_ - ---- - -### deleteMessages - -▸ **deleteMessages**(`request`: _SignedMessage_): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :-------------------------------------- | -| `request` | _SignedMessage_ | - -**Returns:** _Promise_ - ---- - -### getMessagesOnPlanets - -▸ **getMessagesOnPlanets**(`request`: PlanetMessageRequest): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :------------------- | -| `request` | PlanetMessageRequest | - -**Returns:** _Promise_ diff --git a/docs/modules/backend_network_throttledconcurrentqueue.md b/docs/modules/backend_network_throttledconcurrentqueue.md deleted file mode 100644 index 9d174b04..00000000 --- a/docs/modules/backend_network_throttledconcurrentqueue.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Network/ThrottledConcurrentQueue - -## Table of contents - -### Classes - -- [ThrottledConcurrentQueue](../classes/backend_network_throttledconcurrentqueue.throttledconcurrentqueue.md) diff --git a/docs/modules/backend_network_txexecutor.md b/docs/modules/backend_network_txexecutor.md deleted file mode 100644 index 95679c77..00000000 --- a/docs/modules/backend_network_txexecutor.md +++ /dev/null @@ -1,12 +0,0 @@ -# Module: Backend/Network/TxExecutor - -## Table of contents - -### Classes - -- [TxExecutor](../classes/backend_network_txexecutor.txexecutor.md) - -### Interfaces - -- [PendingTransaction](../interfaces/backend_network_txexecutor.pendingtransaction.md) -- [QueuedTxRequest](../interfaces/backend_network_txexecutor.queuedtxrequest.md) diff --git a/docs/modules/backend_network_utilityserverapi.md b/docs/modules/backend_network_utilityserverapi.md deleted file mode 100644 index 84a31429..00000000 --- a/docs/modules/backend_network_utilityserverapi.md +++ /dev/null @@ -1,122 +0,0 @@ -# Module: Backend/Network/UtilityServerAPI - -## Table of contents - -### Enumerations - -- [EmailResponse](../enums/backend_network_utilityserverapi.emailresponse.md) - -### Variables - -- [WEBSERVER_URL](backend_network_utilityserverapi.md#webserver_url) - -### Functions - -- [getAllTwitters](backend_network_utilityserverapi.md#getalltwitters) -- [requestDevFaucet](backend_network_utilityserverapi.md#requestdevfaucet) -- [submitInterestedEmail](backend_network_utilityserverapi.md#submitinterestedemail) -- [submitPlayerEmail](backend_network_utilityserverapi.md#submitplayeremail) -- [submitUnsubscribeEmail](backend_network_utilityserverapi.md#submitunsubscribeemail) -- [submitWhitelistKey](backend_network_utilityserverapi.md#submitwhitelistkey) -- [verifyTwitterHandle](backend_network_utilityserverapi.md#verifytwitterhandle) - -## Variables - -### WEBSERVER_URL - -• `Const` **WEBSERVER_URL**: _string_ - -## Functions - -### getAllTwitters - -▸ `Const` **getAllTwitters**(): _Promise_<[_AddressTwitterMap_](_types_darkforest_api_utilityserverapitypes.md#addresstwittermap)\> - -**Returns:** _Promise_<[_AddressTwitterMap_](_types_darkforest_api_utilityserverapitypes.md#addresstwittermap)\> - ---- - -### requestDevFaucet - -▸ `Const` **requestDevFaucet**(`address`: EthAddress): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `address` | EthAddress | - -**Returns:** _Promise_ - ---- - -### submitInterestedEmail - -▸ `Const` **submitInterestedEmail**(`email`: _string_): _Promise_<[_EmailResponse_](../enums/backend_network_utilityserverapi.emailresponse.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------- | -| `email` | _string_ | - -**Returns:** _Promise_<[_EmailResponse_](../enums/backend_network_utilityserverapi.emailresponse.md)\> - ---- - -### submitPlayerEmail - -▸ `Const` **submitPlayerEmail**(`email`: _string_, `ethAddress`: EthAddress): _Promise_<[_EmailResponse_](../enums/backend_network_utilityserverapi.emailresponse.md)\> - -#### Parameters - -| Name | Type | -| :----------- | :--------- | -| `email` | _string_ | -| `ethAddress` | EthAddress | - -**Returns:** _Promise_<[_EmailResponse_](../enums/backend_network_utilityserverapi.emailresponse.md)\> - ---- - -### submitUnsubscribeEmail - -▸ `Const` **submitUnsubscribeEmail**(`email`: _string_): _Promise_<[_EmailResponse_](../enums/backend_network_utilityserverapi.emailresponse.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------- | -| `email` | _string_ | - -**Returns:** _Promise_<[_EmailResponse_](../enums/backend_network_utilityserverapi.emailresponse.md)\> - ---- - -### submitWhitelistKey - -▸ `Const` **submitWhitelistKey**(`key`: _string_, `address`: EthAddress): _Promise_<`null` \| string\> - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `key` | _string_ | -| `address` | EthAddress | - -**Returns:** _Promise_<`null` \| string\> - ---- - -### verifyTwitterHandle - -▸ `Const` **verifyTwitterHandle**(`twitter`: _string_, `address`: EthAddress): _Promise_ - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `twitter` | _string_ | -| `address` | EthAddress | - -**Returns:** _Promise_ diff --git a/docs/modules/backend_plugins_embeddedpluginloader.md b/docs/modules/backend_plugins_embeddedpluginloader.md deleted file mode 100644 index 63de9ff9..00000000 --- a/docs/modules/backend_plugins_embeddedpluginloader.md +++ /dev/null @@ -1,19 +0,0 @@ -# Module: Backend/Plugins/EmbeddedPluginLoader - -## Table of contents - -### Interfaces - -- [EmbeddedPlugin](../interfaces/backend_plugins_embeddedpluginloader.embeddedplugin.md) - -### Functions - -- [getEmbeddedPlugins](backend_plugins_embeddedpluginloader.md#getembeddedplugins) - -## Functions - -### getEmbeddedPlugins - -▸ **getEmbeddedPlugins**(): { `code`: _string_ ; `id`: [_PluginId_](backend_plugins_serializedplugin.md#pluginid) ; `name`: _string_ }[] - -**Returns:** { `code`: _string_ ; `id`: [_PluginId_](backend_plugins_serializedplugin.md#pluginid) ; `name`: _string_ }[] diff --git a/docs/modules/backend_plugins_pluginprocess.md b/docs/modules/backend_plugins_pluginprocess.md deleted file mode 100644 index f38e9dab..00000000 --- a/docs/modules/backend_plugins_pluginprocess.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Plugins/PluginProcess - -## Table of contents - -### Interfaces - -- [PluginProcess](../interfaces/backend_plugins_pluginprocess.pluginprocess.md) diff --git a/docs/modules/backend_plugins_plugintemplate.md b/docs/modules/backend_plugins_plugintemplate.md deleted file mode 100644 index 175f126a..00000000 --- a/docs/modules/backend_plugins_plugintemplate.md +++ /dev/null @@ -1,13 +0,0 @@ -# Module: Backend/Plugins/PluginTemplate - -## Table of contents - -### Variables - -- [PLUGIN_TEMPLATE](backend_plugins_plugintemplate.md#plugin_template) - -## Variables - -### PLUGIN_TEMPLATE - -• `Const` **PLUGIN_TEMPLATE**: _string_ diff --git a/docs/modules/backend_plugins_serializedplugin.md b/docs/modules/backend_plugins_serializedplugin.md deleted file mode 100644 index 452fa5eb..00000000 --- a/docs/modules/backend_plugins_serializedplugin.md +++ /dev/null @@ -1,17 +0,0 @@ -# Module: Backend/Plugins/SerializedPlugin - -## Table of contents - -### Interfaces - -- [SerializedPlugin](../interfaces/backend_plugins_serializedplugin.serializedplugin.md) - -### Type aliases - -- [PluginId](backend_plugins_serializedplugin.md#pluginid) - -## Type aliases - -### PluginId - -Ƭ **PluginId**: _string_ & { `__nothing__`: _never_ } diff --git a/docs/modules/backend_procedural_artifactprocgen.md b/docs/modules/backend_procedural_artifactprocgen.md deleted file mode 100644 index c8c4ee51..00000000 --- a/docs/modules/backend_procedural_artifactprocgen.md +++ /dev/null @@ -1,116 +0,0 @@ -# Module: Backend/Procedural/ArtifactProcgen - -## Table of contents - -### Variables - -- [mockCommon](backend_procedural_artifactprocgen.md#mockcommon) -- [mockEpic](backend_procedural_artifactprocgen.md#mockepic) -- [mockLegendary](backend_procedural_artifactprocgen.md#mocklegendary) -- [mockRare](backend_procedural_artifactprocgen.md#mockrare) - -### Functions - -- [artifactBiomeAndName](backend_procedural_artifactprocgen.md#artifactbiomeandname) -- [artifactName](backend_procedural_artifactprocgen.md#artifactname) -- [dateMintedAt](backend_procedural_artifactprocgen.md#datemintedat) -- [mockArtifact](backend_procedural_artifactprocgen.md#mockartifact) -- [mockArtifactWithRarity](backend_procedural_artifactprocgen.md#mockartifactwithrarity) - -## Variables - -### mockCommon - -• `Const` **mockCommon**: Artifact - ---- - -### mockEpic - -• `Const` **mockEpic**: Artifact - ---- - -### mockLegendary - -• `Const` **mockLegendary**: Artifact - ---- - -### mockRare - -• `Const` **mockRare**: Artifact - -## Functions - -### artifactBiomeAndName - -▸ `Const` **artifactBiomeAndName**(`artifact`: _undefined_ \| Artifact): _string_ - -#### Parameters - -| Name | Type | -| :--------- | :---------------------- | -| `artifact` | _undefined_ \| Artifact | - -**Returns:** _string_ - ---- - -### artifactName - -▸ `Const` **artifactName**(`artifact`: _undefined_ \| Artifact): _string_ - -#### Parameters - -| Name | Type | -| :--------- | :---------------------- | -| `artifact` | _undefined_ \| Artifact | - -**Returns:** _string_ - ---- - -### dateMintedAt - -▸ `Const` **dateMintedAt**(`artifact`: _undefined_ \| Artifact): _string_ - -#### Parameters - -| Name | Type | -| :--------- | :---------------------- | -| `artifact` | _undefined_ \| Artifact | - -**Returns:** _string_ - ---- - -### mockArtifact - -▸ `Const` **mockArtifact**(`rarity`: ArtifactRarity, `artifactType?`: ArtifactType, `planetBiome?`: Biome): Artifact - -#### Parameters - -| Name | Type | -| :------------- | :------------- | -| `rarity` | ArtifactRarity | -| `artifactType` | ArtifactType | -| `planetBiome` | Biome | - -**Returns:** Artifact - ---- - -### mockArtifactWithRarity - -▸ `Const` **mockArtifactWithRarity**(`rarity`: ArtifactRarity, `artifactType?`: ArtifactType, `planetBiome?`: Biome): Artifact - -#### Parameters - -| Name | Type | -| :------------- | :------------- | -| `rarity` | ArtifactRarity | -| `artifactType` | ArtifactType | -| `planetBiome` | Biome | - -**Returns:** Artifact diff --git a/docs/modules/backend_procedural_noise.md b/docs/modules/backend_procedural_noise.md deleted file mode 100644 index e7cbb84d..00000000 --- a/docs/modules/backend_procedural_noise.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Procedural/Noise - -## Table of contents - -### Classes - -- [default](../classes/backend_procedural_noise.default.md) diff --git a/docs/modules/backend_procedural_procgenconsts.md b/docs/modules/backend_procedural_procgenconsts.md deleted file mode 100644 index 54f8d2c0..00000000 --- a/docs/modules/backend_procedural_procgenconsts.md +++ /dev/null @@ -1,99 +0,0 @@ -# Module: Backend/Procedural/ProcgenConsts - -## Table of contents - -### Variables - -- [blurb2grammar](backend_procedural_procgenconsts.md#blurb2grammar) -- [blurbGrammar](backend_procedural_procgenconsts.md#blurbgrammar) -- [planetNameWords](backend_procedural_procgenconsts.md#planetnamewords) -- [planetTagAdj](backend_procedural_procgenconsts.md#planettagadj) -- [planetTagNoun](backend_procedural_procgenconsts.md#planettagnoun) - -## Variables - -### blurb2grammar - -• `Const` **blurb2grammar**: _object_ - -#### Type declaration - -| Name | Type | -| :------------ | :--------- | -| `alongtheway` | _string_[] | -| `bads` | _string_[] | -| `box` | _string_[] | -| `chocolate` | _string_[] | -| `chocolates` | _string_[] | -| `flock` | _string_[] | -| `friend` | _string_[] | -| `friends` | _string_[] | -| `get` | _string_[] | -| `know` | _string_[] | -| `learned` | _string_[] | -| `lesson` | _string_[] | -| `life` | _string_[] | -| `live` | _string_[] | -| `made` | _string_[] | -| `removed` | _string_[] | -| `sends` | _string_[] | -| `sometimes` | _string_[] | -| `sun` | _string_[] | -| `theres` | _string_[] | -| `throwing` | _string_[] | -| `treasure` | _string_[] | -| `warbears` | _string_[] | -| `way` | _string_[] | -| `when` | _string_[] | -| `will` | _string_[] | -| `willway` | _string_[] | -| `years` | _string_[] | - ---- - -### blurbGrammar - -• `Const` **blurbGrammar**: _object_ - -#### Type declaration - -| Name | Type | -| :---------- | :--------- | -| `adj` | _string_[] | -| `air` | _string_[] | -| `bloom` | _string_[] | -| `colors` | _string_[] | -| `descair` | _any_[] | -| `eyecansee` | _any_[] | -| `flora` | _string_[] | -| `fruit` | _string_[] | -| `funfact` | _string_[] | -| `geography` | _any_[] | -| `gravity` | _string_[] | -| `habitat` | _string_[] | -| `landscape` | _string_[] | -| `many` | _string_[] | -| `noun` | _string_[] | -| `populate` | _string_[] | -| `populates` | _string_[] | -| `species` | _string_[] | -| `stretch` | _string_[] | -| `verb` | _string_[] | - ---- - -### planetNameWords - -• `Const` **planetNameWords**: _string_[] - ---- - -### planetTagAdj - -• `Const` **planetTagAdj**: _string_[] - ---- - -### planetTagNoun - -• `Const` **planetTagNoun**: _string_[] diff --git a/docs/modules/backend_procedural_procgenutils.md b/docs/modules/backend_procedural_procgenutils.md deleted file mode 100644 index 0727d04d..00000000 --- a/docs/modules/backend_procedural_procgenutils.md +++ /dev/null @@ -1,38 +0,0 @@ -# Module: Backend/Procedural/ProcgenUtils - -## Table of contents - -### Classes - -- [ProcgenUtils](../classes/backend_procedural_procgenutils.procgenutils.md) - -### Type aliases - -- [PixelCoords](backend_procedural_procgenutils.md#pixelcoords) -- [QuoteData](backend_procedural_procgenutils.md#quotedata) - -## Type aliases - -### PixelCoords - -Ƭ **PixelCoords**: _object_ - -#### Type declaration - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | - ---- - -### QuoteData - -Ƭ **QuoteData**: _object_ - -#### Type declaration - -| Name | Type | -| :------- | :------- | -| `author` | _string_ | -| `quote` | _string_ | diff --git a/docs/modules/backend_procedural_tracery.md b/docs/modules/backend_procedural_tracery.md deleted file mode 100644 index 68b8a6c8..00000000 --- a/docs/modules/backend_procedural_tracery.md +++ /dev/null @@ -1,13 +0,0 @@ -# Module: Backend/Procedural/tracery - -## Table of contents - -### Variables - -- [export=](backend_procedural_tracery.md#export=) - -## Variables - -### export= - -• **export=**: _any_ diff --git a/docs/modules/backend_procedural_tracery_modifiers.md b/docs/modules/backend_procedural_tracery_modifiers.md deleted file mode 100644 index ce51825e..00000000 --- a/docs/modules/backend_procedural_tracery_modifiers.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Backend/Procedural/tracery-modifiers - -## Table of contents - -### Variables - -- [baseEngModifiers](backend_procedural_tracery_modifiers.md#baseengmodifiers) - -## Variables - -### baseEngModifiers - -• **baseEngModifiers**: _object_ - -#### Type declaration - -| Name | Type | -| :-------------- | :------------------------------------- | -| `a` | (`s`: _any_) => _string_ | -| `capitalize` | (`s`: _any_) => _any_ | -| `capitalizeAll` | (`s`: _any_) => _string_ | -| `ed` | (`s`: _any_) => _string_ | -| `firstS` | (`s`: _any_) => _string_ | -| `replace` | (`s`: _any_, `params`: _any_) => _any_ | -| `s` | (`s`: _any_) => _string_ | diff --git a/docs/modules/backend_storage_persistentchunkstore.md b/docs/modules/backend_storage_persistentchunkstore.md deleted file mode 100644 index 2b6a6f3a..00000000 --- a/docs/modules/backend_storage_persistentchunkstore.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Storage/PersistentChunkStore - -## Table of contents - -### Classes - -- [default](../classes/backend_storage_persistentchunkstore.default.md) diff --git a/docs/modules/backend_storage_readerdatastore.md b/docs/modules/backend_storage_readerdatastore.md deleted file mode 100644 index 8dc90bb4..00000000 --- a/docs/modules/backend_storage_readerdatastore.md +++ /dev/null @@ -1,11 +0,0 @@ -# Module: Backend/Storage/ReaderDataStore - -## Table of contents - -### Enumerations - -- [SinglePlanetDataStoreEvent](../enums/backend_storage_readerdatastore.singleplanetdatastoreevent.md) - -### Classes - -- [default](../classes/backend_storage_readerdatastore.default.md) diff --git a/docs/modules/backend_utils_animation.md b/docs/modules/backend_utils_animation.md deleted file mode 100644 index 283c07f3..00000000 --- a/docs/modules/backend_utils_animation.md +++ /dev/null @@ -1,83 +0,0 @@ -# Module: Backend/Utils/Animation - -## Table of contents - -### Functions - -- [constantAnimation](backend_utils_animation.md#constantanimation) -- [easeInAnimation](backend_utils_animation.md#easeinanimation) -- [emojiEaseOutAnimation](backend_utils_animation.md#emojieaseoutanimation) -- [planetLevelToAnimationSpeed](backend_utils_animation.md#planetleveltoanimationspeed) -- [sinusoidalAnimation](backend_utils_animation.md#sinusoidalanimation) - -## Functions - -### constantAnimation - -▸ **constantAnimation**(`constant`: _number_): DFAnimation - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `constant` | _number_ | - -**Returns:** DFAnimation - ---- - -### easeInAnimation - -▸ **easeInAnimation**(`durationMs`: _number_, `delayMs?`: _number_): DFAnimation - -#### Parameters - -| Name | Type | -| :----------- | :------- | -| `durationMs` | _number_ | -| `delayMs?` | _number_ | - -**Returns:** DFAnimation - ---- - -### emojiEaseOutAnimation - -▸ **emojiEaseOutAnimation**(`durationMs`: _number_, `emoji`: _string_): _DFStatefulAnimation_ - -#### Parameters - -| Name | Type | -| :----------- | :------- | -| `durationMs` | _number_ | -| `emoji` | _string_ | - -**Returns:** _DFStatefulAnimation_ - ---- - -### planetLevelToAnimationSpeed - -▸ **planetLevelToAnimationSpeed**(`level`: PlanetLevel): _number_ - -#### Parameters - -| Name | Type | -| :------ | :---------- | -| `level` | PlanetLevel | - -**Returns:** _number_ - ---- - -### sinusoidalAnimation - -▸ **sinusoidalAnimation**(`rps`: _number_): DFAnimation - -#### Parameters - -| Name | Type | -| :---- | :------- | -| `rps` | _number_ | - -**Returns:** DFAnimation diff --git a/docs/modules/backend_utils_blockwaiter.md b/docs/modules/backend_utils_blockwaiter.md deleted file mode 100644 index cffd6294..00000000 --- a/docs/modules/backend_utils_blockwaiter.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Utils/BlockWaiter - -## Table of contents - -### Classes - -- [BlockWaiter](../classes/backend_utils_blockwaiter.blockwaiter.md) diff --git a/docs/modules/backend_utils_coordinates.md b/docs/modules/backend_utils_coordinates.md deleted file mode 100644 index c4c8af48..00000000 --- a/docs/modules/backend_utils_coordinates.md +++ /dev/null @@ -1,93 +0,0 @@ -# Module: Backend/Utils/Coordinates - -## Table of contents - -### Interfaces - -- [CanvasCoords](../interfaces/backend_utils_coordinates.canvascoords.md) - -### Functions - -- [coordsEqual](backend_utils_coordinates.md#coordsequal) -- [distL2](backend_utils_coordinates.md#distl2) -- [normalizeVector](backend_utils_coordinates.md#normalizevector) -- [scaleVector](backend_utils_coordinates.md#scalevector) -- [vectorLength](backend_utils_coordinates.md#vectorlength) - -## Functions - -### coordsEqual - -▸ `Const` **coordsEqual**(`a`: WorldCoords, `b`: WorldCoords): _boolean_ - -#### Parameters - -| Name | Type | -| :--- | :---------- | -| `a` | WorldCoords | -| `b` | WorldCoords | - -**Returns:** _boolean_ - ---- - -### distL2 - -▸ `Const` **distL2**(`a`: WorldCoords \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md), `b`: WorldCoords \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md)): _number_ - -#### Parameters - -| Name | Type | -| :--- | :--------------------------------------------------------------------------------------- | -| `a` | WorldCoords \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | -| `b` | WorldCoords \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - -**Returns:** _number_ - ---- - -### normalizeVector - -▸ `Const` **normalizeVector**(`a`: WorldCoords): WorldCoords - -#### Parameters - -| Name | Type | -| :--- | :---------- | -| `a` | WorldCoords | - -**Returns:** WorldCoords - ---- - -### scaleVector - -▸ `Const` **scaleVector**(`a`: WorldCoords, `k`: _number_): _object_ - -#### Parameters - -| Name | Type | -| :--- | :---------- | -| `a` | WorldCoords | -| `k` | _number_ | - -**Returns:** _object_ - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | - ---- - -### vectorLength - -▸ `Const` **vectorLength**(`a`: WorldCoords \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md)): _number_ - -#### Parameters - -| Name | Type | -| :--- | :--------------------------------------------------------------------------------------- | -| `a` | WorldCoords \| [_CanvasCoords_](../interfaces/backend_utils_coordinates.canvascoords.md) | - -**Returns:** _number_ diff --git a/docs/modules/backend_utils_snarkargshelper.md b/docs/modules/backend_utils_snarkargshelper.md deleted file mode 100644 index d1332d9d..00000000 --- a/docs/modules/backend_utils_snarkargshelper.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Utils/SnarkArgsHelper - -## Table of contents - -### Classes - -- [default](../classes/backend_utils_snarkargshelper.default.md) diff --git a/docs/modules/backend_utils_typeassertions.md b/docs/modules/backend_utils_typeassertions.md deleted file mode 100644 index dd6d2aa0..00000000 --- a/docs/modules/backend_utils_typeassertions.md +++ /dev/null @@ -1,216 +0,0 @@ -# Module: Backend/Utils/TypeAssertions - -## Table of contents - -### Functions - -- [isUnconfirmedActivateArtifact](backend_utils_typeassertions.md#isunconfirmedactivateartifact) -- [isUnconfirmedBuyGPTCredits](backend_utils_typeassertions.md#isunconfirmedbuygptcredits) -- [isUnconfirmedBuyHat](backend_utils_typeassertions.md#isunconfirmedbuyhat) -- [isUnconfirmedDeactivateArtifact](backend_utils_typeassertions.md#isunconfirmeddeactivateartifact) -- [isUnconfirmedDepositArtifact](backend_utils_typeassertions.md#isunconfirmeddepositartifact) -- [isUnconfirmedFindArtifact](backend_utils_typeassertions.md#isunconfirmedfindartifact) -- [isUnconfirmedInit](backend_utils_typeassertions.md#isunconfirmedinit) -- [isUnconfirmedMove](backend_utils_typeassertions.md#isunconfirmedmove) -- [isUnconfirmedProspectPlanet](backend_utils_typeassertions.md#isunconfirmedprospectplanet) -- [isUnconfirmedReveal](backend_utils_typeassertions.md#isunconfirmedreveal) -- [isUnconfirmedTransfer](backend_utils_typeassertions.md#isunconfirmedtransfer) -- [isUnconfirmedUpgrade](backend_utils_typeassertions.md#isunconfirmedupgrade) -- [isUnconfirmedWithdrawArtifact](backend_utils_typeassertions.md#isunconfirmedwithdrawartifact) -- [isUnconfirmedWithdrawSilver](backend_utils_typeassertions.md#isunconfirmedwithdrawsilver) - -## Functions - -### isUnconfirmedActivateArtifact - -▸ **isUnconfirmedActivateArtifact**(`txIntent`: TxIntent): txIntent is UnconfirmedActivateArtifact - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedActivateArtifact - ---- - -### isUnconfirmedBuyGPTCredits - -▸ **isUnconfirmedBuyGPTCredits**(`txIntent`: TxIntent): txIntent is UnconfirmedBuyGPTCredits - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedBuyGPTCredits - ---- - -### isUnconfirmedBuyHat - -▸ **isUnconfirmedBuyHat**(`txIntent`: TxIntent): txIntent is UnconfirmedBuyHat - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedBuyHat - ---- - -### isUnconfirmedDeactivateArtifact - -▸ **isUnconfirmedDeactivateArtifact**(`txIntent`: TxIntent): txIntent is UnconfirmedDeactivateArtifact - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedDeactivateArtifact - ---- - -### isUnconfirmedDepositArtifact - -▸ **isUnconfirmedDepositArtifact**(`txIntent`: TxIntent): txIntent is UnconfirmedDepositArtifact - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedDepositArtifact - ---- - -### isUnconfirmedFindArtifact - -▸ **isUnconfirmedFindArtifact**(`txIntent`: TxIntent): txIntent is UnconfirmedFindArtifact - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedFindArtifact - ---- - -### isUnconfirmedInit - -▸ **isUnconfirmedInit**(`txIntent`: TxIntent): txIntent is UnconfirmedInit - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedInit - ---- - -### isUnconfirmedMove - -▸ **isUnconfirmedMove**(`txIntent`: TxIntent): txIntent is UnconfirmedMove - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedMove - ---- - -### isUnconfirmedProspectPlanet - -▸ **isUnconfirmedProspectPlanet**(`txIntent`: TxIntent): txIntent is UnconfirmedProspectPlanet - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedProspectPlanet - ---- - -### isUnconfirmedReveal - -▸ **isUnconfirmedReveal**(`txIntent`: TxIntent): txIntent is UnconfirmedReveal - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedReveal - ---- - -### isUnconfirmedTransfer - -▸ **isUnconfirmedTransfer**(`txIntent`: TxIntent): txIntent is UnconfirmedPlanetTransfer - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedPlanetTransfer - ---- - -### isUnconfirmedUpgrade - -▸ **isUnconfirmedUpgrade**(`txIntent`: TxIntent): txIntent is UnconfirmedUpgrade - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedUpgrade - ---- - -### isUnconfirmedWithdrawArtifact - -▸ **isUnconfirmedWithdrawArtifact**(`txIntent`: TxIntent): txIntent is UnconfirmedWithdrawArtifact - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedWithdrawArtifact - ---- - -### isUnconfirmedWithdrawSilver - -▸ **isUnconfirmedWithdrawSilver**(`txIntent`: TxIntent): txIntent is UnconfirmedWithdrawSilver - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `txIntent` | TxIntent | - -**Returns:** txIntent is UnconfirmedWithdrawSilver diff --git a/docs/modules/backend_utils_utils.md b/docs/modules/backend_utils_utils.md deleted file mode 100644 index b51f40c7..00000000 --- a/docs/modules/backend_utils_utils.md +++ /dev/null @@ -1,419 +0,0 @@ -# Module: Backend/Utils/Utils - -## Table of contents - -### Type aliases - -- [RetryErrorHandler](backend_utils_utils.md#retryerrorhandler) - -### Variables - -- [ONE_DAY](backend_utils_utils.md#one_day) - -### Functions - -- [aggregateBulkGetter](backend_utils_utils.md#aggregatebulkgetter) -- [callWithRetry](backend_utils_utils.md#callwithretry) -- [deferred](backend_utils_utils.md#deferred) -- [formatNumber](backend_utils_utils.md#formatnumber) -- [getFormatProp](backend_utils_utils.md#getformatprop) -- [getOwnerColor](backend_utils_utils.md#getownercolor) -- [getPlanetMaxRank](backend_utils_utils.md#getplanetmaxrank) -- [getPlanetRank](backend_utils_utils.md#getplanetrank) -- [getPlanetShortHash](backend_utils_utils.md#getplanetshorthash) -- [getPlayerColor](backend_utils_utils.md#getplayercolor) -- [getPlayerShortHash](backend_utils_utils.md#getplayershorthash) -- [getRandomActionId](backend_utils_utils.md#getrandomactionid) -- [getUpgradeStat](backend_utils_utils.md#getupgradestat) -- [hasOwner](backend_utils_utils.md#hasowner) -- [hexifyBigIntNestedArray](backend_utils_utils.md#hexifybigintnestedarray) -- [hslStr](backend_utils_utils.md#hslstr) -- [isFullRank](backend_utils_utils.md#isfullrank) -- [neverResolves](backend_utils_utils.md#neverresolves) -- [rejectAfter](backend_utils_utils.md#rejectafter) -- [sleep](backend_utils_utils.md#sleep) -- [timeoutAfter](backend_utils_utils.md#timeoutafter) -- [titleCase](backend_utils_utils.md#titlecase) -- [upgradeName](backend_utils_utils.md#upgradename) - -## Type aliases - -### RetryErrorHandler - -Ƭ **RetryErrorHandler**: (`i`: _number_, `e`: Error) => _void_ - -#### Type declaration - -▸ (`i`: _number_, `e`: Error): _void_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `i` | _number_ | -| `e` | Error | - -**Returns:** _void_ - -## Variables - -### ONE_DAY - -• `Const` **ONE_DAY**: _number_ - -## Functions - -### aggregateBulkGetter - -▸ `Const` **aggregateBulkGetter**(`logTag`: _string_, `total`: _number_, `querySize`: _number_, `getterFn`: (`startIdx`: _number_, `endIdx`: _number_) => _Promise_, `onProgress?`: (`fractionCompleted`: _number_) => _void_): _Promise_ - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | -| :------------ | :------------------------------------------------------------ | -| `logTag` | _string_ | -| `total` | _number_ | -| `querySize` | _number_ | -| `getterFn` | (`startIdx`: _number_, `endIdx`: _number_) => _Promise_ | -| `onProgress?` | (`fractionCompleted`: _number_) => _void_ | - -**Returns:** _Promise_ - ---- - -### callWithRetry - -▸ `Const` **callWithRetry**(`fn`: (...`args`: _unknown_[]) => _Promise_, `args?`: _unknown_[], `onError?`: [_RetryErrorHandler_](backend_utils_utils.md#retryerrorhandler), `maxRetries?`: _number_, `retryInterval?`: _number_): _Promise_ - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | Default value | -| :-------------- | :-------------------------------------------------------------- | :------------ | -| `fn` | (...`args`: _unknown_[]) => _Promise_ | - | -| `args` | _unknown_[] | [] | -| `onError?` | [_RetryErrorHandler_](backend_utils_utils.md#retryerrorhandler) | - | -| `maxRetries` | _number_ | 10 | -| `retryInterval` | _number_ | 1000 | - -**Returns:** _Promise_ - ---- - -### deferred - -▸ **deferred**(): [(`t`: T) => *void*, (`t`: Error) => *void*, *Promise*] - -#### Type parameters - -| Name | -| :--- | -| `T` | - -**Returns:** [(`t`: T) => *void*, (`t`: Error) => *void*, *Promise*] - ---- - -### formatNumber - -▸ `Const` **formatNumber**(`num`: _number_, `smallDec?`: _number_): _string_ - -#### Parameters - -| Name | Type | Default value | -| :--------- | :------- | :------------ | -| `num` | _number_ | - | -| `smallDec` | _number_ | 0 | - -**Returns:** _string_ - ---- - -### getFormatProp - -▸ `Const` **getFormatProp**(`planet`: _undefined_ \| Planet, `prop`: _string_): _string_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | -| `prop` | _string_ | - -**Returns:** _string_ - ---- - -### getOwnerColor - -▸ `Const` **getOwnerColor**(`planet`: Planet): _string_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _string_ - ---- - -### getPlanetMaxRank - -▸ `Const` **getPlanetMaxRank**(`planet`: _undefined_ \| Planet): _number_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _number_ - ---- - -### getPlanetRank - -▸ `Const` **getPlanetRank**(`planet`: _undefined_ \| Planet): _number_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _number_ - ---- - -### getPlanetShortHash - -▸ `Const` **getPlanetShortHash**(`planet`: _undefined_ \| Planet): _string_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _string_ - ---- - -### getPlayerColor - -▸ `Const` **getPlayerColor**(`player`: EthAddress): _string_ - -#### Parameters - -| Name | Type | -| :------- | :--------- | -| `player` | EthAddress | - -**Returns:** _string_ - ---- - -### getPlayerShortHash - -▸ `Const` **getPlayerShortHash**(`address`: EthAddress): _string_ - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `address` | EthAddress | - -**Returns:** _string_ - ---- - -### getRandomActionId - -▸ `Const` **getRandomActionId**(): _string_ - -**Returns:** _string_ - ---- - -### getUpgradeStat - -▸ `Const` **getUpgradeStat**(`upgrade`: Upgrade, `stat`: [_StatIdx_](../enums/_types_global_globaltypes.statidx.md)): _number_ - -#### Parameters - -| Name | Type | -| :-------- | :--------------------------------------------------------- | -| `upgrade` | Upgrade | -| `stat` | [_StatIdx_](../enums/_types_global_globaltypes.statidx.md) | - -**Returns:** _number_ - ---- - -### hasOwner - -▸ `Const` **hasOwner**(`planet`: Planet): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :----- | -| `planet` | Planet | - -**Returns:** _boolean_ - ---- - -### hexifyBigIntNestedArray - -▸ `Const` **hexifyBigIntNestedArray**(`arr`: NestedBigIntArray): NestedStringArray - -#### Parameters - -| Name | Type | -| :---- | :---------------- | -| `arr` | NestedBigIntArray | - -**Returns:** NestedStringArray - ---- - -### hslStr - -▸ `Const` **hslStr**(`h`: _number_, `s`: _number_, `l`: _number_): _string_ - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `h` | _number_ | -| `s` | _number_ | -| `l` | _number_ | - -**Returns:** _string_ - ---- - -### isFullRank - -▸ `Const` **isFullRank**(`planet`: _undefined_ \| Planet): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :-------------------- | -| `planet` | _undefined_ \| Planet | - -**Returns:** _boolean_ - ---- - -### neverResolves - -▸ **neverResolves**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### rejectAfter - -▸ **rejectAfter**(`ms`: _number_, `msg`: _string_): _Promise_ - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | -| :---- | :------- | -| `ms` | _number_ | -| `msg` | _string_ | - -**Returns:** _Promise_ - ---- - -### sleep - -▸ **sleep**(`timeout`: _number_, `returns?`: T): _Promise_ - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `timeout` | _number_ | -| `returns?` | T | - -**Returns:** _Promise_ - ---- - -### timeoutAfter - -▸ `Const` **timeoutAfter**(`promise`: _Promise_, `ms`: _number_, `timeoutMsg`: _string_): _Promise_ - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | -| :----------- | :------------ | -| `promise` | _Promise_ | -| `ms` | _number_ | -| `timeoutMsg` | _string_ | - -**Returns:** _Promise_ - ---- - -### titleCase - -▸ `Const` **titleCase**(`title`: _string_): _string_ - -#### Parameters - -| Name | Type | -| :------ | :------- | -| `title` | _string_ | - -**Returns:** _string_ - ---- - -### upgradeName - -▸ `Const` **upgradeName**(`branchName`: UpgradeBranchName): _string_ - -#### Parameters - -| Name | Type | -| :----------- | :---------------- | -| `branchName` | UpgradeBranchName | - -**Returns:** _string_ diff --git a/docs/modules/backend_utils_utilstypes.md b/docs/modules/backend_utils_utilstypes.md deleted file mode 100644 index e509704e..00000000 --- a/docs/modules/backend_utils_utilstypes.md +++ /dev/null @@ -1,17 +0,0 @@ -# Module: Backend/Utils/UtilsTypes - -## Table of contents - -### Interfaces - -- [PlanetCosmeticInfo](../interfaces/backend_utils_utilstypes.planetcosmeticinfo.md) - -### Type aliases - -- [RuinsInfo](backend_utils_utilstypes.md#ruinsinfo) - -## Type aliases - -### RuinsInfo - -Ƭ **RuinsInfo**: _Record_ diff --git a/docs/modules/backend_utils_wrapper.md b/docs/modules/backend_utils_wrapper.md deleted file mode 100644 index 38cc67d6..00000000 --- a/docs/modules/backend_utils_wrapper.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Backend/Utils/Wrapper - -## Table of contents - -### Classes - -- [Wrapper](../classes/backend_utils_wrapper.wrapper.md) diff --git a/docs/modules/frontend_components_ancientlabel.md b/docs/modules/frontend_components_ancientlabel.md deleted file mode 100644 index d242a10a..00000000 --- a/docs/modules/frontend_components_ancientlabel.md +++ /dev/null @@ -1,34 +0,0 @@ -# Module: Frontend/Components/AncientLabel - -## Table of contents - -### Variables - -- [ancientAnim](frontend_components_ancientlabel.md#ancientanim) - -### Functions - -- [AncientLabel](frontend_components_ancientlabel.md#ancientlabel) -- [AncientLabelAnim](frontend_components_ancientlabel.md#ancientlabelanim) - -## Variables - -### ancientAnim - -• `Const` **ancientAnim**: FlattenSimpleInterpolation - -## Functions - -### AncientLabel - -▸ `Const` **AncientLabel**(): _Element_ - -**Returns:** _Element_ - ---- - -### AncientLabelAnim - -▸ `Const` **AncientLabelAnim**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_artifactimage.md b/docs/modules/frontend_components_artifactimage.md deleted file mode 100644 index 5988ba2d..00000000 --- a/docs/modules/frontend_components_artifactimage.md +++ /dev/null @@ -1,35 +0,0 @@ -# Module: Frontend/Components/ArtifactImage - -## Table of contents - -### Variables - -- [ARTIFACT_URL](frontend_components_artifactimage.md#artifact_url) - -### Functions - -- [ArtifactImage](frontend_components_artifactimage.md#artifactimage) - -## Variables - -### ARTIFACT_URL - -• `Const` **ARTIFACT_URL**: `"https://d2wspbczt15cqu.cloudfront.net/v0.6.0-artifacts/"`= 'https://d2wspbczt15cqu.cloudfront.net/v0.6.0-artifacts/' - -## Functions - -### ArtifactImage - -▸ **ArtifactImage**(`__namedParameters`: { `artifact`: Artifact ; `bgColor?`: [_ArtifactFileColor_](../enums/backend_gamelogic_artifactutils.artifactfilecolor.md) ; `size`: _number_ ; `thumb?`: _boolean_ }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | -| `__namedParameters.bgColor?` | [_ArtifactFileColor_](../enums/backend_gamelogic_artifactutils.artifactfilecolor.md) | -| `__namedParameters.size` | _number_ | -| `__namedParameters.thumb?` | _boolean_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_biomeanims.md b/docs/modules/frontend_components_biomeanims.md deleted file mode 100644 index 4c7a0c30..00000000 --- a/docs/modules/frontend_components_biomeanims.md +++ /dev/null @@ -1,34 +0,0 @@ -# Module: Frontend/Components/BiomeAnims - -## Table of contents - -### Variables - -- [burnAnim](frontend_components_biomeanims.md#burnanim) -- [icyAnim](frontend_components_biomeanims.md#icyanim) -- [shakeAnim](frontend_components_biomeanims.md#shakeanim) -- [wiggle](frontend_components_biomeanims.md#wiggle) - -## Variables - -### burnAnim - -• `Const` **burnAnim**: FlattenSimpleInterpolation - ---- - -### icyAnim - -• `Const` **icyAnim**: FlattenSimpleInterpolation - ---- - -### shakeAnim - -• `Const` **shakeAnim**: FlattenSimpleInterpolation - ---- - -### wiggle - -• `Const` **wiggle**: Keyframes diff --git a/docs/modules/frontend_components_btn.md b/docs/modules/frontend_components_btn.md deleted file mode 100644 index dca8081a..00000000 --- a/docs/modules/frontend_components_btn.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Components/Btn - -## Table of contents - -### Interfaces - -- [BtnProps](../interfaces/frontend_components_btn.btnprops.md) - -### Functions - -- [Btn](frontend_components_btn.md#btn) - -## Functions - -### Btn - -▸ **Btn**(`props`: [_BtnProps_](../interfaces/frontend_components_btn.btnprops.md) & _React.HTMLAttributes_): _Element_ - -#### Parameters - -| Name | Type | -| :------ | :--------------------------------------------------------------------------------------------------------- | -| `props` | [_BtnProps_](../interfaces/frontend_components_btn.btnprops.md) & _React.HTMLAttributes_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_button.md b/docs/modules/frontend_components_button.md deleted file mode 100644 index 1c830fa7..00000000 --- a/docs/modules/frontend_components_button.md +++ /dev/null @@ -1,21 +0,0 @@ -# Module: Frontend/Components/Button - -## Table of contents - -### Functions - -- [default](frontend_components_button.md#default) - -## Functions - -### default - -▸ **default**(`__namedParameters`: ButtonProps): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :---------- | -| `__namedParameters` | ButtonProps | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_coreui.md b/docs/modules/frontend_components_coreui.md deleted file mode 100644 index a95b07bc..00000000 --- a/docs/modules/frontend_components_coreui.md +++ /dev/null @@ -1,112 +0,0 @@ -# Module: Frontend/Components/CoreUI - -## Table of contents - -### Variables - -- [CenterBackgroundSubtext](frontend_components_coreui.md#centerbackgroundsubtext) -- [CenterRow](frontend_components_coreui.md#centerrow) -- [Hidden](frontend_components_coreui.md#hidden) -- [HoverableTooltip](frontend_components_coreui.md#hoverabletooltip) -- [MaxWidth](frontend_components_coreui.md#maxwidth) -- [PluginElements](frontend_components_coreui.md#pluginelements) -- [Select](frontend_components_coreui.md#select) -- [Spacer](frontend_components_coreui.md#spacer) -- [Truncate](frontend_components_coreui.md#truncate) -- [Underline](frontend_components_coreui.md#underline) - -### Functions - -- [SelectFrom](frontend_components_coreui.md#selectfrom) - -## Variables - -### CenterBackgroundSubtext - -• `Const` **CenterBackgroundSubtext**: _StyledComponent_<`"div"`, any, { `height`: _string_ ; `width`: _string_ }, never\> - -A box which centers some darkened text. Useful for displaying -_somthing_ instead of empty space, if there isn't something to -be displayed. Think of it as a placeholder. - ---- - -### CenterRow - -• `Const` **CenterRow**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### Hidden - -• `Const` **Hidden**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### HoverableTooltip - -• `Const` **HoverableTooltip**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### MaxWidth - -• `Const` **MaxWidth**: _StyledComponent_<`"div"`, any, { `width`: _string_ }, never\> - ---- - -### PluginElements - -• `Const` **PluginElements**: _StyledComponent_<`"div"`, any, {}, never\> - -The container element into which a plugin renders its html elements. -Contains styles for child elements so that plugins can use UI -that is consistent with the rest of Dark Forest's UI. Keeping this up -to date will be an ongoing challange, but there's probably some better -way to do this. - ---- - -### Select - -• `Const` **Select**: _StyledComponent_<`"select"`, any, {}, never\> - ---- - -### Spacer - -• `Const` **Spacer**: _StyledComponent_<`"div"`, any, { `height?`: _number_ ; `width?`: _number_ }, never\> - ---- - -### Truncate - -• `Const` **Truncate**: _StyledComponent_<`"div"`, any, { `maxWidth?`: _string_ }, never\> - ---- - -### Underline - -• `Const` **Underline**: _StyledComponent_<`"span"`, any, {}, never\> - -## Functions - -### SelectFrom - -▸ **SelectFrom**(`__namedParameters`: { `labels`: _string_[] ; `setValue`: (`value`: _string_) => _void_ ; `style?`: React.CSSProperties ; `value`: _string_ ; `values`: _string_[] }): _Element_ - -Controllable input that allows the user to select from one of the -given string values. - -#### Parameters - -| Name | Type | -| :--------------------------- | :---------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.labels` | _string_[] | -| `__namedParameters.setValue` | (`value`: _string_) => _void_ | -| `__namedParameters.style?` | React.CSSProperties | -| `__namedParameters.value` | _string_ | -| `__namedParameters.values` | _string_[] | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_corner.md b/docs/modules/frontend_components_corner.md deleted file mode 100644 index 08dd1ddb..00000000 --- a/docs/modules/frontend_components_corner.md +++ /dev/null @@ -1,21 +0,0 @@ -# Module: Frontend/Components/Corner - -## Table of contents - -### Functions - -- [Corner](frontend_components_corner.md#corner) - -## Functions - -### Corner - -▸ **Corner**(`__namedParameters`: CornerProps): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :---------- | -| `__namedParameters` | CornerProps | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_email.md b/docs/modules/frontend_components_email.md deleted file mode 100644 index 27a17056..00000000 --- a/docs/modules/frontend_components_email.md +++ /dev/null @@ -1,26 +0,0 @@ -# Module: Frontend/Components/Email - -## Table of contents - -### Enumerations - -- [EmailCTAMode](../enums/frontend_components_email.emailctamode.md) - -### Functions - -- [EmailCTA](frontend_components_email.md#emailcta) - -## Functions - -### EmailCTA - -▸ `Const` **EmailCTA**(`__namedParameters`: { `mode`: [_EmailCTAMode_](../enums/frontend_components_email.emailctamode.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.mode` | [_EmailCTAMode_](../enums/frontend_components_email.emailctamode.md) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_flexrows.md b/docs/modules/frontend_components_flexrows.md deleted file mode 100644 index bd5ddf35..00000000 --- a/docs/modules/frontend_components_flexrows.md +++ /dev/null @@ -1,13 +0,0 @@ -# Module: Frontend/Components/FlexRows - -## Table of contents - -### Variables - -- [SpacedFlexRow](frontend_components_flexrows.md#spacedflexrow) - -## Variables - -### SpacedFlexRow - -• `Const` **SpacedFlexRow**: _StyledComponent_<`"div"`, any, {}, never\> diff --git a/docs/modules/frontend_components_gamelandingpagecomponents.md b/docs/modules/frontend_components_gamelandingpagecomponents.md deleted file mode 100644 index 37325ed2..00000000 --- a/docs/modules/frontend_components_gamelandingpagecomponents.md +++ /dev/null @@ -1,78 +0,0 @@ -# Module: Frontend/Components/GameLandingPageComponents - -## Table of contents - -### Variables - -- [Hidden](frontend_components_gamelandingpagecomponents.md#hidden) - -### Functions - -- [GameWindowWrapper](frontend_components_gamelandingpagecomponents.md#gamewindowwrapper) -- [TerminalToggler](frontend_components_gamelandingpagecomponents.md#terminaltoggler) -- [TerminalWrapper](frontend_components_gamelandingpagecomponents.md#terminalwrapper) -- [Wrapper](frontend_components_gamelandingpagecomponents.md#wrapper) - -## Variables - -### Hidden - -• `Const` **Hidden**: _StyledComponent_<`"div"`, any, {}, never\> - -## Functions - -### GameWindowWrapper - -▸ **GameWindowWrapper**(`__namedParameters`: LandingWrapperProps): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :------------------ | -| `__namedParameters` | LandingWrapperProps | - -**Returns:** _Element_ - ---- - -### TerminalToggler - -▸ **TerminalToggler**(`__namedParameters`: { `setTerminalEnabled`: _Dispatch_\> ; `terminalEnabled`: _boolean_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------------------- | :------------------------------------ | -| `__namedParameters` | _object_ | -| `__namedParameters.setTerminalEnabled` | _Dispatch_\> | -| `__namedParameters.terminalEnabled` | _boolean_ | - -**Returns:** _Element_ - ---- - -### TerminalWrapper - -▸ **TerminalWrapper**(`__namedParameters`: LandingWrapperProps): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :------------------ | -| `__namedParameters` | LandingWrapperProps | - -**Returns:** _Element_ - ---- - -### Wrapper - -▸ **Wrapper**(`__namedParameters`: LandingWrapperProps): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :------------------ | -| `__namedParameters` | LandingWrapperProps | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_gamewindowcomponents.md b/docs/modules/frontend_components_gamewindowcomponents.md deleted file mode 100644 index fddc0f8c..00000000 --- a/docs/modules/frontend_components_gamewindowcomponents.md +++ /dev/null @@ -1,66 +0,0 @@ -# Module: Frontend/Components/GameWindowComponents - -## Table of contents - -### Type aliases - -- [PaneProps](frontend_components_gamewindowcomponents.md#paneprops) - -### Variables - -- [CanvasContainer](frontend_components_gamewindowcomponents.md#canvascontainer) -- [CanvasWrapper](frontend_components_gamewindowcomponents.md#canvaswrapper) -- [MainWindow](frontend_components_gamewindowcomponents.md#mainwindow) -- [StyledPane](frontend_components_gamewindowcomponents.md#styledpane) -- [UpperLeft](frontend_components_gamewindowcomponents.md#upperleft) -- [WindowWrapper](frontend_components_gamewindowcomponents.md#windowwrapper) - -## Type aliases - -### PaneProps - -Ƭ **PaneProps**: _object_ - -#### Type declaration - -| Name | Type | -| :------------- | :-------------- | -| `children` | React.ReactNode | -| `headerItems?` | React.ReactNode | -| `title` | _string_ | - -## Variables - -### CanvasContainer - -• `Const` **CanvasContainer**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### CanvasWrapper - -• `Const` **CanvasWrapper**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### MainWindow - -• `Const` **MainWindow**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### StyledPane - -• `Const` **StyledPane**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### UpperLeft - -• `Const` **UpperLeft**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### WindowWrapper - -• `Const` **WindowWrapper**: _StyledComponent_<`"div"`, any, {}, never\> diff --git a/docs/modules/frontend_components_hoverable.md b/docs/modules/frontend_components_hoverable.md deleted file mode 100644 index d2836b9f..00000000 --- a/docs/modules/frontend_components_hoverable.md +++ /dev/null @@ -1,35 +0,0 @@ -# Module: Frontend/Components/Hoverable - -## Table of contents - -### Variables - -- [TOOLTIP_SLOW](frontend_components_hoverable.md#tooltip_slow) - -### Functions - -- [Hoverable](frontend_components_hoverable.md#hoverable) - -## Variables - -### TOOLTIP_SLOW - -• `Const` **TOOLTIP_SLOW**: `1000`= 1000 - -## Functions - -### Hoverable - -▸ **Hoverable**(`__namedParameters`: { `children`: JSX.Element \| JSX.Element[] ; `hoverContents`: () => JSX.Element ; `hoverDelay?`: _number_ ; `quick?`: _boolean_ }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------------- | :--------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | JSX.Element \| JSX.Element[] | -| `__namedParameters.hoverContents` | () => JSX.Element | -| `__namedParameters.hoverDelay?` | _number_ | -| `__namedParameters.quick?` | _boolean_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_iconbutton.md b/docs/modules/frontend_components_iconbutton.md deleted file mode 100644 index b3a7049b..00000000 --- a/docs/modules/frontend_components_iconbutton.md +++ /dev/null @@ -1,13 +0,0 @@ -# Module: Frontend/Components/IconButton - -## Table of contents - -### Variables - -- [IconButton](frontend_components_iconbutton.md#iconbutton) - -## Variables - -### IconButton - -• `Const` **IconButton**: _StyledComponent_<`"div"`, any, { `width?`: _string_ }, never\> diff --git a/docs/modules/frontend_components_icons.md b/docs/modules/frontend_components_icons.md deleted file mode 100644 index 03701b11..00000000 --- a/docs/modules/frontend_components_icons.md +++ /dev/null @@ -1,514 +0,0 @@ -# Module: Frontend/Components/Icons - -## Table of contents - -### Functions - -- [ActivateIcon](frontend_components_icons.md#activateicon) -- [ArtifactIcon](frontend_components_icons.md#artifacticon) -- [BranchIcon](frontend_components_icons.md#branchicon) -- [BroadcastIcon](frontend_components_icons.md#broadcasticon) -- [CloseCircleIcon](frontend_components_icons.md#closecircleicon) -- [DeactivateIcon](frontend_components_icons.md#deactivateicon) -- [DefenseIcon](frontend_components_icons.md#defenseicon) -- [DepositIcon](frontend_components_icons.md#depositicon) -- [EnergyGrowthIcon](frontend_components_icons.md#energygrowthicon) -- [EnergyIcon](frontend_components_icons.md#energyicon) -- [EthIcon](frontend_components_icons.md#ethicon) -- [FullRankIcon](frontend_components_icons.md#fullrankicon) -- [HatIcon](frontend_components_icons.md#haticon) -- [HelpIcon](frontend_components_icons.md#helpicon) -- [LeaderboardIcon](frontend_components_icons.md#leaderboardicon) -- [LockIcon](frontend_components_icons.md#lockicon) -- [MaxLevelIcon](frontend_components_icons.md#maxlevelicon) -- [MaximizeCircleIcon](frontend_components_icons.md#maximizecircleicon) -- [MinimizeCircleIcon](frontend_components_icons.md#minimizecircleicon) -- [PauseIcon](frontend_components_icons.md#pauseicon) -- [PiratesIcon](frontend_components_icons.md#piratesicon) -- [PlanetIcon](frontend_components_icons.md#planeticon) -- [PlanetdexIcon](frontend_components_icons.md#planetdexicon) -- [PlayIcon](frontend_components_icons.md#playicon) -- [PluginIcon](frontend_components_icons.md#pluginicon) -- [QuestionCircleIcon](frontend_components_icons.md#questioncircleicon) -- [RangeIcon](frontend_components_icons.md#rangeicon) -- [Rank1Icon](frontend_components_icons.md#rank1icon) -- [Rank2Icon](frontend_components_icons.md#rank2icon) -- [Rank3Icon](frontend_components_icons.md#rank3icon) -- [Rank4Icon](frontend_components_icons.md#rank4icon) -- [RankIcon](frontend_components_icons.md#rankicon) -- [RightarrowIcon](frontend_components_icons.md#rightarrowicon) -- [SettingsIcon](frontend_components_icons.md#settingsicon) -- [ShareIcon](frontend_components_icons.md#shareicon) -- [SilverGrowthIcon](frontend_components_icons.md#silvergrowthicon) -- [SilverIcon](frontend_components_icons.md#silvericon) -- [SilverProdIcon](frontend_components_icons.md#silverprodicon) -- [SpeedIcon](frontend_components_icons.md#speedicon) -- [StatIcon](frontend_components_icons.md#staticon) -- [TargetIcon](frontend_components_icons.md#targeticon) -- [TwitterIcon](frontend_components_icons.md#twittericon) -- [UpgradeIcon](frontend_components_icons.md#upgradeicon) -- [WithdrawIcon](frontend_components_icons.md#withdrawicon) - -## Functions - -### ActivateIcon - -▸ `Const` **ActivateIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### ArtifactIcon - -▸ `Const` **ArtifactIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### BranchIcon - -▸ `Const` **BranchIcon**(`__namedParameters`: { `branch`: _number_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.branch` | _number_ | - -**Returns:** _Element_ - ---- - -### BroadcastIcon - -▸ `Const` **BroadcastIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### CloseCircleIcon - -▸ `Const` **CloseCircleIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### DeactivateIcon - -▸ `Const` **DeactivateIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### DefenseIcon - -▸ `Const` **DefenseIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### DepositIcon - -▸ `Const` **DepositIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### EnergyGrowthIcon - -▸ `Const` **EnergyGrowthIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### EnergyIcon - -▸ `Const` **EnergyIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### EthIcon - -▸ `Const` **EthIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### FullRankIcon - -▸ `Const` **FullRankIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### HatIcon - -▸ `Const` **HatIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### HelpIcon - -▸ `Const` **HelpIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### LeaderboardIcon - -▸ `Const` **LeaderboardIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### LockIcon - -▸ `Const` **LockIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### MaxLevelIcon - -▸ `Const` **MaxLevelIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### MaximizeCircleIcon - -▸ `Const` **MaximizeCircleIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### MinimizeCircleIcon - -▸ `Const` **MinimizeCircleIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### PauseIcon - -▸ `Const` **PauseIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### PiratesIcon - -▸ `Const` **PiratesIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### PlanetIcon - -▸ `Const` **PlanetIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### PlanetdexIcon - -▸ `Const` **PlanetdexIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### PlayIcon - -▸ `Const` **PlayIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### PluginIcon - -▸ `Const` **PluginIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### QuestionCircleIcon - -▸ `Const` **QuestionCircleIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### RangeIcon - -▸ `Const` **RangeIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### Rank1Icon - -▸ `Const` **Rank1Icon**(): _Element_ - -**Returns:** _Element_ - ---- - -### Rank2Icon - -▸ `Const` **Rank2Icon**(): _Element_ - -**Returns:** _Element_ - ---- - -### Rank3Icon - -▸ `Const` **Rank3Icon**(): _Element_ - -**Returns:** _Element_ - ---- - -### Rank4Icon - -▸ `Const` **Rank4Icon**(): _Element_ - -**Returns:** _Element_ - ---- - -### RankIcon - -▸ `Const` **RankIcon**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### RightarrowIcon - -▸ `Const` **RightarrowIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### SettingsIcon - -▸ `Const` **SettingsIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### ShareIcon - -▸ `Const` **ShareIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### SilverGrowthIcon - -▸ `Const` **SilverGrowthIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### SilverIcon - -▸ `Const` **SilverIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### SilverProdIcon - -▸ `Const` **SilverProdIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### SpeedIcon - -▸ `Const` **SpeedIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ - ---- - -### StatIcon - -▸ `Const` **StatIcon**(`__namedParameters`: { `stat`: [_StatIdx_](../enums/_types_global_globaltypes.statidx.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.stat` | [_StatIdx_](../enums/_types_global_globaltypes.statidx.md) | - -**Returns:** _Element_ - ---- - -### TargetIcon - -▸ `Const` **TargetIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### TwitterIcon - -▸ `Const` **TwitterIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### UpgradeIcon - -▸ `Const` **UpgradeIcon**(): _Element_ - -**Returns:** _Element_ - ---- - -### WithdrawIcon - -▸ `Const` **WithdrawIcon**(`__namedParameters`: { `color?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _string_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_input.md b/docs/modules/frontend_components_input.md deleted file mode 100644 index fba2db69..00000000 --- a/docs/modules/frontend_components_input.md +++ /dev/null @@ -1,20 +0,0 @@ -# Module: Frontend/Components/Input - -## Table of contents - -### Variables - -- [DFInput](frontend_components_input.md#dfinput) -- [Input](frontend_components_input.md#input) - -## Variables - -### DFInput - -• `Const` **DFInput**: _StyledComponent_<`"input"`, any, { `wide?`: _boolean_ }, never\> - ---- - -### Input - -• `Const` **Input**: _ForwardRefExoticComponent_<_Pick_<_ClassAttributes_ & _InputHTMLAttributes_ & InputProps, `"id"` \| `"children"` \| `"list"` \| `"step"` \| `"type"` \| `"key"` \| `"size"` \| `"name"` \| `"value"` \| `"form"` \| `"accept"` \| `"wide"` \| `"slot"` \| `"style"` \| `"title"` \| `"pattern"` \| `"defaultChecked"` \| `"defaultValue"` \| `"suppressContentEditableWarning"` \| `"suppressHydrationWarning"` \| `"accessKey"` \| `"className"` \| `"contentEditable"` \| `"contextMenu"` \| `"dir"` \| `"draggable"` \| `"hidden"` \| `"lang"` \| `"placeholder"` \| `"spellCheck"` \| `"tabIndex"` \| `"translate"` \| `"radioGroup"` \| `"role"` \| `"about"` \| `"datatype"` \| `"inlist"` \| `"prefix"` \| `"property"` \| `"resource"` \| `"typeof"` \| `"vocab"` \| `"autoCapitalize"` \| `"autoCorrect"` \| `"autoSave"` \| `"color"` \| `"itemProp"` \| `"itemScope"` \| `"itemType"` \| `"itemID"` \| `"itemRef"` \| `"results"` \| `"security"` \| `"unselectable"` \| `"inputMode"` \| `"is"` \| `"aria-activedescendant"` \| `"aria-atomic"` \| `"aria-autocomplete"` \| `"aria-busy"` \| `"aria-checked"` \| `"aria-colcount"` \| `"aria-colindex"` \| `"aria-colspan"` \| `"aria-controls"` \| `"aria-current"` \| `"aria-describedby"` \| `"aria-details"` \| `"aria-disabled"` \| `"aria-dropeffect"` \| `"aria-errormessage"` \| `"aria-expanded"` \| `"aria-flowto"` \| `"aria-grabbed"` \| `"aria-haspopup"` \| `"aria-hidden"` \| `"aria-invalid"` \| `"aria-keyshortcuts"` \| `"aria-label"` \| `"aria-labelledby"` \| `"aria-level"` \| `"aria-live"` \| `"aria-modal"` \| `"aria-multiline"` \| `"aria-multiselectable"` \| `"aria-orientation"` \| `"aria-owns"` \| `"aria-placeholder"` \| `"aria-posinset"` \| `"aria-pressed"` \| `"aria-readonly"` \| `"aria-relevant"` \| `"aria-required"` \| `"aria-roledescription"` \| `"aria-rowcount"` \| `"aria-rowindex"` \| `"aria-rowspan"` \| `"aria-selected"` \| `"aria-setsize"` \| `"aria-sort"` \| `"aria-valuemax"` \| `"aria-valuemin"` \| `"aria-valuenow"` \| `"aria-valuetext"` \| `"dangerouslySetInnerHTML"` \| `"onCopy"` \| `"onCopyCapture"` \| `"onCut"` \| `"onCutCapture"` \| `"onPaste"` \| `"onPasteCapture"` \| `"onCompositionEnd"` \| `"onCompositionEndCapture"` \| `"onCompositionStart"` \| `"onCompositionStartCapture"` \| `"onCompositionUpdate"` \| `"onCompositionUpdateCapture"` \| `"onFocus"` \| `"onFocusCapture"` \| `"onBlur"` \| `"onBlurCapture"` \| `"onChange"` \| `"onChangeCapture"` \| `"onBeforeInput"` \| `"onBeforeInputCapture"` \| `"onInput"` \| `"onInputCapture"` \| `"onReset"` \| `"onResetCapture"` \| `"onSubmit"` \| `"onSubmitCapture"` \| `"onInvalid"` \| `"onInvalidCapture"` \| `"onLoad"` \| `"onLoadCapture"` \| `"onError"` \| `"onErrorCapture"` \| `"onKeyDown"` \| `"onKeyDownCapture"` \| `"onKeyPress"` \| `"onKeyPressCapture"` \| `"onKeyUp"` \| `"onKeyUpCapture"` \| `"onAbort"` \| `"onAbortCapture"` \| `"onCanPlay"` \| `"onCanPlayCapture"` \| `"onCanPlayThrough"` \| `"onCanPlayThroughCapture"` \| `"onDurationChange"` \| `"onDurationChangeCapture"` \| `"onEmptied"` \| `"onEmptiedCapture"` \| `"onEncrypted"` \| `"onEncryptedCapture"` \| `"onEnded"` \| `"onEndedCapture"` \| `"onLoadedData"` \| `"onLoadedDataCapture"` \| `"onLoadedMetadata"` \| `"onLoadedMetadataCapture"` \| `"onLoadStart"` \| `"onLoadStartCapture"` \| `"onPause"` \| `"onPauseCapture"` \| `"onPlay"` \| `"onPlayCapture"` \| `"onPlaying"` \| `"onPlayingCapture"` \| `"onProgress"` \| `"onProgressCapture"` \| `"onRateChange"` \| `"onRateChangeCapture"` \| `"onSeeked"` \| `"onSeekedCapture"` \| `"onSeeking"` \| `"onSeekingCapture"` \| `"onStalled"` \| `"onStalledCapture"` \| `"onSuspend"` \| `"onSuspendCapture"` \| `"onTimeUpdate"` \| `"onTimeUpdateCapture"` \| `"onVolumeChange"` \| `"onVolumeChangeCapture"` \| `"onWaiting"` \| `"onWaitingCapture"` \| `"onAuxClick"` \| `"onAuxClickCapture"` \| `"onClick"` \| `"onClickCapture"` \| `"onContextMenu"` \| `"onContextMenuCapture"` \| `"onDoubleClick"` \| `"onDoubleClickCapture"` \| `"onDrag"` \| `"onDragCapture"` \| `"onDragEnd"` \| `"onDragEndCapture"` \| `"onDragEnter"` \| `"onDragEnterCapture"` \| `"onDragExit"` \| `"onDragExitCapture"` \| `"onDragLeave"` \| `"onDragLeaveCapture"` \| `"onDragOver"` \| `"onDragOverCapture"` \| `"onDragStart"` \| `"onDragStartCapture"` \| `"onDrop"` \| `"onDropCapture"` \| `"onMouseDown"` \| `"onMouseDownCapture"` \| `"onMouseEnter"` \| `"onMouseLeave"` \| `"onMouseMove"` \| `"onMouseMoveCapture"` \| `"onMouseOut"` \| `"onMouseOutCapture"` \| `"onMouseOver"` \| `"onMouseOverCapture"` \| `"onMouseUp"` \| `"onMouseUpCapture"` \| `"onSelect"` \| `"onSelectCapture"` \| `"onTouchCancel"` \| `"onTouchCancelCapture"` \| `"onTouchEnd"` \| `"onTouchEndCapture"` \| `"onTouchMove"` \| `"onTouchMoveCapture"` \| `"onTouchStart"` \| `"onTouchStartCapture"` \| `"onPointerDown"` \| `"onPointerDownCapture"` \| `"onPointerMove"` \| `"onPointerMoveCapture"` \| `"onPointerUp"` \| `"onPointerUpCapture"` \| `"onPointerCancel"` \| `"onPointerCancelCapture"` \| `"onPointerEnter"` \| `"onPointerEnterCapture"` \| `"onPointerLeave"` \| `"onPointerLeaveCapture"` \| `"onPointerOver"` \| `"onPointerOverCapture"` \| `"onPointerOut"` \| `"onPointerOutCapture"` \| `"onGotPointerCapture"` \| `"onGotPointerCaptureCapture"` \| `"onLostPointerCapture"` \| `"onLostPointerCaptureCapture"` \| `"onScroll"` \| `"onScrollCapture"` \| `"onWheel"` \| `"onWheelCapture"` \| `"onAnimationStart"` \| `"onAnimationStartCapture"` \| `"onAnimationEnd"` \| `"onAnimationEndCapture"` \| `"onAnimationIteration"` \| `"onAnimationIterationCapture"` \| `"onTransitionEnd"` \| `"onTransitionEndCapture"` \| `"width"` \| `"height"` \| `"max"` \| `"min"` \| `"crossOrigin"` \| `"autoFocus"` \| `"disabled"` \| `"formAction"` \| `"formEncType"` \| `"formMethod"` \| `"formNoValidate"` \| `"formTarget"` \| `"autoComplete"` \| `"alt"` \| `"src"` \| `"capture"` \| `"checked"` \| `"maxLength"` \| `"minLength"` \| `"multiple"` \| `"readOnly"` \| `"required"`\> & _RefAttributes_\> diff --git a/docs/modules/frontend_components_labels_artifactlabels.md b/docs/modules/frontend_components_labels_artifactlabels.md deleted file mode 100644 index 3cd745fb..00000000 --- a/docs/modules/frontend_components_labels_artifactlabels.md +++ /dev/null @@ -1,112 +0,0 @@ -# Module: Frontend/Components/Labels/ArtifactLabels - -## Table of contents - -### Variables - -- [StyledArtifactRarityLabel](frontend_components_labels_artifactlabels.md#styledartifactraritylabel) - -### Functions - -- [ArtifactBiomeText](frontend_components_labels_artifactlabels.md#artifactbiometext) -- [ArtifactRarityBiomeTypeText](frontend_components_labels_artifactlabels.md#artifactraritybiometypetext) -- [ArtifactRarityLabel](frontend_components_labels_artifactlabels.md#artifactraritylabel) -- [ArtifactRarityLabelAnim](frontend_components_labels_artifactlabels.md#artifactraritylabelanim) -- [ArtifactRarityText](frontend_components_labels_artifactlabels.md#artifactraritytext) -- [ArtifactTypeText](frontend_components_labels_artifactlabels.md#artifacttypetext) - -## Variables - -### StyledArtifactRarityLabel - -• `Const` **StyledArtifactRarityLabel**: _StyledComponent_<`"span"`, any, { `rarity`: ArtifactRarity }, never\> - -## Functions - -### ArtifactBiomeText - -▸ `Const` **ArtifactBiomeText**(`__namedParameters`: { `artifact`: Artifact }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | - -**Returns:** _Element_ - ---- - -### ArtifactRarityBiomeTypeText - -▸ `Const` **ArtifactRarityBiomeTypeText**(`__namedParameters`: { `artifact`: Artifact }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | - -**Returns:** _Element_ - ---- - -### ArtifactRarityLabel - -▸ `Const` **ArtifactRarityLabel**(`__namedParameters`: { `artifact`: Artifact }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | - -**Returns:** _Element_ - ---- - -### ArtifactRarityLabelAnim - -▸ `Const` **ArtifactRarityLabelAnim**(`__namedParameters`: { `artifact`: Artifact }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | - -**Returns:** _Element_ - ---- - -### ArtifactRarityText - -▸ `Const` **ArtifactRarityText**(`__namedParameters`: { `artifact`: Artifact }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | - -**Returns:** _Element_ - ---- - -### ArtifactTypeText - -▸ `Const` **ArtifactTypeText**(`__namedParameters`: { `artifact`: Artifact }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_labels_biomelabels.md b/docs/modules/frontend_components_labels_biomelabels.md deleted file mode 100644 index 136458dd..00000000 --- a/docs/modules/frontend_components_labels_biomelabels.md +++ /dev/null @@ -1,100 +0,0 @@ -# Module: Frontend/Components/Labels/BiomeLabels - -## Table of contents - -### Variables - -- [BiomeLabel](frontend_components_labels_biomelabels.md#biomelabel) - -### Functions - -- [ArtifactBiomeLabel](frontend_components_labels_biomelabels.md#artifactbiomelabel) -- [ArtifactBiomeLabelAnim](frontend_components_labels_biomelabels.md#artifactbiomelabelanim) -- [BiomeLabelAnim](frontend_components_labels_biomelabels.md#biomelabelanim) -- [OptionalPlanetBiomeLabelAnim](frontend_components_labels_biomelabels.md#optionalplanetbiomelabelanim) -- [PlanetBiomeLabelAnim](frontend_components_labels_biomelabels.md#planetbiomelabelanim) - -## Variables - -### BiomeLabel - -• `Const` **BiomeLabel**: _StyledComponent_<`"span"`, any, { `biome`: Biome }, never\> - -Renders colored text corresponding to a biome - -## Functions - -### ArtifactBiomeLabel - -▸ `Const` **ArtifactBiomeLabel**(`__namedParameters`: { `artifact`: Artifact }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | - -**Returns:** _Element_ - ---- - -### ArtifactBiomeLabelAnim - -▸ `Const` **ArtifactBiomeLabelAnim**(`__namedParameters`: { `artifact`: Artifact }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | - -**Returns:** _Element_ - ---- - -### BiomeLabelAnim - -▸ `Const` **BiomeLabelAnim**(`__namedParameters`: { `biome`: Biome }): _Element_ - -Renders animated colored text corresponding to a biome - -#### Parameters - -| Name | Type | -| :------------------------ | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.biome` | Biome | - -**Returns:** _Element_ - ---- - -### OptionalPlanetBiomeLabelAnim - -▸ `Const` **OptionalPlanetBiomeLabelAnim**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### PlanetBiomeLabelAnim - -▸ `Const` **PlanetBiomeLabelAnim**(`__namedParameters`: { `planet`: LocatablePlanet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | LocatablePlanet | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_labels_keywordlabels.md b/docs/modules/frontend_components_labels_keywordlabels.md deleted file mode 100644 index acc063f8..00000000 --- a/docs/modules/frontend_components_labels_keywordlabels.md +++ /dev/null @@ -1,42 +0,0 @@ -# Module: Frontend/Components/Labels/KeywordLabels - -## Table of contents - -### Functions - -- [ScoreLabel](frontend_components_labels_keywordlabels.md#scorelabel) -- [ScoreLabelTip](frontend_components_labels_keywordlabels.md#scorelabeltip) -- [SilverLabel](frontend_components_labels_keywordlabels.md#silverlabel) -- [SilverLabelTip](frontend_components_labels_keywordlabels.md#silverlabeltip) - -## Functions - -### ScoreLabel - -▸ `Const` **ScoreLabel**(): _Element_ - -**Returns:** _Element_ - ---- - -### ScoreLabelTip - -▸ `Const` **ScoreLabelTip**(): _Element_ - -**Returns:** _Element_ - ---- - -### SilverLabel - -▸ `Const` **SilverLabel**(): _Element_ - -**Returns:** _Element_ - ---- - -### SilverLabelTip - -▸ `Const` **SilverLabelTip**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_labels_labels.md b/docs/modules/frontend_components_labels_labels.md deleted file mode 100644 index a4b7b238..00000000 --- a/docs/modules/frontend_components_labels_labels.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Components/Labels/Labels - -## Table of contents - -### Functions - -- [AccountLabel](frontend_components_labels_labels.md#accountlabel) - -## Functions - -### AccountLabel - -▸ **AccountLabel**(`__namedParameters`: { `account`: EthAddress \| _undefined_ }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------- | :------------------------ | -| `__namedParameters` | _object_ | -| `__namedParameters.account` | EthAddress \| _undefined_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_labels_lavalabel.md b/docs/modules/frontend_components_labels_lavalabel.md deleted file mode 100644 index d6f02e27..00000000 --- a/docs/modules/frontend_components_labels_lavalabel.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Components/Labels/LavaLabel - -## Table of contents - -### Variables - -- [LavaLabel](frontend_components_labels_lavalabel.md#lavalabel) - -### Functions - -- [LavaLabelRaw](frontend_components_labels_lavalabel.md#lavalabelraw) - -## Variables - -### LavaLabel - -• `Const` **LavaLabel**: _MemoExoticComponent_<() => _Element_\> - -## Functions - -### LavaLabelRaw - -▸ **LavaLabelRaw**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_labels_legendarylabel.md b/docs/modules/frontend_components_labels_legendarylabel.md deleted file mode 100644 index e791d909..00000000 --- a/docs/modules/frontend_components_labels_legendarylabel.md +++ /dev/null @@ -1,13 +0,0 @@ -# Module: Frontend/Components/Labels/LegendaryLabel - -## Table of contents - -### Variables - -- [LegendaryLabel](frontend_components_labels_legendarylabel.md#legendarylabel) - -## Variables - -### LegendaryLabel - -• `Const` **LegendaryLabel**: _MemoExoticComponent_<() => _Element_\> diff --git a/docs/modules/frontend_components_labels_mythiclabel.md b/docs/modules/frontend_components_labels_mythiclabel.md deleted file mode 100644 index 4f5beb20..00000000 --- a/docs/modules/frontend_components_labels_mythiclabel.md +++ /dev/null @@ -1,13 +0,0 @@ -# Module: Frontend/Components/Labels/MythicLabel - -## Table of contents - -### Variables - -- [MythicLabel](frontend_components_labels_mythiclabel.md#mythiclabel) - -## Variables - -### MythicLabel - -• `Const` **MythicLabel**: _MemoExoticComponent_<() => _Element_\> diff --git a/docs/modules/frontend_components_labels_planetlabels.md b/docs/modules/frontend_components_labels_planetlabels.md deleted file mode 100644 index 52075a5c..00000000 --- a/docs/modules/frontend_components_labels_planetlabels.md +++ /dev/null @@ -1,315 +0,0 @@ -# Module: Frontend/Components/Labels/PlanetLabels - -## Table of contents - -### Functions - -- [DefenseText](frontend_components_labels_planetlabels.md#defensetext) -- [EnergyCapText](frontend_components_labels_planetlabels.md#energycaptext) -- [EnergyGrowthText](frontend_components_labels_planetlabels.md#energygrowthtext) -- [EnergyText](frontend_components_labels_planetlabels.md#energytext) -- [LevelRankText](frontend_components_labels_planetlabels.md#levelranktext) -- [LevelRankTextEm](frontend_components_labels_planetlabels.md#levelranktextem) -- [PlanetBiomeTypeLabelAnim](frontend_components_labels_planetlabels.md#planetbiometypelabelanim) -- [PlanetEnergyLabel](frontend_components_labels_planetlabels.md#planetenergylabel) -- [PlanetLevelText](frontend_components_labels_planetlabels.md#planetleveltext) -- [PlanetOwnerLabel](frontend_components_labels_planetlabels.md#planetownerlabel) -- [PlanetRankText](frontend_components_labels_planetlabels.md#planetranktext) -- [PlanetSilverLabel](frontend_components_labels_planetlabels.md#planetsilverlabel) -- [PlanetTypeLabelAnim](frontend_components_labels_planetlabels.md#planettypelabelanim) -- [RangeText](frontend_components_labels_planetlabels.md#rangetext) -- [SilverCapText](frontend_components_labels_planetlabels.md#silvercaptext) -- [SilverGrowthText](frontend_components_labels_planetlabels.md#silvergrowthtext) -- [SilverText](frontend_components_labels_planetlabels.md#silvertext) -- [SpeedText](frontend_components_labels_planetlabels.md#speedtext) -- [StatText](frontend_components_labels_planetlabels.md#stattext) - -## Functions - -### DefenseText - -▸ `Const` **DefenseText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### EnergyCapText - -▸ `Const` **EnergyCapText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### EnergyGrowthText - -▸ `Const` **EnergyGrowthText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### EnergyText - -▸ `Const` **EnergyText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### LevelRankText - -▸ `Const` **LevelRankText**(`__namedParameters`: { `delim?`: _string_ ; `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.delim?` | _string_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### LevelRankTextEm - -▸ `Const` **LevelRankTextEm**(`__namedParameters`: { `delim?`: _string_ ; `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.delim?` | _string_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### PlanetBiomeTypeLabelAnim - -▸ `Const` **PlanetBiomeTypeLabelAnim**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### PlanetEnergyLabel - -▸ **PlanetEnergyLabel**(`__namedParameters`: { `planet`: Planet \| _undefined_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | Planet \| _undefined_ | - -**Returns:** _Element_ - ---- - -### PlanetLevelText - -▸ `Const` **PlanetLevelText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### PlanetOwnerLabel - -▸ **PlanetOwnerLabel**(`__namedParameters`: { `color?`: _boolean_ ; `planet`: Planet \| _undefined_ ; `showYours?`: _boolean_ }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.color?` | _boolean_ | -| `__namedParameters.planet` | Planet \| _undefined_ | -| `__namedParameters.showYours?` | _boolean_ | - -**Returns:** _Element_ - ---- - -### PlanetRankText - -▸ `Const` **PlanetRankText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### PlanetSilverLabel - -▸ **PlanetSilverLabel**(`__namedParameters`: { `planet`: Planet \| _undefined_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | Planet \| _undefined_ | - -**Returns:** _Element_ - ---- - -### PlanetTypeLabelAnim - -▸ `Const` **PlanetTypeLabelAnim**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### RangeText - -▸ `Const` **RangeText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### SilverCapText - -▸ `Const` **SilverCapText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### SilverGrowthText - -▸ `Const` **SilverGrowthText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### SilverText - -▸ `Const` **SilverText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### SpeedText - -▸ `Const` **SpeedText**(`__namedParameters`: { `planet`: _undefined_ \| Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | _undefined_ \| Planet | - -**Returns:** _Element_ - ---- - -### StatText - -▸ **StatText**(`__namedParameters`: { `getStat`: (`p`: Planet) => _number_ ; `planet`: Planet \| _undefined_ }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------- | :------------------------ | -| `__namedParameters` | _object_ | -| `__namedParameters.getStat` | (`p`: Planet) => _number_ | -| `__namedParameters.planet` | Planet \| _undefined_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_labels_spacetimeriplabel.md b/docs/modules/frontend_components_labels_spacetimeriplabel.md deleted file mode 100644 index 90f0b785..00000000 --- a/docs/modules/frontend_components_labels_spacetimeriplabel.md +++ /dev/null @@ -1,13 +0,0 @@ -# Module: Frontend/Components/Labels/SpacetimeRipLabel - -## Table of contents - -### Variables - -- [SpacetimeRipLabel](frontend_components_labels_spacetimeriplabel.md#spacetimeriplabel) - -## Variables - -### SpacetimeRipLabel - -• `Const` **SpacetimeRipLabel**: _MemoExoticComponent_<() => _Element_\> diff --git a/docs/modules/frontend_components_labels_wastelandlabel.md b/docs/modules/frontend_components_labels_wastelandlabel.md deleted file mode 100644 index ca989efe..00000000 --- a/docs/modules/frontend_components_labels_wastelandlabel.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Components/Labels/WastelandLabel - -## Table of contents - -### Variables - -- [WastelandLabel](frontend_components_labels_wastelandlabel.md#wastelandlabel) - -### Functions - -- [WastelandLabelRaw](frontend_components_labels_wastelandlabel.md#wastelandlabelraw) - -## Variables - -### WastelandLabel - -• `Const` **WastelandLabel**: _MemoExoticComponent_<() => _Element_\> - -## Functions - -### WastelandLabelRaw - -▸ **WastelandLabelRaw**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_loadingspinner.md b/docs/modules/frontend_components_loadingspinner.md deleted file mode 100644 index d79f1f46..00000000 --- a/docs/modules/frontend_components_loadingspinner.md +++ /dev/null @@ -1,23 +0,0 @@ -# Module: Frontend/Components/LoadingSpinner - -## Table of contents - -### Functions - -- [LoadingSpinner](frontend_components_loadingspinner.md#loadingspinner) - -## Functions - -### LoadingSpinner - -▸ **LoadingSpinner**(`__namedParameters`: { `initialText?`: _string_ ; `rate?`: _number_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.initialText?` | _string_ | -| `__namedParameters.rate?` | _number_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_planetpreview.md b/docs/modules/frontend_components_planetpreview.md deleted file mode 100644 index cb53df10..00000000 --- a/docs/modules/frontend_components_planetpreview.md +++ /dev/null @@ -1,41 +0,0 @@ -# Module: Frontend/Components/PlanetPreview - -## Table of contents - -### Functions - -- [PlanetPreview](frontend_components_planetpreview.md#planetpreview) -- [PlanetPreviewImage](frontend_components_planetpreview.md#planetpreviewimage) - -## Functions - -### PlanetPreview - -▸ **PlanetPreview**(`__namedParameters`: { `planet`: Planet \| _undefined_ ; `res`: _number_ ; `size`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | Planet \| _undefined_ | -| `__namedParameters.res` | _number_ | -| `__namedParameters.size` | _string_ | - -**Returns:** _Element_ - ---- - -### PlanetPreviewImage - -▸ **PlanetPreviewImage**(`__namedParameters`: { `planet`: Planet \| _undefined_ ; `res`: _number_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | Planet \| _undefined_ | -| `__namedParameters.res` | _number_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_readmore.md b/docs/modules/frontend_components_readmore.md deleted file mode 100644 index 48fa37c8..00000000 --- a/docs/modules/frontend_components_readmore.md +++ /dev/null @@ -1,23 +0,0 @@ -# Module: Frontend/Components/ReadMore - -## Table of contents - -### Functions - -- [ReadMore](frontend_components_readmore.md#readmore) - -## Functions - -### ReadMore - -▸ **ReadMore**(`__namedParameters`: { `children`: React.ReactChild[] \| React.ReactChild ; `height?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactChild[] \| React.ReactChild | -| `__namedParameters.height?` | _string_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_remotemodal.md b/docs/modules/frontend_components_remotemodal.md deleted file mode 100644 index 3b578a78..00000000 --- a/docs/modules/frontend_components_remotemodal.md +++ /dev/null @@ -1,29 +0,0 @@ -# Module: Frontend/Components/RemoteModal - -## Table of contents - -### Functions - -- [RemoteModal](frontend_components_remotemodal.md#remotemodal) - -## Functions - -### RemoteModal - -▸ **RemoteModal**(`__namedParameters`: { `children`: React.ReactElement ; `container`: Element ; `hook`: [*boolean*, (`set`: *boolean*) => *void*] ; `title`: _string_ }): _ReactPortal_ - -Allows you to instantiate a modal, and render it into the desired element. -Useful for loading temporary modals from ANYWHERE in the UI, not just -[GameWindowLayout](frontend_views_gamewindowlayout.md#gamewindowlayout) - -#### Parameters - -| Name | Type | -| :---------------------------- | :---------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactElement | -| `__namedParameters.container` | Element | -| `__namedParameters.hook` | [*boolean*, (`set`: *boolean*) => *void*] | -| `__namedParameters.title` | _string_ | - -**Returns:** _ReactPortal_ diff --git a/docs/modules/frontend_components_text.md b/docs/modules/frontend_components_text.md deleted file mode 100644 index 1929faec..00000000 --- a/docs/modules/frontend_components_text.md +++ /dev/null @@ -1,350 +0,0 @@ -# Module: Frontend/Components/Text - -## Table of contents - -### Variables - -- [BasicLink](frontend_components_text.md#basiclink) -- [Blue](frontend_components_text.md#blue) -- [Colored](frontend_components_text.md#colored) -- [Gold](frontend_components_text.md#gold) -- [Green](frontend_components_text.md#green) -- [HideSmall](frontend_components_text.md#hidesmall) -- [Invisible](frontend_components_text.md#invisible) -- [Item](frontend_components_text.md#item) -- [List](frontend_components_text.md#list) -- [Paragraph](frontend_components_text.md#paragraph) -- [Red](frontend_components_text.md#red) -- [Smaller](frontend_components_text.md#smaller) -- [StyledLink](frontend_components_text.md#styledlink) -- [Sub](frontend_components_text.md#sub) -- [Subber](frontend_components_text.md#subber) -- [White](frontend_components_text.md#white) - -### Functions - -- [ArtifactNameLink](frontend_components_text.md#artifactnamelink) -- [BlinkCursor](frontend_components_text.md#blinkcursor) -- [CenterChunkLink](frontend_components_text.md#centerchunklink) -- [CenterPlanetLink](frontend_components_text.md#centerplanetlink) -- [Coords](frontend_components_text.md#coords) -- [FAQ04Link](frontend_components_text.md#faq04link) -- [FakeLine](frontend_components_text.md#fakeline) -- [Header](frontend_components_text.md#header) -- [Link](frontend_components_text.md#link) -- [LongDash](frontend_components_text.md#longdash) -- [PlanetNameLink](frontend_components_text.md#planetnamelink) -- [Space](frontend_components_text.md#space) -- [Tab](frontend_components_text.md#tab) -- [Text](frontend_components_text.md#text) -- [Title](frontend_components_text.md#title) -- [TxLink](frontend_components_text.md#txlink) - -## Variables - -### BasicLink - -• `Const` **BasicLink**: _StyledComponent_<`"u"`, any, {}, never\> - ---- - -### Blue - -• `Const` **Blue**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### Colored - -• `Const` **Colored**: _StyledComponent_<`"span"`, any, { `color`: _string_ }, never\> - ---- - -### Gold - -• `Const` **Gold**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### Green - -• `Const` **Green**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### HideSmall - -• `Const` **HideSmall**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### Invisible - -• `Const` **Invisible**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### Item - -• `Const` **Item**: _StyledComponent_<`"li"`, any, {}, never\> - ---- - -### List - -• `Const` **List**: _StyledComponent_<`"ul"`, any, {}, never\> - ---- - -### Paragraph - -• `Const` **Paragraph**: _StyledComponent_<`"p"`, any, {}, never\> - ---- - -### Red - -• `Const` **Red**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### Smaller - -• `Const` **Smaller**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### StyledLink - -• `Const` **StyledLink**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### Sub - -• `Const` **Sub**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### Subber - -• `Const` **Subber**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### White - -• `Const` **White**: _StyledComponent_<`"span"`, any, {}, never\> - -## Functions - -### ArtifactNameLink - -▸ **ArtifactNameLink**(`__namedParameters`: { `id`: ArtifactId }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------- | :--------- | -| `__namedParameters` | _object_ | -| `__namedParameters.id` | ArtifactId | - -**Returns:** _Element_ - ---- - -### BlinkCursor - -▸ **BlinkCursor**(): _Element_ - -**Returns:** _Element_ - ---- - -### CenterChunkLink - -▸ **CenterChunkLink**(`__namedParameters`: { `children`: React.ReactNode ; `chunk`: [_Chunk_](../classes/_types_global_globaltypes.chunk.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactNode | -| `__namedParameters.chunk` | [_Chunk_](../classes/_types_global_globaltypes.chunk.md) | - -**Returns:** _Element_ - ---- - -### CenterPlanetLink - -▸ **CenterPlanetLink**(`__namedParameters`: { `children`: React.ReactNode ; `planet`: Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :-------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactNode | -| `__namedParameters.planet` | Planet | - -**Returns:** _Element_ - ---- - -### Coords - -▸ `Const` **Coords**(`__namedParameters`: { `coords`: WorldCoords }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :---------- | -| `__namedParameters` | _object_ | -| `__namedParameters.coords` | WorldCoords | - -**Returns:** _Element_ - ---- - -### FAQ04Link - -▸ **FAQ04Link**(`__namedParameters`: { `children`: React.ReactNode }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :-------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactNode | - -**Returns:** _Element_ - ---- - -### FakeLine - -▸ `Const` **FakeLine**(): _Element_ - -**Returns:** _Element_ - ---- - -### Header - -▸ **Header**(`__namedParameters`: { `children`: React.ReactNode ; `style?`: React.CSSProperties }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------------------ | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactNode | -| `__namedParameters.style?` | React.CSSProperties | - -**Returns:** _Element_ - ---- - -### Link - -▸ **Link**(`__namedParameters`: LinkProps): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :-------- | -| `__namedParameters` | LinkProps | - -**Returns:** _Element_ - ---- - -### LongDash - -▸ `Const` **LongDash**(): _Element_ - -**Returns:** _Element_ - ---- - -### PlanetNameLink - -▸ **PlanetNameLink**(`__namedParameters`: { `planet`: Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | Planet | - -**Returns:** _Element_ - ---- - -### Space - -▸ **Space**(`__namedParameters`: { `length`: _number_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.length` | _number_ | - -**Returns:** _Element_ - ---- - -### Tab - -▸ `Const` **Tab**(): _Element_ - -**Returns:** _Element_ - ---- - -### Text - -▸ **Text**(`__namedParameters`: TextProps): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :-------- | -| `__namedParameters` | TextProps | - -**Returns:** _Element_ - ---- - -### Title - -▸ **Title**(`__namedParameters`: { `children`: React.ReactNode }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :-------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactNode | - -**Returns:** _Element_ - ---- - -### TxLink - -▸ **TxLink**(`__namedParameters`: { `tx`: SubmittedTx }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------- | :---------- | -| `__namedParameters` | _object_ | -| `__namedParameters.tx` | SubmittedTx | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_textloadingbar.md b/docs/modules/frontend_components_textloadingbar.md deleted file mode 100644 index 802596d6..00000000 --- a/docs/modules/frontend_components_textloadingbar.md +++ /dev/null @@ -1,36 +0,0 @@ -# Module: Frontend/Components/TextLoadingBar - -## Table of contents - -### Interfaces - -- [LoadingBarHandle](../interfaces/frontend_components_textloadingbar.loadingbarhandle.md) - -### Variables - -- [TextLoadingBar](frontend_components_textloadingbar.md#textloadingbar) - -### Functions - -- [TextLoadingBarImpl](frontend_components_textloadingbar.md#textloadingbarimpl) - -## Variables - -### TextLoadingBar - -• `Const` **TextLoadingBar**: _ForwardRefExoticComponent_\> - -## Functions - -### TextLoadingBarImpl - -▸ **TextLoadingBarImpl**(`__namedParameters`: LoadingBarProps, `ref`: _React.Ref_<[_LoadingBarHandle_](../interfaces/frontend_components_textloadingbar.loadingbarhandle.md)\>): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :------------------------------------------------------------------------------------------------------- | -| `__namedParameters` | LoadingBarProps | -| `ref` | _React.Ref_<[_LoadingBarHandle_](../interfaces/frontend_components_textloadingbar.loadingbarhandle.md)\> | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_textpreview.md b/docs/modules/frontend_components_textpreview.md deleted file mode 100644 index 5d9c4271..00000000 --- a/docs/modules/frontend_components_textpreview.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Components/TextPreview - -## Table of contents - -### Functions - -- [TextPreview](frontend_components_textpreview.md#textpreview) - -## Functions - -### TextPreview - -▸ **TextPreview**(`__namedParameters`: { `focusedWidthPx?`: _number_ ; `maxLength?`: _number_ ; `text`: _string_ ; `unFocusedWidthPx?`: _number_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------------------ | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.focusedWidthPx?` | _number_ | -| `__namedParameters.maxLength?` | _number_ | -| `__namedParameters.text` | _string_ | -| `__namedParameters.unFocusedWidthPx?` | _number_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_components_timeuntil.md b/docs/modules/frontend_components_timeuntil.md deleted file mode 100644 index 903685a6..00000000 --- a/docs/modules/frontend_components_timeuntil.md +++ /dev/null @@ -1,26 +0,0 @@ -# Module: Frontend/Components/TimeUntil - -## Table of contents - -### Functions - -- [TimeUntil](frontend_components_timeuntil.md#timeuntil) - -## Functions - -### TimeUntil - -▸ **TimeUntil**(`__namedParameters`: { `ifPassed`: _string_ ; `timestamp`: _number_ }): _Element_ - -Given a timestamp, displays the amount of time until the timestamp from now in hh:mm:ss format. -If the timestamp is in the past, displays the given hardcoded value. - -#### Parameters - -| Name | Type | -| :---------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.ifPassed` | _string_ | -| `__namedParameters.timestamp` | _number_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_copy_helpcontent.md b/docs/modules/frontend_copy_helpcontent.md deleted file mode 100644 index 9ebfd9aa..00000000 --- a/docs/modules/frontend_copy_helpcontent.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Copy/HelpContent - -## Table of contents - -### Functions - -- [SelectedPlanetHelpContent](frontend_copy_helpcontent.md#selectedplanethelpcontent) - -## Functions - -### SelectedPlanetHelpContent - -▸ **SelectedPlanetHelpContent**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_entrypoints.md b/docs/modules/frontend_entrypoints.md deleted file mode 100644 index 9657f7cf..00000000 --- a/docs/modules/frontend_entrypoints.md +++ /dev/null @@ -1 +0,0 @@ -# Module: Frontend/EntryPoints diff --git a/docs/modules/frontend_game_controllablecanvas.md b/docs/modules/frontend_game_controllablecanvas.md deleted file mode 100644 index 582c15c4..00000000 --- a/docs/modules/frontend_game_controllablecanvas.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Game/ControllableCanvas - -## Table of contents - -### Functions - -- [default](frontend_game_controllablecanvas.md#default) - -## Functions - -### default - -▸ **default**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_game_notificationmanager.md b/docs/modules/frontend_game_notificationmanager.md deleted file mode 100644 index b06f2ab8..00000000 --- a/docs/modules/frontend_game_notificationmanager.md +++ /dev/null @@ -1,34 +0,0 @@ -# Module: Frontend/Game/NotificationManager - -## Table of contents - -### Enumerations - -- [NotificationManagerEvent](../enums/frontend_game_notificationmanager.notificationmanagerevent.md) -- [NotificationType](../enums/frontend_game_notificationmanager.notificationtype.md) - -### Classes - -- [default](../classes/frontend_game_notificationmanager.default.md) - -### Type aliases - -- [NotificationInfo](frontend_game_notificationmanager.md#notificationinfo) - -## Type aliases - -### NotificationInfo - -Ƭ **NotificationInfo**: _object_ - -#### Type declaration - -| Name | Type | -| :---------- | :----------------------------------------------------------------------------------- | -| `color?` | _string_ | -| `icon` | React.ReactNode | -| `id` | _string_ | -| `message` | React.ReactNode | -| `txData?` | TxIntent | -| `txStatus?` | EthTxStatus | -| `type` | [_NotificationType_](../enums/frontend_game_notificationmanager.notificationtype.md) | diff --git a/docs/modules/frontend_game_popups.md b/docs/modules/frontend_game_popups.md deleted file mode 100644 index 6b640fc7..00000000 --- a/docs/modules/frontend_game_popups.md +++ /dev/null @@ -1,24 +0,0 @@ -# Module: Frontend/Game/Popups - -## Table of contents - -### Functions - -- [openConfirmationWindowForTransaction](frontend_game_popups.md#openconfirmationwindowfortransaction) - -## Functions - -### openConfirmationWindowForTransaction - -▸ **openConfirmationWindowForTransaction**(`ethConnection`: [_default_](../classes/backend_network_ethconnection.default.md), `txRequest`: [_QueuedTxRequest_](../interfaces/backend_network_txexecutor.queuedtxrequest.md), `from`: EthAddress, `gasFeeGwei`: _number_): _Promise_ - -#### Parameters - -| Name | Type | -| :-------------- | :------------------------------------------------------------------------------- | -| `ethConnection` | [_default_](../classes/backend_network_ethconnection.default.md) | -| `txRequest` | [_QueuedTxRequest_](../interfaces/backend_network_txexecutor.queuedtxrequest.md) | -| `from` | EthAddress | -| `gasFeeGwei` | _number_ | - -**Returns:** _Promise_ diff --git a/docs/modules/frontend_game_viewport.md b/docs/modules/frontend_game_viewport.md deleted file mode 100644 index 99dd63a7..00000000 --- a/docs/modules/frontend_game_viewport.md +++ /dev/null @@ -1,19 +0,0 @@ -# Module: Frontend/Game/Viewport - -## Table of contents - -### Classes - -- [default](../classes/frontend_game_viewport.default.md) - -### Functions - -- [getDefaultScroll](frontend_game_viewport.md#getdefaultscroll) - -## Functions - -### getDefaultScroll - -▸ `Const` **getDefaultScroll**(): _number_ - -**Returns:** _number_ diff --git a/docs/modules/frontend_game_viewportanimation.md b/docs/modules/frontend_game_viewportanimation.md deleted file mode 100644 index 6371c78e..00000000 --- a/docs/modules/frontend_game_viewportanimation.md +++ /dev/null @@ -1,8 +0,0 @@ -# Module: Frontend/Game/ViewportAnimation - -## Table of contents - -### Classes - -- [AnimationManager](../classes/frontend_game_viewportanimation.animationmanager.md) -- [ViewportAnimation](../classes/frontend_game_viewportanimation.viewportanimation.md) diff --git a/docs/modules/frontend_game_windowmanager.md b/docs/modules/frontend_game_windowmanager.md deleted file mode 100644 index 957f7e32..00000000 --- a/docs/modules/frontend_game_windowmanager.md +++ /dev/null @@ -1,30 +0,0 @@ -# Module: Frontend/Game/WindowManager - -## Table of contents - -### Enumerations - -- [CursorState](../enums/frontend_game_windowmanager.cursorstate.md) -- [TooltipName](../enums/frontend_game_windowmanager.tooltipname.md) -- [WindowManagerEvent](../enums/frontend_game_windowmanager.windowmanagerevent.md) - -### Classes - -- [default](../classes/frontend_game_windowmanager.default.md) - -### Type aliases - -- [MousePos](frontend_game_windowmanager.md#mousepos) - -## Type aliases - -### MousePos - -Ƭ **MousePos**: _object_ - -#### Type declaration - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | diff --git a/docs/modules/frontend_pages_app.md b/docs/modules/frontend_pages_app.md deleted file mode 100644 index dbee6a58..00000000 --- a/docs/modules/frontend_pages_app.md +++ /dev/null @@ -1,19 +0,0 @@ -# Module: Frontend/Pages/App - -## Table of contents - -### Properties - -- [default](frontend_pages_app.md#default) - -## Properties - -### default - -• **default**: () => _Element_ - -#### Type declaration - -▸ (): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_conversationtest.md b/docs/modules/frontend_pages_conversationtest.md deleted file mode 100644 index 795a3618..00000000 --- a/docs/modules/frontend_pages_conversationtest.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Pages/ConversationTest - -## Table of contents - -### Functions - -- [ConversationTest](frontend_pages_conversationtest.md#conversationtest) - -## Functions - -### ConversationTest - -▸ **ConversationTest**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_gamelandingpage.md b/docs/modules/frontend_pages_gamelandingpage.md deleted file mode 100644 index 88a54d3f..00000000 --- a/docs/modules/frontend_pages_gamelandingpage.md +++ /dev/null @@ -1,19 +0,0 @@ -# Module: Frontend/Pages/GameLandingPage - -## Table of contents - -### Enumerations - -- [InitRenderState](../enums/frontend_pages_gamelandingpage.initrenderstate.md) - -### Functions - -- [default](frontend_pages_gamelandingpage.md#default) - -## Functions - -### default - -▸ **default**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_gifmaker.md b/docs/modules/frontend_pages_gifmaker.md deleted file mode 100644 index 7d5d90a8..00000000 --- a/docs/modules/frontend_pages_gifmaker.md +++ /dev/null @@ -1,29 +0,0 @@ -# Module: Frontend/Pages/GifMaker - -## Table of contents - -### Variables - -- [GIF_ARTIFACT_COLOR](frontend_pages_gifmaker.md#gif_artifact_color) - -### Functions - -- [GifMaker](frontend_pages_gifmaker.md#gifmaker) - -## Variables - -### GIF_ARTIFACT_COLOR - -• `Const` **GIF_ARTIFACT_COLOR**: [_APP_BACKGROUND_](../enums/backend_gamelogic_artifactutils.artifactfilecolor.md#app_background) - -## Functions - -### GifMaker - -▸ **GifMaker**(): _Element_ - -Entrypoint for gif and sprite generation, accessed via `yarn run gifs`. -Wait a second or so for the textures to get loaded, then click the buttons to download files as a zip. -gifs are saved as 60fps webm, and can take a while - open the console to see progress (logged verbosely) - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_landingpage.md b/docs/modules/frontend_pages_landingpage.md deleted file mode 100644 index 1f62222f..00000000 --- a/docs/modules/frontend_pages_landingpage.md +++ /dev/null @@ -1,19 +0,0 @@ -# Module: Frontend/Pages/LandingPage - -## Table of contents - -### Enumerations - -- [LandingPageZIndex](../enums/frontend_pages_landingpage.landingpagezindex.md) - -### Functions - -- [default](frontend_pages_landingpage.md#default) - -## Functions - -### default - -▸ **default**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_loadingpage.md b/docs/modules/frontend_pages_loadingpage.md deleted file mode 100644 index 4aa54235..00000000 --- a/docs/modules/frontend_pages_loadingpage.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Pages/LoadingPage - -## Table of contents - -### Functions - -- [default](frontend_pages_loadingpage.md#default) - -## Functions - -### default - -▸ **default**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_previewpage.md b/docs/modules/frontend_pages_previewpage.md deleted file mode 100644 index 1912edd5..00000000 --- a/docs/modules/frontend_pages_previewpage.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Pages/PreviewPage - -## Table of contents - -### Functions - -- [PreviewPage](frontend_pages_previewpage.md#previewpage) - -## Functions - -### PreviewPage - -▸ **PreviewPage**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_shareartifact.md b/docs/modules/frontend_pages_shareartifact.md deleted file mode 100644 index ecea47c5..00000000 --- a/docs/modules/frontend_pages_shareartifact.md +++ /dev/null @@ -1,21 +0,0 @@ -# Module: Frontend/Pages/ShareArtifact - -## Table of contents - -### Functions - -- [ShareArtifact](frontend_pages_shareartifact.md#shareartifact) - -## Functions - -### ShareArtifact - -▸ **ShareArtifact**(`__namedParameters`: _RouteComponentProps_<{ `artifactId`: ArtifactId }\>): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :--------------------------------------------------- | -| `__namedParameters` | _RouteComponentProps_<{ `artifactId`: ArtifactId }\> | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_shareplanet.md b/docs/modules/frontend_pages_shareplanet.md deleted file mode 100644 index b0df29fb..00000000 --- a/docs/modules/frontend_pages_shareplanet.md +++ /dev/null @@ -1,21 +0,0 @@ -# Module: Frontend/Pages/SharePlanet - -## Table of contents - -### Functions - -- [SharePlanet](frontend_pages_shareplanet.md#shareplanet) - -## Functions - -### SharePlanet - -▸ **SharePlanet**(`__namedParameters`: _RouteComponentProps_<{ `locationId`: LocationId }\>): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :--------------------------------------------------- | -| `__namedParameters` | _RouteComponentProps_<{ `locationId`: LocationId }\> | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_testartifactimages.md b/docs/modules/frontend_pages_testartifactimages.md deleted file mode 100644 index 217ac7d4..00000000 --- a/docs/modules/frontend_pages_testartifactimages.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Pages/TestArtifactImages - -## Table of contents - -### Functions - -- [TestArtifactImages](frontend_pages_testartifactimages.md#testartifactimages) - -## Functions - -### TestArtifactImages - -▸ **TestArtifactImages**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_txconfirmpopup.md b/docs/modules/frontend_pages_txconfirmpopup.md deleted file mode 100644 index 62d5c5da..00000000 --- a/docs/modules/frontend_pages_txconfirmpopup.md +++ /dev/null @@ -1,21 +0,0 @@ -# Module: Frontend/Pages/TxConfirmPopup - -## Table of contents - -### Functions - -- [TxConfirmPopup](frontend_pages_txconfirmpopup.md#txconfirmpopup) - -## Functions - -### TxConfirmPopup - -▸ **TxConfirmPopup**(`__namedParameters`: RouteComponentProps): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :------------------ | -| `__namedParameters` | RouteComponentProps | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_unsubscribepage.md b/docs/modules/frontend_pages_unsubscribepage.md deleted file mode 100644 index d7c3fe42..00000000 --- a/docs/modules/frontend_pages_unsubscribepage.md +++ /dev/null @@ -1,19 +0,0 @@ -# Module: Frontend/Pages/UnsubscribePage - -## Table of contents - -### Enumerations - -- [LandingPageZIndex](../enums/frontend_pages_unsubscribepage.landingpagezindex.md) - -### Functions - -- [default](frontend_pages_unsubscribepage.md#default) - -## Functions - -### default - -▸ **default**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_pages_valhallapage.md b/docs/modules/frontend_pages_valhallapage.md deleted file mode 100644 index c713c72f..00000000 --- a/docs/modules/frontend_pages_valhallapage.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Pages/ValhallaPage - -## Table of contents - -### Functions - -- [ValhallaPage](frontend_pages_valhallapage.md#valhallapage) - -## Functions - -### ValhallaPage - -▸ **ValhallaPage**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_artifactconversation_artifactconversationpane.md b/docs/modules/frontend_panes_artifactconversation_artifactconversationpane.md deleted file mode 100644 index 400d84b4..00000000 --- a/docs/modules/frontend_panes_artifactconversation_artifactconversationpane.md +++ /dev/null @@ -1,23 +0,0 @@ -# Module: Frontend/Panes/ArtifactConversation/ArtifactConversationPane - -## Table of contents - -### Functions - -- [ArtifactConversationPane](frontend_panes_artifactconversation_artifactconversationpane.md#artifactconversationpane) - -## Functions - -### ArtifactConversationPane - -▸ **ArtifactConversationPane**(`__namedParameters`: { `artifact`: Artifact \| _undefined_ ; `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact \| _undefined_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_artifactconversation_conversationsuggestions.md b/docs/modules/frontend_panes_artifactconversation_conversationsuggestions.md deleted file mode 100644 index a4674a50..00000000 --- a/docs/modules/frontend_panes_artifactconversation_conversationsuggestions.md +++ /dev/null @@ -1,24 +0,0 @@ -# Module: Frontend/Panes/ArtifactConversation/ConversationSuggestions - -## Table of contents - -### Functions - -- [ConversationSuggestions](frontend_panes_artifactconversation_conversationsuggestions.md#conversationsuggestions) - -## Functions - -### ConversationSuggestions - -▸ **ConversationSuggestions**(`__namedParameters`: { `disabled`: _boolean_ ; `exampleQuestions?`: _string_[] ; `selectQuestion`: (`question`: _string_) => _void_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------------------ | :------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.disabled` | _boolean_ | -| `__namedParameters.exampleQuestions?` | _string_[] | -| `__namedParameters.selectQuestion` | (`question`: _string_) => _void_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_artifactdetailspane.md b/docs/modules/frontend_panes_artifactdetailspane.md deleted file mode 100644 index f806ee77..00000000 --- a/docs/modules/frontend_panes_artifactdetailspane.md +++ /dev/null @@ -1,58 +0,0 @@ -# Module: Frontend/Panes/ArtifactDetailsPane - -## Table of contents - -### Functions - -- [ArtifactDetailsBody](frontend_panes_artifactdetailspane.md#artifactdetailsbody) -- [ArtifactDetailsPane](frontend_panes_artifactdetailspane.md#artifactdetailspane) -- [UpgradeStatInfo](frontend_panes_artifactdetailspane.md#upgradestatinfo) - -## Functions - -### ArtifactDetailsBody - -▸ **ArtifactDetailsBody**(`__namedParameters`: { `artifactWrapper`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) ; `contractConstants`: [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) ; `openConversationForArtifact`: (`id`: ArtifactId) => _void_ }): `null` \| _Element_ - -#### Parameters - -| Name | Type | -| :---------------------------------------------- | :------------------------------------------------------------------------------------------------ | -| `__namedParameters` | _object_ | -| `__namedParameters.artifactWrapper` | [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) | -| `__namedParameters.contractConstants` | [_ContractConstants_](../interfaces/_types_darkforest_api_contractsapitypes.contractconstants.md) | -| `__namedParameters.openConversationForArtifact` | (`id`: ArtifactId) => _void_ | - -**Returns:** `null` \| _Element_ - ---- - -### ArtifactDetailsPane - -▸ **ArtifactDetailsPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) ; `openConversationForArtifact`: (`id`: ArtifactId) => _void_ }): _Element_ - -#### Parameters - -| Name | Type | -| :---------------------------------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | -| `__namedParameters.openConversationForArtifact` | (`id`: ArtifactId) => _void_ | - -**Returns:** _Element_ - ---- - -### UpgradeStatInfo - -▸ **UpgradeStatInfo**(`__namedParameters`: { `stat`: [_StatIdx_](../enums/_types_global_globaltypes.statidx.md) ; `upgrades`: (Upgrade \| _undefined_)[] }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :--------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.stat` | [_StatIdx_](../enums/_types_global_globaltypes.statidx.md) | -| `__namedParameters.upgrades` | (Upgrade \| _undefined_)[] | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_broadcastpane.md b/docs/modules/frontend_panes_broadcastpane.md deleted file mode 100644 index 046e6acc..00000000 --- a/docs/modules/frontend_panes_broadcastpane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/BroadcastPane - -## Table of contents - -### Functions - -- [BroadcastPane](frontend_panes_broadcastpane.md#broadcastpane) - -## Functions - -### BroadcastPane - -▸ **BroadcastPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_coordspane.md b/docs/modules/frontend_panes_coordspane.md deleted file mode 100644 index 3fed59f3..00000000 --- a/docs/modules/frontend_panes_coordspane.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Panes/CoordsPane - -## Table of contents - -### Functions - -- [CoordsPane](frontend_panes_coordspane.md#coordspane) - -## Functions - -### CoordsPane - -▸ **CoordsPane**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_diagnosticspane.md b/docs/modules/frontend_panes_diagnosticspane.md deleted file mode 100644 index 0ce4af5f..00000000 --- a/docs/modules/frontend_panes_diagnosticspane.md +++ /dev/null @@ -1,26 +0,0 @@ -# Module: Frontend/Panes/DiagnosticsPane - -## Table of contents - -### Interfaces - -- [Diagnostics](../interfaces/frontend_panes_diagnosticspane.diagnostics.md) - -### Functions - -- [DiagnosticsPane](frontend_panes_diagnosticspane.md#diagnosticspane) - -## Functions - -### DiagnosticsPane - -▸ **DiagnosticsPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_explorepane.md b/docs/modules/frontend_panes_explorepane.md deleted file mode 100644 index 3a1156bb..00000000 --- a/docs/modules/frontend_panes_explorepane.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Panes/ExplorePane - -## Table of contents - -### Functions - -- [ExplorePane](frontend_panes_explorepane.md#explorepane) - -## Functions - -### ExplorePane - -▸ **ExplorePane**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_hatpane.md b/docs/modules/frontend_panes_hatpane.md deleted file mode 100644 index f44e40eb..00000000 --- a/docs/modules/frontend_panes_hatpane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/HatPane - -## Table of contents - -### Functions - -- [HatPane](frontend_panes_hatpane.md#hatpane) - -## Functions - -### HatPane - -▸ **HatPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_helppane.md b/docs/modules/frontend_panes_helppane.md deleted file mode 100644 index 9d32c34d..00000000 --- a/docs/modules/frontend_panes_helppane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/HelpPane - -## Table of contents - -### Functions - -- [HelpPane](frontend_panes_helppane.md#helppane) - -## Functions - -### HelpPane - -▸ **HelpPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_hoverplanetpane.md b/docs/modules/frontend_panes_hoverplanetpane.md deleted file mode 100644 index 74f15475..00000000 --- a/docs/modules/frontend_panes_hoverplanetpane.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Panes/HoverPlanetPane - -## Table of contents - -### Functions - -- [HoverPlanetPane](frontend_panes_hoverplanetpane.md#hoverplanetpane) - -## Functions - -### HoverPlanetPane - -▸ **HoverPlanetPane**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_leaderboardpane.md b/docs/modules/frontend_panes_leaderboardpane.md deleted file mode 100644 index 21847c1a..00000000 --- a/docs/modules/frontend_panes_leaderboardpane.md +++ /dev/null @@ -1,38 +0,0 @@ -# Module: Frontend/Panes/LeaderboardPane - -## Table of contents - -### Functions - -- [LeaderboardPane](frontend_panes_leaderboardpane.md#leaderboardpane) -- [calculateRankAndScore](frontend_panes_leaderboardpane.md#calculaterankandscore) - -## Functions - -### LeaderboardPane - -▸ **LeaderboardPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### calculateRankAndScore - -▸ **calculateRankAndScore**(`scoreboard`: ScoreboardEntry[], `account`: EthAddress): [*number*, *number*] - -#### Parameters - -| Name | Type | -| :----------- | :---------------- | -| `scoreboard` | ScoreboardEntry[] | -| `account` | EthAddress | - -**Returns:** [*number*, *number*] diff --git a/docs/modules/frontend_panes_manageplanetartifacts_artifactactions.md b/docs/modules/frontend_panes_manageplanetartifacts_artifactactions.md deleted file mode 100644 index 5a655978..00000000 --- a/docs/modules/frontend_panes_manageplanetartifacts_artifactactions.md +++ /dev/null @@ -1,31 +0,0 @@ -# Module: Frontend/Panes/ManagePlanetArtifacts/ArtifactActions - -## Table of contents - -### Functions - -- [ArtifactActions](frontend_panes_manageplanetartifacts_artifactactions.md#artifactactions) - -## Functions - -### ArtifactActions - -▸ **ArtifactActions**(`__namedParameters`: { `activate`: (`artifact`: Artifact) => _void_ ; `anyArtifactActive`: _boolean_ ; `artifact`: Artifact ; `deactivate`: (`artifact`: Artifact) => _void_ ; `deposit`: (`artifact`: Artifact) => _void_ ; `planetIsTradingPost`: _boolean_ ; `planetLevel`: _number_ ; `planetOwnedByPlayer`: _boolean_ ; `viewingDepositList`: _boolean_ ; `withdraw`: (`artifact`: Artifact) => _void_ }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------------------- | :------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.activate` | (`artifact`: Artifact) => _void_ | -| `__namedParameters.anyArtifactActive` | _boolean_ | -| `__namedParameters.artifact` | Artifact | -| `__namedParameters.deactivate` | (`artifact`: Artifact) => _void_ | -| `__namedParameters.deposit` | (`artifact`: Artifact) => _void_ | -| `__namedParameters.planetIsTradingPost` | _boolean_ | -| `__namedParameters.planetLevel` | _number_ | -| `__namedParameters.planetOwnedByPlayer` | _boolean_ | -| `__namedParameters.viewingDepositList` | _boolean_ | -| `__namedParameters.withdraw` | (`artifact`: Artifact) => _void_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_manageplanetartifacts_artifactlistitem.md b/docs/modules/frontend_panes_manageplanetartifacts_artifactlistitem.md deleted file mode 100644 index e5b48521..00000000 --- a/docs/modules/frontend_panes_manageplanetartifacts_artifactlistitem.md +++ /dev/null @@ -1,24 +0,0 @@ -# Module: Frontend/Panes/ManagePlanetArtifacts/ArtifactListItem - -## Table of contents - -### Functions - -- [ArtifactListItem](frontend_panes_manageplanetartifacts_artifactlistitem.md#artifactlistitem) - -## Functions - -### ArtifactListItem - -▸ **ArtifactListItem**(`__namedParameters`: { `actions`: (`artifact`: Artifact) => React.ReactElement \| _undefined_ ; `artifact`: Artifact \| _undefined_ ; `openArtifactDetails`: (`artifactId`: ArtifactId) => _void_ }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------------------- | :---------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.actions` | (`artifact`: Artifact) => React.ReactElement \| _undefined_ | -| `__namedParameters.artifact` | Artifact \| _undefined_ | -| `__namedParameters.openArtifactDetails` | (`artifactId`: ArtifactId) => _void_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_manageplanetartifacts_artifactslist.md b/docs/modules/frontend_panes_manageplanetartifacts_artifactslist.md deleted file mode 100644 index c8698519..00000000 --- a/docs/modules/frontend_panes_manageplanetartifacts_artifactslist.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Panes/ManagePlanetArtifacts/ArtifactsList - -## Table of contents - -### Functions - -- [ArtifactsList](frontend_panes_manageplanetartifacts_artifactslist.md#artifactslist) - -## Functions - -### ArtifactsList - -▸ **ArtifactsList**(`__namedParameters`: { `actions`: (`artifact`: Artifact) => React.ReactElement \| _undefined_ ; `artifacts`: (Artifact \| _undefined_)[] ; `openArtifactDetails`: (`artifactId`: ArtifactId) => _void_ ; `sortBy`: keyof Upgrade \| _undefined_ }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------------------- | :---------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.actions` | (`artifact`: Artifact) => React.ReactElement \| _undefined_ | -| `__namedParameters.artifacts` | (Artifact \| _undefined_)[] | -| `__namedParameters.openArtifactDetails` | (`artifactId`: ArtifactId) => _void_ | -| `__namedParameters.sortBy` | keyof Upgrade \| _undefined_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_manageplanetartifacts_find.md b/docs/modules/frontend_panes_manageplanetartifacts_find.md deleted file mode 100644 index f4c552ab..00000000 --- a/docs/modules/frontend_panes_manageplanetartifacts_find.md +++ /dev/null @@ -1,26 +0,0 @@ -# Module: Frontend/Panes/ManagePlanetArtifacts/Find - -## Table of contents - -### Functions - -- [Find](frontend_panes_manageplanetartifacts_find.md#find) - -## Functions - -### Find - -▸ **Find**(`__namedParameters`: { `currentBlockNumber`: _number_ \| _undefined_ ; `find`: () => _void_ ; `isFinding`: _boolean_ ; `planet`: Planet ; `roundOver`: _boolean_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------------------- | :---------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.currentBlockNumber` | _number_ \| _undefined_ | -| `__namedParameters.find` | () => _void_ | -| `__namedParameters.isFinding` | _boolean_ | -| `__namedParameters.planet` | Planet | -| `__namedParameters.roundOver` | _boolean_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_manageplanetartifacts_manageartifacts.md b/docs/modules/frontend_panes_manageplanetartifacts_manageartifacts.md deleted file mode 100644 index 5b0078b8..00000000 --- a/docs/modules/frontend_panes_manageplanetartifacts_manageartifacts.md +++ /dev/null @@ -1,34 +0,0 @@ -# Module: Frontend/Panes/ManagePlanetArtifacts/ManageArtifacts - -## Table of contents - -### Functions - -- [ManageArtifactsPane](frontend_panes_manageplanetartifacts_manageartifacts.md#manageartifactspane) - -## Functions - -### ManageArtifactsPane - -▸ **ManageArtifactsPane**(`__namedParameters`: { `activate`: (`artifact`: Artifact) => _void_ ; `artifactsInInventory`: Artifact[] ; `artifactsOnPlanet`: (Artifact \| _undefined_)[] ; `currentBlockNumber`: _number_ \| _undefined_ ; `deactivate`: (`artifact`: Artifact) => _void_ ; `deposit`: (`artifact`: Artifact) => _void_ ; `find`: () => _void_ ; `openArtifactDetails`: (`artifactId`: ArtifactId) => _void_ ; `planet`: LocatablePlanet ; `playerAddress`: _string_ ; `prospect`: () => _void_ ; `roundOver`: _boolean_ ; `withdraw`: (`artifact`: Artifact) => _void_ }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------------------- | :----------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.activate` | (`artifact`: Artifact) => _void_ | -| `__namedParameters.artifactsInInventory` | Artifact[] | -| `__namedParameters.artifactsOnPlanet` | (Artifact \| _undefined_)[] | -| `__namedParameters.currentBlockNumber` | _number_ \| _undefined_ | -| `__namedParameters.deactivate` | (`artifact`: Artifact) => _void_ | -| `__namedParameters.deposit` | (`artifact`: Artifact) => _void_ | -| `__namedParameters.find` | () => _void_ | -| `__namedParameters.openArtifactDetails` | (`artifactId`: ArtifactId) => _void_ | -| `__namedParameters.planet` | LocatablePlanet | -| `__namedParameters.playerAddress` | _string_ | -| `__namedParameters.prospect` | () => _void_ | -| `__namedParameters.roundOver` | _boolean_ | -| `__namedParameters.withdraw` | (`artifact`: Artifact) => _void_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_manageplanetartifacts_manageplanetartifactspane.md b/docs/modules/frontend_panes_manageplanetartifacts_manageplanetartifactspane.md deleted file mode 100644 index 84a2361e..00000000 --- a/docs/modules/frontend_panes_manageplanetartifacts_manageplanetartifactspane.md +++ /dev/null @@ -1,27 +0,0 @@ -# Module: Frontend/Panes/ManagePlanetArtifacts/ManagePlanetArtifactsPane - -## Table of contents - -### Functions - -- [ManagePlanetArtifactsPane](frontend_panes_manageplanetartifacts_manageplanetartifactspane.md#manageplanetartifactspane) - -## Functions - -### ManagePlanetArtifactsPane - -▸ **ManagePlanetArtifactsPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) ; `setArtifactDetailsOpen`: (`open`: _boolean_) => _void_ }): _Element_ - -This is the place where a user can manage all of their artifacts on a -particular planet. This includes prospecting, withdrawing, depositing, -activating, and deactivating artifacts. - -#### Parameters - -| Name | Type | -| :----------------------------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | -| `__namedParameters.setArtifactDetailsOpen` | (`open`: _boolean_) => _void_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_manageplanetartifacts_prospect.md b/docs/modules/frontend_panes_manageplanetartifacts_prospect.md deleted file mode 100644 index 3181ed7d..00000000 --- a/docs/modules/frontend_panes_manageplanetartifacts_prospect.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Panes/ManagePlanetArtifacts/Prospect - -## Table of contents - -### Functions - -- [Prospect](frontend_panes_manageplanetartifacts_prospect.md#prospect) - -## Functions - -### Prospect - -▸ **Prospect**(`__namedParameters`: { `isProspecting`: _boolean_ ; `planet`: Planet ; `prospect`: () => _void_ ; `roundOver`: _boolean_ }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------------- | :----------- | -| `__namedParameters` | _object_ | -| `__namedParameters.isProspecting` | _boolean_ | -| `__namedParameters.planet` | Planet | -| `__namedParameters.prospect` | () => _void_ | -| `__namedParameters.roundOver` | _boolean_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_manageplanetartifacts_sortby.md b/docs/modules/frontend_panes_manageplanetartifacts_sortby.md deleted file mode 100644 index 738eaa22..00000000 --- a/docs/modules/frontend_panes_manageplanetartifacts_sortby.md +++ /dev/null @@ -1,23 +0,0 @@ -# Module: Frontend/Panes/ManagePlanetArtifacts/SortBy - -## Table of contents - -### Functions - -- [SortBy](frontend_panes_manageplanetartifacts_sortby.md#sortby) - -## Functions - -### SortBy - -▸ **SortBy**(`__namedParameters`: { `setSortBy`: (`k`: keyof Upgrade \| _undefined_) => _void_ ; `sortBy`: keyof Upgrade \| _undefined_ }): _Element_ - -#### Parameters - -| Name | Type | -| :---------------------------- | :-------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.setSortBy` | (`k`: keyof Upgrade \| _undefined_) => _void_ | -| `__namedParameters.sortBy` | keyof Upgrade \| _undefined_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_manageplanetartifacts_upgradestatsview.md b/docs/modules/frontend_panes_manageplanetartifacts_upgradestatsview.md deleted file mode 100644 index 1a844b35..00000000 --- a/docs/modules/frontend_panes_manageplanetartifacts_upgradestatsview.md +++ /dev/null @@ -1,24 +0,0 @@ -# Module: Frontend/Panes/ManagePlanetArtifacts/UpgradeStatsView - -## Table of contents - -### Functions - -- [UpgradeStatsView](frontend_panes_manageplanetartifacts_upgradestatsview.md#upgradestatsview) - -## Functions - -### UpgradeStatsView - -▸ **UpgradeStatsView**(`__namedParameters`: { `artifactType`: ArtifactType ; `isActive`: _boolean_ ; `upgrade`: Upgrade }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------------- | :----------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifactType` | ArtifactType | -| `__namedParameters.isActive` | _boolean_ | -| `__namedParameters.upgrade` | Upgrade | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_onboardingpane.md b/docs/modules/frontend_panes_onboardingpane.md deleted file mode 100644 index bfe4d254..00000000 --- a/docs/modules/frontend_panes_onboardingpane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/OnboardingPane - -## Table of contents - -### Functions - -- [default](frontend_panes_onboardingpane.md#default) - -## Functions - -### default - -▸ **default**(`__namedParameters`: { `newPlayerHook`: [_Hook_](_types_global_globaltypes.md#hook) }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------------- | :---------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.newPlayerHook` | [_Hook_](_types_global_globaltypes.md#hook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_paidartifactconversation_conversationinfo.md b/docs/modules/frontend_panes_paidartifactconversation_conversationinfo.md deleted file mode 100644 index d446004b..00000000 --- a/docs/modules/frontend_panes_paidartifactconversation_conversationinfo.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/PaidArtifactConversation/ConversationInfo - -## Table of contents - -### Functions - -- [ConversationInfo](frontend_panes_paidartifactconversation_conversationinfo.md#conversationinfo) - -## Functions - -### ConversationInfo - -▸ **ConversationInfo**(`_`: { `questionsRemaining`: _number_ }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------- | :------- | -| `_` | _object_ | -| `_.questionsRemaining` | _number_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_paidartifactconversation_currencyview.md b/docs/modules/frontend_panes_paidartifactconversation_currencyview.md deleted file mode 100644 index 1f046e34..00000000 --- a/docs/modules/frontend_panes_paidartifactconversation_currencyview.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Panes/PaidArtifactConversation/CurrencyView - -## Table of contents - -### Functions - -- [CurrencyView](frontend_panes_paidartifactconversation_currencyview.md#currencyview) - -## Functions - -### CurrencyView - -▸ **CurrencyView**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_paidartifactconversation_paidartifactconversationpane.md b/docs/modules/frontend_panes_paidartifactconversation_paidartifactconversationpane.md deleted file mode 100644 index d4513aa7..00000000 --- a/docs/modules/frontend_panes_paidartifactconversation_paidartifactconversationpane.md +++ /dev/null @@ -1,23 +0,0 @@ -# Module: Frontend/Panes/PaidArtifactConversation/PaidArtifactConversationPane - -## Table of contents - -### Functions - -- [PaidArtifactConversationPane](frontend_panes_paidartifactconversation_paidartifactconversationpane.md#paidartifactconversationpane) - -## Functions - -### PaidArtifactConversationPane - -▸ **PaidArtifactConversationPane**(`__namedParameters`: { `artifact`: Artifact \| _undefined_ ; `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact \| _undefined_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_planetcontextpane.md b/docs/modules/frontend_panes_planetcontextpane.md deleted file mode 100644 index 58af7f35..00000000 --- a/docs/modules/frontend_panes_planetcontextpane.md +++ /dev/null @@ -1,21 +0,0 @@ -# Module: Frontend/Panes/PlanetContextPane - -## Table of contents - -### Functions - -- [PlanetContextPane](frontend_panes_planetcontextpane.md#planetcontextpane) - -## Functions - -### PlanetContextPane - -▸ **PlanetContextPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) } & [_PlanetNotifHooks_](frontend_views_planetnotifications.md#planetnotifhooks)): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------- | -| `__namedParameters` | { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) } & [_PlanetNotifHooks_](frontend_views_planetnotifications.md#planetnotifhooks) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_planetdetailspane.md b/docs/modules/frontend_panes_planetdetailspane.md deleted file mode 100644 index c12f4f70..00000000 --- a/docs/modules/frontend_panes_planetdetailspane.md +++ /dev/null @@ -1,23 +0,0 @@ -# Module: Frontend/Panes/PlanetDetailsPane - -## Table of contents - -### Functions - -- [PlanetDetailsPane](frontend_panes_planetdetailspane.md#planetdetailspane) - -## Functions - -### PlanetDetailsPane - -▸ **PlanetDetailsPane**(`__namedParameters`: { `hatHook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) ; `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hatHook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_planetdexpane.md b/docs/modules/frontend_panes_planetdexpane.md deleted file mode 100644 index 90e27555..00000000 --- a/docs/modules/frontend_panes_planetdexpane.md +++ /dev/null @@ -1,38 +0,0 @@ -# Module: Frontend/Panes/PlanetDexPane - -## Table of contents - -### Functions - -- [PlanetDexPane](frontend_panes_planetdexpane.md#planetdexpane) -- [PlanetThumb](frontend_panes_planetdexpane.md#planetthumb) - -## Functions - -### PlanetDexPane - -▸ **PlanetDexPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### PlanetThumb - -▸ **PlanetThumb**(`__namedParameters`: { `planet`: Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | Planet | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_playerartifactspane.md b/docs/modules/frontend_panes_playerartifactspane.md deleted file mode 100644 index 0f001de0..00000000 --- a/docs/modules/frontend_panes_playerartifactspane.md +++ /dev/null @@ -1,23 +0,0 @@ -# Module: Frontend/Panes/PlayerArtifactsPane - -## Table of contents - -### Functions - -- [PlayerArtifactsPane](frontend_panes_playerartifactspane.md#playerartifactspane) - -## Functions - -### PlayerArtifactsPane - -▸ **PlayerArtifactsPane**(`__namedParameters`: { `artifactDetailsHook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) ; `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifactDetailsHook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_playerinfopane.md b/docs/modules/frontend_panes_playerinfopane.md deleted file mode 100644 index 8a8afb74..00000000 --- a/docs/modules/frontend_panes_playerinfopane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/PlayerInfoPane - -## Table of contents - -### Functions - -- [PlayerInfoPane](frontend_panes_playerinfopane.md#playerinfopane) - -## Functions - -### PlayerInfoPane - -▸ **PlayerInfoPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_plugineditorpane.md b/docs/modules/frontend_panes_plugineditorpane.md deleted file mode 100644 index fdf771d6..00000000 --- a/docs/modules/frontend_panes_plugineditorpane.md +++ /dev/null @@ -1,30 +0,0 @@ -# Module: Frontend/Panes/PluginEditorPane - -## Table of contents - -### Functions - -- [PluginEditorPane](frontend_panes_plugineditorpane.md#plugineditorpane) - -## Functions - -### PluginEditorPane - -▸ **PluginEditorPane**(`__namedParameters`: { `overwrite`: (`newPluginName`: _string_, `newPluginCode`: _string_, `pluginId?`: [_PluginId_](backend_plugins_serializedplugin.md#pluginid)) => _void_ ; `pluginHost?`: [_PluginManager_](../classes/backend_gamelogic_pluginmanager.pluginmanager.md) \| `null` ; `pluginId?`: [_PluginId_](backend_plugins_serializedplugin.md#pluginid) ; `setIsOpen`: (`open`: _boolean_) => _void_ }): _Element_ - -Component for editing plugins. Saving causes its containing modal -to be closed, and the `overwrite` to be called, indicating that the -given plugin's source should be overwritten and reloaded. If no -plugin id is provided, assumes we're editing a new plugin. - -#### Parameters - -| Name | Type | -| :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.overwrite` | (`newPluginName`: _string_, `newPluginCode`: _string_, `pluginId?`: [_PluginId_](backend_plugins_serializedplugin.md#pluginid)) => _void_ | -| `__namedParameters.pluginHost?` | [_PluginManager_](../classes/backend_gamelogic_pluginmanager.pluginmanager.md) \| `null` | -| `__namedParameters.pluginId?` | [_PluginId_](backend_plugins_serializedplugin.md#pluginid) | -| `__namedParameters.setIsOpen` | (`open`: _boolean_) => _void_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_pluginlibrarypane.md b/docs/modules/frontend_panes_pluginlibrarypane.md deleted file mode 100644 index 349976cd..00000000 --- a/docs/modules/frontend_panes_pluginlibrarypane.md +++ /dev/null @@ -1,31 +0,0 @@ -# Module: Frontend/Panes/PluginLibraryPane - -## Table of contents - -### Functions - -- [PluginLibraryPane](frontend_panes_pluginlibrarypane.md#pluginlibrarypane) - -## Functions - -### PluginLibraryPane - -▸ **PluginLibraryPane**(`__namedParameters`: { `gameUIManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md) ; `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) ; `modalsContainer`: Element }): `null` \| _Element_ - -This modal presents an overview of all of the player's plugins. Has a button -to add a new plugin, and lists out all the existing plugins, allowing the -user to view their titles, as well as either edit, delete, or open their window. - -You can think of this as the plugin process list, the Activity Monitor of -Dark forest. - -#### Parameters - -| Name | Type | -| :---------------------------------- | :----------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.gameUIManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | -| `__namedParameters.modalsContainer` | Element | - -**Returns:** `null` \| _Element_ diff --git a/docs/modules/frontend_panes_privatepane.md b/docs/modules/frontend_panes_privatepane.md deleted file mode 100644 index 66e0cc13..00000000 --- a/docs/modules/frontend_panes_privatepane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/PrivatePane - -## Table of contents - -### Functions - -- [PrivatePane](frontend_panes_privatepane.md#privatepane) - -## Functions - -### PrivatePane - -▸ **PrivatePane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_settingspane.md b/docs/modules/frontend_panes_settingspane.md deleted file mode 100644 index f4f29b8d..00000000 --- a/docs/modules/frontend_panes_settingspane.md +++ /dev/null @@ -1,24 +0,0 @@ -# Module: Frontend/Panes/SettingsPane - -## Table of contents - -### Functions - -- [SettingsPane](frontend_panes_settingspane.md#settingspane) - -## Functions - -### SettingsPane - -▸ **SettingsPane**(`__namedParameters`: { `ethConnection`: [_default_](../classes/backend_network_ethconnection.default.md) ; `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) ; `privateHook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------------- | :--------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.ethConnection` | [_default_](../classes/backend_network_ethconnection.default.md) | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | -| `__namedParameters.privateHook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_tooltip.md b/docs/modules/frontend_panes_tooltip.md deleted file mode 100644 index e308361a..00000000 --- a/docs/modules/frontend_panes_tooltip.md +++ /dev/null @@ -1,30 +0,0 @@ -# Module: Frontend/Panes/Tooltip - -## Table of contents - -### Functions - -- [Tooltip](frontend_panes_tooltip.md#tooltip) -- [TooltipTrigger](frontend_panes_tooltip.md#tooltiptrigger) - -## Functions - -### Tooltip - -▸ **Tooltip**(): _Element_ - -**Returns:** _Element_ - ---- - -### TooltipTrigger - -▸ **TooltipTrigger**(`__namedParameters`: TooltipProps): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :----------- | -| `__namedParameters` | TooltipProps | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_tooltippanes.md b/docs/modules/frontend_panes_tooltippanes.md deleted file mode 100644 index 3410c1d9..00000000 --- a/docs/modules/frontend_panes_tooltippanes.md +++ /dev/null @@ -1,346 +0,0 @@ -# Module: Frontend/Panes/TooltipPanes - -## Table of contents - -### Functions - -- [BonusDefenseTooltipPane](frontend_panes_tooltippanes.md#bonusdefensetooltippane) -- [BonusEnergyCapTooltipPane](frontend_panes_tooltippanes.md#bonusenergycaptooltippane) -- [BonusEnergyGroTooltipPane](frontend_panes_tooltippanes.md#bonusenergygrotooltippane) -- [BonusRangeTooltipPane](frontend_panes_tooltippanes.md#bonusrangetooltippane) -- [BonusSpeedTooltipPane](frontend_panes_tooltippanes.md#bonusspeedtooltippane) -- [BonusTooltipPane](frontend_panes_tooltippanes.md#bonustooltippane) -- [ClowntownTooltipPane](frontend_panes_tooltippanes.md#clowntowntooltippane) -- [CurrentMiningTooltipPane](frontend_panes_tooltippanes.md#currentminingtooltippane) -- [EnergyGrowthTooltipPane](frontend_panes_tooltippanes.md#energygrowthtooltippane) -- [EnergyTooltipPane](frontend_panes_tooltippanes.md#energytooltippane) -- [MaxLevelTooltipPane](frontend_panes_tooltippanes.md#maxleveltooltippane) -- [MinEnergyTooltipPane](frontend_panes_tooltippanes.md#minenergytooltippane) -- [MiningPauseTooltipPane](frontend_panes_tooltippanes.md#miningpausetooltippane) -- [MiningTargetTooltipPane](frontend_panes_tooltippanes.md#miningtargettooltippane) -- [ModalBroadcastTooltipPane](frontend_panes_tooltippanes.md#modalbroadcasttooltippane) -- [ModalHelpTooltipPane](frontend_panes_tooltippanes.md#modalhelptooltippane) -- [ModalLeaderboardTooltipPane](frontend_panes_tooltippanes.md#modalleaderboardtooltippane) -- [ModalPlanetDetailsTooltipPane](frontend_panes_tooltippanes.md#modalplanetdetailstooltippane) -- [ModalPlanetDexTooltipPane](frontend_panes_tooltippanes.md#modalplanetdextooltippane) -- [ModalTwitterVerificationTooltipPane](frontend_panes_tooltippanes.md#modaltwitterverificationtooltippane) -- [ModalUpgradeDetailsTooltipPane](frontend_panes_tooltippanes.md#modalupgradedetailstooltippane) -- [PiratesTooltipPane](frontend_panes_tooltippanes.md#piratestooltippane) -- [PlanetRankTooltipPane](frontend_panes_tooltippanes.md#planetranktooltippane) -- [RangeTooltipPane](frontend_panes_tooltippanes.md#rangetooltippane) -- [RankTooltipPane](frontend_panes_tooltippanes.md#ranktooltippane) -- [ScoreTooltipPane](frontend_panes_tooltippanes.md#scoretooltippane) -- [SelectedEnergyTooltipPane](frontend_panes_tooltippanes.md#selectedenergytooltippane) -- [SelectedSilverTooltipPane](frontend_panes_tooltippanes.md#selectedsilvertooltippane) -- [SilverCapTooltipPane](frontend_panes_tooltippanes.md#silvercaptooltippane) -- [SilverGrowthTooltipPane](frontend_panes_tooltippanes.md#silvergrowthtooltippane) -- [SilverProdTooltipPane](frontend_panes_tooltippanes.md#silverprodtooltippane) -- [SilverTooltipPane](frontend_panes_tooltippanes.md#silvertooltippane) -- [Time50TooltipPane](frontend_panes_tooltippanes.md#time50tooltippane) -- [Time90TooltipPane](frontend_panes_tooltippanes.md#time90tooltippane) -- [TooltipContent](frontend_panes_tooltippanes.md#tooltipcontent) -- [TwitterHandleTooltipPane](frontend_panes_tooltippanes.md#twitterhandletooltippane) -- [UpgradesTooltipPane](frontend_panes_tooltippanes.md#upgradestooltippane) - -## Functions - -### BonusDefenseTooltipPane - -▸ **BonusDefenseTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### BonusEnergyCapTooltipPane - -▸ **BonusEnergyCapTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### BonusEnergyGroTooltipPane - -▸ **BonusEnergyGroTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### BonusRangeTooltipPane - -▸ **BonusRangeTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### BonusSpeedTooltipPane - -▸ **BonusSpeedTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### BonusTooltipPane - -▸ **BonusTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### ClowntownTooltipPane - -▸ **ClowntownTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### CurrentMiningTooltipPane - -▸ **CurrentMiningTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### EnergyGrowthTooltipPane - -▸ **EnergyGrowthTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### EnergyTooltipPane - -▸ **EnergyTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### MaxLevelTooltipPane - -▸ **MaxLevelTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### MinEnergyTooltipPane - -▸ **MinEnergyTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### MiningPauseTooltipPane - -▸ **MiningPauseTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### MiningTargetTooltipPane - -▸ **MiningTargetTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### ModalBroadcastTooltipPane - -▸ **ModalBroadcastTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### ModalHelpTooltipPane - -▸ **ModalHelpTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### ModalLeaderboardTooltipPane - -▸ **ModalLeaderboardTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### ModalPlanetDetailsTooltipPane - -▸ **ModalPlanetDetailsTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### ModalPlanetDexTooltipPane - -▸ **ModalPlanetDexTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### ModalTwitterVerificationTooltipPane - -▸ **ModalTwitterVerificationTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### ModalUpgradeDetailsTooltipPane - -▸ **ModalUpgradeDetailsTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### PiratesTooltipPane - -▸ **PiratesTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### PlanetRankTooltipPane - -▸ **PlanetRankTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### RangeTooltipPane - -▸ **RangeTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### RankTooltipPane - -▸ **RankTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### ScoreTooltipPane - -▸ **ScoreTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### SelectedEnergyTooltipPane - -▸ **SelectedEnergyTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### SelectedSilverTooltipPane - -▸ **SelectedSilverTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### SilverCapTooltipPane - -▸ **SilverCapTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### SilverGrowthTooltipPane - -▸ **SilverGrowthTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### SilverProdTooltipPane - -▸ **SilverProdTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### SilverTooltipPane - -▸ **SilverTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### Time50TooltipPane - -▸ **Time50TooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### Time90TooltipPane - -▸ **Time90TooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### TooltipContent - -▸ **TooltipContent**(`__namedParameters`: { `name`: [_TooltipName_](../enums/frontend_game_windowmanager.tooltipname.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.name` | [_TooltipName_](../enums/frontend_game_windowmanager.tooltipname.md) | - -**Returns:** _Element_ - ---- - -### TwitterHandleTooltipPane - -▸ **TwitterHandleTooltipPane**(): _Element_ - -**Returns:** _Element_ - ---- - -### UpgradesTooltipPane - -▸ **UpgradesTooltipPane**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_tutorialpane.md b/docs/modules/frontend_panes_tutorialpane.md deleted file mode 100644 index b90da6c8..00000000 --- a/docs/modules/frontend_panes_tutorialpane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/TutorialPane - -## Table of contents - -### Functions - -- [TutorialPane](frontend_panes_tutorialpane.md#tutorialpane) - -## Functions - -### TutorialPane - -▸ **TutorialPane**(`__namedParameters`: { `tutorialHook`: [_Hook_](_types_global_globaltypes.md#hook) }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------------- | :---------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.tutorialHook` | [_Hook_](_types_global_globaltypes.md#hook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_twitterverifypane.md b/docs/modules/frontend_panes_twitterverifypane.md deleted file mode 100644 index f9a33243..00000000 --- a/docs/modules/frontend_panes_twitterverifypane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/TwitterVerifyPane - -## Table of contents - -### Functions - -- [TwitterVerifyPane](frontend_panes_twitterverifypane.md#twitterverifypane) - -## Functions - -### TwitterVerifyPane - -▸ **TwitterVerifyPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_upgradedetailspane.md b/docs/modules/frontend_panes_upgradedetailspane.md deleted file mode 100644 index a55389b5..00000000 --- a/docs/modules/frontend_panes_upgradedetailspane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/UpgradeDetailsPane - -## Table of contents - -### Functions - -- [UpgradeDetailsPane](frontend_panes_upgradedetailspane.md#upgradedetailspane) - -## Functions - -### UpgradeDetailsPane - -▸ **UpgradeDetailsPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_wikipane.md b/docs/modules/frontend_panes_wikipane.md deleted file mode 100644 index cd0fbcb0..00000000 --- a/docs/modules/frontend_panes_wikipane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/WikiPane - -## Table of contents - -### Functions - -- [WikiPane](frontend_panes_wikipane.md#wikipane) - -## Functions - -### WikiPane - -▸ **WikiPane**(`__namedParameters`: { `children`: React.ReactNode }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :-------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactNode | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_withdrawsilverpane.md b/docs/modules/frontend_panes_withdrawsilverpane.md deleted file mode 100644 index 4f528078..00000000 --- a/docs/modules/frontend_panes_withdrawsilverpane.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Panes/WithdrawSilverPane - -## Table of contents - -### Functions - -- [WithdrawSilverPane](frontend_panes_withdrawsilverpane.md#withdrawsilverpane) - -## Functions - -### WithdrawSilverPane - -▸ **WithdrawSilverPane**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_panes_zoompane.md b/docs/modules/frontend_panes_zoompane.md deleted file mode 100644 index ddb4cef3..00000000 --- a/docs/modules/frontend_panes_zoompane.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Panes/ZoomPane - -## Table of contents - -### Functions - -- [ZoomPane](frontend_panes_zoompane.md#zoompane) - -## Functions - -### ZoomPane - -▸ **ZoomPane**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_renderers_artifacts_artifactrenderer.md b/docs/modules/frontend_renderers_artifacts_artifactrenderer.md deleted file mode 100644 index ff492aa4..00000000 --- a/docs/modules/frontend_renderers_artifacts_artifactrenderer.md +++ /dev/null @@ -1,52 +0,0 @@ -# Module: Frontend/Renderers/Artifacts/ArtifactRenderer - -## Table of contents - -### Classes - -- [ArtifactRenderer](../classes/frontend_renderers_artifacts_artifactrenderer.artifactrenderer.md) - -### Variables - -- [aDexCanvasH](frontend_renderers_artifacts_artifactrenderer.md#adexcanvash) -- [aDexCanvasW](frontend_renderers_artifacts_artifactrenderer.md#adexcanvasw) -- [aListCanvasH](frontend_renderers_artifacts_artifactrenderer.md#alistcanvash) -- [aListCanvasW](frontend_renderers_artifacts_artifactrenderer.md#alistcanvasw) -- [artifactColM](frontend_renderers_artifacts_artifactrenderer.md#artifactcolm) -- [artifactColW](frontend_renderers_artifacts_artifactrenderer.md#artifactcolw) - -## Variables - -### aDexCanvasH - -• `Const` **aDexCanvasH**: _number_ - ---- - -### aDexCanvasW - -• `Const` **aDexCanvasW**: _number_ - ---- - -### aListCanvasH - -• `Const` **aListCanvasH**: `400`= 400 - ---- - -### aListCanvasW - -• `Const` **aListCanvasW**: `48` - ---- - -### artifactColM - -• `Const` **artifactColM**: `32`= 32 - ---- - -### artifactColW - -• `Const` **artifactColW**: _number_ diff --git a/docs/modules/frontend_renderers_gamerenderer_engineconsts.md b/docs/modules/frontend_renderers_gamerenderer_engineconsts.md deleted file mode 100644 index 4295f76b..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_engineconsts.md +++ /dev/null @@ -1,60 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/EngineConsts - -## Table of contents - -### Variables - -- [engineConsts](frontend_renderers_gamerenderer_engineconsts.md#engineconsts) - -## Variables - -### engineConsts - -• `Const` **engineConsts**: _object_ - -#### Type declaration - -| Name | Type | -| :----------------------- | :------------------------------------------------------------------ | -| `colors` | _object_ | -| `colors.artifacts` | _object_ | -| `colors.artifacts.shine` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.artifacts.trim` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.barbs` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.barbsA` | [_RGBAVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | -| `colors.belt` | _object_ | -| `colors.belt.defense` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.belt.range` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.belt.silver` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.belt.speed` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.bonus` | _object_ | -| `colors.bonus.defense` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.bonus.energyCap` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.bonus.energyGro` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.bonus.range` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.bonus.speed` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.gold` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.purple` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.purpleA` | [_RGBAVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | -| `colors.range` | _object_ | -| `colors.range.dash` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.range.energy` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.red` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.redA` | [_RGBAVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | -| `colors.voyage` | _object_ | -| `colors.voyage.enemy` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.voyage.enemyA` | [_RGBAVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | -| `colors.voyage.mine` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.voyage.mineA` | [_RGBAVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | -| `colors.white` | [_RGBVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) | -| `colors.whiteA` | [_RGBAVec_](frontend_renderers_gamerenderer_enginetypes.md#rgbavec) | -| `dashLength` | _number_ | -| `fontStyle` | _string_ | -| `glyphs` | _object_ | -| `glyphs.canvasDim` | _number_ | -| `glyphs.glyphH` | _number_ | -| `glyphs.glyphW` | _number_ | -| `glyphs.rowL` | _number_ | -| `glyphs.scale` | _number_ | -| `planet` | _object_ | -| `planet.maxRadius` | _number_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_enginetypes.md b/docs/modules/frontend_renderers_gamerenderer_enginetypes.md deleted file mode 100644 index e9d05600..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_enginetypes.md +++ /dev/null @@ -1,108 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/EngineTypes - -## Table of contents - -### Enumerations - -- [AttribType](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) -- [DrawMode](../enums/frontend_renderers_gamerenderer_enginetypes.drawmode.md) -- [RenderZIndex](../enums/frontend_renderers_gamerenderer_enginetypes.renderzindex.md) -- [TextAlign](../enums/frontend_renderers_gamerenderer_enginetypes.textalign.md) -- [TextAnchor](../enums/frontend_renderers_gamerenderer_enginetypes.textanchor.md) -- [UniformType](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) - -### Type aliases - -- [AttribProps](frontend_renderers_gamerenderer_enginetypes.md#attribprops) -- [HSLVec](frontend_renderers_gamerenderer_enginetypes.md#hslvec) -- [RGBAVec](frontend_renderers_gamerenderer_enginetypes.md#rgbavec) -- [RGBVec](frontend_renderers_gamerenderer_enginetypes.md#rgbvec) -- [Scaling](frontend_renderers_gamerenderer_enginetypes.md#scaling) -- [Translation](frontend_renderers_gamerenderer_enginetypes.md#translation) -- [UniformJSType](frontend_renderers_gamerenderer_enginetypes.md#uniformjstype) -- [UniformProps](frontend_renderers_gamerenderer_enginetypes.md#uniformprops) -- [Vec3](frontend_renderers_gamerenderer_enginetypes.md#vec3) - -## Type aliases - -### AttribProps - -Ƭ **AttribProps**: _object_ - -#### Type declaration - -| Name | Type | -| :---------- | :--------------------------------------------------------------------------------- | -| `dim` | _number_ | -| `name` | _string_ | -| `normalize` | _boolean_ | -| `type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | - ---- - -### HSLVec - -Ƭ **HSLVec**: [*number*, *number*, *number*] - ---- - -### RGBAVec - -Ƭ **RGBAVec**: [*number*, *number*, *number*, *number*] - ---- - -### RGBVec - -Ƭ **RGBVec**: [*number*, *number*, *number*] - ---- - -### Scaling - -Ƭ **Scaling**: _object_ - -#### Type declaration - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | - ---- - -### Translation - -Ƭ **Translation**: _object_ - -#### Type declaration - -| Name | Type | -| :--- | :------- | -| `x` | _number_ | -| `y` | _number_ | - ---- - -### UniformJSType - -Ƭ **UniformJSType**: mat4 \| mat3 \| _number_ \| [_Vec3_](frontend_renderers_gamerenderer_enginetypes.md#vec3) - ---- - -### UniformProps - -Ƭ **UniformProps**: _object_ - -#### Type declaration - -| Name | Type | -| :----- | :----------------------------------------------------------------------------------- | -| `name` | _string_ | -| `type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | - ---- - -### Vec3 - -Ƭ **Vec3**: [*number*, *number*, *number*] diff --git a/docs/modules/frontend_renderers_gamerenderer_engineutils.md b/docs/modules/frontend_renderers_gamerenderer_engineutils.md deleted file mode 100644 index d766d5aa..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_engineutils.md +++ /dev/null @@ -1,26 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/EngineUtils - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_engineutils.default.md) - -### Functions - -- [glsl](frontend_renderers_gamerenderer_engineutils.md#glsl) - -## Functions - -### glsl - -▸ `Const` **glsl**(`arr`: _TemplateStringsArray_, ...`args`: _any_[]): _string_ - -#### Parameters - -| Name | Type | -| :-------- | :--------------------- | -| `arr` | _TemplateStringsArray_ | -| `...args` | _any_[] | - -**Returns:** _string_ diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_asteroidrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_asteroidrenderer.md deleted file mode 100644 index 89ea0a46..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_asteroidrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/AsteroidRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_asteroidrenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_backgroundrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_backgroundrenderer.md deleted file mode 100644 index 5e77e750..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_backgroundrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/BackgroundRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_backgroundrenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_beltrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_beltrenderer.md deleted file mode 100644 index 345054e2..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_beltrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/BeltRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_beltrenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_blackdomainrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_blackdomainrenderer.md deleted file mode 100644 index 7fbb2c47..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_blackdomainrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/BlackDomainRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_blackdomainrenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_circlerenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_circlerenderer.md deleted file mode 100644 index f4a25478..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_circlerenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/CircleRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_circlerenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_linerenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_linerenderer.md deleted file mode 100644 index 445bb081..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_linerenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/LineRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_linerenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_maskrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_maskrenderer.md deleted file mode 100644 index 31f74db0..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_maskrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/MaskRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_maskrenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_minebodyrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_minebodyrenderer.md deleted file mode 100644 index 715f6ede..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_minebodyrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/MineBodyRenderer - -## Table of contents - -### Classes - -- [MineBodyRenderer](../classes/frontend_renderers_gamerenderer_entities_minebodyrenderer.minebodyrenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_minerenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_minerenderer.md deleted file mode 100644 index 1b30187e..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_minerenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/MineRenderer - -## Table of contents - -### Classes - -- [MineRenderer](../classes/frontend_renderers_gamerenderer_entities_minerenderer.minerenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_perlinrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_perlinrenderer.md deleted file mode 100644 index bccf7995..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_perlinrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/PerlinRenderer - -## Table of contents - -### Classes - -- [PerlinRenderer](../classes/frontend_renderers_gamerenderer_entities_perlinrenderer.perlinrenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_perlinutils.md b/docs/modules/frontend_renderers_gamerenderer_entities_perlinutils.md deleted file mode 100644 index f3f43ca5..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_perlinutils.md +++ /dev/null @@ -1,139 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/PerlinUtils - -## Table of contents - -### Enumerations - -- [PerlinOctave](../enums/frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md) - -### Type aliases - -- [GridPoint](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) -- [PerlinRand](frontend_renderers_gamerenderer_entities_perlinutils.md#perlinrand) - -### Functions - -- [getCachedGradient](frontend_renderers_gamerenderer_entities_perlinutils.md#getcachedgradient) -- [getGridPoint](frontend_renderers_gamerenderer_entities_perlinutils.md#getgridpoint) -- [getPerlinChunks](frontend_renderers_gamerenderer_entities_perlinutils.md#getperlinchunks) -- [isGridPoint](frontend_renderers_gamerenderer_entities_perlinutils.md#isgridpoint) -- [right](frontend_renderers_gamerenderer_entities_perlinutils.md#right) -- [up](frontend_renderers_gamerenderer_entities_perlinutils.md#up) -- [valueOf](frontend_renderers_gamerenderer_entities_perlinutils.md#valueof) - -## Type aliases - -### GridPoint - -Ƭ **GridPoint**: WorldCoords & { `__value`: _never_ } - ---- - -### PerlinRand - -Ƭ **PerlinRand**: _ReturnType_<_typeof_ rand\> - -## Functions - -### getCachedGradient - -▸ **getCachedGradient**(`coords`: [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint), `config`: PerlinConfig, `pow`: [_PerlinOctave_](../enums/frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md)): Vector - -#### Parameters - -| Name | Type | -| :------- | :---------------------------------------------------------------------------------------------- | -| `coords` | [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) | -| `config` | PerlinConfig | -| `pow` | [_PerlinOctave_](../enums/frontend_renderers_gamerenderer_entities_perlinutils.perlinoctave.md) | - -**Returns:** Vector - ---- - -### getGridPoint - -▸ **getGridPoint**(`bottomLeft`: WorldCoords, `scale`: _number_): [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) - -#### Parameters - -| Name | Type | -| :----------- | :---------- | -| `bottomLeft` | WorldCoords | -| `scale` | _number_ | - -**Returns:** [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) - ---- - -### getPerlinChunks - -▸ **getPerlinChunks**(`footprint`: [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md), `lengthScale`: _number_): _Iterable_<[_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)\> - -#### Parameters - -| Name | Type | -| :------------ | :------------------------------------------------------------------ | -| `footprint` | [_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md) | -| `lengthScale` | _number_ | - -**Returns:** _Iterable_<[_Rectangle_](../interfaces/_types_global_globaltypes.rectangle.md)\> - ---- - -### isGridPoint - -▸ **isGridPoint**(`coords`: WorldCoords, `scale`: _number_): coords is GridPoint - -#### Parameters - -| Name | Type | -| :------- | :---------- | -| `coords` | WorldCoords | -| `scale` | _number_ | - -**Returns:** coords is GridPoint - ---- - -### right - -▸ **right**(`topLeft`: [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint), `scale`: _number_): [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------------------------- | -| `topLeft` | [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) | -| `scale` | _number_ | - -**Returns:** [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) - ---- - -### up - -▸ **up**(`topLeft`: [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint), `scale`: _number_): [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------------------------- | -| `topLeft` | [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) | -| `scale` | _number_ | - -**Returns:** [_GridPoint_](frontend_renderers_gamerenderer_entities_perlinutils.md#gridpoint) - ---- - -### valueOf - -▸ `Const` **valueOf**(`v`: Vector): [*number*, *number*] - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `v` | Vector | - -**Returns:** [*number*, *number*] diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_planetrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_planetrenderer.md deleted file mode 100644 index 6dd03720..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_planetrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/PlanetRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_planetrenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_planetrendermanager.md b/docs/modules/frontend_renderers_gamerenderer_entities_planetrendermanager.md deleted file mode 100644 index 6f900e84..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_planetrendermanager.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/PlanetRenderManager - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_planetrendermanager.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_quasarbodyrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_quasarbodyrenderer.md deleted file mode 100644 index f6d67577..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_quasarbodyrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/QuasarBodyRenderer - -## Table of contents - -### Classes - -- [QuasarBodyRenderer](../classes/frontend_renderers_gamerenderer_entities_quasarbodyrenderer.quasarbodyrenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_quasarrayrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_quasarrayrenderer.md deleted file mode 100644 index 70d54761..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_quasarrayrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/QuasarRayRenderer - -## Table of contents - -### Classes - -- [QuasarRayRenderer](../classes/frontend_renderers_gamerenderer_entities_quasarrayrenderer.quasarrayrenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_quasarrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_quasarrenderer.md deleted file mode 100644 index 10b5df38..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_quasarrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/QuasarRenderer - -## Table of contents - -### Classes - -- [QuasarRenderer](../classes/frontend_renderers_gamerenderer_entities_quasarrenderer.quasarrenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_rectrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_rectrenderer.md deleted file mode 100644 index c6c7cd7a..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_rectrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/RectRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_rectrenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_ringrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_ringrenderer.md deleted file mode 100644 index 6d2777a8..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_ringrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/RingRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_ringrenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_ruinsrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_ruinsrenderer.md deleted file mode 100644 index c940174b..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_ruinsrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/RuinsRenderer - -## Table of contents - -### Classes - -- [RuinsRenderer](../classes/frontend_renderers_gamerenderer_entities_ruinsrenderer.ruinsrenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_spacetimeriprenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_spacetimeriprenderer.md deleted file mode 100644 index af147424..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_spacetimeriprenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/SpacetimeRipRenderer - -## Table of contents - -### Classes - -- [SpacetimeRipRenderer](../classes/frontend_renderers_gamerenderer_entities_spacetimeriprenderer.spacetimeriprenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_spriterenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_spriterenderer.md deleted file mode 100644 index 60cfa378..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_spriterenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/SpriteRenderer - -## Table of contents - -### Classes - -- [SpriteRenderer](../classes/frontend_renderers_gamerenderer_entities_spriterenderer.spriterenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_textrenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_textrenderer.md deleted file mode 100644 index 069d177c..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_textrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/TextRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_textrenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_voyagerenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_voyagerenderer.md deleted file mode 100644 index 0acdb4c8..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_voyagerenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/VoyageRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_entities_voyagerenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_entities_wormholerenderer.md b/docs/modules/frontend_renderers_gamerenderer_entities_wormholerenderer.md deleted file mode 100644 index f525b039..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_entities_wormholerenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Entities/WormholeRenderer - -## Table of contents - -### Classes - -- [WormholeRenderer](../classes/frontend_renderers_gamerenderer_entities_wormholerenderer.wormholerenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_overlay2drenderer.md b/docs/modules/frontend_renderers_gamerenderer_overlay2drenderer.md deleted file mode 100644 index 055eb042..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_overlay2drenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Overlay2DRenderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_overlay2drenderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_asteroidprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_asteroidprogram.md deleted file mode 100644 index 87838778..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_asteroidprogram.md +++ /dev/null @@ -1,53 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/AsteroidProgram - -## Table of contents - -### Variables - -- [ASTEROID_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_asteroidprogram.md#asteroid_program_definition) - -## Variables - -### ASTEROID_PROGRAM_DEFINITION - -• `Const` **ASTEROID_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.radius` | _object_ | -| `attribs.radius.dim` | _number_ | -| `attribs.radius.name` | _string_ | -| `attribs.radius.normalize` | _boolean_ | -| `attribs.radius.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.seed` | _object_ | -| `attribs.seed.dim` | _number_ | -| `attribs.seed.name` | _string_ | -| `attribs.seed.normalize` | _boolean_ | -| `attribs.seed.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.theta` | _object_ | -| `attribs.theta.dim` | _number_ | -| `attribs.theta.name` | _string_ | -| `attribs.theta.normalize` | _boolean_ | -| `attribs.theta.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.now` | _object_ | -| `uniforms.now.name` | _string_ | -| `uniforms.now.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_beltprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_beltprogram.md deleted file mode 100644 index c3015ca0..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_beltprogram.md +++ /dev/null @@ -1,76 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/BeltProgram - -## Table of contents - -### Type aliases - -- [BeltProps](frontend_renderers_gamerenderer_programs_beltprogram.md#beltprops) - -### Variables - -- [BELT_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_beltprogram.md#belt_program_definition) - -### Functions - -- [propsFromIdx](frontend_renderers_gamerenderer_programs_beltprogram.md#propsfromidx) - -## Type aliases - -### BeltProps - -Ƭ **BeltProps**: [*number*, *number*, *number*, *number*] - -## Variables - -### BELT_PROGRAM_DEFINITION - -• `Const` **BELT_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.props` | _object_ | -| `attribs.props.dim` | _number_ | -| `attribs.props.name` | _string_ | -| `attribs.props.normalize` | _boolean_ | -| `attribs.props.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.now` | _object_ | -| `uniforms.now.name` | _string_ | -| `uniforms.now.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | - -## Functions - -### propsFromIdx - -▸ `Const` **propsFromIdx**(`idx`: _number_): [_BeltProps_](frontend_renderers_gamerenderer_programs_beltprogram.md#beltprops) - -#### Parameters - -| Name | Type | -| :---- | :------- | -| `idx` | _number_ | - -**Returns:** [_BeltProps_](frontend_renderers_gamerenderer_programs_beltprogram.md#beltprops) diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_blackdomainprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_blackdomainprogram.md deleted file mode 100644 index dbfe2599..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_blackdomainprogram.md +++ /dev/null @@ -1,38 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/BlackDomainProgram - -## Table of contents - -### Variables - -- [BLACKDOMAIN_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_blackdomainprogram.md#blackdomain_program_definition) - -## Variables - -### BLACKDOMAIN_PROGRAM_DEFINITION - -• `Const` **BLACKDOMAIN_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.now` | _object_ | -| `uniforms.now.name` | _string_ | -| `uniforms.now.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_circleprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_circleprogram.md deleted file mode 100644 index 6c31e96b..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_circleprogram.md +++ /dev/null @@ -1,45 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/CircleProgram - -## Table of contents - -### Variables - -- [CIRCLE_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_circleprogram.md#circle_program_definition) - -## Variables - -### CIRCLE_PROGRAM_DEFINITION - -• `Const` **CIRCLE_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.eps` | _object_ | -| `attribs.eps.dim` | _number_ | -| `attribs.eps.name` | _string_ | -| `attribs.eps.normalize` | _boolean_ | -| `attribs.eps.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.props` | _object_ | -| `attribs.props.dim` | _number_ | -| `attribs.props.name` | _string_ | -| `attribs.props.normalize` | _boolean_ | -| `attribs.props.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_glassprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_glassprogram.md deleted file mode 100644 index 028ce534..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_glassprogram.md +++ /dev/null @@ -1,69 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/GlassProgram - -## Table of contents - -### Type aliases - -- [GlassProgramWithUniforms](frontend_renderers_gamerenderer_programs_glassprogram.md#glassprogramwithuniforms) -- [GlassUniforms](frontend_renderers_gamerenderer_programs_glassprogram.md#glassuniforms) - -### Variables - -- [glassPosProps](frontend_renderers_gamerenderer_programs_glassprogram.md#glassposprops) -- [glassTexProps](frontend_renderers_gamerenderer_programs_glassprogram.md#glasstexprops) - -### Functions - -- [getGlassProgramAndUniforms](frontend_renderers_gamerenderer_programs_glassprogram.md#getglassprogramanduniforms) - -## Type aliases - -### GlassProgramWithUniforms - -Ƭ **GlassProgramWithUniforms**: _object_ - -#### Type declaration - -| Name | Type | -| :--------- | :---------------------------------------------------------------------------------------- | -| `program` | WebGLProgram | -| `uniforms` | [_GlassUniforms_](frontend_renderers_gamerenderer_programs_glassprogram.md#glassuniforms) | - ---- - -### GlassUniforms - -Ƭ **GlassUniforms**: _object_ - -#### Type declaration - -| Name | Type | -| :-------- | :----------------------------- | -| `matrix` | WebGLUniformLocation \| `null` | -| `texture` | WebGLUniformLocation \| `null` | - -## Variables - -### glassPosProps - -• `Const` **glassPosProps**: [_AttribProps_](frontend_renderers_gamerenderer_enginetypes.md#attribprops) - ---- - -### glassTexProps - -• `Const` **glassTexProps**: [_AttribProps_](frontend_renderers_gamerenderer_enginetypes.md#attribprops) - -## Functions - -### getGlassProgramAndUniforms - -▸ `Const` **getGlassProgramAndUniforms**(`gl`: WebGL2RenderingContext): [_GlassProgramWithUniforms_](frontend_renderers_gamerenderer_programs_glassprogram.md#glassprogramwithuniforms) - -#### Parameters - -| Name | Type | -| :--- | :--------------------- | -| `gl` | WebGL2RenderingContext | - -**Returns:** [_GlassProgramWithUniforms_](frontend_renderers_gamerenderer_programs_glassprogram.md#glassprogramwithuniforms) diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_lineprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_lineprogram.md deleted file mode 100644 index 9c005f32..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_lineprogram.md +++ /dev/null @@ -1,40 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/LineProgram - -## Table of contents - -### Variables - -- [LINE_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_lineprogram.md#line_program_definition) - -## Variables - -### LINE_PROGRAM_DEFINITION - -• `Const` **LINE_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.dist` | _object_ | -| `attribs.dist.dim` | _number_ | -| `attribs.dist.name` | _string_ | -| `attribs.dist.normalize` | _boolean_ | -| `attribs.dist.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_maskprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_maskprogram.md deleted file mode 100644 index 83c8da19..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_maskprogram.md +++ /dev/null @@ -1,30 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/MaskProgram - -## Table of contents - -### Variables - -- [MASK_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_maskprogram.md#mask_program_definition) - -## Variables - -### MASK_PROGRAM_DEFINITION - -• `Const` **MASK_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_mineprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_mineprogram.md deleted file mode 100644 index 1ca456f5..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_mineprogram.md +++ /dev/null @@ -1,53 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/MineProgram - -## Table of contents - -### Variables - -- [MINE_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_mineprogram.md#mine_program_definition) - -## Variables - -### MINE_PROGRAM_DEFINITION - -• `Const` **MINE_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.offset` | _object_ | -| `attribs.offset.dim` | _number_ | -| `attribs.offset.name` | _string_ | -| `attribs.offset.normalize` | _boolean_ | -| `attribs.offset.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.radius` | _object_ | -| `attribs.radius.dim` | _number_ | -| `attribs.radius.name` | _string_ | -| `attribs.radius.normalize` | _boolean_ | -| `attribs.radius.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.seed` | _object_ | -| `attribs.seed.dim` | _number_ | -| `attribs.seed.name` | _string_ | -| `attribs.seed.normalize` | _boolean_ | -| `attribs.seed.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.now` | _object_ | -| `uniforms.now.name` | _string_ | -| `uniforms.now.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_noiseprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_noiseprogram.md deleted file mode 100644 index d1b20aca..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_noiseprogram.md +++ /dev/null @@ -1 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/NoiseProgram diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_perlinprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_perlinprogram.md deleted file mode 100644 index e165012f..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_perlinprogram.md +++ /dev/null @@ -1,71 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/PerlinProgram - -## Table of contents - -### Variables - -- [PERLIN_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_perlinprogram.md#perlin_program_definition) - -## Variables - -### PERLIN_PROGRAM_DEFINITION - -• `Const` **PERLIN_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :------------------------------ | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.p0botGrad` | _object_ | -| `attribs.p0botGrad.dim` | _number_ | -| `attribs.p0botGrad.name` | _string_ | -| `attribs.p0botGrad.normalize` | _boolean_ | -| `attribs.p0botGrad.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.p0topGrad` | _object_ | -| `attribs.p0topGrad.dim` | _number_ | -| `attribs.p0topGrad.name` | _string_ | -| `attribs.p0topGrad.normalize` | _boolean_ | -| `attribs.p0topGrad.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.p1botGrad` | _object_ | -| `attribs.p1botGrad.dim` | _number_ | -| `attribs.p1botGrad.name` | _string_ | -| `attribs.p1botGrad.normalize` | _boolean_ | -| `attribs.p1botGrad.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.p1topGrad` | _object_ | -| `attribs.p1topGrad.dim` | _number_ | -| `attribs.p1topGrad.name` | _string_ | -| `attribs.p1topGrad.normalize` | _boolean_ | -| `attribs.p1topGrad.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.p2botGrad` | _object_ | -| `attribs.p2botGrad.dim` | _number_ | -| `attribs.p2botGrad.name` | _string_ | -| `attribs.p2botGrad.normalize` | _boolean_ | -| `attribs.p2botGrad.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.p2topGrad` | _object_ | -| `attribs.p2topGrad.dim` | _number_ | -| `attribs.p2topGrad.name` | _string_ | -| `attribs.p2topGrad.normalize` | _boolean_ | -| `attribs.p2topGrad.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.worldCoords` | _object_ | -| `attribs.worldCoords.dim` | _number_ | -| `attribs.worldCoords.name` | _string_ | -| `attribs.worldCoords.normalize` | _boolean_ | -| `attribs.worldCoords.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.lengthScale` | _object_ | -| `uniforms.lengthScale.name` | _string_ | -| `uniforms.lengthScale.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.thresholds` | _object_ | -| `uniforms.thresholds.name` | _string_ | -| `uniforms.thresholds.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_planetprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_planetprogram.md deleted file mode 100644 index ab20130e..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_planetprogram.md +++ /dev/null @@ -1,159 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/PlanetProgram - -## Table of contents - -### Variables - -- [PLANET_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_planetprogram.md#planet_program_definition) - -### Functions - -- [beachFromPlanet](frontend_renderers_gamerenderer_programs_planetprogram.md#beachfromplanet) -- [cloudsFromPlanet](frontend_renderers_gamerenderer_programs_planetprogram.md#cloudsfromplanet) -- [distortFromPlanet](frontend_renderers_gamerenderer_programs_planetprogram.md#distortfromplanet) -- [morphFromPlanet](frontend_renderers_gamerenderer_programs_planetprogram.md#morphfromplanet) -- [octavesFromPlanet](frontend_renderers_gamerenderer_programs_planetprogram.md#octavesfromplanet) -- [propsFromPlanet](frontend_renderers_gamerenderer_programs_planetprogram.md#propsfromplanet) - -## Variables - -### PLANET_PROGRAM_DEFINITION - -• `Const` **PLANET_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.color2` | _object_ | -| `attribs.color2.dim` | _number_ | -| `attribs.color2.name` | _string_ | -| `attribs.color2.normalize` | _boolean_ | -| `attribs.color2.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.color3` | _object_ | -| `attribs.color3.dim` | _number_ | -| `attribs.color3.name` | _string_ | -| `attribs.color3.normalize` | _boolean_ | -| `attribs.color3.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.props` | _object_ | -| `attribs.props.dim` | _number_ | -| `attribs.props.name` | _string_ | -| `attribs.props.normalize` | _boolean_ | -| `attribs.props.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.props2` | _object_ | -| `attribs.props2.dim` | _number_ | -| `attribs.props2.name` | _string_ | -| `attribs.props2.normalize` | _boolean_ | -| `attribs.props2.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.time` | _object_ | -| `uniforms.time.name` | _string_ | -| `uniforms.time.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.timeMatrix` | _object_ | -| `uniforms.timeMatrix.name` | _string_ | -| `uniforms.timeMatrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | - -## Functions - -### beachFromPlanet - -▸ `Const` **beachFromPlanet**(`p`: Planet): _number_ - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** _number_ - ---- - -### cloudsFromPlanet - -▸ `Const` **cloudsFromPlanet**(`p`: Planet): _number_ - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** _number_ - ---- - -### distortFromPlanet - -▸ **distortFromPlanet**(`p`: Planet): _number_ - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** _number_ - ---- - -### morphFromPlanet - -▸ `Const` **morphFromPlanet**(`p`: Planet): _number_ - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** _number_ - ---- - -### octavesFromPlanet - -▸ `Const` **octavesFromPlanet**(`p`: Planet): _number_ - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** _number_ - ---- - -### propsFromPlanet - -▸ `Const` **propsFromPlanet**(`p`: Planet): [*number*, *number*, *number*, *number*] - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** [*number*, *number*, *number*, *number*] diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_quasarbodyprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_quasarbodyprogram.md deleted file mode 100644 index 822f17a2..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_quasarbodyprogram.md +++ /dev/null @@ -1,43 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/QuasarBodyProgram - -## Table of contents - -### Variables - -- [QUASARBODY_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_quasarbodyprogram.md#quasarbody_program_definition) - -## Variables - -### QUASARBODY_PROGRAM_DEFINITION - -• `Const` **QUASARBODY_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.time` | _object_ | -| `uniforms.time.name` | _string_ | -| `uniforms.time.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_quasarrayprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_quasarrayprogram.md deleted file mode 100644 index cfcce401..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_quasarrayprogram.md +++ /dev/null @@ -1,43 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/QuasarRayProgram - -## Table of contents - -### Variables - -- [QUASARRAY_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_quasarrayprogram.md#quasarray_program_definition) - -## Variables - -### QUASARRAY_PROGRAM_DEFINITION - -• `Const` **QUASARRAY_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.time` | _object_ | -| `uniforms.time.name` | _string_ | -| `uniforms.time.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_rectprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_rectprogram.md deleted file mode 100644 index 6dc55db9..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_rectprogram.md +++ /dev/null @@ -1,50 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/RectProgram - -## Table of contents - -### Variables - -- [RECT_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_rectprogram.md#rect_program_definition) - -## Variables - -### RECT_PROGRAM_DEFINITION - -• `Const` **RECT_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.strokeX` | _object_ | -| `attribs.strokeX.dim` | _number_ | -| `attribs.strokeX.name` | _string_ | -| `attribs.strokeX.normalize` | _boolean_ | -| `attribs.strokeX.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.strokeY` | _object_ | -| `attribs.strokeY.dim` | _number_ | -| `attribs.strokeY.name` | _string_ | -| `attribs.strokeY.normalize` | _boolean_ | -| `attribs.strokeY.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_ringprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_ringprogram.md deleted file mode 100644 index 4064f954..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_ringprogram.md +++ /dev/null @@ -1,76 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/RingProgram - -## Table of contents - -### Type aliases - -- [RingProps](frontend_renderers_gamerenderer_programs_ringprogram.md#ringprops) - -### Variables - -- [RING_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_ringprogram.md#ring_program_definition) - -### Functions - -- [propsFromIdx](frontend_renderers_gamerenderer_programs_ringprogram.md#propsfromidx) - -## Type aliases - -### RingProps - -Ƭ **RingProps**: [*number*, *number*, *number*] - -## Variables - -### RING_PROGRAM_DEFINITION - -• `Const` **RING_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.props` | _object_ | -| `attribs.props.dim` | _number_ | -| `attribs.props.name` | _string_ | -| `attribs.props.normalize` | _boolean_ | -| `attribs.props.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.now` | _object_ | -| `uniforms.now.name` | _string_ | -| `uniforms.now.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | - -## Functions - -### propsFromIdx - -▸ `Const` **propsFromIdx**(`idx`: _number_): [_RingProps_](frontend_renderers_gamerenderer_programs_ringprogram.md#ringprops) - -#### Parameters - -| Name | Type | -| :---- | :------- | -| `idx` | _number_ | - -**Returns:** [_RingProps_](frontend_renderers_gamerenderer_programs_ringprogram.md#ringprops) diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_ruinsprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_ruinsprogram.md deleted file mode 100644 index 94c7fe8f..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_ruinsprogram.md +++ /dev/null @@ -1,53 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/RuinsProgram - -## Table of contents - -### Variables - -- [RUINS_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_ruinsprogram.md#ruins_program_definition) - -## Variables - -### RUINS_PROGRAM_DEFINITION - -• `Const` **RUINS_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.props` | _object_ | -| `attribs.props.dim` | _number_ | -| `attribs.props.name` | _string_ | -| `attribs.props.normalize` | _boolean_ | -| `attribs.props.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.weights` | _object_ | -| `attribs.weights.dim` | _number_ | -| `attribs.weights.name` | _string_ | -| `attribs.weights.normalize` | _boolean_ | -| `attribs.weights.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.time` | _object_ | -| `uniforms.time.name` | _string_ | -| `uniforms.time.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_spacetimeripprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_spacetimeripprogram.md deleted file mode 100644 index fc035b42..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_spacetimeripprogram.md +++ /dev/null @@ -1,58 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/SpacetimeRipProgram - -## Table of contents - -### Variables - -- [SPACETIMERIP_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_spacetimeripprogram.md#spacetimerip_program_definition) - -## Variables - -### SPACETIMERIP_PROGRAM_DEFINITION - -• `Const` **SPACETIMERIP_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.inColor1` | _object_ | -| `attribs.inColor1.dim` | _number_ | -| `attribs.inColor1.name` | _string_ | -| `attribs.inColor1.normalize` | _boolean_ | -| `attribs.inColor1.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.inColor2` | _object_ | -| `attribs.inColor2.dim` | _number_ | -| `attribs.inColor2.name` | _string_ | -| `attribs.inColor2.normalize` | _boolean_ | -| `attribs.inColor2.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.inColor3` | _object_ | -| `attribs.inColor3.dim` | _number_ | -| `attribs.inColor3.name` | _string_ | -| `attribs.inColor3.normalize` | _boolean_ | -| `attribs.inColor3.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.time` | _object_ | -| `uniforms.time.name` | _string_ | -| `uniforms.time.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_spriteprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_spriteprogram.md deleted file mode 100644 index 62df2e1b..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_spriteprogram.md +++ /dev/null @@ -1,63 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/SpriteProgram - -## Table of contents - -### Variables - -- [SPRITE_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_spriteprogram.md#sprite_program_definition) - -## Variables - -### SPRITE_PROGRAM_DEFINITION - -• `Const` **SPRITE_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.invert` | _object_ | -| `attribs.invert.dim` | _number_ | -| `attribs.invert.name` | _string_ | -| `attribs.invert.normalize` | _boolean_ | -| `attribs.invert.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.mythic` | _object_ | -| `attribs.mythic.dim` | _number_ | -| `attribs.mythic.name` | _string_ | -| `attribs.mythic.normalize` | _boolean_ | -| `attribs.mythic.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.rectPos` | _object_ | -| `attribs.rectPos.dim` | _number_ | -| `attribs.rectPos.name` | _string_ | -| `attribs.rectPos.normalize` | _boolean_ | -| `attribs.rectPos.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.shine` | _object_ | -| `attribs.shine.dim` | _number_ | -| `attribs.shine.name` | _string_ | -| `attribs.shine.normalize` | _boolean_ | -| `attribs.shine.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.texcoord` | _object_ | -| `attribs.texcoord.dim` | _number_ | -| `attribs.texcoord.name` | _string_ | -| `attribs.texcoord.normalize` | _boolean_ | -| `attribs.texcoord.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.texture` | _object_ | -| `uniforms.texture.name` | _string_ | -| `uniforms.texture.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_programs_textprogram.md b/docs/modules/frontend_renderers_gamerenderer_programs_textprogram.md deleted file mode 100644 index e949faea..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_programs_textprogram.md +++ /dev/null @@ -1,43 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Programs/TextProgram - -## Table of contents - -### Variables - -- [TEXT_PROGRAM_DEFINITION](frontend_renderers_gamerenderer_programs_textprogram.md#text_program_definition) - -## Variables - -### TEXT_PROGRAM_DEFINITION - -• `Const` **TEXT_PROGRAM_DEFINITION**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------- | -| `attribs` | _object_ | -| `attribs.color` | _object_ | -| `attribs.color.dim` | _number_ | -| `attribs.color.name` | _string_ | -| `attribs.color.normalize` | _boolean_ | -| `attribs.color.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.position` | _object_ | -| `attribs.position.dim` | _number_ | -| `attribs.position.name` | _string_ | -| `attribs.position.normalize` | _boolean_ | -| `attribs.position.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `attribs.texcoord` | _object_ | -| `attribs.texcoord.dim` | _number_ | -| `attribs.texcoord.name` | _string_ | -| `attribs.texcoord.normalize` | _boolean_ | -| `attribs.texcoord.type` | [_AttribType_](../enums/frontend_renderers_gamerenderer_enginetypes.attribtype.md) | -| `fragmentShader` | _string_ | -| `uniforms` | _object_ | -| `uniforms.matrix` | _object_ | -| `uniforms.matrix.name` | _string_ | -| `uniforms.matrix.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `uniforms.texture` | _object_ | -| `uniforms.texture.name` | _string_ | -| `uniforms.texture.type` | [_UniformType_](../enums/frontend_renderers_gamerenderer_enginetypes.uniformtype.md) | -| `vertexShader` | _string_ | diff --git a/docs/modules/frontend_renderers_gamerenderer_renderer.md b/docs/modules/frontend_renderers_gamerenderer_renderer.md deleted file mode 100644 index 7f6a0b58..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_renderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/Renderer - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_renderer.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_texturemanager.md b/docs/modules/frontend_renderers_gamerenderer_texturemanager.md deleted file mode 100644 index 12021dfc..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_texturemanager.md +++ /dev/null @@ -1,156 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/TextureManager - -## Table of contents - -### Type aliases - -- [SpriteRectangle](frontend_renderers_gamerenderer_texturemanager.md#spriterectangle) - -### Variables - -- [ARTIFACTS_THUMBS_URL](frontend_renderers_gamerenderer_texturemanager.md#artifacts_thumbs_url) -- [ARTIFACTS_URL](frontend_renderers_gamerenderer_texturemanager.md#artifacts_url) -- [EMPTY_SET](frontend_renderers_gamerenderer_texturemanager.md#empty_set) -- [EMPTY_SPRITE](frontend_renderers_gamerenderer_texturemanager.md#empty_sprite) -- [GLASS_URL](frontend_renderers_gamerenderer_texturemanager.md#glass_url) -- [SPRITESHEET_HEIGHT_PX](frontend_renderers_gamerenderer_texturemanager.md#spritesheet_height_px) -- [SPRITESHEET_WIDTH_PX](frontend_renderers_gamerenderer_texturemanager.md#spritesheet_width_px) -- [SPRITES_HORIZONTALLY](frontend_renderers_gamerenderer_texturemanager.md#sprites_horizontally) -- [SPRITES_VERTICALLY](frontend_renderers_gamerenderer_texturemanager.md#sprites_vertically) - -### Functions - -- [isShiny](frontend_renderers_gamerenderer_texturemanager.md#isshiny) -- [loadArtifactAtlas](frontend_renderers_gamerenderer_texturemanager.md#loadartifactatlas) -- [loadArtifactThumbAtlas](frontend_renderers_gamerenderer_texturemanager.md#loadartifactthumbatlas) -- [loadSprite](frontend_renderers_gamerenderer_texturemanager.md#loadsprite) -- [spriteFromArtifact](frontend_renderers_gamerenderer_texturemanager.md#spritefromartifact) - -## Type aliases - -### SpriteRectangle - -Ƭ **SpriteRectangle**: _object_ - -#### Type declaration - -| Name | Type | -| :--- | :------- | -| `x1` | _number_ | -| `x2` | _number_ | -| `y1` | _number_ | -| `y2` | _number_ | - -## Variables - -### ARTIFACTS_THUMBS_URL - -• `Const` **ARTIFACTS_THUMBS_URL**: `"public/sprites/artifactthumbs.png"`= 'public/sprites/artifactthumbs.png' - ---- - -### ARTIFACTS_URL - -• `Const` **ARTIFACTS_URL**: `"public/sprites/artifacts.png"`= 'public/sprites/artifacts.png' - ---- - -### EMPTY_SET - -• `Const` **EMPTY_SET**: SpriteSet - ---- - -### EMPTY_SPRITE - -• `Const` **EMPTY_SPRITE**: [_SpriteRectangle_](frontend_renderers_gamerenderer_texturemanager.md#spriterectangle) - -Represents a sprite that doesn't exist. - ---- - -### GLASS_URL - -• `Const` **GLASS_URL**: `"public/sprites/glass.png"`= 'public/sprites/glass.png' - ---- - -### SPRITESHEET_HEIGHT_PX - -• `Const` **SPRITESHEET_HEIGHT_PX**: _number_ - ---- - -### SPRITESHEET_WIDTH_PX - -• `Const` **SPRITESHEET_WIDTH_PX**: _number_ - ---- - -### SPRITES_HORIZONTALLY - -• `Const` **SPRITES_HORIZONTALLY**: `16`= 16 - ---- - -### SPRITES_VERTICALLY - -• `Const` **SPRITES_VERTICALLY**: `16`= 16 - -## Functions - -### isShiny - -▸ **isShiny**(`rarity`: ArtifactRarity): _boolean_ - -#### Parameters - -| Name | Type | -| :------- | :------------- | -| `rarity` | ArtifactRarity | - -**Returns:** _boolean_ - ---- - -### loadArtifactAtlas - -▸ **loadArtifactAtlas**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### loadArtifactThumbAtlas - -▸ **loadArtifactThumbAtlas**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### loadSprite - -▸ **loadSprite**(`imageUrl`: _string_): _Promise_ - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `imageUrl` | _string_ | - -**Returns:** _Promise_ - ---- - -### spriteFromArtifact - -▸ **spriteFromArtifact**(`artifact`: [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md)): [_SpriteRectangle_](frontend_renderers_gamerenderer_texturemanager.md#spriterectangle) - -#### Parameters - -| Name | Type | -| :--------- | :-------------------------------------------------------------------------------------- | -| `artifact` | [_RenderedArtifact_](../interfaces/backend_gamelogic_artifactutils.renderedartifact.md) | - -**Returns:** [_SpriteRectangle_](frontend_renderers_gamerenderer_texturemanager.md#spriterectangle) diff --git a/docs/modules/frontend_renderers_gamerenderer_uirenderer.md b/docs/modules/frontend_renderers_gamerenderer_uirenderer.md deleted file mode 100644 index 126973ef..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_uirenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/UIRenderer - -## Table of contents - -### Classes - -- [UIRenderer](../classes/frontend_renderers_gamerenderer_uirenderer.uirenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_webgl_attribarray.md b/docs/modules/frontend_renderers_gamerenderer_webgl_attribarray.md deleted file mode 100644 index aef658bd..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_webgl_attribarray.md +++ /dev/null @@ -1,17 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/WebGL/AttribArray - -## Table of contents - -### Classes - -- [AttribArray](../classes/frontend_renderers_gamerenderer_webgl_attribarray.attribarray.md) - -### Type aliases - -- [GLArray](frontend_renderers_gamerenderer_webgl_attribarray.md#glarray) - -## Type aliases - -### GLArray - -Ƭ **GLArray**: Float32Array \| Uint8Array diff --git a/docs/modules/frontend_renderers_gamerenderer_webgl_attribmanager.md b/docs/modules/frontend_renderers_gamerenderer_webgl_attribmanager.md deleted file mode 100644 index 94238d9b..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_webgl_attribmanager.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/WebGL/AttribManager - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_webgl_attribmanager.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_webgl_gameglmanager.md b/docs/modules/frontend_renderers_gamerenderer_webgl_gameglmanager.md deleted file mode 100644 index bfd8fc74..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_webgl_gameglmanager.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/WebGL/GameGLManager - -## Table of contents - -### Classes - -- [GameGLManager](../classes/frontend_renderers_gamerenderer_webgl_gameglmanager.gameglmanager.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_webgl_genericrenderer.md b/docs/modules/frontend_renderers_gamerenderer_webgl_genericrenderer.md deleted file mode 100644 index 1ca9bdbf..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_webgl_genericrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/WebGL/GenericRenderer - -## Table of contents - -### Classes - -- [GenericRenderer](../classes/frontend_renderers_gamerenderer_webgl_genericrenderer.genericrenderer.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_webgl_programutils.md b/docs/modules/frontend_renderers_gamerenderer_webgl_programutils.md deleted file mode 100644 index 74d3ef25..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_webgl_programutils.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/WebGL/ProgramUtils - -## Table of contents - -### Classes - -- [default](../classes/frontend_renderers_gamerenderer_webgl_programutils.default.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_webgl_shadermixins.md b/docs/modules/frontend_renderers_gamerenderer_webgl_shadermixins.md deleted file mode 100644 index f04dbf87..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_webgl_shadermixins.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/WebGL/ShaderMixins - -## Table of contents - -### Classes - -- [ShaderMixins](../classes/frontend_renderers_gamerenderer_webgl_shadermixins.shadermixins.md) diff --git a/docs/modules/frontend_renderers_gamerenderer_webgl_webgllibtypes.md b/docs/modules/frontend_renderers_gamerenderer_webgl_webgllibtypes.md deleted file mode 100644 index 958193ee..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_webgl_webgllibtypes.md +++ /dev/null @@ -1,72 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/WebGL/WebGLLibTypes - -## Table of contents - -### Interfaces - -- [Attributes](../interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.attributes.md) -- [Uniforms](../interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.uniforms.md) - -### Type aliases - -- [AttributeSetters](frontend_renderers_gamerenderer_webgl_webgllibtypes.md#attributesetters) -- [CompiledProgram](frontend_renderers_gamerenderer_webgl_webgllibtypes.md#compiledprogram) -- [ProgramInfo](frontend_renderers_gamerenderer_webgl_webgllibtypes.md#programinfo) -- [UniformSetters](frontend_renderers_gamerenderer_webgl_webgllibtypes.md#uniformsetters) - -## Type aliases - -### AttributeSetters - -Ƭ **AttributeSetters**: { [key in keyof U]: function} - -#### Type parameters - -| Name | Type | -| :--- | :---------------------------------------------------------------------------------------------- | -| `U` | [_Attributes_](../interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.attributes.md) | - ---- - -### CompiledProgram - -Ƭ **CompiledProgram**: _object_ - -#### Type parameters - -| Name | Type | -| :--- | :------------------------------------------------------------------------------------------ | -| `U` | [_Uniforms_](../interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.uniforms.md) | - -#### Type declaration - -| Name | Type | -| :----------- | :-------------------------------------------------------------------------------------------- | -| `program` | WebGLProgram | -| `setUniform` | [_UniformSetters_](frontend_renderers_gamerenderer_webgl_webgllibtypes.md#uniformsetters) | - ---- - -### ProgramInfo - -Ƭ **ProgramInfo**: _object_ - -#### Type declaration - -| Name | Type | -| :------------- | :------------------------------------------------------------------------------------------ | -| `fragShader` | _string_ | -| `uniforms` | [_Uniforms_](../interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.uniforms.md) | -| `vertexShader` | _string_ | - ---- - -### UniformSetters - -Ƭ **UniformSetters**: { [key in keyof U]: function} - -#### Type parameters - -| Name | Type | -| :--- | :------------------------------------------------------------------------------------------ | -| `U` | [_Uniforms_](../interfaces/frontend_renderers_gamerenderer_webgl_webgllibtypes.uniforms.md) | diff --git a/docs/modules/frontend_renderers_gamerenderer_webgl_webglmanager.md b/docs/modules/frontend_renderers_gamerenderer_webgl_webglmanager.md deleted file mode 100644 index 0459eb60..00000000 --- a/docs/modules/frontend_renderers_gamerenderer_webgl_webglmanager.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GameRenderer/WebGL/WebGLManager - -## Table of contents - -### Classes - -- [WebGLManager](../classes/frontend_renderers_gamerenderer_webgl_webglmanager.webglmanager.md) diff --git a/docs/modules/frontend_renderers_gifrenderer.md b/docs/modules/frontend_renderers_gifrenderer.md deleted file mode 100644 index 51b3b1c2..00000000 --- a/docs/modules/frontend_renderers_gifrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/GifRenderer - -## Table of contents - -### Classes - -- [GifRenderer](../classes/frontend_renderers_gifrenderer.gifrenderer.md) diff --git a/docs/modules/frontend_renderers_landingpagecanvas.md b/docs/modules/frontend_renderers_landingpagecanvas.md deleted file mode 100644 index 213a5b18..00000000 --- a/docs/modules/frontend_renderers_landingpagecanvas.md +++ /dev/null @@ -1,24 +0,0 @@ -# Module: Frontend/Renderers/LandingPageCanvas - -## Table of contents - -### Functions - -- [LandingPageBackground](frontend_renderers_landingpagecanvas.md#landingpagebackground) -- [default](frontend_renderers_landingpagecanvas.md#default) - -## Functions - -### LandingPageBackground - -▸ **LandingPageBackground**(): _Element_ - -**Returns:** _Element_ - ---- - -### default - -▸ **default**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_renderers_planetscaperenderer_pathprogram.md b/docs/modules/frontend_renderers_planetscaperenderer_pathprogram.md deleted file mode 100644 index 2d41c4e8..00000000 --- a/docs/modules/frontend_renderers_planetscaperenderer_pathprogram.md +++ /dev/null @@ -1,68 +0,0 @@ -# Module: Frontend/Renderers/PlanetscapeRenderer/PathProgram - -## Table of contents - -### Type aliases - -- [PathProgramWithUniforms](frontend_renderers_planetscaperenderer_pathprogram.md#pathprogramwithuniforms) -- [ScapeUniforms](frontend_renderers_planetscaperenderer_pathprogram.md#scapeuniforms) - -### Variables - -- [scapeColorProps](frontend_renderers_planetscaperenderer_pathprogram.md#scapecolorprops) -- [scapePosProps](frontend_renderers_planetscaperenderer_pathprogram.md#scapeposprops) - -### Functions - -- [getPathProgramAndUniforms](frontend_renderers_planetscaperenderer_pathprogram.md#getpathprogramanduniforms) - -## Type aliases - -### PathProgramWithUniforms - -Ƭ **PathProgramWithUniforms**: _object_ - -#### Type declaration - -| Name | Type | -| :--------- | :------------------------------------------------------------------------------------- | -| `program` | WebGLProgram | -| `uniforms` | [_ScapeUniforms_](frontend_renderers_planetscaperenderer_pathprogram.md#scapeuniforms) | - ---- - -### ScapeUniforms - -Ƭ **ScapeUniforms**: _object_ - -#### Type declaration - -| Name | Type | -| :------- | :----------------------------- | -| `matrix` | WebGLUniformLocation \| `null` | - -## Variables - -### scapeColorProps - -• `Const` **scapeColorProps**: [_AttribProps_](frontend_renderers_gamerenderer_enginetypes.md#attribprops) - ---- - -### scapePosProps - -• `Const` **scapePosProps**: [_AttribProps_](frontend_renderers_gamerenderer_enginetypes.md#attribprops) - -## Functions - -### getPathProgramAndUniforms - -▸ `Const` **getPathProgramAndUniforms**(`gl`: WebGL2RenderingContext): [_PathProgramWithUniforms_](frontend_renderers_planetscaperenderer_pathprogram.md#pathprogramwithuniforms) - -#### Parameters - -| Name | Type | -| :--- | :--------------------- | -| `gl` | WebGL2RenderingContext | - -**Returns:** [_PathProgramWithUniforms_](frontend_renderers_planetscaperenderer_pathprogram.md#pathprogramwithuniforms) diff --git a/docs/modules/frontend_renderers_planetscaperenderer_pathrenderer.md b/docs/modules/frontend_renderers_planetscaperenderer_pathrenderer.md deleted file mode 100644 index 38a40823..00000000 --- a/docs/modules/frontend_renderers_planetscaperenderer_pathrenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/PlanetscapeRenderer/PathRenderer - -## Table of contents - -### Classes - -- [PathRenderer](../classes/frontend_renderers_planetscaperenderer_pathrenderer.pathrenderer.md) diff --git a/docs/modules/frontend_renderers_planetscaperenderer_planeticons.md b/docs/modules/frontend_renderers_planetscaperenderer_planeticons.md deleted file mode 100644 index 9dfd693e..00000000 --- a/docs/modules/frontend_renderers_planetscaperenderer_planeticons.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Renderers/PlanetscapeRenderer/PlanetIcons - -## Table of contents - -### Functions - -- [PlanetIcons](frontend_renderers_planetscaperenderer_planeticons.md#planeticons) - -## Functions - -### PlanetIcons - -▸ **PlanetIcons**(`__namedParameters`: { `planet`: Planet \| _undefined_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | Planet \| _undefined_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_renderers_planetscaperenderer_planetscape.md b/docs/modules/frontend_renderers_planetscaperenderer_planetscape.md deleted file mode 100644 index 6e86d663..00000000 --- a/docs/modules/frontend_renderers_planetscaperenderer_planetscape.md +++ /dev/null @@ -1,39 +0,0 @@ -# Module: Frontend/Renderers/PlanetscapeRenderer/PlanetScape - -## Table of contents - -### Variables - -- [SCAPE_HEIGHT](frontend_renderers_planetscaperenderer_planetscape.md#scape_height) -- [SCAPE_WIDTH](frontend_renderers_planetscaperenderer_planetscape.md#scape_width) - -### Functions - -- [PlanetScape](frontend_renderers_planetscaperenderer_planetscape.md#planetscape) - -## Variables - -### SCAPE_HEIGHT - -• `Const` **SCAPE_HEIGHT**: `150`= 150 - ---- - -### SCAPE_WIDTH - -• `Const` **SCAPE_WIDTH**: `450`= 450 - -## Functions - -### PlanetScape - -▸ **PlanetScape**(`__namedParameters`: { `wrapper`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------- | :----------------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.wrapper` | [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_renderers_planetscaperenderer_planetscaperenderer.md b/docs/modules/frontend_renderers_planetscaperenderer_planetscaperenderer.md deleted file mode 100644 index fb182bbf..00000000 --- a/docs/modules/frontend_renderers_planetscaperenderer_planetscaperenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Renderers/PlanetscapeRenderer/PlanetScapeRenderer - -## Table of contents - -### Classes - -- [PlanetscapeRenderer](../classes/frontend_renderers_planetscaperenderer_planetscaperenderer.planetscaperenderer.md) diff --git a/docs/modules/frontend_styles_colors.md b/docs/modules/frontend_styles_colors.md deleted file mode 100644 index bfccc77c..00000000 --- a/docs/modules/frontend_styles_colors.md +++ /dev/null @@ -1,29 +0,0 @@ -# Module: Frontend/Styles/colors - -## Table of contents - -### Properties - -- [default](frontend_styles_colors.md#default) - -## Properties - -### default - -• **default**: _object_ - -#### Type declaration - -| Name | Type | -| :--------- | :------- | -| `black` | _string_ | -| `gray-100` | _string_ | -| `gray-200` | _string_ | -| `gray-300` | _string_ | -| `gray-400` | _string_ | -| `gray-500` | _string_ | -| `gray-600` | _string_ | -| `gray-700` | _string_ | -| `gray-800` | _string_ | -| `gray-900` | _string_ | -| `white` | _string_ | diff --git a/docs/modules/frontend_styles_dfstyles.md b/docs/modules/frontend_styles_dfstyles.md deleted file mode 100644 index 1c7715df..00000000 --- a/docs/modules/frontend_styles_dfstyles.md +++ /dev/null @@ -1,88 +0,0 @@ -# Module: Frontend/Styles/dfstyles - -## Table of contents - -### Variables - -- [ARTIFACT_ROW_H](frontend_styles_dfstyles.md#artifact_row_h) -- [SPACE_TYPE_COLORS](frontend_styles_dfstyles.md#space_type_colors) -- [default](frontend_styles_dfstyles.md#default) - -## Variables - -### ARTIFACT_ROW_H - -• `Const` **ARTIFACT_ROW_H**: `48`= 48 - ---- - -### SPACE_TYPE_COLORS - -• `Const` **SPACE_TYPE_COLORS**: _Record_ - ---- - -### default - -• `Const` **default**: _object_ - -#### Type declaration - -| Name | Type | -| :----------------------------- | :------------------------- | -| `borderRadius` | _string_ | -| `colors` | _object_ | -| `colors.artifactBackground` | _string_ | -| `colors.background` | _string_ | -| `colors.backgrounddark` | _string_ | -| `colors.backgroundlight` | _string_ | -| `colors.backgroundlighter` | _string_ | -| `colors.blueBackground` | _string_ | -| `colors.dfblue` | _string_ | -| `colors.dfgreen` | _string_ | -| `colors.dfgreendark` | _string_ | -| `colors.dfgreenlight` | _string_ | -| `colors.dfred` | _string_ | -| `colors.dfyellow` | _string_ | -| `colors.icons` | _object_ | -| `colors.icons.blog` | _string_ | -| `colors.icons.discord` | _string_ | -| `colors.icons.email` | _string_ | -| `colors.icons.github` | _string_ | -| `colors.icons.twitter` | _string_ | -| `colors.subbertext` | _string_ | -| `colors.subbesttext` | _string_ | -| `colors.subtext` | _string_ | -| `colors.text` | _string_ | -| `fontH1` | _string_ | -| `fontH1S` | _string_ | -| `fontH2` | _string_ | -| `fontSize` | _string_ | -| `fontSizeS` | _string_ | -| `fontSizeXS` | _string_ | -| `game` | _object_ | -| `game.bonuscolors` | _object_ | -| `game.bonuscolors.def` | _string_ | -| `game.bonuscolors.energyCap` | _string_ | -| `game.bonuscolors.energyGro` | _string_ | -| `game.bonuscolors.range` | _string_ | -| `game.bonuscolors.speed` | _string_ | -| `game.canvasbg` | _string_ | -| `game.fontSize` | _string_ | -| `game.rangecolors` | _object_ | -| `game.rangecolors.color100` | _string_ | -| `game.rangecolors.color25` | _string_ | -| `game.rangecolors.color50` | _string_ | -| `game.rangecolors.colorenergy` | _string_ | -| `game.rangecolors.dash` | _string_ | -| `game.rangecolors.dashenergy` | _string_ | -| `game.styles` | _object_ | -| `game.styles.active` | _string_ | -| `game.styles.animProps` | _string_ | -| `game.terminalFontSize` | _string_ | -| `game.terminalWidth` | _string_ | -| `game.toolbarHeight` | _string_ | -| `prefabs` | _object_ | -| `prefabs.noselect` | FlattenSimpleInterpolation | -| `screenSizeS` | _string_ | -| `titleFont` | _string_ | diff --git a/docs/modules/frontend_styles_mixins.md b/docs/modules/frontend_styles_mixins.md deleted file mode 100644 index 168fb472..00000000 --- a/docs/modules/frontend_styles_mixins.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Styles/Mixins - -## Table of contents - -### Functions - -- [planetBackground](frontend_styles_mixins.md#planetbackground) - -## Functions - -### planetBackground - -▸ **planetBackground**(`__namedParameters`: { `planet`: Planet \| _undefined_ }): `""` \| FlattenSimpleInterpolation - -#### Parameters - -| Name | Type | -| :------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planet` | Planet \| _undefined_ | - -**Returns:** `""` \| FlattenSimpleInterpolation diff --git a/docs/modules/frontend_styles_tailwind_config.export_.md b/docs/modules/frontend_styles_tailwind_config.export_.md deleted file mode 100644 index 737e9adc..00000000 --- a/docs/modules/frontend_styles_tailwind_config.export_.md +++ /dev/null @@ -1,3 +0,0 @@ -# Namespace: export= - -[Frontend/Styles/tailwind.config](frontend_styles_tailwind_config.md).export= diff --git a/docs/modules/frontend_styles_tailwind_config.md b/docs/modules/frontend_styles_tailwind_config.md deleted file mode 100644 index e4d6f7ee..00000000 --- a/docs/modules/frontend_styles_tailwind_config.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Styles/tailwind.config - -## Table of contents - -### Namespaces - -- [export=](frontend_styles_tailwind_config.export_.md) - -### Properties - -- [export=](frontend_styles_tailwind_config.md#export=) - -## Properties - -### export= - -• **export=**: _object_ - -#### Type declaration - -| Name | Type | -| :--------- | :-------- | -| `plugins` | _never_[] | -| `theme` | _object_ | -| `variants` | _object_ | diff --git a/docs/modules/frontend_utils_apphooks.md b/docs/modules/frontend_utils_apphooks.md deleted file mode 100644 index 53a945c1..00000000 --- a/docs/modules/frontend_utils_apphooks.md +++ /dev/null @@ -1,221 +0,0 @@ -# Module: Frontend/Utils/AppHooks - -## Table of contents - -### Variables - -- [TopLevelDivProvider](frontend_utils_apphooks.md#topleveldivprovider) -- [UIManagerProvider](frontend_utils_apphooks.md#uimanagerprovider) - -### Functions - -- [useAccount](frontend_utils_apphooks.md#useaccount) -- [useActiveArtifact](frontend_utils_apphooks.md#useactiveartifact) -- [useControlDown](frontend_utils_apphooks.md#usecontroldown) -- [useHoverPlanet](frontend_utils_apphooks.md#usehoverplanet) -- [useLeaderboard](frontend_utils_apphooks.md#useleaderboard) -- [useMyArtifacts](frontend_utils_apphooks.md#usemyartifacts) -- [usePlanetArtifacts](frontend_utils_apphooks.md#useplanetartifacts) -- [usePlanetInactiveArtifacts](frontend_utils_apphooks.md#useplanetinactiveartifacts) -- [useSelectedArtifact](frontend_utils_apphooks.md#useselectedartifact) -- [useSelectedPlanet](frontend_utils_apphooks.md#useselectedplanet) -- [useTopLevelDiv](frontend_utils_apphooks.md#usetopleveldiv) -- [useTwitter](frontend_utils_apphooks.md#usetwitter) -- [useUIManager](frontend_utils_apphooks.md#useuimanager) - -## Variables - -### TopLevelDivProvider - -• **TopLevelDivProvider**: _Provider_ - ---- - -### UIManagerProvider - -• **UIManagerProvider**: _Provider_<[_default_](../classes/backend_gamelogic_gameuimanager.default.md)\> - -## Functions - -### useAccount - -▸ **useAccount**(`uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md)): EthAddress \| _undefined_ - -Get the currently used account on the client. - -#### Parameters - -| Name | Type | Description | -| :---------- | :----------------------------------------------------------------- | :------------------------ | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | instance of GameUIManager | - -**Returns:** EthAddress \| _undefined_ - ---- - -### useActiveArtifact - -▸ **useActiveArtifact**(`planet`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md), `uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md)): Artifact \| _undefined_ - -#### Parameters - -| Name | Type | -| :---------- | :----------------------------------------------------------------------------- | -| `planet` | [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | - -**Returns:** Artifact \| _undefined_ - ---- - -### useControlDown - -▸ **useControlDown**(): _boolean_ - -Return a bool that indicates if the control key is pressed. - -**Returns:** _boolean_ - ---- - -### useHoverPlanet - -▸ **useHoverPlanet**(`uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md)): [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) - -Create a subscription to the currently hovering planet. - -#### Parameters - -| Name | Type | Description | -| :---------- | :----------------------------------------------------------------- | :------------------------ | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | instance of GameUIManager | - -**Returns:** [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) - ---- - -### useLeaderboard - -▸ **useLeaderboard**(`poll?`: _number_ \| _undefined_): _object_ - -Loads the leaderboard - -#### Parameters - -| Name | Type | -| :----- | :---------------------- | -| `poll` | _number_ \| _undefined_ | - -**Returns:** _object_ - -| Name | Type | -| :------------ | :---------------------------------- | -| `error` | Error \| _undefined_ | -| `leaderboard` | AggregateLeaderboard \| _undefined_ | - ---- - -### useMyArtifacts - -▸ **useMyArtifacts**(`uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md)): [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) \| undefined\> - -#### Parameters - -| Name | Type | -| :---------- | :----------------------------------------------------------------- | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | - -**Returns:** [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) \| undefined\> - ---- - -### usePlanetArtifacts - -▸ **usePlanetArtifacts**(`planet`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md), `uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md)): Artifact[] - -#### Parameters - -| Name | Type | -| :---------- | :----------------------------------------------------------------------------- | -| `planet` | [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | - -**Returns:** Artifact[] - ---- - -### usePlanetInactiveArtifacts - -▸ **usePlanetInactiveArtifacts**(`planet`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md), `uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md)): Artifact[] - -#### Parameters - -| Name | Type | -| :---------- | :----------------------------------------------------------------------------- | -| `planet` | [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | - -**Returns:** Artifact[] - ---- - -### useSelectedArtifact - -▸ **useSelectedArtifact**(`uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md)): [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) - -Create a subscription to the currently selected artifact. - -#### Parameters - -| Name | Type | Description | -| :---------- | :----------------------------------------------------------------- | :------------------------ | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | instance of GameUIManager | - -**Returns:** [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) - ---- - -### useSelectedPlanet - -▸ **useSelectedPlanet**(`uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md)): [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) - -Create a subscription to the currently selected planet. - -#### Parameters - -| Name | Type | Description | -| :---------- | :----------------------------------------------------------------- | :------------------------ | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | instance of GameUIManager | - -**Returns:** [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) - ---- - -### useTopLevelDiv - -▸ **useTopLevelDiv**(): HTMLDivElement - -**Returns:** HTMLDivElement - ---- - -### useTwitter - -▸ **useTwitter**(`account`: EthAddress \| _undefined_, `uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md)): _string_ \| _undefined_ - -#### Parameters - -| Name | Type | -| :---------- | :----------------------------------------------------------------- | -| `account` | EthAddress \| _undefined_ | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | - -**Returns:** _string_ \| _undefined_ - ---- - -### useUIManager - -▸ **useUIManager**(): [_default_](../classes/backend_gamelogic_gameuimanager.default.md) - -**Returns:** [_default_](../classes/backend_gamelogic_gameuimanager.default.md) diff --git a/docs/modules/frontend_utils_browserchecks.md b/docs/modules/frontend_utils_browserchecks.md deleted file mode 100644 index 94542f88..00000000 --- a/docs/modules/frontend_utils_browserchecks.md +++ /dev/null @@ -1,64 +0,0 @@ -# Module: Frontend/Utils/BrowserChecks - -## Table of contents - -### Enumerations - -- [Incompatibility](../enums/frontend_utils_browserchecks.incompatibility.md) - -### Functions - -- [hasTouchscreen](frontend_utils_browserchecks.md#hastouchscreen) -- [isBrave](frontend_utils_browserchecks.md#isbrave) -- [isChrome](frontend_utils_browserchecks.md#ischrome) -- [isFirefox](frontend_utils_browserchecks.md#isfirefox) -- [isMobileOrTablet](frontend_utils_browserchecks.md#ismobileortablet) -- [unsupportedFeatures](frontend_utils_browserchecks.md#unsupportedfeatures) - -## Functions - -### hasTouchscreen - -▸ `Const` **hasTouchscreen**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### isBrave - -▸ `Const` **isBrave**(): _Promise_ - -**Returns:** _Promise_ - ---- - -### isChrome - -▸ `Const` **isChrome**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### isFirefox - -▸ `Const` **isFirefox**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### isMobileOrTablet - -▸ `Const` **isMobileOrTablet**(): _boolean_ - -**Returns:** _boolean_ - ---- - -### unsupportedFeatures - -▸ `Const` **unsupportedFeatures**(): _Promise_<[_Incompatibility_](../enums/frontend_utils_browserchecks.incompatibility.md)[]\> - -**Returns:** _Promise_<[_Incompatibility_](../enums/frontend_utils_browserchecks.incompatibility.md)[]\> diff --git a/docs/modules/frontend_utils_constants.md b/docs/modules/frontend_utils_constants.md deleted file mode 100644 index 037336e9..00000000 --- a/docs/modules/frontend_utils_constants.md +++ /dev/null @@ -1,58 +0,0 @@ -# Module: Frontend/Utils/constants - -## Table of contents - -### Enumerations - -- [GameWindowZIndex](../enums/frontend_utils_constants.gamewindowzindex.md) - -### Variables - -- [BLOCK_EXPLORER_URL](frontend_utils_constants.md#block_explorer_url) -- [HAT_SIZES](frontend_utils_constants.md#hat_sizes) -- [LOCATION_ID_UB](frontend_utils_constants.md#location_id_ub) -- [MAX_CHUNK_SIZE](frontend_utils_constants.md#max_chunk_size) -- [MIN_CHUNK_SIZE](frontend_utils_constants.md#min_chunk_size) -- [XDAI_CHAIN_ID](frontend_utils_constants.md#xdai_chain_id) - -## Variables - -### BLOCK_EXPLORER_URL - -• `Const` **BLOCK_EXPLORER_URL**: `"https://blockscout.com/poa/xdai"`= 'https://blockscout.com/poa/xdai' - ---- - -### HAT_SIZES - -• `Const` **HAT_SIZES**: _string_[] - ---- - -### LOCATION_ID_UB - -• `Const` **LOCATION_ID_UB**: BigInteger - ---- - -### MAX_CHUNK_SIZE - -• `Const` **MAX_CHUNK_SIZE**: _number_ - -**`tutorial`** to speed up the game's background rendering code, it is possible to set this value to -be a higher power of two. This means that smaller chunks will be merged into larger chunks via -the algorithms implemented in {@link ChunkUtils}. - -{@code Math.floor(Math.pow(2, 16))} should be large enough for most. - ---- - -### MIN_CHUNK_SIZE - -• `Const` **MIN_CHUNK_SIZE**: `16`= 16 - ---- - -### XDAI_CHAIN_ID - -• `Const` **XDAI_CHAIN_ID**: `100`= 100 diff --git a/docs/modules/frontend_utils_createdefinedcontext.md b/docs/modules/frontend_utils_createdefinedcontext.md deleted file mode 100644 index 5510154d..00000000 --- a/docs/modules/frontend_utils_createdefinedcontext.md +++ /dev/null @@ -1,26 +0,0 @@ -# Module: Frontend/Utils/createDefinedContext - -## Table of contents - -### Functions - -- [createDefinedContext](frontend_utils_createdefinedcontext.md#createdefinedcontext) - -## Functions - -### createDefinedContext - -▸ **createDefinedContext**(): _ContextHookWithProvider_ - -Return a hook and a provider which return a value that must be defined. Normally is difficult -because `React.createContext()` defaults to `undefined`. - -`useDefinedContext()` must be called inside of `provider`, otherwise an error will be thrown. - -#### Type parameters - -| Name | -| :--- | -| `T` | - -**Returns:** _ContextHookWithProvider_ diff --git a/docs/modules/frontend_utils_emitterhooks.md b/docs/modules/frontend_utils_emitterhooks.md deleted file mode 100644 index e9ee9d88..00000000 --- a/docs/modules/frontend_utils_emitterhooks.md +++ /dev/null @@ -1,96 +0,0 @@ -# Module: Frontend/Utils/EmitterHooks - -## Table of contents - -### Functions - -- [useEmitterSubscribe](frontend_utils_emitterhooks.md#useemittersubscribe) -- [useEmitterValue](frontend_utils_emitterhooks.md#useemittervalue) -- [useKeyPressed](frontend_utils_emitterhooks.md#usekeypressed) -- [useWrappedEmitter](frontend_utils_emitterhooks.md#usewrappedemitter) - -## Functions - -### useEmitterSubscribe - -▸ **useEmitterSubscribe**(`emitter`: [_Monomitter_](frontend_utils_monomitter.md#monomitter), `callback`: [_Callback_](frontend_utils_monomitter.md#callback)): _void_ - -Execute something on emitter callback - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :--------- | :---------------------------------------------------------- | :--------------------------- | -| `emitter` | [_Monomitter_](frontend_utils_monomitter.md#monomitter) | `Monomitter` to subscribe to | -| `callback` | [_Callback_](frontend_utils_monomitter.md#callback) | callback to subscribe | - -**Returns:** _void_ - ---- - -### useEmitterValue - -▸ **useEmitterValue**(`emitter`: [_Monomitter_](frontend_utils_monomitter.md#monomitter), `initialVal`: T): T - -Use returned value from an emitter - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :----------- | :---------------------------------------------------------- | :--------------------------- | -| `emitter` | [_Monomitter_](frontend_utils_monomitter.md#monomitter) | `Monomitter` to subscribe to | -| `initialVal` | T | initial state value | - -**Returns:** T - ---- - -### useKeyPressed - -▸ **useKeyPressed**(`keydown$`: [_Monomitter_](frontend_utils_monomitter.md#monomitter), `keyup$`: [_Monomitter_](frontend_utils_monomitter.md#monomitter)): _boolean_ - -Return a bool indicating if a key is pressed - -#### Parameters - -| Name | Type | Description | -| :--------- | :---------------------------------------------------------------------- | :----------------- | -| `keydown$` | [_Monomitter_](frontend_utils_monomitter.md#monomitter) | keydown monomitter | -| `keyup$` | [_Monomitter_](frontend_utils_monomitter.md#monomitter) | keyup monomitter | - -**Returns:** _boolean_ - ---- - -### useWrappedEmitter - -▸ **useWrappedEmitter**(`emitter`: [_Monomitter_](frontend_utils_monomitter.md#monomitter), `initialVal`: T \| _undefined_): [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) - -Use returned value from an emitter, and clone the reference - used to force an update to the UI - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :----------- | :----------------------------------------------------------------------- | :--------------------------- | -| `emitter` | [_Monomitter_](frontend_utils_monomitter.md#monomitter) | `Monomitter` to subscribe to | -| `initialVal` | T \| _undefined_ | initial state value | - -**Returns:** [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) diff --git a/docs/modules/frontend_utils_emitterutils.md b/docs/modules/frontend_utils_emitterutils.md deleted file mode 100644 index aa24160c..00000000 --- a/docs/modules/frontend_utils_emitterutils.md +++ /dev/null @@ -1,125 +0,0 @@ -# Module: Frontend/Utils/EmitterUtils - -## Table of contents - -### Functions - -- [getArtifactId](frontend_utils_emitterutils.md#getartifactid) -- [getArtifactOwner](frontend_utils_emitterutils.md#getartifactowner) -- [getObjectWithIdFromMap](frontend_utils_emitterutils.md#getobjectwithidfrommap) -- [getPlanetId](frontend_utils_emitterutils.md#getplanetid) -- [getPlanetOwner](frontend_utils_emitterutils.md#getplanetowner) -- [setObjectSyncState](frontend_utils_emitterutils.md#setobjectsyncstate) - -## Functions - -### getArtifactId - -▸ `Const` **getArtifactId**(`a`: Artifact): ArtifactId - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `a` | Artifact | - -**Returns:** ArtifactId - ---- - -### getArtifactOwner - -▸ `Const` **getArtifactOwner**(`a`: Artifact): EthAddress - -#### Parameters - -| Name | Type | -| :--- | :------- | -| `a` | Artifact | - -**Returns:** EthAddress - ---- - -### getObjectWithIdFromMap - -▸ **getObjectWithIdFromMap**(`objMap`: _Map_, `objId$`: [_Monomitter_](frontend_utils_monomitter.md#monomitter), `objUpdated$`: [_Monomitter_](frontend_utils_monomitter.md#monomitter)): [_Monomitter_](frontend_utils_monomitter.md#monomitter) - -Create a monomitter to emit objects with a given id from a cached map of ids to objects. - -#### Type parameters - -| Name | -| :---- | -| `Obj` | -| `Id` | - -#### Parameters - -| Name | Type | Description | -| :------------ | :------------------------------------------------------------------------ | :------------------------------------------------------ | -| `objMap` | _Map_ | the cached map of `` | -| `objId$` | [_Monomitter_](frontend_utils_monomitter.md#monomitter) | the object id to select | -| `objUpdated$` | [_Monomitter_](frontend_utils_monomitter.md#monomitter) | emitter which indicates when an object has been updated | - -**Returns:** [_Monomitter_](frontend_utils_monomitter.md#monomitter) - ---- - -### getPlanetId - -▸ `Const` **getPlanetId**(`p`: Planet): LocationId - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** LocationId - ---- - -### getPlanetOwner - -▸ `Const` **getPlanetOwner**(`p`: Planet): EthAddress - -#### Parameters - -| Name | Type | -| :--- | :----- | -| `p` | Planet | - -**Returns:** EthAddress - ---- - -### setObjectSyncState - -▸ **setObjectSyncState**(`objectMap`: _Map_, `myObjectMap`: _Map_, `address`: EthAddress \| _undefined_, `objUpdated$`: [_Monomitter_](frontend_utils_monomitter.md#monomitter), `myObjListUpdated$`: [_Monomitter_](frontend_utils_monomitter.md#monomitter)\>, `getId`: (`o`: Obj) => Id, `getOwner`: (`o`: Obj) => EthAddress, `obj`: Obj): _void_ - -Utility function for setting a game entity into our internal data stores in a way -that is friendly to our application. Caches the object into a map, syncs it to a map -of our owned objects, and also emits a message that the object was updated. - -#### Type parameters - -| Name | -| :---- | -| `Obj` | -| `Id` | - -#### Parameters - -| Name | Type | Description | -| :------------------ | :---------------------------------------------------------------------- | :---------------------------------------------- | -| `objectMap` | _Map_ | map that caches known objects | -| `myObjectMap` | _Map_ | map that caches known objects owned by the user | -| `address` | EthAddress \| _undefined_ | the user's account address | -| `objUpdated$` | [_Monomitter_](frontend_utils_monomitter.md#monomitter) | emitter for announcing object updates | -| `myObjListUpdated$` | [_Monomitter_](frontend_utils_monomitter.md#monomitter)\> | - | -| `getId` | (`o`: Obj) => Id | - | -| `getOwner` | (`o`: Obj) => EthAddress | - | -| `obj` | Obj | the object we want to cache | - -**Returns:** _void_ diff --git a/docs/modules/frontend_utils_hats.md b/docs/modules/frontend_utils_hats.md deleted file mode 100644 index f7d0919e..00000000 --- a/docs/modules/frontend_utils_hats.md +++ /dev/null @@ -1,67 +0,0 @@ -# Module: Frontend/Utils/Hats - -## Table of contents - -### Enumerations - -- [HatType](../enums/frontend_utils_hats.hattype.md) - -### Type aliases - -- [Hat](frontend_utils_hats.md#hat) - -### Variables - -- [hats](frontend_utils_hats.md#hats) - -### Functions - -- [hatFromType](frontend_utils_hats.md#hatfromtype) -- [hatTypeFromHash](frontend_utils_hats.md#hattypefromhash) - -## Type aliases - -### Hat - -Ƭ **Hat**: _object_ - -#### Type declaration - -| Name | Type | -| :------------ | :--------- | -| `bottomLayer` | _string_[] | -| `topLayer` | _string_[] | - -## Variables - -### hats - -• `Const` **hats**: _Record_<[_HatType_](../enums/frontend_utils_hats.hattype.md), [_Hat_](frontend_utils_hats.md#hat)\> - -## Functions - -### hatFromType - -▸ `Const` **hatFromType**(`type`: [_HatType_](../enums/frontend_utils_hats.hattype.md)): [_Hat_](frontend_utils_hats.md#hat) - -#### Parameters - -| Name | Type | -| :----- | :--------------------------------------------------- | -| `type` | [_HatType_](../enums/frontend_utils_hats.hattype.md) | - -**Returns:** [_Hat_](frontend_utils_hats.md#hat) - ---- - -### hatTypeFromHash - -▸ `Const` **hatTypeFromHash**(`hash`: LocationId): [_HatType_](../enums/frontend_utils_hats.hattype.md) - -#### Parameters - -| Name | Type | -| :----- | :--------- | -| `hash` | LocationId | - -**Returns:** [_HatType_](../enums/frontend_utils_hats.hattype.md) diff --git a/docs/modules/frontend_utils_hooks.md b/docs/modules/frontend_utils_hooks.md deleted file mode 100644 index 22a6b250..00000000 --- a/docs/modules/frontend_utils_hooks.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Utils/Hooks - -## Table of contents - -### Functions - -- [usePoll](frontend_utils_hooks.md#usepoll) - -## Functions - -### usePoll - -▸ **usePoll**(`cb`: () => _void_, `poll?`: _number_ \| _undefined_, `execFirst?`: _boolean_ \| _undefined_): _void_ - -Executes the callback `cb` every `poll` ms - -#### Parameters - -| Name | Type | Description | -| :---------- | :----------------------- | :------------------------------------------------- | -| `cb` | () => _void_ | callback to execute | -| `poll` | _number_ \| _undefined_ | ms to poll | -| `execFirst` | _boolean_ \| _undefined_ | if we want to execute the callback on first render | - -**Returns:** _void_ diff --git a/docs/modules/frontend_utils_keyemitters.md b/docs/modules/frontend_utils_keyemitters.md deleted file mode 100644 index ffcd8138..00000000 --- a/docs/modules/frontend_utils_keyemitters.md +++ /dev/null @@ -1,34 +0,0 @@ -# Module: Frontend/Utils/KeyEmitters - -## Table of contents - -### Variables - -- [ctrlDown$](frontend_utils_keyemitters.md#ctrldown$) -- [ctrlUp$](frontend_utils_keyemitters.md#ctrlup$) -- [escapeDown$](frontend_utils_keyemitters.md#escapedown$) -- [keyUp$](frontend_utils_keyemitters.md#keyup$) - -## Variables - -### ctrlDown$ - -• `Const` **ctrlDown$**: [_Monomitter_](frontend_utils_monomitter.md#monomitter) - ---- - -### ctrlUp$ - -• `Const` **ctrlUp$**: [_Monomitter_](frontend_utils_monomitter.md#monomitter) - ---- - -### escapeDown$ - -• `Const` **escapeDown$**: [_Monomitter_](frontend_utils_monomitter.md#monomitter) - ---- - -### keyUp$ - -• `Const` **keyUp$**: [_Monomitter_](frontend_utils_monomitter.md#monomitter)<[_Wrapper_](../classes/backend_utils_wrapper.wrapper.md)\> diff --git a/docs/modules/frontend_utils_monomitter.md b/docs/modules/frontend_utils_monomitter.md deleted file mode 100644 index edfe8c17..00000000 --- a/docs/modules/frontend_utils_monomitter.md +++ /dev/null @@ -1,94 +0,0 @@ -# Module: Frontend/Utils/Monomitter - -## Table of contents - -### Type aliases - -- [Callback](frontend_utils_monomitter.md#callback) -- [Monomitter](frontend_utils_monomitter.md#monomitter) -- [Subscription](frontend_utils_monomitter.md#subscription) - -### Functions - -- [monomitter](frontend_utils_monomitter.md#monomitter) - -## Type aliases - -### Callback - -Ƭ **Callback**: (`o`: T) => _void_ - -Typed single pub / sub pattern, inspired by: -https://github.com/loilo/monomitter/blob/master/monomitter.mjs - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Type declaration - -▸ (`o`: T): _void_ - -#### Parameters - -| Name | Type | -| :--- | :--- | -| `o` | T | - -**Returns:** _void_ - ---- - -### Monomitter - -Ƭ **Monomitter**: _object_ - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Type declaration - -| Name | Type | -| :---------- | :----------------------------------------------------------------------------------------------------------------------------- | -| `clear` | () => _void_ | -| `publish` | (`o`: T) => _void_ | -| `subscribe` | (`cb`: [_Callback_](frontend_utils_monomitter.md#callback)) => [_Subscription_](frontend_utils_monomitter.md#subscription) | - ---- - -### Subscription - -Ƭ **Subscription**: _object_ - -#### Type declaration - -| Name | Type | -| :------------ | :----------- | -| `unsubscribe` | () => _void_ | - -## Functions - -### monomitter - -▸ **monomitter**(`emitLatestOnSubscribe?`: _boolean_): [_Monomitter_](frontend_utils_monomitter.md#monomitter) - -Constructs a new event emitter, whose purpose is to emit values of the given type. - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | Default value | Description | -| :---------------------- | :-------- | :------------ | :----------------------------------------------------------------------------------------------- | -| `emitLatestOnSubscribe` | _boolean_ | false | if this is true, upon subscription immediately emit the most recently set value, if there is one | - -**Returns:** [_Monomitter_](frontend_utils_monomitter.md#monomitter) diff --git a/docs/modules/frontend_utils_settingshooks.md b/docs/modules/frontend_utils_settingshooks.md deleted file mode 100644 index 8d81e5b2..00000000 --- a/docs/modules/frontend_utils_settingshooks.md +++ /dev/null @@ -1,255 +0,0 @@ -# Module: Frontend/Utils/SettingsHooks - -## Table of contents - -### Enumerations - -- [Setting](../enums/frontend_utils_settingshooks.setting.md) - -### Variables - -- [settingChanged$](frontend_utils_settingshooks.md#settingchanged$) - -### Functions - -- [BooleanSetting](frontend_utils_settingshooks.md#booleansetting) -- [MultiSelectSetting](frontend_utils_settingshooks.md#multiselectsetting) -- [getBooleanSetting](frontend_utils_settingshooks.md#getbooleansetting) -- [getLocalStorageSettingKey](frontend_utils_settingshooks.md#getlocalstoragesettingkey) -- [getNumberSetting](frontend_utils_settingshooks.md#getnumbersetting) -- [getSetting](frontend_utils_settingshooks.md#getsetting) -- [pollSetting](frontend_utils_settingshooks.md#pollsetting) -- [setBooleanSetting](frontend_utils_settingshooks.md#setbooleansetting) -- [setNumberSetting](frontend_utils_settingshooks.md#setnumbersetting) -- [setSetting](frontend_utils_settingshooks.md#setsetting) -- [useBooleanSetting](frontend_utils_settingshooks.md#usebooleansetting) -- [useSetting](frontend_utils_settingshooks.md#usesetting) - -## Variables - -### settingChanged$ - -• `Const` **settingChanged$**: [_Monomitter_](frontend_utils_monomitter.md#monomitter)<[_Setting_](../enums/frontend_utils_settingshooks.setting.md)\> - -Whenever a setting changes, we publish the setting's name to this event emitter. - -## Functions - -### BooleanSetting - -▸ **BooleanSetting**(`__namedParameters`: { `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md) ; `settingDescription?`: _string_ ; `uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md) }): _Element_ - -React component that renders a checkbox representing the current value of this particular -setting, interpreting its value as a boolean. Allows the player to click on the checkbox to -toggle the setting. Toggling the setting both notifies the rest of the game that the given -setting was changed, and also saves it to local storage. - -#### Parameters - -| Name | Type | -| :-------------------------------------- | :----------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | -| `__namedParameters.settingDescription?` | _string_ | -| `__namedParameters.uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | - -**Returns:** _Element_ - ---- - -### MultiSelectSetting - -▸ **MultiSelectSetting**(`__namedParameters`: { `labels`: _string_[] ; `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md) ; `style?`: React.CSSProperties ; `uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md) ; `values`: _string_[] }): _Element_ - -UI that is kept in-sync with a particular setting which allows you to set that setting to one of -several options. - -#### Parameters - -| Name | Type | -| :---------------------------- | :----------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.labels` | _string_[] | -| `__namedParameters.setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | -| `__namedParameters.style?` | React.CSSProperties | -| `__namedParameters.uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) | -| `__namedParameters.values` | _string_[] | - -**Returns:** _Element_ - ---- - -### getBooleanSetting - -▸ **getBooleanSetting**(`account`: EthAddress \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md)): _boolean_ - -Loads from local storage, and interprets as a boolean the setting with the given name. - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `account` | EthAddress \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | - -**Returns:** _boolean_ - ---- - -### getLocalStorageSettingKey - -▸ **getLocalStorageSettingKey**(`account`: EthAddress \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md)): _string_ - -Each setting is stored in local storage. Each account has their own setting. - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `account` | EthAddress \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | - -**Returns:** _string_ - ---- - -### getNumberSetting - -▸ **getNumberSetting**(`account`: EthAddress \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md)): _number_ - -Loads from local storage, and interprets as a boolean the setting with the given name. - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `account` | EthAddress \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | - -**Returns:** _number_ - ---- - -### getSetting - -▸ **getSetting**(`account`: EthAddress \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md)): _string_ - -Read the local storage setting from local storage. - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `account` | EthAddress \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | - -**Returns:** _string_ - ---- - -### pollSetting - -▸ **pollSetting**(`account`: EthAddress \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md)): _ReturnType_<_typeof_ setInterval\> - -Some settings can be set from another window. In particular, the 'auto accept transaction' -setting is set from multiple windows. As a result, the local storage setting can get out of sync -with the in memory setting. To fix this, we can poll the given setting from local storage, and -notify the rest of the game that it changed if it changed. - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `account` | EthAddress \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | - -**Returns:** _ReturnType_<_typeof_ setInterval\> - ---- - -### setBooleanSetting - -▸ **setBooleanSetting**(`account`: EthAddress \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md), `value`: _boolean_): _void_ - -Save the given setting to local storage. Publish an event to [settingChanged$](frontend_utils_settingshooks.md#settingchanged$). - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `account` | EthAddress \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | -| `value` | _boolean_ | - -**Returns:** _void_ - ---- - -### setNumberSetting - -▸ **setNumberSetting**(`account`: EthAddress \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md), `value`: _number_): _void_ - -Save the given setting to local storage. Publish an event to [settingChanged$](frontend_utils_settingshooks.md#settingchanged$). - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `account` | EthAddress \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | -| `value` | _number_ | - -**Returns:** _void_ - ---- - -### setSetting - -▸ **setSetting**(`account`: EthAddress \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md), `value`: _string_): _void_ - -Save the given setting to local storage. Publish an event to [settingChanged$](frontend_utils_settingshooks.md#settingchanged$). - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------ | -| `account` | EthAddress \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | -| `value` | _string_ | - -**Returns:** _void_ - ---- - -### useBooleanSetting - -▸ **useBooleanSetting**(`uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md) \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md)): [*boolean*, (`newValue`: *boolean*) => *void*] - -Allows a react component to subscribe to changes to the given setting, interpreting its value as -a boolean. - -#### Parameters - -| Name | Type | -| :---------- | :-------------------------------------------------------------------------------- | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | - -**Returns:** [*boolean*, (`newValue`: *boolean*) => *void*] - ---- - -### useSetting - -▸ **useSetting**(`uiManager`: [_default_](../classes/backend_gamelogic_gameuimanager.default.md) \| _undefined_, `setting`: [_Setting_](../enums/frontend_utils_settingshooks.setting.md)): [*string*, (`newValue`: *string* \| *undefined*) => *void*] - -Allows a react component to subscribe to changes to the give setting. - -#### Parameters - -| Name | Type | -| :---------- | :-------------------------------------------------------------------------------- | -| `uiManager` | [_default_](../classes/backend_gamelogic_gameuimanager.default.md) \| _undefined_ | -| `setting` | [_Setting_](../enums/frontend_utils_settingshooks.setting.md) | - -**Returns:** [*string*, (`newValue`: *string* \| *undefined*) => *void*] diff --git a/docs/modules/frontend_utils_shortcutconstants.md b/docs/modules/frontend_utils_shortcutconstants.md deleted file mode 100644 index 579eff55..00000000 --- a/docs/modules/frontend_utils_shortcutconstants.md +++ /dev/null @@ -1,62 +0,0 @@ -# Module: Frontend/Utils/ShortcutConstants - -## Table of contents - -### Variables - -- [TOGGLE_ARTIFACTS_DEX_PANE](frontend_utils_shortcutconstants.md#toggle_artifacts_dex_pane) -- [TOGGLE_BROADCAST_PANE](frontend_utils_shortcutconstants.md#toggle_broadcast_pane) -- [TOGGLE_DIAGNOSTICS_PANE](frontend_utils_shortcutconstants.md#toggle_diagnostics_pane) -- [TOGGLE_HAT_PANE](frontend_utils_shortcutconstants.md#toggle_hat_pane) -- [TOGGLE_PLANET_ARTIFACTS_PANE](frontend_utils_shortcutconstants.md#toggle_planet_artifacts_pane) -- [TOGGLE_PLANET_DETAILS_PANE](frontend_utils_shortcutconstants.md#toggle_planet_details_pane) -- [TOGGLE_PLANET_DEX_PANE](frontend_utils_shortcutconstants.md#toggle_planet_dex_pane) -- [TOGGLE_UPGRADES_PANE](frontend_utils_shortcutconstants.md#toggle_upgrades_pane) - -## Variables - -### TOGGLE_ARTIFACTS_DEX_PANE - -• `Const` **TOGGLE_ARTIFACTS_DEX_PANE**: `"e"`= 'e' - ---- - -### TOGGLE_BROADCAST_PANE - -• `Const` **TOGGLE_BROADCAST_PANE**: `"b"`= 'b' - ---- - -### TOGGLE_DIAGNOSTICS_PANE - -• `Const` **TOGGLE_DIAGNOSTICS_PANE**: `"p"`= 'p' - ---- - -### TOGGLE_HAT_PANE - -• `Const` **TOGGLE_HAT_PANE**: `"h"`= 'h' - ---- - -### TOGGLE_PLANET_ARTIFACTS_PANE - -• `Const` **TOGGLE_PLANET_ARTIFACTS_PANE**: `"a"`= 'a' - ---- - -### TOGGLE_PLANET_DETAILS_PANE - -• `Const` **TOGGLE_PLANET_DETAILS_PANE**: `"d"`= 'd' - ---- - -### TOGGLE_PLANET_DEX_PANE - -• `Const` **TOGGLE_PLANET_DEX_PANE**: `"q"`= 'q' - ---- - -### TOGGLE_UPGRADES_PANE - -• `Const` **TOGGLE_UPGRADES_PANE**: `"u"`= 'u' diff --git a/docs/modules/frontend_utils_terminaltypes.md b/docs/modules/frontend_utils_terminaltypes.md deleted file mode 100644 index e9da2325..00000000 --- a/docs/modules/frontend_utils_terminaltypes.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Utils/TerminalTypes - -## Table of contents - -### Enumerations - -- [TerminalTextStyle](../enums/frontend_utils_terminaltypes.terminaltextstyle.md) diff --git a/docs/modules/frontend_utils_timeutils.md b/docs/modules/frontend_utils_timeutils.md deleted file mode 100644 index 907e0f8a..00000000 --- a/docs/modules/frontend_utils_timeutils.md +++ /dev/null @@ -1,21 +0,0 @@ -# Module: Frontend/Utils/TimeUtils - -## Table of contents - -### Functions - -- [formatDuration](frontend_utils_timeutils.md#formatduration) - -## Functions - -### formatDuration - -▸ **formatDuration**(`durationMs`: _number_): _string_ - -#### Parameters - -| Name | Type | -| :----------- | :------- | -| `durationMs` | _number_ | - -**Returns:** _string_ diff --git a/docs/modules/frontend_utils_uiemitter.md b/docs/modules/frontend_utils_uiemitter.md deleted file mode 100644 index f8215ccf..00000000 --- a/docs/modules/frontend_utils_uiemitter.md +++ /dev/null @@ -1,11 +0,0 @@ -# Module: Frontend/Utils/UIEmitter - -## Table of contents - -### Enumerations - -- [UIEmitterEvent](../enums/frontend_utils_uiemitter.uiemitterevent.md) - -### Classes - -- [default](../classes/frontend_utils_uiemitter.default.md) diff --git a/docs/modules/frontend_views_artifactlink.md b/docs/modules/frontend_views_artifactlink.md deleted file mode 100644 index de9b0aed..00000000 --- a/docs/modules/frontend_views_artifactlink.md +++ /dev/null @@ -1,24 +0,0 @@ -# Module: Frontend/Views/ArtifactLink - -## Table of contents - -### Functions - -- [ArtifactLink](frontend_views_artifactlink.md#artifactlink) - -## Functions - -### ArtifactLink - -▸ **ArtifactLink**(`__namedParameters`: { `artifact`: Artifact ; `children`: React.ReactNode ; `setDetailsOpen`: (`open`: _boolean_) => _void_ }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------------- | :---------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | -| `__namedParameters.children` | React.ReactNode | -| `__namedParameters.setDetailsOpen` | (`open`: _boolean_) => _void_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_darkforesttips.md b/docs/modules/frontend_views_darkforesttips.md deleted file mode 100644 index 935691d8..00000000 --- a/docs/modules/frontend_views_darkforesttips.md +++ /dev/null @@ -1,24 +0,0 @@ -# Module: Frontend/Views/DarkForestTips - -## Table of contents - -### Functions - -- [DarkForestTips](frontend_views_darkforesttips.md#darkforesttips) -- [MakeDarkForestTips](frontend_views_darkforesttips.md#makedarkforesttips) - -## Functions - -### DarkForestTips - -▸ **DarkForestTips**(): _Element_ - -**Returns:** _Element_ - ---- - -### MakeDarkForestTips - -▸ **MakeDarkForestTips**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_dferrorboundary.md b/docs/modules/frontend_views_dferrorboundary.md deleted file mode 100644 index 754d9646..00000000 --- a/docs/modules/frontend_views_dferrorboundary.md +++ /dev/null @@ -1,7 +0,0 @@ -# Module: Frontend/Views/DFErrorBoundary - -## Table of contents - -### Classes - -- [DFErrorBoundary](../classes/frontend_views_dferrorboundary.dferrorboundary.md) diff --git a/docs/modules/frontend_views_emojipicker.md b/docs/modules/frontend_views_emojipicker.md deleted file mode 100644 index 42463bbc..00000000 --- a/docs/modules/frontend_views_emojipicker.md +++ /dev/null @@ -1,23 +0,0 @@ -# Module: Frontend/Views/EmojiPicker - -## Table of contents - -### Functions - -- [EmojiPicker](frontend_views_emojipicker.md#emojipicker) - -## Functions - -### EmojiPicker - -▸ **EmojiPicker**(`__namedParameters`: { `emoji`: _string_ \| _undefined_ ; `setEmoji`: (`emoji`: _string_) => _void_ }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :---------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.emoji` | _string_ \| _undefined_ | -| `__namedParameters.setEmoji` | (`emoji`: _string_) => _void_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_emojiplanetnotification.md b/docs/modules/frontend_views_emojiplanetnotification.md deleted file mode 100644 index ecaab296..00000000 --- a/docs/modules/frontend_views_emojiplanetnotification.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Views/EmojiPlanetNotification - -## Table of contents - -### Functions - -- [EmojiPlanetNotification](frontend_views_emojiplanetnotification.md#emojiplanetnotification) - -## Functions - -### EmojiPlanetNotification - -▸ **EmojiPlanetNotification**(`__namedParameters`: { `wrapper`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------- | :----------------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.wrapper` | [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_gamewindowlayout.md b/docs/modules/frontend_views_gamewindowlayout.md deleted file mode 100644 index e8deaaef..00000000 --- a/docs/modules/frontend_views_gamewindowlayout.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Views/GameWindowLayout - -## Table of contents - -### Functions - -- [GameWindowLayout](frontend_views_gamewindowlayout.md#gamewindowlayout) - -## Functions - -### GameWindowLayout - -▸ **GameWindowLayout**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_leaderboard.md b/docs/modules/frontend_views_leaderboard.md deleted file mode 100644 index a6d131ff..00000000 --- a/docs/modules/frontend_views_leaderboard.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Views/Leaderboard - -## Table of contents - -### Functions - -- [Leaderboard](frontend_views_leaderboard.md#leaderboard) - -## Functions - -### Leaderboard - -▸ **Leaderboard**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_menubar.md b/docs/modules/frontend_views_menubar.md deleted file mode 100644 index 76fe9b8c..00000000 --- a/docs/modules/frontend_views_menubar.md +++ /dev/null @@ -1,35 +0,0 @@ -# Module: Frontend/Views/MenuBar - -## Table of contents - -### Variables - -- [MenuBar](frontend_views_menubar.md#menubar) - -### Functions - -- [MenuBarSection](frontend_views_menubar.md#menubarsection) - -## Variables - -### MenuBar - -• `Const` **MenuBar**: _StyledComponent_<`"div"`, any, {}, never\> - -Left bar (with all the modal icons) - -## Functions - -### MenuBarSection - -▸ **MenuBarSection**(`__namedParameters`: { `children`: React.ReactNode ; `collapsible?`: _boolean_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------------- | :-------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactNode | -| `__namedParameters.collapsible?` | _boolean_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_modalicon.md b/docs/modules/frontend_views_modalicon.md deleted file mode 100644 index 1a3513a8..00000000 --- a/docs/modules/frontend_views_modalicon.md +++ /dev/null @@ -1,279 +0,0 @@ -# Module: Frontend/Views/ModalIcon - -## Table of contents - -### Functions - -- [ModalAccountIcon](frontend_views_modalicon.md#modalaccounticon) -- [ModalArtifactIcon](frontend_views_modalicon.md#modalartifacticon) -- [ModalArtifactsConversationIcon](frontend_views_modalicon.md#modalartifactsconversationicon) -- [ModalHatIcon](frontend_views_modalicon.md#modalhaticon) -- [ModalHelpIcon](frontend_views_modalicon.md#modalhelpicon) -- [ModalIcon](frontend_views_modalicon.md#modalicon) -- [ModalLeaderboardIcon](frontend_views_modalicon.md#modalleaderboardicon) -- [ModalMapShareIcon](frontend_views_modalicon.md#modalmapshareicon) -- [ModalPlanetDetailsIcon](frontend_views_modalicon.md#modalplanetdetailsicon) -- [ModalPlanetDexIcon](frontend_views_modalicon.md#modalplanetdexicon) -- [ModalPluginIcon](frontend_views_modalicon.md#modalpluginicon) -- [ModalSettingsIcon](frontend_views_modalicon.md#modalsettingsicon) -- [ModalTwitterBroadcastIcon](frontend_views_modalicon.md#modaltwitterbroadcasticon) -- [ModalTwitterVerifyIcon](frontend_views_modalicon.md#modaltwitterverifyicon) -- [ModalUpgradeDetailsIcon](frontend_views_modalicon.md#modalupgradedetailsicon) -- [ModalWithdrawIcon](frontend_views_modalicon.md#modalwithdrawicon) -- [ModalYourArtifactsIcon](frontend_views_modalicon.md#modalyourartifactsicon) - -## Functions - -### ModalAccountIcon - -▸ **ModalAccountIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalArtifactIcon - -▸ **ModalArtifactIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalArtifactsConversationIcon - -▸ **ModalArtifactsConversationIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalHatIcon - -▸ **ModalHatIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalHelpIcon - -▸ **ModalHelpIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalIcon - -▸ **ModalIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) ; `modal`: [_ModalName_](../enums/frontend_views_modalpane.modalname.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------ | :------------------------------------------------------------ | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | -| `__namedParameters.modal` | [_ModalName_](../enums/frontend_views_modalpane.modalname.md) | - -**Returns:** _Element_ - ---- - -### ModalLeaderboardIcon - -▸ **ModalLeaderboardIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalMapShareIcon - -▸ **ModalMapShareIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalPlanetDetailsIcon - -▸ **ModalPlanetDetailsIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalPlanetDexIcon - -▸ **ModalPlanetDexIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalPluginIcon - -▸ **ModalPluginIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalSettingsIcon - -▸ **ModalSettingsIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalTwitterBroadcastIcon - -▸ **ModalTwitterBroadcastIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalTwitterVerifyIcon - -▸ **ModalTwitterVerifyIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalUpgradeDetailsIcon - -▸ **ModalUpgradeDetailsIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalWithdrawIcon - -▸ **ModalWithdrawIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ - ---- - -### ModalYourArtifactsIcon - -▸ **ModalYourArtifactsIcon**(`__namedParameters`: { `hook`: [_ModalHook_](frontend_views_modalpane.md#modalhook) }): _Element_ - -#### Parameters - -| Name | Type | -| :----------------------- | :--------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.hook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_modalpane.md b/docs/modules/frontend_views_modalpane.md deleted file mode 100644 index bf7e0e6c..00000000 --- a/docs/modules/frontend_views_modalpane.md +++ /dev/null @@ -1,45 +0,0 @@ -# Module: Frontend/Views/ModalPane - -## Table of contents - -### Enumerations - -- [ModalName](../enums/frontend_views_modalpane.modalname.md) - -### Type aliases - -- [ModalHook](frontend_views_modalpane.md#modalhook) - -### Variables - -- [RECOMMENDED_WIDTH](frontend_views_modalpane.md#recommended_width) - -### Functions - -- [ModalPane](frontend_views_modalpane.md#modalpane) - -## Type aliases - -### ModalHook - -Ƭ **ModalHook**: [_Hook_](_types_global_globaltypes.md#hook) - -## Variables - -### RECOMMENDED_WIDTH - -• `Const` **RECOMMENDED_WIDTH**: `"450px"`= '450px' - -## Functions - -### ModalPane - -▸ **ModalPane**(`__namedParameters`: [_PaneProps_](frontend_components_gamewindowcomponents.md#paneprops) & { `backgroundColor?`: _string_ ; `borderColor?`: _string_ ; `helpContent?`: () => React.ReactNode ; `hideClose?`: _boolean_ ; `hook`: [_Hook_](_types_global_globaltypes.md#hook) ; `name?`: [_ModalName_](../enums/frontend_views_modalpane.modalname.md) ; `noPadding?`: _boolean_ ; `style?`: React.CSSProperties ; `titlebarColor?`: _string_ ; `width?`: _string_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `__namedParameters` | [_PaneProps_](frontend_components_gamewindowcomponents.md#paneprops) & { `backgroundColor?`: _string_ ; `borderColor?`: _string_ ; `helpContent?`: () => React.ReactNode ; `hideClose?`: _boolean_ ; `hook`: [_Hook_](_types_global_globaltypes.md#hook) ; `name?`: [_ModalName_](../enums/frontend_views_modalpane.modalname.md) ; `noPadding?`: _boolean_ ; `style?`: React.CSSProperties ; `titlebarColor?`: _string_ ; `width?`: _string_ } | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_notifications.md b/docs/modules/frontend_views_notifications.md deleted file mode 100644 index c8503782..00000000 --- a/docs/modules/frontend_views_notifications.md +++ /dev/null @@ -1,15 +0,0 @@ -# Module: Frontend/Views/Notifications - -## Table of contents - -### Functions - -- [NotificationsPane](frontend_views_notifications.md#notificationspane) - -## Functions - -### NotificationsPane - -▸ **NotificationsPane**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_ownedpluginview.md b/docs/modules/frontend_views_ownedpluginview.md deleted file mode 100644 index 6fd81da4..00000000 --- a/docs/modules/frontend_views_ownedpluginview.md +++ /dev/null @@ -1,44 +0,0 @@ -# Module: Frontend/Views/OwnedPluginView - -## Table of contents - -### Classes - -- [OwnedPluginView](../classes/frontend_views_ownedpluginview.ownedpluginview.md) - -### Type aliases - -- [OpenEditor](frontend_views_ownedpluginview.md#openeditor) - -### Variables - -- [Actions](frontend_views_ownedpluginview.md#actions) - -## Type aliases - -### OpenEditor - -Ƭ **OpenEditor**: (`pluginId`: [_PluginId_](backend_plugins_serializedplugin.md#pluginid)) => () => _void_ - -Should - -1. open an editor for this plugin -2. return a function that closes the editor. - -#### Type declaration - -▸ (`pluginId`: [_PluginId_](backend_plugins_serializedplugin.md#pluginid)): _function_ - -#### Parameters - -| Name | Type | -| :--------- | :--------------------------------------------------------- | -| `pluginId` | [_PluginId_](backend_plugins_serializedplugin.md#pluginid) | - -**Returns:** () => _void_ - -## Variables - -### Actions - -• `Const` **Actions**: _StyledComponent_<`"div"`, any, {}, never\> diff --git a/docs/modules/frontend_views_planetcard.md b/docs/modules/frontend_views_planetcard.md deleted file mode 100644 index 084055fb..00000000 --- a/docs/modules/frontend_views_planetcard.md +++ /dev/null @@ -1,24 +0,0 @@ -# Module: Frontend/Views/PlanetCard - -## Table of contents - -### Functions - -- [PlanetCard](frontend_views_planetcard.md#planetcard) - -## Functions - -### PlanetCard - -▸ **PlanetCard**(`__namedParameters`: { `planetWrapper`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) }): _Element_ - -Preview basic planet information - used in `PlanetContextPane` and `HoverPlanetPane` - -#### Parameters - -| Name | Type | -| :-------------------------------- | :----------------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planetWrapper` | [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_planetcardcomponents.md b/docs/modules/frontend_views_planetcardcomponents.md deleted file mode 100644 index 13dbad4d..00000000 --- a/docs/modules/frontend_views_planetcardcomponents.md +++ /dev/null @@ -1,159 +0,0 @@ -# Module: Frontend/Views/PlanetCardComponents - -## Table of contents - -### Variables - -- [ArtifactSection](frontend_views_planetcardcomponents.md#artifactsection) -- [BigStatCell](frontend_views_planetcardcomponents.md#bigstatcell) -- [DestroyedMarker](frontend_views_planetcardcomponents.md#destroyedmarker) -- [IconsWrapper](frontend_views_planetcardcomponents.md#iconswrapper) -- [PlanetTag](frontend_views_planetcardcomponents.md#planettag) -- [PreviewSection](frontend_views_planetcardcomponents.md#previewsection) -- [Small](frontend_views_planetcardcomponents.md#small) -- [StatCell](frontend_views_planetcardcomponents.md#statcell) -- [StatRow](frontend_views_planetcardcomponents.md#statrow) -- [StatSection](frontend_views_planetcardcomponents.md#statsection) -- [StyledPlanetCard](frontend_views_planetcardcomponents.md#styledplanetcard) -- [StyledStatIcon](frontend_views_planetcardcomponents.md#styledstaticon) -- [TitleBar](frontend_views_planetcardcomponents.md#titlebar) -- [TopRow](frontend_views_planetcardcomponents.md#toprow) - -### Functions - -- [PCStatIcon](frontend_views_planetcardcomponents.md#pcstaticon) -- [PlanetActiveArtifact](frontend_views_planetcardcomponents.md#planetactiveartifact) -- [RowTip](frontend_views_planetcardcomponents.md#rowtip) - -## Variables - -### ArtifactSection - -• `Const` **ArtifactSection**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### BigStatCell - -• `Const` **BigStatCell**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### DestroyedMarker - -• `Const` **DestroyedMarker**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### IconsWrapper - -• `Const` **IconsWrapper**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### PlanetTag - -• `Const` **PlanetTag**: _StyledComponent_<`"div"`, any, { `planet`: _undefined_ \| Planet }, never\> - ---- - -### PreviewSection - -• `Const` **PreviewSection**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### Small - -• `Const` **Small**: _StyledComponent_<`"div"`, any, { `planet`: _undefined_ \| Planet }, never\> - ---- - -### StatCell - -• `Const` **StatCell**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### StatRow - -• `Const` **StatRow**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### StatSection - -• `Const` **StatSection**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### StyledPlanetCard - -• `Const` **StyledPlanetCard**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### StyledStatIcon - -• `Const` **StyledStatIcon**: _StyledComponent_<`"span"`, any, {}, never\> - ---- - -### TitleBar - -• `Const` **TitleBar**: _StyledComponent_<`"div"`, any, {}, never\> - ---- - -### TopRow - -• `Const` **TopRow**: _StyledComponent_<`"div"`, any, {}, never\> - -## Functions - -### PCStatIcon - -▸ **PCStatIcon**(`__namedParameters`: { `children`: React.ReactNode ; `planet`: Planet \| _undefined_ ; `stat`: [_StatIdx_](../enums/_types_global_globaltypes.statidx.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :--------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactNode | -| `__namedParameters.planet` | Planet \| _undefined_ | -| `__namedParameters.stat` | [_StatIdx_](../enums/_types_global_globaltypes.statidx.md) | - -**Returns:** _Element_ - ---- - -### PlanetActiveArtifact - -▸ **PlanetActiveArtifact**(`__namedParameters`: { `artifact`: Artifact ; `planet`: Planet \| _undefined_ }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :-------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.artifact` | Artifact | -| `__namedParameters.planet` | Planet \| _undefined_ | - -**Returns:** _Element_ - ---- - -### RowTip - -▸ `Const` **RowTip**(`__namedParameters`: { `children`: ReactNode ; `name`: [_TooltipName_](../enums/frontend_game_windowmanager.tooltipname.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | ReactNode | -| `__namedParameters.name` | [_TooltipName_](../enums/frontend_game_windowmanager.tooltipname.md) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_planetlink.md b/docs/modules/frontend_views_planetlink.md deleted file mode 100644 index 29419261..00000000 --- a/docs/modules/frontend_views_planetlink.md +++ /dev/null @@ -1,23 +0,0 @@ -# Module: Frontend/Views/PlanetLink - -## Table of contents - -### Functions - -- [PlanetLink](frontend_views_planetlink.md#planetlink) - -## Functions - -### PlanetLink - -▸ **PlanetLink**(`__namedParameters`: { `children`: React.ReactNode ; `planet`: Planet }): _Element_ - -#### Parameters - -| Name | Type | -| :--------------------------- | :-------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.children` | React.ReactNode | -| `__namedParameters.planet` | Planet | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_planetnotifications.md b/docs/modules/frontend_views_planetnotifications.md deleted file mode 100644 index e7036df9..00000000 --- a/docs/modules/frontend_views_planetnotifications.md +++ /dev/null @@ -1,57 +0,0 @@ -# Module: Frontend/Views/PlanetNotifications - -## Table of contents - -### Enumerations - -- [PlanetNotifType](../enums/frontend_views_planetnotifications.planetnotiftype.md) - -### Type aliases - -- [PlanetNotifHooks](frontend_views_planetnotifications.md#planetnotifhooks) - -### Functions - -- [PlanetNotifications](frontend_views_planetnotifications.md#planetnotifications) -- [getNotifsForPlanet](frontend_views_planetnotifications.md#getnotifsforplanet) - -## Type aliases - -### PlanetNotifHooks - -Ƭ **PlanetNotifHooks**: _object_ - -#### Type declaration - -| Name | Type | -| :--------------- | :--------------------------------------------------- | -| `upgradeDetHook` | [_ModalHook_](frontend_views_modalpane.md#modalhook) | - -## Functions - -### PlanetNotifications - -▸ **PlanetNotifications**(`__namedParameters`: { `notifs`: [_PlanetNotifType_](../enums/frontend_views_planetnotifications.planetnotiftype.md)[] ; `wrapper`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) } & [_PlanetNotifHooks_](frontend_views_planetnotifications.md#planetnotifhooks)): _Element_ - -#### Parameters - -| Name | Type | -| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `__namedParameters` | { `notifs`: [_PlanetNotifType_](../enums/frontend_views_planetnotifications.planetnotiftype.md)[] ; `wrapper`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) } & [_PlanetNotifHooks_](frontend_views_planetnotifications.md#planetnotifhooks) | - -**Returns:** _Element_ - ---- - -### getNotifsForPlanet - -▸ **getNotifsForPlanet**(`planet`: Planet \| _undefined_, `currentBlockNumber`: _number_ \| _undefined_): [_PlanetNotifType_](../enums/frontend_views_planetnotifications.planetnotiftype.md)[] - -#### Parameters - -| Name | Type | -| :------------------- | :---------------------- | -| `planet` | Planet \| _undefined_ | -| `currentBlockNumber` | _number_ \| _undefined_ | - -**Returns:** [_PlanetNotifType_](../enums/frontend_views_planetnotifications.planetnotiftype.md)[] diff --git a/docs/modules/frontend_views_sendresources.md b/docs/modules/frontend_views_sendresources.md deleted file mode 100644 index 36d3cf4f..00000000 --- a/docs/modules/frontend_views_sendresources.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Views/SendResources - -## Table of contents - -### Functions - -- [SendResources](frontend_views_sendresources.md#sendresources) - -## Functions - -### SendResources - -▸ **SendResources**(`__namedParameters`: { `planetWrapper`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------------- | :----------------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.planetWrapper` | [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_share.md b/docs/modules/frontend_views_share.md deleted file mode 100644 index 706fdbdd..00000000 --- a/docs/modules/frontend_views_share.md +++ /dev/null @@ -1,39 +0,0 @@ -# Module: Frontend/Views/Share - -## Table of contents - -### Interfaces - -- [ShareProps](../interfaces/frontend_views_share.shareprops.md) - -### Functions - -- [Share](frontend_views_share.md#share) - -## Functions - -### Share - -▸ **Share**(`props`: [_ShareProps_](../interfaces/frontend_views_share.shareprops.md)): _Element_ - -Helper component that allows you to load data from the contract, as if it was -viewed from a particular account. Allows you to switch accounts. Just pass in: - -1. a function that loads the data you want, given a [[ReaderDataStore]] -2. a function that renders the given data with React - -... and this component will take care of loading what you want. - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | -| :------ | :------------------------------------------------------------------- | -| `props` | [_ShareProps_](../interfaces/frontend_views_share.shareprops.md) | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_sortabletable.md b/docs/modules/frontend_views_sortabletable.md deleted file mode 100644 index 075f5d40..00000000 --- a/docs/modules/frontend_views_sortabletable.md +++ /dev/null @@ -1,32 +0,0 @@ -# Module: Frontend/Views/SortableTable - -## Table of contents - -### Functions - -- [SortableTable](frontend_views_sortabletable.md#sortabletable) - -## Functions - -### SortableTable - -▸ **SortableTable**(`__namedParameters`: { `alignments?`: (`"r"` \| `"c"` \| `"l"`)[] ; `columns`: (`t`: T, `i`: _number_) => React.ReactNode[] ; `headers`: React.ReactNode[] ; `rows`: T[] ; `sortFunctions`: (`left`: T, `right`: T) => _number_[] }): _Element_ - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | -| :-------------------------------- | :------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.alignments?` | (`"r"` \| `"c"` \| `"l"`)[] | -| `__namedParameters.columns` | (`t`: T, `i`: _number_) => React.ReactNode[] | -| `__namedParameters.headers` | React.ReactNode[] | -| `__namedParameters.rows` | T[] | -| `__namedParameters.sortFunctions` | (`left`: T, `right`: T) => _number_[] | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_tabbedview.md b/docs/modules/frontend_views_tabbedview.md deleted file mode 100644 index 1658d240..00000000 --- a/docs/modules/frontend_views_tabbedview.md +++ /dev/null @@ -1,27 +0,0 @@ -# Module: Frontend/Views/TabbedView - -## Table of contents - -### Functions - -- [TabbedView](frontend_views_tabbedview.md#tabbedview) - -## Functions - -### TabbedView - -▸ **TabbedView**(`__namedParameters`: { `tabContents`: (`tabIndex`: _number_) => React.ReactNode ; `tabTitles`: _string_[] }): _Element_ - -This component allows you to render several tabs of content. Each tab can be selected for viewing -by clicking on its corresponding tab button. Useful for displaying lots of slightly different but -related information to the user. - -#### Parameters - -| Name | Type | -| :------------------------------ | :---------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.tabContents` | (`tabIndex`: _number_) => React.ReactNode | -| `__namedParameters.tabTitles` | _string_[] | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_table.md b/docs/modules/frontend_views_table.md deleted file mode 100644 index 1c8d499d..00000000 --- a/docs/modules/frontend_views_table.md +++ /dev/null @@ -1,34 +0,0 @@ -# Module: Frontend/Views/Table - -## Table of contents - -### Functions - -- [Table](frontend_views_table.md#table) - -## Functions - -### Table - -▸ **Table**(`__namedParameters`: { `alignments?`: (`"r"` \| `"c"` \| `"l"`)[] ; `columns`: (`t`: T, `i`: _number_) => React.ReactNode[] ; `headerStyle?`: React.CSSProperties ; `headers`: React.ReactNode[] ; `rows`: T[] }): _Element_ - -React api for creating tables. - -#### Type parameters - -| Name | -| :--- | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :------------------------------- | :------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `__namedParameters` | _object_ | - | -| `__namedParameters.alignments?` | (`"r"` \| `"c"` \| `"l"`)[] | optional, one per column, specifies that the text-alignment in that cell is either right, center, or left, represented by the characters 'r', 'c', and 'l' | -| `__namedParameters.columns` | (`t`: T, `i`: _number_) => React.ReactNode[] | functions, one per column, that convert a row into the react representation of that row's column's value. | -| `__namedParameters.headerStyle?` | React.CSSProperties | - | -| `__namedParameters.headers` | React.ReactNode[] | required (for now) array of strings that head each column | -| `__namedParameters.rows` | T[] | rows of an arbitrary type | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_terminal.md b/docs/modules/frontend_views_terminal.md deleted file mode 100644 index 52b7ab7b..00000000 --- a/docs/modules/frontend_views_terminal.md +++ /dev/null @@ -1,18 +0,0 @@ -# Module: Frontend/Views/Terminal - -## Table of contents - -### Interfaces - -- [TerminalHandle](../interfaces/frontend_views_terminal.terminalhandle.md) -- [TerminalProps](../interfaces/frontend_views_terminal.terminalprops.md) - -### Variables - -- [Terminal](frontend_views_terminal.md#terminal) - -## Variables - -### Terminal - -• `Const` **Terminal**: _ForwardRefExoticComponent_<[_TerminalProps_](../interfaces/frontend_views_terminal.terminalprops.md) & _RefAttributes_\> diff --git a/docs/modules/frontend_views_topbar.md b/docs/modules/frontend_views_topbar.md deleted file mode 100644 index d3ecaff6..00000000 --- a/docs/modules/frontend_views_topbar.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Views/TopBar - -## Table of contents - -### Variables - -- [TOP_BAR_HEIGHT](frontend_views_topbar.md#top_bar_height) - -### Functions - -- [TopBar](frontend_views_topbar.md#topbar) - -## Variables - -### TOP_BAR_HEIGHT - -• `Const` **TOP_BAR_HEIGHT**: `"2.5em"`= '2.5em' - -## Functions - -### TopBar - -▸ **TopBar**(): _Element_ - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_upgradepreview.md b/docs/modules/frontend_views_upgradepreview.md deleted file mode 100644 index a218df8b..00000000 --- a/docs/modules/frontend_views_upgradepreview.md +++ /dev/null @@ -1,25 +0,0 @@ -# Module: Frontend/Views/UpgradePreview - -## Table of contents - -### Functions - -- [UpgradePreview](frontend_views_upgradepreview.md#upgradepreview) - -## Functions - -### UpgradePreview - -▸ **UpgradePreview**(`__namedParameters`: { `branchName`: UpgradeBranchName \| _undefined_ ; `cantUpgrade`: _boolean_ ; `planet`: Planet \| _undefined_ ; `upgrade`: Upgrade \| _undefined_ }): _Element_ - -#### Parameters - -| Name | Type | -| :------------------------------ | :------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.branchName` | UpgradeBranchName \| _undefined_ | -| `__namedParameters.cantUpgrade` | _boolean_ | -| `__namedParameters.planet` | Planet \| _undefined_ | -| `__namedParameters.upgrade` | Upgrade \| _undefined_ | - -**Returns:** _Element_ diff --git a/docs/modules/frontend_views_withdrawsilver.md b/docs/modules/frontend_views_withdrawsilver.md deleted file mode 100644 index 5e5baf20..00000000 --- a/docs/modules/frontend_views_withdrawsilver.md +++ /dev/null @@ -1,22 +0,0 @@ -# Module: Frontend/Views/WithdrawSilver - -## Table of contents - -### Functions - -- [WithdrawSilver](frontend_views_withdrawsilver.md#withdrawsilver) - -## Functions - -### WithdrawSilver - -▸ **WithdrawSilver**(`__namedParameters`: { `wrapper`: [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) }): _Element_ - -#### Parameters - -| Name | Type | -| :-------------------------- | :----------------------------------------------------------------------------- | -| `__namedParameters` | _object_ | -| `__namedParameters.wrapper` | [_Wrapper_](../classes/backend_utils_wrapper.wrapper.md) | - -**Returns:** _Element_ diff --git a/docs/modules/types_darkforest_api_ChunkStoreTypes.md b/docs/modules/types_darkforest_api_ChunkStoreTypes.md new file mode 100644 index 00000000..64d9a75b --- /dev/null +++ b/docs/modules/types_darkforest_api_ChunkStoreTypes.md @@ -0,0 +1,30 @@ +# Module: \_types/darkforest/api/ChunkStoreTypes + +## Table of contents + +### Interfaces + +- [ChunkStore](../interfaces/types_darkforest_api_ChunkStoreTypes.ChunkStore.md) +- [PersistedChunk](../interfaces/types_darkforest_api_ChunkStoreTypes.PersistedChunk.md) +- [PersistedLocation](../interfaces/types_darkforest_api_ChunkStoreTypes.PersistedLocation.md) + +### Type aliases + +- [BucketId](types_darkforest_api_ChunkStoreTypes.md#bucketid) +- [ChunkId](types_darkforest_api_ChunkStoreTypes.md#chunkid) + +## Type aliases + +### BucketId + +Ƭ **BucketId**: `Abstract`<`string`, `"BucketId"`\> + +one of "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" + +--- + +### ChunkId + +Ƭ **ChunkId**: `Abstract`<`string`, `"ChunkId"`\> + +Don't worry about the values here. Never base code off the values here. PLEASE. diff --git a/docs/modules/types_darkforest_api_ContractsAPITypes.md b/docs/modules/types_darkforest_api_ContractsAPITypes.md new file mode 100644 index 00000000..aec7dde2 --- /dev/null +++ b/docs/modules/types_darkforest_api_ContractsAPITypes.md @@ -0,0 +1,90 @@ +# Module: \_types/darkforest/api/ContractsAPITypes + +## Table of contents + +### Enumerations + +- [ContractEvent](../enums/types_darkforest_api_ContractsAPITypes.ContractEvent.md) +- [ContractsAPIEvent](../enums/types_darkforest_api_ContractsAPITypes.ContractsAPIEvent.md) +- [InitArgIdxs](../enums/types_darkforest_api_ContractsAPITypes.InitArgIdxs.md) +- [MoveArgIdxs](../enums/types_darkforest_api_ContractsAPITypes.MoveArgIdxs.md) +- [PlanetEventType](../enums/types_darkforest_api_ContractsAPITypes.PlanetEventType.md) +- [UpgradeArgIdxs](../enums/types_darkforest_api_ContractsAPITypes.UpgradeArgIdxs.md) +- [ZKArgIdx](../enums/types_darkforest_api_ContractsAPITypes.ZKArgIdx.md) + +### Interfaces + +- [ContractConstants](../interfaces/types_darkforest_api_ContractsAPITypes.ContractConstants.md) + +### Type aliases + +- [ClaimArgs](types_darkforest_api_ContractsAPITypes.md#claimargs) +- [ClientMockchainData](types_darkforest_api_ContractsAPITypes.md#clientmockchaindata) +- [DepositArtifactArgs](types_darkforest_api_ContractsAPITypes.md#depositartifactargs) +- [MoveArgs](types_darkforest_api_ContractsAPITypes.md#moveargs) +- [PlanetTypeWeights](types_darkforest_api_ContractsAPITypes.md#planettypeweights) +- [PlanetTypeWeightsByLevel](types_darkforest_api_ContractsAPITypes.md#planettypeweightsbylevel) +- [PlanetTypeWeightsBySpaceType](types_darkforest_api_ContractsAPITypes.md#planettypeweightsbyspacetype) +- [UpgradeArgs](types_darkforest_api_ContractsAPITypes.md#upgradeargs) +- [WhitelistArgs](types_darkforest_api_ContractsAPITypes.md#whitelistargs) +- [WithdrawArtifactArgs](types_darkforest_api_ContractsAPITypes.md#withdrawartifactargs) + +## Type aliases + +### ClaimArgs + +Ƭ **ClaimArgs**: [[`string`, `string`], [[`string`, `string`], [`string`, `string`]], [`string`, `string`], [`string`, `string`, `string`, `string`, `string`, `string`, `string`, `string`, `string`]] + +--- + +### ClientMockchainData + +Ƭ **ClientMockchainData**: `null` \| `undefined` \| `number` \| `string` \| `boolean` \| `EthersBN` \| [`ClientMockchainData`](types_darkforest_api_ContractsAPITypes.md#clientmockchaindata)[] \| { [key in string \| number]: ClientMockchainData } + +--- + +### DepositArtifactArgs + +Ƭ **DepositArtifactArgs**: [`string`, `string`] + +--- + +### MoveArgs + +Ƭ **MoveArgs**: [[`string`, `string`], [[`string`, `string`], [`string`, `string`]], [`string`, `string`], [`string`, `string`, `string`, `string`, `string`, `string`, `string`, `string`, `string`, `string`, `string`, `string`, `string`, `string`]] + +--- + +### PlanetTypeWeights + +Ƭ **PlanetTypeWeights**: [`number`, `number`, `number`, `number`, `number`] + +--- + +### PlanetTypeWeightsByLevel + +Ƭ **PlanetTypeWeightsByLevel**: [[`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights), [`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights), [`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights), [`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights), [`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights), [`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights), [`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights), [`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights), [`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights), [`PlanetTypeWeights`](types_darkforest_api_ContractsAPITypes.md#planettypeweights)] + +--- + +### PlanetTypeWeightsBySpaceType + +Ƭ **PlanetTypeWeightsBySpaceType**: [[`PlanetTypeWeightsByLevel`](types_darkforest_api_ContractsAPITypes.md#planettypeweightsbylevel), [`PlanetTypeWeightsByLevel`](types_darkforest_api_ContractsAPITypes.md#planettypeweightsbylevel), [`PlanetTypeWeightsByLevel`](types_darkforest_api_ContractsAPITypes.md#planettypeweightsbylevel), [`PlanetTypeWeightsByLevel`](types_darkforest_api_ContractsAPITypes.md#planettypeweightsbylevel)] + +--- + +### UpgradeArgs + +Ƭ **UpgradeArgs**: [`string`, `string`] + +--- + +### WhitelistArgs + +Ƭ **WhitelistArgs**: [`string`, `string`] + +--- + +### WithdrawArtifactArgs + +Ƭ **WithdrawArtifactArgs**: [`string`, `string`] diff --git a/docs/modules/types_darkforest_api_UtilityServerAPITypes.md b/docs/modules/types_darkforest_api_UtilityServerAPITypes.md new file mode 100644 index 00000000..ea935eec --- /dev/null +++ b/docs/modules/types_darkforest_api_UtilityServerAPITypes.md @@ -0,0 +1,17 @@ +# Module: \_types/darkforest/api/UtilityServerAPITypes + +## Table of contents + +### Type aliases + +- [AddressTwitterMap](types_darkforest_api_UtilityServerAPITypes.md#addresstwittermap) + +## Type aliases + +### AddressTwitterMap + +Ƭ **AddressTwitterMap**: `Object` + +#### Index signature + +▪ [ethAddress: `string`]: `string` diff --git a/docs/modules/types_file_loader_FileWorkerTypes.__darkforest_eth_contracts_abis___json_.md b/docs/modules/types_file_loader_FileWorkerTypes.__darkforest_eth_contracts_abis___json_.md new file mode 100644 index 00000000..58e90296 --- /dev/null +++ b/docs/modules/types_file_loader_FileWorkerTypes.__darkforest_eth_contracts_abis___json_.md @@ -0,0 +1,15 @@ +# Namespace: "@darkforest_eth/contracts/abis/\*.json" + +[\_types/file-loader/FileWorkerTypes](types_file_loader_FileWorkerTypes.md)."@darkforest_eth/contracts/abis/\*.json" + +## Table of contents + +### Variables + +- [default](types_file_loader_FileWorkerTypes.__darkforest_eth_contracts_abis___json_.md#default) + +## Variables + +### default + +• `Const` **default**: `string` diff --git a/docs/modules/types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___wasm_.md b/docs/modules/types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___wasm_.md new file mode 100644 index 00000000..216c3323 --- /dev/null +++ b/docs/modules/types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___wasm_.md @@ -0,0 +1,15 @@ +# Namespace: "@darkforest_eth/snarks/\*.wasm" + +[\_types/file-loader/FileWorkerTypes](types_file_loader_FileWorkerTypes.md)."@darkforest_eth/snarks/\*.wasm" + +## Table of contents + +### Variables + +- [default](types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___wasm_.md#default) + +## Variables + +### default + +• `Const` **default**: `string` diff --git a/docs/modules/types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___zkey_.md b/docs/modules/types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___zkey_.md new file mode 100644 index 00000000..397f60af --- /dev/null +++ b/docs/modules/types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___zkey_.md @@ -0,0 +1,15 @@ +# Namespace: "@darkforest_eth/snarks/\*.zkey" + +[\_types/file-loader/FileWorkerTypes](types_file_loader_FileWorkerTypes.md)."@darkforest_eth/snarks/\*.zkey" + +## Table of contents + +### Variables + +- [default](types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___zkey_.md#default) + +## Variables + +### default + +• `Const` **default**: `string` diff --git a/docs/modules/types_file_loader_FileWorkerTypes.md b/docs/modules/types_file_loader_FileWorkerTypes.md new file mode 100644 index 00000000..7948b3e9 --- /dev/null +++ b/docs/modules/types_file_loader_FileWorkerTypes.md @@ -0,0 +1,9 @@ +# Module: \_types/file-loader/FileWorkerTypes + +## Table of contents + +### Namespaces + +- ["@darkforest_eth/contracts/abis/\*.json"](types_file_loader_FileWorkerTypes.__darkforest_eth_contracts_abis___json_.md) +- ["@darkforest_eth/snarks/\*.wasm"](types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___wasm_.md) +- ["@darkforest_eth/snarks/\*.zkey"](types_file_loader_FileWorkerTypes.__darkforest_eth_snarks___zkey_.md) diff --git a/docs/modules/types_global_GlobalTypes.md b/docs/modules/types_global_GlobalTypes.md new file mode 100644 index 00000000..9fa23e26 --- /dev/null +++ b/docs/modules/types_global_GlobalTypes.md @@ -0,0 +1,48 @@ +# Module: \_types/global/GlobalTypes + +## Table of contents + +### Enumerations + +- [StatIdx](../enums/types_global_GlobalTypes.StatIdx.md) + +### Interfaces + +- [ClaimCountdownInfo](../interfaces/types_global_GlobalTypes.ClaimCountdownInfo.md) +- [MinerWorkerMessage](../interfaces/types_global_GlobalTypes.MinerWorkerMessage.md) +- [RevealCountdownInfo](../interfaces/types_global_GlobalTypes.RevealCountdownInfo.md) + +### Type aliases + +- [HashConfig](types_global_GlobalTypes.md#hashconfig) +- [Hook](types_global_GlobalTypes.md#hook) + +## Type aliases + +### HashConfig + +Ƭ **HashConfig**: `Object` + +#### Type declaration + +| Name | Type | +| :------------------ | :-------- | +| `biomebaseKey` | `number` | +| `perlinLengthScale` | `number` | +| `perlinMirrorX` | `boolean` | +| `perlinMirrorY` | `boolean` | +| `planetHashKey` | `number` | +| `planetRarity` | `number` | +| `spaceTypeKey` | `number` | + +--- + +### Hook + +Ƭ **Hook**<`T`\>: [`T`, `Dispatch`<`SetStateAction`<`T`\>\>] + +#### Type parameters + +| Name | +| :--- | +| `T` | diff --git a/embedded_plugins/Admin-Controls.ts b/embedded_plugins/Admin-Controls.ts new file mode 100644 index 00000000..4f808f63 --- /dev/null +++ b/embedded_plugins/Admin-Controls.ts @@ -0,0 +1,610 @@ +// organize-imports-ignore +import type { EthAddress, LocatablePlanet, LocationId, Planet } from '@darkforest_eth/types'; +import { + MAX_ARTIFACT_RARITY, + MAX_SPACESHIP_TYPE, + MIN_ARTIFACT_RARITY, + MIN_ARTIFACT_TYPE, + MIN_SPACESHIP_TYPE, + MIN_BIOME, + MAX_BIOME, + //@ts-ignore +} from 'https://cdn.skypack.dev/@darkforest_eth/constants'; +//@ts-ignore +import { getPlanetNameHash } from 'https://cdn.skypack.dev/@darkforest_eth/procedural'; +import { + locationIdToDecStr, + artifactIdFromHexStr, + locationIdFromDecStr, + //@ts-ignore +} from 'https://cdn.skypack.dev/@darkforest_eth/serde'; +import { + ArtifactRarityNames, + ArtifactType, + ArtifactTypeNames, + BiomeNames, + Player, + PlanetType, + PlanetTypeNames, + WorldCoords, + //@ts-ignore +} from 'https://cdn.skypack.dev/@darkforest_eth/types'; +import { + html, + render, + useEffect, + useState, + useCallback, + //@ts-ignore +} from 'https://unpkg.com/htm/preact/standalone.module.js'; + +function random256Id() { + const alphabet = '0123456789ABCDEF'.split(''); + let result = '0x'; + for (let i = 0; i < 256 / 4; i++) { + result += alphabet[Math.floor(Math.random() * alphabet.length)]; + } + return result; +} + +async function createArtifact( + owner: EthAddress, + type: ArtifactType, + planet: Planet, + rarity: string, + biome: string +) { + if (!owner) { + alert('no account'); + return; + } + + const tokenId = random256Id(); + // see contracts/types/ActionTypes.sol - CreateArtifactArgs + const args = Promise.resolve([ + { + tokenId, + discoverer: owner, + planetId: locationIdToDecStr(planet.locationId), + rarity, + biome, + artifactType: type, + owner: owner, + controller: '0x0000000000000000000000000000000000000000', + }, + ]); + + const tx = await df.submitTransaction({ + args, + contract: df.getContract(), + methodName: 'adminGiveArtifact', + }); + tx.confirmedPromise.then(() => { + df.hardRefreshArtifact(artifactIdFromHexStr(tokenId.slice(2))); + df.hardRefreshPlanet(planet.locationId); + }); + + return tx; +} + +async function initPlanet(planet: LocatablePlanet) { + if (planet.isInContract) return; + + const args = Promise.resolve([locationIdToDecStr(planet.locationId), planet.perlin]); + + const tx = await df.submitTransaction({ + args, + contract: df.getContract(), + methodName: 'adminInitializePlanet', + }); + + await tx.confirmedPromise; + + return tx; +} + +async function spawnSpaceship( + planet: LocatablePlanet | undefined, + owner: EthAddress | undefined, + shipType: ArtifactType +) { + if (!owner) { + alert('no account'); + return; + } + + if (!planet) { + alert('no selected planet'); + return; + } + + await initPlanet(planet); + + const args = Promise.resolve([locationIdToDecStr(planet.locationId), owner, shipType]); + + const tx = await df.submitTransaction({ + args, + contract: df.getContract(), + methodName: 'adminGiveSpaceShip', + }); + + tx.confirmedPromise.then(() => df.hardRefreshPlanet(planet.locationId)); + + return tx; +} + +async function takeOwnership( + planet: LocatablePlanet | undefined, + newOwner: EthAddress | undefined +) { + if (!newOwner) { + alert('no account'); + return; + } + + if (!planet) { + alert('no selected planet'); + return; + } + + const snarkArgs = await df.getSnarkHelper().getInitArgs( + planet.location.coords.x, + planet.location.coords.y, + Math.floor(Math.sqrt(planet.location.coords.x ** 2 + planet.location.coords.y ** 2)) + 1 // floor(sqrt(x^2 + y^2)) + 1 + ); + + const args = Promise.resolve([newOwner, ...snarkArgs]); + + const tx = await df.submitTransaction({ + locationId: planet.locationId, + newOwner, + args, + contract: df.getContract(), + methodName: 'safeSetOwner', + }); + + tx.confirmedPromise.then(() => df.hardRefreshPlanet(planet.locationId)); + + return tx; +} + +async function pauseGame() { + const tx = await df.submitTransaction({ + args: Promise.resolve([]), + contract: df.getContract(), + methodName: 'pause', + }); + + return tx; +} + +async function unpauseGame() { + const tx = await df.submitTransaction({ + args: Promise.resolve([]), + contract: df.getContract(), + methodName: 'unpause', + }); + + return tx; +} + +async function addAddressToWhitelist(address: EthAddress) { + const args = Promise.resolve([address]); + + const tx = await df.submitTransaction({ + args, + contract: df.getContract(), + methodName: 'addToWhitelist', + }); + + return tx; +} + +async function createPlanet(coords: WorldCoords, level: number, type: PlanetType) { + coords.x = Math.round(coords.x); + coords.y = Math.round(coords.y); + + const location = df.locationBigIntFromCoords(coords).toString(); + const perlinValue = df.biomebasePerlin(coords, true); + + const args = Promise.resolve([ + { + x: coords.x, + y: coords.y, + level, + planetType: type, + requireValidLocationId: false, + location: location, + perlin: perlinValue, + }, + ]); + + const tx = await df.submitTransaction({ + args, + contract: df.getContract(), + methodName: 'createPlanet', + }); + + await tx.confirmedPromise; + + const revealArgs = df.getSnarkHelper().getRevealArgs(coords.x, coords.y); + const revealTx = await df.submitTransaction({ + args: revealArgs, + contract: df.getContract(), + methodName: 'revealLocation', + }); + + await revealTx.confirmedPromise; + + await df.hardRefreshPlanet(locationIdFromDecStr(location)); +} + +function PlanetLink({ planetId }: { planetId?: LocationId }) { + if (planetId) { + return html` ui.centerLocationId(planetId)} + > + ${getPlanetNameHash(planetId)} + `; + } else { + return '(none selected)'; + } +} + +function Heading({ title }: { title: string }) { + return html`

${title}

`; +} + +function shipOptions() { + const options = [] as HTMLOptionElement[]; + for (let i = MIN_SPACESHIP_TYPE; i <= MAX_SPACESHIP_TYPE; i++) { + options.push(html``); + } + return options; +} + +function artifactOptions() { + const options = [] as HTMLOptionElement[]; + for (let i = MIN_ARTIFACT_TYPE; i < MIN_SPACESHIP_TYPE; i++) { + options.push(html``); + } + return options; +} + +function artifactRarityOptions() { + const options = [] as HTMLOptionElement[]; + for (let i = MIN_ARTIFACT_RARITY; i <= MAX_ARTIFACT_RARITY; i++) { + options.push(html``); + } + return options; +} + +function artifactBiomeOptions() { + const options = [] as HTMLOptionElement[]; + for (let i = MIN_BIOME; i <= MAX_BIOME; i++) { + options.push(html``); + } + return options; +} + +function accountOptions(players: Player[]) { + const options = [] as HTMLOptionElement[]; + for (const player of players) { + options.push( + html`` + ); + } + return options; +} +function planetTypeOptions() { + const options = [] as HTMLOptionElement[]; + for (let i = 0; i <= Object.values(PlanetType).length - 1; i++) { + options.push(html``); + } + return options; +} + +function Select({ + style, + value, + onChange, + items, +}: { + style: Record; + value: string; + onChange: (e: InputEvent) => void; + items: unknown[]; +}) { + return html` + + `; +} + +const wrapperStyle = { + display: 'flex', + flexDirection: 'column', + gap: '8px', +}; + +const rowStyle = { + display: 'flex', + gap: '8px', + alignItems: 'center', +}; + +function PlanetCreator() { + const uiEmitter = ui.getUIEmitter(); + + const [level, setLevel] = useState(0); + const [planetType, setPlanetType] = useState(PlanetType.PLANET); + const [choosingLocation, setChoosingLocation] = useState(false); + const [planetCoords, setPlanetCoords] = useState(null); + + const placePlanet = useCallback( + (coords: WorldCoords) => { + createPlanet(coords, parseInt(level), planetType); + setChoosingLocation(false); + }, + [level, planetType, setChoosingLocation] + ); + + const updatePlanetCoords = useCallback( + (coords: WorldCoords) => { + setPlanetCoords(coords); + }, + [setPlanetCoords] + ); + + useEffect(() => { + if (choosingLocation) { + uiEmitter.on('WorldMouseClick', placePlanet); + uiEmitter.on('WorldMouseMove', updatePlanetCoords); + + return () => { + uiEmitter.off('WorldMouseClick', placePlanet); + uiEmitter.off('WorldMouseMove', updatePlanetCoords); + }; + } + + return () => {}; + }, [uiEmitter, choosingLocation, placePlanet, updatePlanetCoords]); + + return html` +
+

Create Planet

+
+ setLevel((e.target as HTMLInputElement).value)} + max=${9} + > +
+ + <${Select} + id="planet-type-selector" + value=${planetType} + onChange=${(e: InputEvent) => setPlanetType((e.target as HTMLSelectElement).value)} + items=${planetTypeOptions()} + /> +
+
+
+ ${!choosingLocation && + html` + { + setChoosingLocation(true); + }} + > + Choose Planet Location + + `} + ${choosingLocation && + html`

+ Creating planet on coords
+ (${Math.round(planetCoords?.x)}, ${Math.round(planetCoords?.y)}) +

`} + ${choosingLocation && + html` setChoosingLocation(false)}> Cancel Creation`} +
+
+ `; +} + +function App() { + const [selectedPlanet, setSelectedPlanet] = useState(null); + const [selectedShip, setSelectedShip] = useState(MIN_SPACESHIP_TYPE); + const [selectedArtifact, setSelectedArtifact] = useState(MIN_ARTIFACT_TYPE); + const [artifactRarity, setArtifactRarity] = useState('1'); + const [artifactBiome, setArtifactBiome] = useState(MIN_BIOME.toString()); + const [whitelistAddress, setWhitelistAddress] = useState(null); + const [account, setAccount] = useState(null); + const [targetAccount, setTargetAccount] = useState(null); + const [allPlayers, setAllPlayers] = useState([]); + + useEffect(() => { + const account = df.getAccount(); + setAccount(account); + setTargetAccount(account); + }, []); + + useEffect(() => { + const refreshPlayers = () => { + setAllPlayers(df.getAllPlayers()); + }; + + const sub = df.playersUpdated$.subscribe(refreshPlayers); + refreshPlayers(); + + return () => sub.unsubscribe(); + }, []); + + useEffect(() => { + const subscription = ui.selectedPlanetId$.subscribe((p: LocationId) => { + setSelectedPlanet(ui.getPlanetWithId(p)); + }); + + return () => subscription.unsubscribe(); + }, [setSelectedPlanet]); + + return html` +
+

Logged in as account: ${account}

+ + <${Heading} title="Game state" /> + +
+ Change game state: + pauseGame()}> Pause + unpauseGame()}> Unpause +
+ + <${Heading} title="Whitelist players" /> + +
+ setWhitelistAddress((e.target as HTMLInputElement).value)} + placeholder="Address to whitelist" + > + addAddressToWhitelist(whitelistAddress)}> + Whitelist Address + +
+ + <${Heading} title="Give Planets" /> + +
+ Planet: <${PlanetLink} planetId=${(selectedPlanet as Planet)?.locationId} /> + to + <${Select} + style=${{ flex: '1' }} + value=${targetAccount} + onChange=${(e: InputEvent) => setTargetAccount((e.target as HTMLSelectElement).value)} + items=${accountOptions(allPlayers)} + /> + takeOwnership(selectedPlanet, targetAccount)}> + Give Planet + +
+ + <${Heading} title="Give Spaceships" /> + +
+ <${Select} + style=${{ flex: '1' }} + value=${selectedShip} + onChange=${(e: InputEvent) => setSelectedShip((e.target as HTMLSelectElement).value)} + items=${shipOptions()} + /> + + to + + <${Select} + style=${{ flex: '1' }} + value=${targetAccount} + onChange=${(e: InputEvent) => setTargetAccount((e.target as HTMLSelectElement).value)} + items=${accountOptions(allPlayers)} + /> +
+ +
+ + ${'On planet: '} + <${PlanetLink} planetId=${(selectedPlanet as Planet)?.locationId} /> + + + spawnSpaceship(selectedPlanet, targetAccount, selectedShip)}> + Spawn Spaceship + +
+ + <${Heading} title="Give Artifacts" /> + +
+ <${Select} + style=${{ flex: '1' }} + value=${artifactRarity} + onChange=${(e: InputEvent) => setArtifactRarity((e.target as HTMLSelectElement).value)} + items=${artifactRarityOptions()} + /> + + <${Select} + style=${{ flex: '1' }} + value=${artifactBiome} + onChange=${(e: InputEvent) => setArtifactBiome((e.target as HTMLSelectElement).value)} + items=${artifactBiomeOptions()} + /> + + <${Select} + style=${{ flex: '1' }} + value=${selectedArtifact} + onChange=${(e: InputEvent) => setSelectedArtifact((e.target as HTMLSelectElement).value)} + items=${artifactOptions()} + /> + + to + + <${Select} + style=${{ flex: '1' }} + value=${targetAccount} + onChange=${(e: InputEvent) => setTargetAccount((e.target as HTMLSelectElement).value)} + items=${accountOptions(allPlayers)} + /> +
+ +
+ + ${'On planet: '} + <${PlanetLink} planetId=${(selectedPlanet as Planet)?.locationId} /> + + + + createArtifact( + targetAccount, + selectedArtifact, + selectedPlanet, + artifactRarity, + artifactBiome + )} + > + Give Artifact + +
+ +
+ <${PlanetCreator} /> +
+
+ `; +} + +class Plugin implements DFPlugin { + async render(container: HTMLDivElement) { + container.style.width = '525px'; + + render(html`<${App} />`, container); + } +} + +export default Plugin; diff --git a/embedded_plugins/Getting-Started.ts b/embedded_plugins/Getting-Started.ts index 91a9c9b6..9338dcaf 100644 --- a/embedded_plugins/Getting-Started.ts +++ b/embedded_plugins/Getting-Started.ts @@ -1,11 +1,9 @@ /** * Hi there! * - * Looks like you've found the new Dark Forest plugins system. + * Looks like you've found the Dark Forest plugins system. * Read through this script to learn how to write plugins! - */ - -/** + * * Most importantly, you have access these globals: * 1. df - Just like the df object in your console. * 2. ui - For interacting with the game's user interface. @@ -21,7 +19,7 @@ console.log(df, ui); import confetti from 'https://cdn.skypack.dev/canvas-confetti'; /** - * A plugin is a Class with render and destory methods. + * A plugin is a Class with render and destroy methods. * Other than that, you are free to do whatever, so be careful! */ class Readme implements DFPlugin { @@ -53,7 +51,7 @@ class Readme implements DFPlugin { const secondTextDiv = document.createElement('div'); secondTextDiv.innerText = '... Or, click the button below to get a free artifact!'; - const myButton = document.createElement('button'); + const myButton = document.createElement('df-button'); myButton.innerText = 'give me an artifact'; myButton.addEventListener('click', async () => { await confetti.create(this.canvas)({ diff --git a/embedded_plugins/Locate-Artifacts.ts b/embedded_plugins/Locate-Artifacts.ts index 17e54568..0289cff6 100644 --- a/embedded_plugins/Locate-Artifacts.ts +++ b/embedded_plugins/Locate-Artifacts.ts @@ -56,7 +56,7 @@ class ArtifactsFinder implements DFPlugin { async render(container: HTMLDivElement) { console.log('rendered 1 artifacts finder'); - const findArtifactsButton = document.createElement('button'); + const findArtifactsButton = document.createElement('df-button'); findArtifactsButton.innerText = 'find me some artifacts!'; container.appendChild(findArtifactsButton); container.appendChild(document.createElement('br')); diff --git a/embedded_plugins/Remote-Explorer.ts b/embedded_plugins/Remote-Explorer.ts index d3fc92eb..2b7a6dcf 100644 --- a/embedded_plugins/Remote-Explorer.ts +++ b/embedded_plugins/Remote-Explorer.ts @@ -1,18 +1,16 @@ -import type { Chunk, MinerWorkerMessage } from '../src/_types/global/GlobalTypes'; -import type WebpackWorker from 'worker-loader!*'; -import type MinerManager from '../src/Backend/Miner/MinerManager'; -import type { WorldCoords } from '@darkforest_eth/types'; - +// organize-imports-ignore +import type { Chunk, WorldCoords } from '@darkforest_eth/types'; +//@ts-ignore +import { locationIdFromDecStr } from 'https://cdn.skypack.dev/@darkforest_eth/serde'; import { html, render, - useState, useEffect, - useLayoutEffect, + useState, //@ts-ignore } from 'https://unpkg.com/htm/preact/standalone.module.js'; -//@ts-ignore -import { locationIdFromDecStr } from 'https://cdn.skypack.dev/@darkforest_eth/serde'; +import type MinerManager from '../src/Backend/Miner/MinerManager'; +import type { MinerWorkerMessage } from '../src/_types/global/GlobalTypes'; type ExtendedMinerManager = MinerManager & { url: string; @@ -21,84 +19,91 @@ type ExtendedMinerManager = MinerManager & { patternType: string; }; -const { MinerManager: Miner, SwissCheesePattern, SpiralPattern } = df.getConstructors(); +const { + MinerManager: Miner, + SwissCheesePattern, + SpiralPattern, + TowardsCenterPattern, + TowardsCenterPatternV2, +} = df.getConstructors(); const NEW_CHUNK = 'DiscoveredNewChunk'; function getPattern(coords: WorldCoords, patternType: string, chunkSize: number) { if (patternType === 'swiss') { return new SwissCheesePattern(coords, chunkSize); - } else { + } else if (patternType === 'spiral') { return new SpiralPattern(coords, chunkSize); + } else if (patternType === 'towardsCenter') { + return new TowardsCenterPattern(coords, chunkSize); + } else { + return new TowardsCenterPatternV2(coords, chunkSize); } } -function workerFactory(url: string) { - class RemoteWorker implements WebpackWorker { - url: string = url; - - async postMessage(msg: string) { - const msgJson: MinerWorkerMessage = JSON.parse(msg); - - const resp = await fetch(this.url, { - method: 'POST', - body: JSON.stringify({ - chunkFootprint: msgJson.chunkFootprint, - planetRarity: msgJson.planetRarity, - planetHashKey: msgJson.planetHashKey, - }), - headers: { - 'Content-Type': 'application/json', - }, - }); - - const exploredChunk = await resp.json(); - - const chunkCenter = { - x: exploredChunk.chunkFootprint.bottomLeft.x + exploredChunk.chunkFootprint.sideLength / 2, - y: exploredChunk.chunkFootprint.bottomLeft.y + exploredChunk.chunkFootprint.sideLength / 2, - }; - - exploredChunk.perlin = df.spaceTypePerlin(chunkCenter, false); - for (const planetLoc of exploredChunk.planetLocations) { - planetLoc.hash = locationIdFromDecStr(planetLoc.hash); - planetLoc.perlin = df.spaceTypePerlin( - { x: planetLoc.coords.x, y: planetLoc.coords.y }, - true - ); - planetLoc.biomebase = df.biomebasePerlin( - { x: planetLoc.coords.x, y: planetLoc.coords.y }, - true - ); - } +class RemoteWorker implements Worker { + private url: string; - this.onmessage({ data: JSON.stringify([exploredChunk, msgJson.jobId]) }); - } + constructor(url: string) { + this.url = url; + } - onmessage(_a: { data: string }) { - console.warn('Unimplemented: onmessage'); - } - terminate() { - console.warn('Unimplemented: terminate'); - } - onmessageerror() { - console.warn('Unimplemented: onmessageerror'); - } - addEventListener() { - console.warn('Unimplemented: addEventListener'); - } - removeEventListener() { - console.warn('Unimplemented: removeEventListener'); - } - dispatchEvent(_event: Event): boolean { - return false; - } - onerror() { - console.warn('Unimplemented: onerror'); + async postMessage(msg: string) { + const msgJson: MinerWorkerMessage = JSON.parse(msg); + + const resp = await fetch(this.url, { + method: 'POST', + body: JSON.stringify({ + chunkFootprint: msgJson.chunkFootprint, + planetRarity: msgJson.planetRarity, + planetHashKey: msgJson.planetHashKey, + }), + headers: { + 'Content-Type': 'application/json', + }, + }); + + const exploredChunk = await resp.json(); + + const chunkCenter = { + x: exploredChunk.chunkFootprint.bottomLeft.x + exploredChunk.chunkFootprint.sideLength / 2, + y: exploredChunk.chunkFootprint.bottomLeft.y + exploredChunk.chunkFootprint.sideLength / 2, + }; + + exploredChunk.perlin = df.spaceTypePerlin(chunkCenter, false); + for (const planetLoc of exploredChunk.planetLocations) { + planetLoc.hash = locationIdFromDecStr(planetLoc.hash); + planetLoc.perlin = df.spaceTypePerlin({ x: planetLoc.coords.x, y: planetLoc.coords.y }, true); + planetLoc.biomebase = df.biomebasePerlin( + { x: planetLoc.coords.x, y: planetLoc.coords.y }, + true + ); } + + this.onmessage({ data: JSON.stringify([exploredChunk, msgJson.jobId]) }); } - return RemoteWorker; + onmessage(_a: { data: string }) { + console.warn('Unimplemented: onmessage'); + } + terminate() { + console.warn('Unimplemented: terminate'); + } + onmessageerror() { + console.warn('Unimplemented: onmessageerror'); + } + addEventListener() { + console.warn('Unimplemented: addEventListener'); + } + removeEventListener() { + console.warn('Unimplemented: removeEventListener'); + } + dispatchEvent(_event: Event): boolean { + return false; + } + onerror() { + console.warn('Unimplemented: onerror'); + } } function Target() { @@ -147,8 +152,7 @@ function MinerUI({ }) { const [hashRate, setHashRate] = useState(0); - // No idea why useEffect doesn't run - useLayoutEffect(() => { + useEffect(() => { const calcHash = (chunk: Chunk, miningTimeMillis: number) => { df.addNewChunk(chunk); const hashRate = chunk.chunkFootprint.sideLength ** 2 / (miningTimeMillis / 1000); @@ -289,17 +293,19 @@ function App({ ` )}
- + > - + Explore!
`; @@ -326,7 +332,7 @@ class RemoteExplorerPlugin implements DFPlugin { df.planetRarity, df.getHashConfig(), false, - workerFactory(url) + () => new RemoteWorker(url) ) as ExtendedMinerManager; miner.url = url; diff --git a/embedded_plugins/Renderer-Showcase.ts b/embedded_plugins/Renderer-Showcase.ts new file mode 100644 index 00000000..0f20dc06 --- /dev/null +++ b/embedded_plugins/Renderer-Showcase.ts @@ -0,0 +1,937 @@ +/* eslint-disable */ +/** + * Below is a list of class definitions for renderers. + * These are blank renderers as they have no functionality. + * The result of using these renderers is the same as disabling the renderer. + */ +import { + engineConsts, + EngineUtils, + GameGLManager, + GenericRenderer, + glsl, +//@ts-ignore +} from 'https://cdn.skypack.dev/@darkforest_eth/renderer'; +import { + AsteroidRendererType, + AttribType, + BackgroundRendererType, + BeltRendererType, + BlackDomainRendererType, + CaptureZoneRendererType, + CanvasCoords, + Chunk, + CircleRendererType, + GameViewport, + LineRendererType, + LocatablePlanet, + LocationId, + MineBodyRendererType, + MineRendererType, + PerlinRendererType, + Planet, + PlanetRendererType, + PlanetRenderInfo, + PlanetRenderManagerType, + QuasarBodyRendererType, + QuasarRayRendererType, + QuasarRendererType, + RectRendererType, + RenderedArtifact, + RendererType, + RGBAVec, + RGBVec, + RingRendererType, + RuinsRendererType, + SpaceRendererType, + SpacetimeRipRendererType, + SpriteRendererType, + TextAlign, + TextAnchor, + TextRendererType, + UIRendererType, + UniformType, + UnminedRendererType, + VoyageRendererType, + WorldCoords, + WormholeRendererType, +//@ts-ignore +} from 'https://cdn.skypack.dev/@darkforest_eth/types'; +//@ts-ignore +import { html, render } from 'https://unpkg.com/htm/preact/standalone.module.js'; + +// Line 78 - 350: Blank Renderer +// Line 350 - 651: Circle Renderer +// Line 626 - End: Plugin + + + + +// Line 78 - 376 +// "Blank" renderer class definitions +// When passing in these renderers into the Dark Forest API, the result would be the same as disabling that type of renderer. + +class PlanetRenderer implements PlanetRendererType { + rendererType = RendererType.Planet; + queuePlanetBody(planet: Planet, centerW: WorldCoords, radiusW: number): void {} + flush(): void {} +} + +class MineRenderer implements MineRendererType { + rendererType = RendererType.Mine; + queueMine(planet: Planet, centerW: WorldCoords, radiusW: number): void {} + flush(): void {} +} + +class SpacetimeRipRenderer implements SpacetimeRipRendererType { + rendererType = RendererType.SpacetimeRip; + queueRip(planet: Planet, centerW: WorldCoords, radiusW: number): void {} + flush(): void {} +} + +class QuasarRenderer implements QuasarRendererType { + rendererType = RendererType.Quasar; + + queueQuasar(planet: Planet, centerW: WorldCoords, radiusW: number): void {} + flush(): void {} +} + +class RuinsRenderer implements RuinsRendererType { + rendererType = RendererType.Ruins; + queueRuins(planet: Planet, centerW: WorldCoords, radiusW: number): void {} + flush(): void {} +} +class AsteroidRenderer implements AsteroidRendererType { + rendererType = RendererType.Asteroid; + queueAsteroid(planet: Planet, centerW: CanvasCoords, radiusW: number, color?: RGBVec): void {} + flush(): void {} +} + +class RingRenderer implements RingRendererType { + rendererType = RendererType.Ring; + queueRingAtIdx( + planet: Planet, + centerW: WorldCoords, + radiusW: number, + color?: RGBVec, + beltIdx?: number, + angle?: number + ): void {} + flush(): void {} +} + +class SpriteRenderer implements SpriteRendererType { + rendererType = RendererType.Sprite; + //drawing artifacts around world + queueArtifactWorld( + artifact: RenderedArtifact, + posW: CanvasCoords, + widthW: number, + alpha?: number, + atFrame?: number | undefined, + color?: RGBVec | undefined, + theta?: number | undefined, + viewport?: GameViewport + ): void {} + //drawing artifacts when traveling with voyagers + queueArtifact( + artifact: RenderedArtifact, + pos: CanvasCoords, + width?: number, + alpha?: number, + atFrame?: number | undefined, + color?: RGBVec | undefined, + theta?: number | undefined + ): void {} + flush(): void {} +} + +class BlackDomainRenderer implements BlackDomainRendererType { + rendererType = RendererType.BlackDomain; + queueBlackDomain(planet: Planet, centerW: WorldCoords, radiusW: number): void {} + flush(): void {} +} + +class TextRenderer implements TextRendererType { + rendererType = RendererType.Text; + queueTextWorld( + text: string, + coords: WorldCoords, + color?: RGBAVec, + offY?: number, // measured in text units - constant screen-coord offset that it useful for drawing nice things + align?: TextAlign, + anchor?: TextAnchor, + zIdx?: number + ): void {} + flush(): void {} +} + +class VoyageRenderer implements VoyageRendererType { + rendererType = RendererType.Voyager; + queueVoyages(): void {} + flush(): void {} +} + +class WormholeRenderer implements WormholeRendererType { + rendererType = RendererType.Wormhole; + queueWormholes(): void {} + flush(): void {} +} + +class MineBodyRenderer implements MineBodyRendererType { + rendererType = RendererType.MineBody; + queueMineScreen(planet: Planet, center: WorldCoords, radius: number, z: number): void {} + flush(): void {} + setUniforms(): void {} +} + +class BeltRenderer implements BeltRendererType { + rendererType = RendererType.Belt; + queueBeltAtIdx( + planet: Planet, + center: WorldCoords | CanvasCoords, + radius?: number, + color?: RGBVec, + beltIdx?: number, + angle?: number, + screen?: boolean + ): void {} + flush(): void {} + setUniforms(): void {} +} + +class BackgroundRenderer implements BackgroundRendererType { + rendererType = RendererType.Background; + queueChunks( + exploredChunks: Iterable, + highPerfMode: boolean, + drawChunkBorders: boolean, + disableFancySpaceEffect: boolean, + innerNebulaColor?: string, + nebulaColor?: string, + spaceColor?: string, + deepSpaceColor?: string, + deadSpaceColor?: string + ): void {} + flush(): void {} +} + +class SpaceRenderer implements SpaceRendererType { + rendererType = RendererType.Space; + queueChunk(chunk: Chunk): void {} + setColorConfiguration( + innerNebulaColor: string, + nebulaColor: string, + spaceColor: string, + deepSpaceColor: string, + deadSpaceColor: string + ): void {} + flush(): void {} +} + +class UnminedRenderer implements UnminedRendererType { + rendererType = RendererType.Unmined; + queueRect( + { x, y }: CanvasCoords, + width: number, + height: number, + color: RGBVec, + zIdx: number + ): void {} + flush(): void {} +} + +class PerlinRenderer implements PerlinRendererType { + rendererType = RendererType.Perlin; + queueChunk(chunk: Chunk): void {} + flush(): void {} +} + +class LineRenderer implements LineRendererType { + rendererType = RendererType.Line; + queueLineWorld( + start: WorldCoords, + end: WorldCoords, + color?: RGBAVec, + width?: number, + zIdx?: number, + dashed?: boolean + ): void {} + flush(): void {} +} + +class RectRenderer implements RectRendererType { + rendererType = RendererType.Rect; + queueRectCenterWorld( + center: WorldCoords, + width: number, + height: number, + color?: RGBVec, + stroke?: number, + zIdx?: number + ): void {} + flush(): void {} +} + +class CircleRenderer implements CircleRendererType { + rendererType = RendererType.Circle; + queueCircleWorld( + center: CanvasCoords, + radius: number, + color?: RGBAVec, + stroke?: number, + angle?: number, // percent of arc to render + dashed?: boolean + ): void {} + queueCircleWorldCenterOnly( + center: WorldCoords, + radius: number, // canvas coords + color?: RGBAVec + ): void {} + flush(): void {} +} + +class UIRenderer implements UIRendererType { + rendererType = RendererType.UI; + queueBorders(): void {} + queueSelectedRangeRing(): void {} + queueSelectedRect(): void {} + queueHoveringRect(): void {} + queueMousePath(): void {} + drawMiner(): void {} + flush(): void {} +} + +class PlanetRenderManager implements PlanetRenderManagerType { + rendererType = RendererType.PlanetManager; + queueRangeRings(planet: LocatablePlanet): void {} + queuePlanets( + cachedPlanets: Map, + now: number, + highPerfMode: boolean, + disableEmojis: boolean, + disableHats: boolean + ): void {} + flush(): void {} +} + +class QuasarBodyRenderer implements QuasarBodyRendererType { + rendererType = RendererType.QuasarBody; + queueQuasarBody( + planet: Planet, + centerW: WorldCoords, + radiusW: number, + z?: number, + angle?: number + ): void {} + flush(): void {} +} + +class QuasarRayRenderer implements QuasarRayRendererType { + rendererType = RendererType.QuasarRay; + queueQuasarRay( + planet: Planet, + centerW: WorldCoords, + radiusW: number, + z?: number, + top?: boolean, + angle?: number + ): void {} + flush(): void {} +} + +class CaptureZoneRenderer implements CaptureZoneRendererType{ + rendererType = RendererType.CaptureZone; + + queueCaptureZones(): void {} + + flush(): void {} +} + +// line 350 - 351 +// Circle Renderer Definitions using WebGl + + + +// Program Definition +// A program is what we use to organizie the attributes and shaders of WebGl Programs + +const u = { + matrix: 'u_matrix', // matrix to convert from world coords to clipspace +}; + +const a = { + position: 'a_position', // as [posx, posy, rectposx, rectposy] + color: 'a_color', + props: 'a_props', // as [stroke, angle, dash] + eps: 'a_eps', + planetInfo: 'a_planetInfo', //as [planetlevel, radius] + PlanetUpgrades: 'a_planetUpgrades', //as [defense:number , range: number, speed: number] + PlanetResources: 'a_planetResources', //as [energy:number , energy cap: number, silver: number, silver cap: number] +}; + +const GENERIC_PLANET_PROGRAM_DEFINITION = { + uniforms: { + matrix: { name: u.matrix, type: UniformType.Mat4 }, + }, + attribs: { + position: { + dim: 4, + type: AttribType.Float, + normalize: false, + name: a.position, + }, + eps: { + dim: 1, + type: AttribType.Float, + normalize: false, + name: a.eps, + }, + color: { + dim: 4, + type: AttribType.UByte, + normalize: true, + name: a.color, + }, + props: { + dim: 2, + type: AttribType.Float, + normalize: false, + name: a.props, + }, + planetInfo: { + dim: 2, + type: AttribType.UByte, + normalize: false, + name: a.planetInfo, + }, + planetUpgrades: { + dim: 3, + type: AttribType.UByte, + normalize: false, + name: a.PlanetUpgrades, + }, + planetResources: { + dim: 4, + type: AttribType.UByte, + normalize: false, + name: a.PlanetResources, + }, + }, + + vertexShader: glsl` + in vec4 a_position; + in vec4 a_color; + in vec2 a_props; + in float a_eps; + in vec2 a_planetInfo; + in vec4 a_planetResources; + + uniform mat4 u_matrix; + + out float v_planetLevel; + out vec4 v_color; + out vec2 v_rectPos; + out float v_angle; + out float v_dash; + out float v_eps; + out float energy; + out float energy_cap; + + void main() { + gl_Position = u_matrix * vec4(a_position.xy, 0.0, 1.0); + + v_rectPos = a_position.zw; + v_color = a_color; + v_angle = a_props.x; + v_dash = a_props.y; + v_eps = a_eps; + v_planetLevel = a_planetInfo[0]; + energy = a_planetResources[0]; + energy_cap = a_planetResources[1]; + } + `, + + fragmentShader: glsl` + #define PI 3.1415926535 + + precision highp float; + out vec4 outColor; + + in vec4 v_color; + in vec2 v_rectPos; + in float v_angle; + in float v_dash; + in float v_eps; + in float v_planetLevel; + in float energy; + in float energy_cap; + + void main() { + vec4 color = v_color; + float dist = length(v_rectPos); + + if (dist > 1.0) discard; // if it's outside the circle + + // anti-aliasing if barely in the circle + float ratio = (1.0 - dist) / v_eps; + if (ratio < 1.) { + color.a *= ratio; + } + + + /* get angle for both angle + dash checks */ + float angle = atan(v_rectPos.y, v_rectPos.x); + + // add 5pi/2 to translate it to [-PI/2, 3PI / 2] + float check = angle + (5.0 * PI / 2.0); + check -= (check > 2.0 * PI ? 2.0 * PI : 0.0); + float pct = check / (2.0 * PI); + + /* do angle check */ + + if (v_angle != 1.0 && pct > v_angle) discard; + + /* do dash check */ + bool isDash = v_dash > 0.0; + float interval = angle / v_dash; + float modulo = interval - 2.0 * floor(interval / 2.0); + bool isGap = modulo > 1.0; + if (isDash && isGap) discard; + + /* now draw it */ + outColor = vec4(1,1.0/energy_cap*energy,0,1); + } + `, +}; +class CirclePlanetRenderer extends GenericRenderer< + typeof GENERIC_PLANET_PROGRAM_DEFINITION, + GameGLManager +> { + quadBuffer: number[]; + + viewport: GameViewport; + rendererType: number; + + vertexShader: string; + fragmentShader: string; + + manager: GameGLManager; + + constructor(glManager: GameGLManager, n: number) { + super(glManager, GENERIC_PLANET_PROGRAM_DEFINITION); + //@ts-ignore + this.verts = 0; //found in generic renderer + + this.manager = glManager; + const { vertexShader: vert, fragmentShader: frag } = GENERIC_PLANET_PROGRAM_DEFINITION; + this.vertexShader = vert; + this.fragmentShader = frag; + this.rendererType = n; + this.viewport = this.manager.renderer.getViewport(); + this.quadBuffer = EngineUtils.makeEmptyDoubleQuad(); + } + + public queuePlanet( + center: CanvasCoords, + radius: number, + planet: Planet, + angle = 1, // percent of arc to render + dashed = false + ): void { + const color = [255, 255, 255, 255] as RGBAVec; + const { + position: posA, + color: colorA, + props: propsA, + eps: epsA, + planetInfo: planetInfoA, + planetUpgrades: planetUpgradesA, + planetResources: planetResourcesA, + //@ts-ignore + } = this.attribManagers; + const { x, y } = center; + // 1 on either side for antialiasing + const r = radius + 1; + + const { x1, y1 } = { x1: x - r, y1: y - r }; + const { x2, y2 } = { x2: x + r, y2: y + r }; + + // prettier-ignore + EngineUtils.makeDoubleQuadBuffered( + this.quadBuffer, + x1, y1, x2, y2, -1, -1, 1, 1 + ); + //@ts-ignore + posA.setVertex(this.quadBuffer, this.verts); + + // convert pixels to radians + const interval = engineConsts.dashLength; + const pixPerRad = radius; + + const dashRad = interval / pixPerRad; + const dash = dashed ? dashRad : -1; + + const eps = 1 / radius; + const resources = [planet.energy, planet.energyCap, planet.silver, planet.silverCap]; + for (let i = 0; i < 6; i++) { + //@ts-ignore + colorA.setVertex(color, this.verts + i); + //@ts-ignore + propsA.setVertex([angle, dash], this.verts + i); + //@ts-ignore + planetInfoA.setVertex([planet.planetLevel, radius], this.verts + i); + //@ts-ignore + planetUpgradesA.setVertex(planet.upgradeState, this.verts + i); + //@ts-ignore + planetResourcesA.setVertex(resources, this.verts + i); + //@ts-ignore + epsA.setVertex([eps], this.verts + i); + } + //@ts-ignore + this.verts += 6; + } + + public queueGenericPlanet( + planet: Planet, + center: WorldCoords, + radius: number, // world coords + stroke = -1, + angle = 1, + dashed = false + ) { + const centerCanvas = this.viewport.worldToCanvasCoords(center); + const rCanvas = this.viewport.worldToCanvasDist(radius); + this.queuePlanet(centerCanvas, rCanvas, planet, angle, dashed); + } + + public setUniforms() { + //@ts-ignore + this.uniformSetters.matrix(this.manager.projectionMatrix); + } + + public queuePlanetBody(planet: Planet, centerW: WorldCoords, radiusW: number): void { + this.queueGenericPlanet(planet, centerW, radiusW); + } + public queueMine(planet: Planet, centerW: WorldCoords, radiusW: number): void { + this.queueGenericPlanet(planet, centerW, radiusW); + } + public queueRip(planet: Planet, centerW: WorldCoords, radiusW: number): void { + this.queueGenericPlanet(planet, centerW, radiusW); + } + + public queueQuasar(planet: Planet, centerW: WorldCoords, radiusW: number): void { + this.queueGenericPlanet(planet, centerW, radiusW); + } + + public queueRuins(planet: Planet, centerW: WorldCoords, radiusW: number): void { + this.queueGenericPlanet(planet, centerW, radiusW); + } + + public queueAsteroid(planet: Planet, centerW: CanvasCoords, radiusW: number): void { + this.queueGenericPlanet(planet, centerW, radiusW); + } +} + +/** + * 626-END: Plugin + */ + +export default class EmbeddedRendererShowcase implements DFPlugin { + CirclePlanetLibrary: { [key: string]: any }; + circleSelector: string; + circleChecker: { [key: string]: boolean }; + + constructor() { + let glMan = ui.getGlManager(); + this.circleSelector = 'Planet'; + if (glMan) { + this.CirclePlanetLibrary = { + Planet: new CirclePlanetRenderer(glMan, RendererType.Planet), + Mine: new CirclePlanetRenderer(glMan, RendererType.Mine), + SpacetimeRip: new CirclePlanetRenderer(glMan, RendererType.SpacetimeRip), + Quasar: new CirclePlanetRenderer(glMan, RendererType.Quasar), + Ruins: new CirclePlanetRenderer(glMan, RendererType.Ruins), + }; + } + this.circleChecker = {}; + for (let key in this.CirclePlanetLibrary) { + this.circleChecker[key] = false; + } + } + async render(div: HTMLDivElement) { + div.style.width = '500px'; + render( + html` +
Disabling Renderers
+
+ Whats actually happening here is that the current renderer is being replaced with a + 'blank' renderer. A blank renderer is a renderer who's flush function has no + functionality. So the behavior is similar to disabling the current renderer. +
+
+ + { + disable(); + }} + > + Disable + +
+
+
Circle Planets
+
+ This replaces the current planet renderer with a renderer that uses WebGL to create a + circle where the color of the circle changes on the percentage of energy on the planet. +
+
+ + + { + const btn = document.getElementById('CirclePlanetBtn'); + if (this.circleChecker[this.circleSelector] === false) { + ui.setCustomRenderer(this.CirclePlanetLibrary[this.circleSelector]); + this.circleChecker[this.circleSelector] = true; + btn!.innerText = 'Disable'; + } else { + ui.disableCustomRenderer(this.CirclePlanetLibrary[this.circleSelector]); + this.circleChecker[this.circleSelector] = false; + btn!.innerText = 'Enable'; + } + }} + > + Enable + +
+
+
Renderer Descriptions
+ +
+ `, + div + ); + } + + destroy(): void { + currentPlanet = 'Planet'; + for (let key in rendererLibrary) { + ui.disableCustomRenderer(rendererLibrary[key]); + } + for (let key in this.CirclePlanetLibrary) { + ui.disableCustomRenderer(this.CirclePlanetLibrary[key]); + } + } +} + +let selectStyle = { + outline: 'none', + background: '#151515', + color: '#838383', + borderRadius: '4px', + border: '1px solid #777', + width: '100px', + padding: '2px 6px', + cursor: 'pointer', + margin: '10px', +}; + +let inputStyle = { + background: 'rgb(8,8,8)', + width: '400px', + padding: '3px 5px', +}; + +let buttonStyle = { height: '25px', padding: '3px 5px', margin: '10px', 'text-align': 'center' }; + +let rendererLibrary: { [key: string]: any } = { + Planet: new PlanetRenderer(), + Mine: new MineRenderer(), + SpacetimeRip: new SpacetimeRipRenderer(), + Ruins: new RuinsRenderer(), + Quasar: new QuasarRenderer(), + Asteroid: new AsteroidRenderer(), + MineBody: new MineBodyRenderer(), + MineBelt: new BeltRenderer(), + Background: new BackgroundRenderer(), + UnminedBackground: new UnminedRenderer(), + SpaceBackground: new SpaceRenderer(), + Artifact: new SpriteRenderer(), + AllPlanets: new PlanetRenderManager(), + Text: new TextRenderer(), + Voyager: new VoyageRenderer(), + Perlin: new PerlinRenderer(), + Wormhole: new WormholeRenderer(), + BlackDomain: new BlackDomainRenderer(), + Rectangles: new RectRenderer(), + Line: new LineRenderer(), + Circle: new CircleRenderer(), + Ring: new RingRenderer(), + UI: new UIRenderer(), + QuasarBody: new QuasarBodyRenderer(), + QuasarRay: new QuasarRayRenderer(), + CaptureZone: new CaptureZoneRenderer(), +}; + +let disabled: { [key: string]: boolean } = {}; +for (let key in rendererLibrary) { + disabled[key] = false; +} + +let currentPlanet: string = 'Planet'; + +function disable() { + const btn = document.getElementById('RegPlanetBtn'); + if (disabled[currentPlanet] === false) { + ui.setCustomRenderer(rendererLibrary[currentPlanet]); + disabled[currentPlanet] = true; + btn!.innerText = 'Enable'; + } else { + ui.disableCustomRenderer(rendererLibrary[currentPlanet]); + disabled[currentPlanet] = false; + btn!.innerText = 'Disable'; + } +} + +const cellStyle = { + width: '25%', + float: 'left', +}; + +const discriptionStyle = { + TextAlign: 'justify', +}; + +// Used for discription of each type of renderer +let rendererDescription: { [key: string]: any } = { + Blank: '', + Planet: 'basic planets', + Mine: 'asteroid fields', + SpacetimeRip: 'Spacetime Rips', + Ruins: 'foundries', + Quasar: 'quasars', + Asteroid: 'asteroid that hover around different planets', + MineBody: 'the body/asteroids of asteroid fields', + MineBelt: 'the belts/rings around asteroid fields', + Background: 'the background of the game', + UnminedBackground: 'unmined space chunks (part of the background)', + SpaceBackground: 'mined space chunks (part of the background)', + Artifact: 'artifacts', + AllPlanets: 'All planet types', + Text: 'text that are displayed on the game canvas', + Voyager: 'Voyages. The transfer of energy between planets.', + Perlin: + 'the game background. Perlin is the method in which we generate the location of space biomes.', + Wormhole: 'visual effects of wormholes. Wormholes are generated by a special type of artifact.', + BlackDomain: + 'visual effects of black domains. Black Domains are created by a special type of artifact', + Rectangles: 'all rectangles drawn in game: indicators for selection of planet, ', + Line: ' all lines drawn in game: The line that connect planets during voyages and wormholes ', + Circle: + 'all circles drawn in the game: The voyager(circle) in voyages, Circles used to indicate the range a planets has, The boarder of the game world. ', + Ring: 'rings that indicate the level of a planet', + UI: 'in game user interface: game borders, range indicators, selection indicators, mouse path, miner', + QuasarBody: 'the body of the Quasar', + QuasarRay: 'the ray of the Quasar', + CaptureZone: 'the capture zones' +}; +/* eslint-enable */ diff --git a/index.html b/index.html index 9c3362a3..587e99f2 100644 --- a/index.html +++ b/index.html @@ -23,66 +23,51 @@ - - - - - + + + + + - - - - + + + + - + - + Dark Forest diff --git a/last_updated.txt b/last_updated.txt index 07e2b9da..a9ecdd54 100644 --- a/last_updated.txt +++ b/last_updated.txt @@ -1 +1 @@ -last updated: Tue Jun 29 22:41:23 UTC 2021 +last updated: Mon Apr 11 18:20:58 UTC 2022 diff --git a/netlify.toml b/netlify.toml index 226c2c82..f8fd0910 100644 --- a/netlify.toml +++ b/netlify.toml @@ -8,6 +8,11 @@ to = "/index.html" status = 200 +[[redirects]] + from = "/archive/8d8a7d2a/*" + to = "https://6247dc3ca1de3b6ce0c8e184--df-prod.netlify.app/:splat" + status = 200 + ## (optional) Settings for Netlify Dev ## https://github.com/netlify/cli/blob/master/docs/netlify-dev.md#project-detection #[dev] diff --git a/package.json b/package.json index 42e45ce4..5b016d79 100644 --- a/package.json +++ b/package.json @@ -1,123 +1,128 @@ { "name": "client", - "version": "6.2.9", + "version": "6.7.29", "private": true, "license": "GPL-3.0", - "author": "Clown Town Labs Inc. ", + "author": "0xPARC ", "dependencies": { - "@darkforest_eth/constants": "6.2.9", - "@darkforest_eth/contracts": "6.2.9", - "@darkforest_eth/hashing": "6.2.9", - "@darkforest_eth/hexgen": "6.2.9", - "@darkforest_eth/serde": "6.2.9", - "@darkforest_eth/snarks": "6.2.9", - "@darkforest_eth/types": "6.2.9", - "@hot-loader/react-dom": "^17.0.1", - "@types/animejs": "^3.1.3", + "@darkforest_eth/constants": "6.7.29", + "@darkforest_eth/contracts": "6.7.29", + "@darkforest_eth/events": "6.7.29", + "@darkforest_eth/gamelogic": "6.7.29", + "@darkforest_eth/hashing": "6.7.29", + "@darkforest_eth/hexgen": "6.7.29", + "@darkforest_eth/network": "6.7.29", + "@darkforest_eth/procedural": "6.7.29", + "@darkforest_eth/renderer": "6.7.29", + "@darkforest_eth/serde": "6.7.29", + "@darkforest_eth/settings": "6.7.29", + "@darkforest_eth/snarks": "6.7.29", + "@darkforest_eth/types": "6.7.29", + "@darkforest_eth/ui": "6.7.29", + "@darkforest_eth/whitelist": "6.7.29", + "@lit-labs/react": "^1.0.0", "animejs": "^3.2.1", "auto-bind": "^4.0.0", "bad-words": "^3.0.4", "big-integer": "^1.6.48", "canvas-confetti": "^1.4.0", + "color": "^3.0.2", + "delay": "^5.0.0", "email-validator": "^2.0.4", "emoji-picker-react": "^3.4.8", - "ethers": "^5.0.7", + "ethers": "^5.5.1", "events": "^3.0.0", "fastq": "^1.10.0", + "file-saver": "^2.0.5", "gl-matrix": "^3.3.0", "htm": "^3.0.4", "idb": "^5.0.1", "js-quadtree": "^3.3.5", "json-stable-stringify": "^1.0.1", + "jszip": "^3.5.0", "lodash": "^4.17.15", "mnemonist": "^0.38.1", + "p-defer": "^3.0.0", + "p-timeout": "^4.0.0", "preact": "^10.5.13", "prismjs": "^1.22.0", - "react": "^16.9.0", - "react-dom": "^16.12.0", - "react-hot-loader": "^4.13.0", - "react-icons": "^3.9.0", - "react-router-dom": "^5.1.2", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-loader-spinner": "^4.0.0", + "react-router-dom": "^5.3.0", "react-simple-code-editor": "^0.11.0", "react-sortablejs": "^6.0.0", + "react-timeago": "^6.2.1", "sortablejs": "^1.10.2", - "styled-components": "^5.0.1", - "timeago.js": "^4.0.2", + "styled-components": "^5.3.3", "ts-dedent": "^2.0.0", - "typedoc": "^0.20.36", - "typedoc-plugin-markdown": "^3.8.1", "uuid": "^8.3.2" }, "scripts": { - "prepare": "tsc --emitDeclarationOnly --declaration --declarationDir ./declarations", + "declarations": "tsc -p tsconfig.decs.json", "test": "exit 0", "lint": "eslint .", "format": "prettier --write .", - "start:dev": "webpack-dev-server --mode development --open --hot", - "start:prod": "NODE_ENV=production webpack-dev-server --mode development --open --hot", - "build": "NODE_ENV=production webpack --mode production", - "clean": "rm -rf node_modules", + "start": "webpack-dev-server --mode development --hot", + "build": "webpack --mode production", + "clean": "del-cli dist node_modules declarations public/contracts tsconfig.ref.tsbuildinfo", "docs": "typedoc && yarn format", "deploy": "netlify build && netlify deploy", "deploy:prod": "netlify build && netlify deploy --prod" }, "browserslist": { "production": [ - ">0.2%", - "not dead", - "not op_mini all" + "last 1 chrome version", + "last 1 firefox version" ], "development": [ "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" + "last 1 firefox version" ] }, "engines": { - "node": ">=14 <16" + "node": ">=16" }, "devDependencies": { - "@babel/preset-react": "^7.8.3", + "@babel/core": "^7.17.5", + "@babel/preset-env": "^7.16.11", + "@babel/preset-react": "^7.16.7", + "@babel/preset-typescript": "^7.16.7", + "@types/animejs": "^3.1.3", + "@types/color": "^3.0.2", + "@types/gl-matrix": "^3.2.0", "@types/json-stable-stringify": "^1.0.32", "@types/lodash": "^4.14.160", "@types/prismjs": "^1.16.2", - "@types/react": "^16.9.11", - "@types/react-dom": "^16.9.4", - "@types/react-router-dom": "^5.1.3", - "@types/react-typist": "^2.0.1", + "@types/react": "^17.0.34", + "@types/react-dom": "^17.0.11", + "@types/react-router-dom": "^5.3.2", + "@types/react-timeago": "^4.1.3", "@types/sortablejs": "^1.10.6", - "@types/styled-components": "^5.1.3", + "@types/styled-components": "^5.1.15", "@types/uuid": "^8.3.0", - "@types/webgl2": "^0.0.5", - "@types/webpack-env": "^1.16.0", - "@typescript-eslint/eslint-plugin": "^2.10.0", - "@typescript-eslint/parser": "^2.10.0", - "clean-webpack-plugin": "^3.0.0", - "copy-webpack-plugin": "^5.1.1", - "css-loader": "^3.2.0", - "eslint": "^7.26.0", - "eslint-config-prettier": "^6.10.0", - "eslint-plugin-react": "^7.17.0", - "eslint-plugin-react-hooks": "^2.3.0", - "file-loader": "^6.0.0", - "file-saver": "^2.0.5", - "html-webpack-plugin": "^3.2.0", - "jszip": "^3.5.0", + "@types/webpack-env": "^1.16.3", + "babel-loader": "^8.2.3", + "babel-plugin-styled-components": "^2.0.5", + "copy-webpack-plugin": "^9.0.1", + "css-loader": "^6.5.1", + "del-cli": "^4.0.1", + "dotenv": "^10.0.0", + "eslint": "^7.30.0", + "fork-ts-checker-webpack-plugin": "^7.2.1", + "html-webpack-plugin": "^5.5.0", "netlify-cli": "^3.8.5", "prettier": "^2.3.0", "raw-loader": "^4.0.2", - "script-loader": "^0.7.2", - "source-map-loader": "^0.2.4", - "speed-measure-webpack-plugin": "^1.3.1", - "style-loader": "^1.0.0", - "ts-loader": "^6.2.1", - "typescript": "^3.7.2", - "typescript-plugin-styled-components": "^1.4.4", - "webpack": "^4.41.2", - "webpack-bundle-analyzer": "^3.6.0", - "webpack-cli": "^3.3.11", - "webpack-dev-server": "^3.9.0", - "webpack-merge": "^5.7.3", - "worker-loader": "^2.0.0" + "resolve-package-path": "^4.0.3", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "typedoc": "^0.22.8", + "typedoc-plugin-markdown": "3.11.x", + "typescript": "4.5.x", + "webpack": "^5.62.1", + "webpack-bundle-analyzer": "^4.5.0", + "webpack-cli": "^4.9.1", + "webpack-dev-server": "^4.4.0" } } diff --git a/plugins/CircleAfter.png b/plugins/CircleAfter.png new file mode 100644 index 00000000..b88212f7 Binary files /dev/null and b/plugins/CircleAfter.png differ diff --git a/plugins/CircleBefore.png b/plugins/CircleBefore.png new file mode 100644 index 00000000..acc9bb8e Binary files /dev/null and b/plugins/CircleBefore.png differ diff --git a/plugins/DisableAfter.png b/plugins/DisableAfter.png new file mode 100644 index 00000000..5b77589d Binary files /dev/null and b/plugins/DisableAfter.png differ diff --git a/plugins/DisableBefore.png b/plugins/DisableBefore.png new file mode 100644 index 00000000..d36ee9eb Binary files /dev/null and b/plugins/DisableBefore.png differ diff --git a/plugins/RendererPlugin.md b/plugins/RendererPlugin.md new file mode 100644 index 00000000..9cf39773 --- /dev/null +++ b/plugins/RendererPlugin.md @@ -0,0 +1,535 @@ +# Pluginnable Renderers + +This article is about creating custom renderers for Dark Forest through the use of our plugin system. + +# Background + +Dark Forest uses WebGL to visualize the game. WebGL is a JavaScript API that is used for rendering high-performance 3D graphics. + +Only certain browsers support WebGL. Click here to check: https://get.webgl.org/WebGL/. + +Click here to Learn more about WebGL: https://WebGLfundamentals.org/webgl/lessons/webgl-getting-WebGL.html + +# What is a Renderer + +Renderers are classes that are used to draw specific types of entities such as planets or asteroids onto the Dark Forest game canvas. Custom made renderers can be passed into the Dark Forest API to replace the current renderer for that entity type. + +Renderers have two main methods: + +- Queue (a method that starts with `queue` followed by the name of the object it's rendering): The game calls the queue method for each instance of an object specified by the renderer type and accepts as an input any information relevant to the object. This information is then added to some implementation of a queue within the renderer for later use in the flush method. + +- Flush: Flush is called every frame in the game. When called, the entities in the queue should be rendered onto the game canvas and the queue cleared. + +For the game to recognize if the class is a renderer, it has to follow one of the renderer interfaces that can be found in `@darkforest_eth/types` + +For instance `MineRendererType` is an interface for mine renderers. Mine renderers are used to draw Asteroid Fields which is a type of planet (not to be confused with Asteroids). + +![Asteroid Field](./CircleBefore.png) + +The `MineRendererType` has 2 abstract methods: + +- `queueMine` is called by the game to queue an Asteroid Field to be drawn. The method has 3 parameters: + - `planet`: A Planet object that contains information about the current Asteroid Field + - `centerW`: a set of x and y coordinates that represent the position of the center of the Asteroid Field relative to the game world. + - `radiusW`: the size of the Asteroid Field relative to the game world. +- `flush` called by the game to draw all queued up Asteroid Field. + +Here is Dark Forest's current implementation of its mine renderer: https://github.com/darkforest-eth/packages/blob/master/renderer/src/Entities/MineRenderer.ts + +## Draw Order + +### The Order in Which Renderer Managers and Renderers Are Flushed + +1. Background + - Unmined + - Space +2. Capture Zones +3. Line Renderer +4. Planet Manager + - Planet + - Asteroid + - Mine + - Spacetime Rip + - Ruins + - Ring + - Quasar + - Black Domain +5. UI +6. Voyager +7. Wormhole +8. Circle +9. Rect +10. Text +11. Sprite (Artifacts) + +### When Multiple Renderers Implementing the Same Interface Are Passed Into the API: + +When you replace a renderer in the game, the renderer is then put on our rendering stack. The rendering stack is used to determine which renderer to use if multiple renderers loaded for the same entity at the same time. The game will use the top most renderer. A renderer at any position in the stack can be popped. + +# Example Plugin + +We will run through the creation of a renderer that will replace the renderer for Asteroid Fields. + +To create a renderer it has to follow one of the renderer interfaces that can be found in ​​`@darkforest_eth/types`. For the Asteroid Fields, we will be using the `MineRendererType`. + +```javascript +import { RendererType } from 'https://cdn.skypack.dev/@darkforest_eth/types'; + +class GenericMineRenderer { + constructor() { + this.rendererType = RendererType.Mine; + } + + queueMine(planet, centerW, radiusW) {} + + flush() {} +} +``` + +After implementing the interface the code should look similar to the code above. The code above can be considered a fully functional renderer. The resulting behavior would be as if you were disabling the renderer for the Asteroid Renderer. + +Before: + +![Before](./DisableBefore.png) + +After: + +![After](./DisableAfter.png) + +If you noticed in the queue function, the coordinate of the planet and the size of planet is relative to the game world. However when drawn on the canvas, the size and location of planet change based on the position of the players camera. We provide developers a way to easily transform between coordinate systems via the viewport class. You can get the viewport from the global ui class. `ui.getViewport()`. An example of the use of the viewport can be seen in the code of the `queueMine` function below. + +```javascript +import { RendererType } from 'https://cdn.skypack.dev/@darkforest_eth/types'; + +class GenericMineRenderer { + constructor() { + this.viewport = ui.getViewport(); + this.rendererType = RendererType.Mine; + } + + queueMine(planet, centerW, radiusW) { + const centerCanvas = this.viewport.worldToCanvasCoords(centerW); + const rCanvas = this.viewport.worldToCanvasDist(radiusW); + } + + flush() {} +} +``` + +The `Viewport` class is used to translate between game world and canvas for distances and coordinates: https://github.com/darkforest-eth/packages/blob/master/types/interfaces/GameViewport.md + +These are the 2 functions used above. + +- `worldToCanvasCoords` will translate from game world coordinates to canvas coordinates. In the code above we are translating the location of the Asteroid Field to its location relative to the canvas. +- `worldToCanvasDist` will translate a distance relative to the game world to the pixel distance on the canvas. + +After implementing the above code you should be ready to start implementing code that will draw on the game canvas. +To do this you will need to be able to access the `WebGLRenderingContext`. + +## WebGL Code + +The next few sections will be about writing the WebGL Code. + +We will be creating WebGL code that renders a circle instead of the original asteroid field. The color of the asteroid field while change based on the current energy level of the planet. The RGB value of the color is determined by this equation `red: 255 green: 255/(energy cap) \*(current energy) blue: 0`. + +The goal of this section is to give you a basic understanding of how the WebGL code works. If you want to dive deeper into WebGL check out this website: + +https://WebGLfundamentals.org/webgl/lessons/webgl-how-it-works.html + +## Definitions + +Clip space: The 3D coordinate system used by WebGL for its canvas. All coordinates range fro`m -1 to 1. + +Vertex shader: The vertex shader is used to determine the location of a vertex on the WebGL clip space. WebGL will draw a shape onto the canvas based on the passed in vertices. For instance, the triangle draw mode will connect every 3 consecutive vertices to create a triangle. + +Fragment Shader: Once a shape is created, the fragment shader is used to determine the color of each individual pixel in the shape. + +Attribute Variables: The attributes are values that are passed in from outside the shader program to the vertex shader. Each vertex has its on set of attribute variables. + +Uniform Variables: The uniforms are effectively global variables you set before the execution of the program. All vertices share the same uniform variables. + +Varying Variables: Variables that will be transferred to be used in the fragment shader + +The code below contains all of the objects that we will explore to demonstrate WebGL rendering. The two shaders are wrapped into a RendererProgram class. The RendererProgram is how the Dark Forest team structures our code. You do not have to follow this structure to create a working WebGL Program. + +## Fragment and Vertex Shaders + +```javascript +import { glsl } from 'https://cdn.skypack.dev/@darkforest_eth/renderer'; +import { + RendererProgram, + AttribeType, + UniformType, +} from 'https://cdn.skypack.dev/@darkforest_eth/types'; +const program = { + uniforms: { + matrix: { name: 'u_matrix', type: UniformType.Mat4 }, + }, + attribs: { + position: { + dim: 4, + type: AttribType.Float, + normalize: false, + name: 'a_position', //the name of the attribute variable + }, + energyInfo: { + dim: 2, + type: AttribType.Float, + normalize: false, + name: 'a_energy', + }, + }, + vertexShader: glsl` + in vec4 a_position; + in vec2 a_energy; + uniform mat4 u_matrix; + + out vec2 v_rectPos; + out float v_energy; + out float v_energy_cap; + void main() { + // converting from canvas coordinates too clip space + gl_Position = u_matrix * vec4(a_position.xy, 0.0, 1.0); + //setting the varrying variables for use in the fragment shader + v_energy = a_energy.x; + v_energy_cap = a_energy.y; + v_rectPos = a_position.zw; + } + `, + fragmentShader: glsl` + #define PI 3.1415926535 + + precision highp float; + out vec4 outColor; + + in vec2 v_rectPos; + in float v_energy; + in float v_energy_cap; + + void main() { + float dist = length(v_rectPos); + + // if it's outside the circle + if (dist > 1.0) discard; + + //determine the color of the pixel using rgb values + //[red,green,blue,opacity] the range of the numbers is from 0 to 1 + outColor = vec4(1,1.0/v_energy_cap*v_energy,0,1); + } + `, +}; +``` + +For the both the Vertex and Fragment shader `glsl` is used. `glsl` formats the string to be readable by the shader compiler. + +### Vertex Shader + +`a_position` and `a_energy` are attributes and `u_matrix` is a uniform for this shader program. + +- `a_position` is a vector that contains the location of the vertex being drawn +- `a_energy` is a vector that contains information about the energy of the Asteroid Field. + +The `u_matrix` is a projection matrix. It is used to do some fancy math in line 10: + +`gl_Position = u_matrix * vec4(a_position.xy, 0.0, 1.0);` + +This is transforming coordinates from the canvas into clip space coordinates. If you want to read more about how this math done, checkout this link: https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_model_view_projection. + +With the combination of some code we will write later, the vertex shader will draw a square at the coordinates we decide. + +### Fragment Shader + +The fragment shader is called for every pixel in the square. The `outColor` is the color of the pixel. This fragment draw a circle with a clip space radius of 1. The fragment shader checks if the pixel is one unit away from the center of the square by use of the length function and `discard`s the pixel away if it is not. + +## Renderer Code + +```javascript +import { EngineUtils, GenericRenderer, glsl } from 'https://cdn.skypack.dev/@darkforest_eth/renderer'; +import { AttribType, RendererType, UniformType, +} from 'https://cdn.skypack.dev/@darkforest_eth/types'; +class GenericMineRenderer extends GenericRenderer { + constructor(gl, vp) { + super(gl, program); + this.rendererType = RendererType.Mine; + this.gl = gl; + this.viewport = vp; + this.quadBuffer = EngineUtils.makeEmptyDoubleQuad(); + } +``` + +The `GameGLManager` is a wrapper class that contains the WebGLRenderingContext: https://github.com/darkforest-eth/packages/blob/master/renderer/classes/GameGLManager.md + +`GenericRenderer` is a class that was created by the Dark Forest team for the purposes of organization. `GenericRenderer` sets up a lot of the commonly used WebGL code. You do not have to use this to create functioning WebGL Code. You can look at the `GenericRenderer` Code here: https://github.com/darkforest-eth/packages/blob/master/renderer/src/WebGL/GenericRenderer.ts + +The `quadBuffer` is an array that will contain the vertices of the square being drawn. + +`EngineUtils` is a tool the Dark Forest team created for commonly used WebGL operations: https://github.com/darkforest-eth/packages/blob/master/renderer/src/EngineUtils.ts + +```typescript + public flush(drawMode: DrawMode = DrawMode.Triangles) { + if (this.verts === 0) return; + + const { gl } = this.manager; + gl.useProgram(this.program); + + this.setUniforms(); + + for (const attrib in this.attribManagers) { + this.attribManagers[attrib].bufferData(this.verts); + } + + // draw + gl.drawArrays(drawMode, 0, this.verts); + + this.verts = 0; + } +``` + +This is the flush function which was inherited by `GenericRenderer`. +The default `DrawMode` is to use triangles. This means whenever 3 vertices are put into the vertex shader it will draw a triangle. + +As stated above the goal of the vertex shader was to draw a square. To do that with triangle we need to draw 2 triangles connected by one their sides. The result of this will require us to import 6 vertices. + +Square: + +![Square](./square.png) + +```javascript + queueMine(planet: Planet, centerW: WorldCoords, radiusW: number): void { + //converting from game coordinates to canvas coordinates + const centerCanvas = this.viewport.worldToCanvasCoords(centerW); + const rCanvas = this.viewport.worldToCanvasDist(radiusW); + this.queueCircle(planet, centerCanvas, rCanvas); + } + queueCircle(planet: Planet, center: CanvasCoords, radius: number) { + const { position: posA, energyInfo: energyA } = this.attribManagers; + const r = radius + 1; + const { x, y } = center; + //calculating the top left and bottom right of the bounding square. + const { x1, y1 } = { x1: x - r, y1: y - r }; + const { x2, y2 } = { x2: x + r, y2: y + r }; + + //creating an array of all the vertices for the triangle 14 + EngineUtils.makeDoubleQuadBuffered( + this.quadBuffer, + x1, y1, x2, y2, -1, -1, 1, 1 + ); + //passing in the vertices to the vertex shader + posA.setVertex(this.quadBuffer, this.verts); + + //passing in the energy information. 6 times because we passed in 6 vertices. + for (let i = 0; i < 6; i++) { + energyA.setVertex([planet.energy, planet.energyCap], this.verts + i); + } + this.verts += 6; + } + + setUniforms() { + if (!this.gl) return; + this.uniformSetters.matrix(this.gl.projectionMatrix); + } +``` + +The `makeDoubleQuadBuffered` code creates an array of size 24. We are then inserting the array to be imported into fragment shader through `a_position` attribute. + +Since `a_position` is imported as a `vec4` the `quadbuffer` is split evenly into 6 vectors of size 4, one for each vertex. Each vector is formatted like this: +[canvas x, canvas y, clip space x, clip space y] + +In relation to the square, the coordinates of the 6 vertices are the top left, top right, bottom left, bottom right of the square. Where the top right and bottom left repeat twice. + +```javascript +for (let i = 0; i < 6; i++) { + energyA.setVertex([planet.energy, planet.energyCap], this.verts + i); +} +this.verts += 6; +``` + +For each vertex we are importing the information about the planet's energy to the `a_energy` attribute. + +## Final Renderer Code + +The final code for the renderer looks like this: + +```javascript +import { + EngineUtils, + GenericRenderer, + glsl, +} from 'https://cdn.skypack.dev/@darkforest_eth/renderer'; +import { + AttribType, + RendererType, + UniformType, +} from 'https://cdn.skypack.dev/@darkforest_eth/types'; + +class GenericMineRenderer extends GenericRenderer { + constructor(gl, vp) { + super(gl, program); + this.rendererType = RendererType.Mine; + this.gl = gl; + this.viewport = vp; + this.quadBuffer = EngineUtils.makeEmptyDoubleQuad(); + } + queueMine(planet, centerW, radiusW) { + //converting from game coordinates to canvas coordinates + const centerCanvas = this.viewport.worldToCanvasCoords(centerW); + const rCanvas = this.viewport.worldToCanvasDist(radiusW); + this.queueCircle(planet, centerCanvas, rCanvas); + } + queueCircle(planet, center, radius) { + const { position: posA, energyInfo: energyA } = this.attribManagers; + const r = radius + 1; + const { x, y } = center; + //calculating the top left and bottom right of the bounding square. + const { x1, y1 } = { x1: x - r, y1: y - r }; + const { x2, y2 } = { x2: x + r, y2: y + r }; + //creating an array of all the vertices for the triangle 14 + EngineUtils.makeDoubleQuadBuffered(this.quadBuffer, x1, y1, x2, y2, -1, -1, 1, 1); + //passing in the vertices to the vertex shader + posA.setVertex(this.quadBuffer, this.verts); + //passing in the energy information. 6 times because we passed in 6 vertices. + for (let i = 0; i < 6; i++) { + energyA.setVertex([planet.energy, planet.energyCap], this.verts + i); + } + this.verts += 6; + } + setUniforms() { + if (!this.gl) return; + + this.uniformSetters.matrix(this.gl.projectionMatrix); + } +} +const program = { + uniforms: { + matrix: { name: 'u_matrix', type: UniformType.Mat4 }, + }, + attribs: { + position: { + dim: 4, + type: AttribType.Float, + normalize: false, + name: 'a_position', //the name of the attribute variable + }, + energyInfo: { + dim: 2, + type: AttribType.Float, + normalize: false, + name: 'a_energy', + }, + }, + vertexShader: glsl` + in vec4 a_position; + in vec2 a_energy; + uniform mat4 u_matrix; + + out vec2 v_rectPos; + out float v_energy; + out float v_energy_cap; + void main() { + // converting from canvas coordinates too clip space + gl_Position = u_matrix * vec4(a_position.xy, 0.0, 1.0); + //setting the varrying variables for use in the fragment shader + v_energy = a_energy.x; + v_energy_cap = a_energy.y; + v_rectPos = a_position.zw; + } + `, + fragmentShader: glsl` + #define PI 3.1415926535 + + precision highp float; + out vec4 outColor; + + in vec2 v_rectPos; + in float v_energy; + in float v_energy_cap; + + void main() { + float dist = length(v_rectPos); + + // if it's outside the circle + if (dist > 1.0) discard; + + //determine the color of the pixel using rgb values + //[red,green,blue,opacity] the range of the numbers is from 0 to 1 + outColor = vec4(1,1.0/v_energy_cap*v_energy,0,1); + } + `, +}; +``` + +Once we are done implementing the renderer we can call `ui.setCustomRenderer` to start rendering our own Asteroid Field Renderer. + +```javascript +export default class ExamplePlugin { + constructor() { + const gl = ui.getGlManager(); + if (!gl) return; + this.mineRenderer = new GenericMineRenderer(gl, ui.getViewport()); + ui.setCustomRenderer(this.mineRenderer); + } + async render(div) {} + destroy() { + console.log('destroying renderer plugin'); + ui.disableCustomRenderer(this.mineRenderer); + } +} +``` + +The code above is an example of implementing the renderer with plugins. When the plugin is started it creates a new instance of our custom Asteroid Field Renderer and then uses `setCustomRenderer` to activate it. When the plugin is destroyed we disable the renderer by using `disableCustomRenderer`. + +The result of running the plugin can be seen below. + +Before: +![CirlceBefore](./CircleBefore.png) + +After: +![CirlceAfter](./CircleAfter.png) + +# Documentation Links + +## Renderer Types + +All renderer types can be found here: https://github.com/darkforest-eth/packages/tree/master/types#type-declaration-27 + +To find the interface for each renderer go to the link below. The name of the interface is the entity name followed by `RendererType`: https://github.com/darkforest-eth/packages/tree/master/types#interfaces + +## Dark Forest Renderers + +Below are examples of Dark Forest renderers + +Basic Planets + +- Renderer Code: https://github.com/darkforest-eth/packages/blob/master/renderer/src/Entities/PlanetRenderer.ts +- WebGL Code: https://github.com/darkforest-eth/packages/blob/master/renderer/src/Programs/PlanetProgram.ts + +Background Renderer: + +- Background Renderer is a renderer manager that contains multiple renderer used to draw different sections of the background. +- Renderer Code: https://github.com/darkforest-eth/packages/blob/master/renderer/src/Entities/BackgroundRenderer.ts +- Unmined Renderer: + - Renderer Code: https://github.com/darkforest-eth/packages/blob/master/renderer/src/Entities/UnminedRenderer.ts + - WebGL Code: https://github.com/darkforest-eth/packages/blob/master/renderer/src/Programs/UnminedProgram.ts +- Space Renderer: + - Renderer Code: https://github.com/darkforest-eth/packages/blob/master/renderer/src/Entities/SpaceRenderer.ts + - WebGL Code: https://github.com/darkforest-eth/packages/blob/master/renderer/src/Programs/SpaceProgram.ts + +If you want to look at more renderers, you can find all the Dark Forest renderers here: +https://github.com/darkforest-eth/packages/tree/master/renderer/src/Entities + +The WebGl Code for those renderers can be found here: https://github.com/darkforest-eth/packages/tree/master/renderer/src/Programs + +## Rendering Tools + +Generic Renderer is base class that Dark Forest team created for all of its renderers: https://github.com/darkforest-eth/packages/blob/master/renderer/src/WebGL/GenericRenderer.ts + +Engine Utils contains function for common WebGl Operations : https://github.com/darkforest-eth/packages/blob/master/renderer/classes/EngineUtils.md + +https://github.com/darkforest-eth/packages/blob/master/renderer/src/EngineUtils.ts + +The viewport class is used to translate between game and canvas coordinate systems: https://github.com/darkforest-eth/packages/blob/master/types/interfaces/GameViewport.md + +Our Wrapper class for the WebGL2RenderingContext +GameGlManager: https://github.com/darkforest-eth/packages/blob/master/renderer/classes/GameGLManager.md + +If you want to mess with canvas 2D rendering you can access a `CanvasRenderingContext2D` by calling `ui.get2dRenderer()` WARNING: all images drawn with the `CanvasRenderingContext2D` will all be on top of WebGl diff --git a/plugins/square.png b/plugins/square.png new file mode 100644 index 00000000..ad3b9ac7 Binary files /dev/null and b/plugins/square.png differ diff --git a/public/get_involved/WTGI_full.png b/public/get_involved/WTGI_full.png new file mode 100644 index 00000000..cd6ea704 Binary files /dev/null and b/public/get_involved/WTGI_full.png differ diff --git a/public/get_involved/community_round.png b/public/get_involved/community_round.png new file mode 100644 index 00000000..bf6822e0 Binary files /dev/null and b/public/get_involved/community_round.png differ diff --git a/public/get_involved/lobby.png b/public/get_involved/lobby.png new file mode 100644 index 00000000..d6754cf9 Binary files /dev/null and b/public/get_involved/lobby.png differ diff --git a/public/get_involved/plugin_render.png b/public/get_involved/plugin_render.png new file mode 100644 index 00000000..3ced5508 Binary files /dev/null and b/public/get_involved/plugin_render.png differ diff --git a/public/get_involved/reveiw_plugin.png b/public/get_involved/reveiw_plugin.png new file mode 100644 index 00000000..97114b88 Binary files /dev/null and b/public/get_involved/reveiw_plugin.png differ diff --git a/public/get_involved/write_plugin.png b/public/get_involved/write_plugin.png new file mode 100644 index 00000000..fbc8c9b2 Binary files /dev/null and b/public/get_involved/write_plugin.png differ diff --git a/public/icons/alerts/artifacts/find.svg b/public/icons/alerts/artifacts/find.svg new file mode 100644 index 00000000..c1425c32 --- /dev/null +++ b/public/icons/alerts/artifacts/find.svg @@ -0,0 +1 @@ +alert_ diff --git a/public/icons/alerts/artifacts/prospect.svg b/public/icons/alerts/artifacts/prospect.svg new file mode 100644 index 00000000..95d9c442 --- /dev/null +++ b/public/icons/alerts/artifacts/prospect.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/backgrounds/1.svg b/public/icons/alerts/backgrounds/1.svg new file mode 100644 index 00000000..f591f833 --- /dev/null +++ b/public/icons/alerts/backgrounds/1.svg @@ -0,0 +1 @@ +background \ No newline at end of file diff --git a/public/icons/alerts/backgrounds/2.svg b/public/icons/alerts/backgrounds/2.svg new file mode 100644 index 00000000..cb95a1ae --- /dev/null +++ b/public/icons/alerts/backgrounds/2.svg @@ -0,0 +1 @@ +background \ No newline at end of file diff --git a/public/icons/alerts/biomes/corrupted.svg b/public/icons/alerts/biomes/corrupted.svg new file mode 100644 index 00000000..c998c37c --- /dev/null +++ b/public/icons/alerts/biomes/corrupted.svg @@ -0,0 +1 @@ +alert_biome_corrupted diff --git a/public/icons/alerts/biomes/desert.svg b/public/icons/alerts/biomes/desert.svg new file mode 100644 index 00000000..e6dd225b --- /dev/null +++ b/public/icons/alerts/biomes/desert.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/biomes/forest.svg b/public/icons/alerts/biomes/forest.svg new file mode 100644 index 00000000..3f82c8ed --- /dev/null +++ b/public/icons/alerts/biomes/forest.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/biomes/grassland.svg b/public/icons/alerts/biomes/grassland.svg new file mode 100644 index 00000000..0c103075 --- /dev/null +++ b/public/icons/alerts/biomes/grassland.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/biomes/ice.svg b/public/icons/alerts/biomes/ice.svg new file mode 100644 index 00000000..4eabad37 --- /dev/null +++ b/public/icons/alerts/biomes/ice.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/biomes/lava.svg b/public/icons/alerts/biomes/lava.svg new file mode 100644 index 00000000..dfea38b8 --- /dev/null +++ b/public/icons/alerts/biomes/lava.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/biomes/ocean.svg b/public/icons/alerts/biomes/ocean.svg new file mode 100644 index 00000000..339a204a --- /dev/null +++ b/public/icons/alerts/biomes/ocean.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/biomes/swamp.svg b/public/icons/alerts/biomes/swamp.svg new file mode 100644 index 00000000..b096652d --- /dev/null +++ b/public/icons/alerts/biomes/swamp.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/biomes/tundra.svg b/public/icons/alerts/biomes/tundra.svg new file mode 100644 index 00000000..6f8a6904 --- /dev/null +++ b/public/icons/alerts/biomes/tundra.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/biomes/wasteland.svg b/public/icons/alerts/biomes/wasteland.svg new file mode 100644 index 00000000..ae233d68 --- /dev/null +++ b/public/icons/alerts/biomes/wasteland.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/borders/1.svg b/public/icons/alerts/borders/1.svg new file mode 100644 index 00000000..ae3a20c2 --- /dev/null +++ b/public/icons/alerts/borders/1.svg @@ -0,0 +1 @@ +border \ No newline at end of file diff --git a/public/icons/alerts/borders/2.svg b/public/icons/alerts/borders/2.svg new file mode 100644 index 00000000..17555fa8 --- /dev/null +++ b/public/icons/alerts/borders/2.svg @@ -0,0 +1 @@ +border \ No newline at end of file diff --git a/public/icons/alerts/combat/metplayer.svg b/public/icons/alerts/combat/metplayer.svg new file mode 100644 index 00000000..5fd897ae --- /dev/null +++ b/public/icons/alerts/combat/metplayer.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/combat/pirates.svg b/public/icons/alerts/combat/pirates.svg new file mode 100644 index 00000000..f338d4bb --- /dev/null +++ b/public/icons/alerts/combat/pirates.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/combat/planetattacked.svg b/public/icons/alerts/combat/planetattacked.svg new file mode 100644 index 00000000..e5629a8c --- /dev/null +++ b/public/icons/alerts/combat/planetattacked.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/combat/planetlost.svg b/public/icons/alerts/combat/planetlost.svg new file mode 100644 index 00000000..dc5ff574 --- /dev/null +++ b/public/icons/alerts/combat/planetlost.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/combat/planetwon.svg b/public/icons/alerts/combat/planetwon.svg new file mode 100644 index 00000000..a50650e6 --- /dev/null +++ b/public/icons/alerts/combat/planetwon.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/combat/playerfound.svg b/public/icons/alerts/combat/playerfound.svg new file mode 100644 index 00000000..4d8c6243 --- /dev/null +++ b/public/icons/alerts/combat/playerfound.svg @@ -0,0 +1 @@ +alert_icons2 \ No newline at end of file diff --git a/public/icons/alerts/generic/generic.svg b/public/icons/alerts/generic/generic.svg new file mode 100644 index 00000000..bdd5b343 --- /dev/null +++ b/public/icons/alerts/generic/generic.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/planettypes/asteroid.svg b/public/icons/alerts/planettypes/asteroid.svg new file mode 100644 index 00000000..eb2a9f69 --- /dev/null +++ b/public/icons/alerts/planettypes/asteroid.svg @@ -0,0 +1 @@ +alert_planettype_ \ No newline at end of file diff --git a/public/icons/alerts/planettypes/planet.svg b/public/icons/alerts/planettypes/planet.svg new file mode 100644 index 00000000..ba20d9ca --- /dev/null +++ b/public/icons/alerts/planettypes/planet.svg @@ -0,0 +1 @@ +alert_planettype_ \ No newline at end of file diff --git a/public/icons/alerts/planettypes/quasar.svg b/public/icons/alerts/planettypes/quasar.svg new file mode 100644 index 00000000..d1d2b6c6 --- /dev/null +++ b/public/icons/alerts/planettypes/quasar.svg @@ -0,0 +1 @@ +alert_planettype_ \ No newline at end of file diff --git a/public/icons/alerts/planettypes/ruins.svg b/public/icons/alerts/planettypes/ruins.svg new file mode 100644 index 00000000..99787316 --- /dev/null +++ b/public/icons/alerts/planettypes/ruins.svg @@ -0,0 +1 @@ +alert_planettype_ \ No newline at end of file diff --git a/public/icons/alerts/planettypes/tradingpost.svg b/public/icons/alerts/planettypes/tradingpost.svg new file mode 100644 index 00000000..f964a7f9 --- /dev/null +++ b/public/icons/alerts/planettypes/tradingpost.svg @@ -0,0 +1 @@ +alert_planettype_ \ No newline at end of file diff --git a/public/icons/alerts/spacetypes/alert_-19.svg b/public/icons/alerts/spacetypes/alert_-19.svg new file mode 100644 index 00000000..edcc74bd --- /dev/null +++ b/public/icons/alerts/spacetypes/alert_-19.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/spacetypes/deadspace.svg b/public/icons/alerts/spacetypes/deadspace.svg new file mode 100644 index 00000000..691a646d --- /dev/null +++ b/public/icons/alerts/spacetypes/deadspace.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/spacetypes/deepspace.svg b/public/icons/alerts/spacetypes/deepspace.svg new file mode 100644 index 00000000..8e47aa98 --- /dev/null +++ b/public/icons/alerts/spacetypes/deepspace.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/spacetypes/space.svg b/public/icons/alerts/spacetypes/space.svg new file mode 100644 index 00000000..5d0754bf --- /dev/null +++ b/public/icons/alerts/spacetypes/space.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/transactions/accepted.svg b/public/icons/alerts/transactions/accepted.svg new file mode 100644 index 00000000..b3f2b772 --- /dev/null +++ b/public/icons/alerts/transactions/accepted.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/transactions/confirmed.svg b/public/icons/alerts/transactions/confirmed.svg new file mode 100644 index 00000000..944b01c5 --- /dev/null +++ b/public/icons/alerts/transactions/confirmed.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/transactions/declined.svg b/public/icons/alerts/transactions/declined.svg new file mode 100644 index 00000000..e222087f --- /dev/null +++ b/public/icons/alerts/transactions/declined.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/icons/alerts/transactions/initialized.svg b/public/icons/alerts/transactions/initialized.svg new file mode 100644 index 00000000..462ef507 --- /dev/null +++ b/public/icons/alerts/transactions/initialized.svg @@ -0,0 +1 @@ +alert_ \ No newline at end of file diff --git a/public/img/404-text.png b/public/img/404-text.png new file mode 100644 index 00000000..ed0f1c74 Binary files /dev/null and b/public/img/404-text.png differ diff --git a/public/img/cadet-wormhole.png b/public/img/cadet-wormhole.png new file mode 100644 index 00000000..5330c54d Binary files /dev/null and b/public/img/cadet-wormhole.png differ diff --git a/public/img/no-contract-text.png b/public/img/no-contract-text.png new file mode 100644 index 00000000..667c2519 Binary files /dev/null and b/public/img/no-contract-text.png differ diff --git a/public/img/wrong-text.png b/public/img/wrong-text.png new file mode 100644 index 00000000..ad350af0 Binary files /dev/null and b/public/img/wrong-text.png differ diff --git a/public/round_art/round3.jpg b/public/round_art/round3.jpg new file mode 100644 index 00000000..18afe26e Binary files /dev/null and b/public/round_art/round3.jpg differ diff --git a/public/round_art/round4.jpg b/public/round_art/round4.jpg new file mode 100644 index 00000000..a668d21d Binary files /dev/null and b/public/round_art/round4.jpg differ diff --git a/public/round_art/round5.jpg b/public/round_art/round5.jpg new file mode 100644 index 00000000..757c94d5 Binary files /dev/null and b/public/round_art/round5.jpg differ diff --git a/public/sprites/artifactthumbs.png b/public/sprites/artifactthumbs.png index 25f44554..0cef075d 100644 Binary files a/public/sprites/artifactthumbs.png and b/public/sprites/artifactthumbs.png differ diff --git a/src/Backend/GameLogic/ArrivalUtils.ts b/src/Backend/GameLogic/ArrivalUtils.ts index 11cdcbca..f56640a2 100644 --- a/src/Backend/GameLogic/ArrivalUtils.ts +++ b/src/Backend/GameLogic/ArrivalUtils.ts @@ -1,18 +1,18 @@ import { CONTRACT_PRECISION } from '@darkforest_eth/constants'; -import { hasOwner } from '../Utils/Utils'; +import { hasOwner, isActivated, isEmojiFlagMessage } from '@darkforest_eth/gamelogic'; import { + ArrivalType, Artifact, ArtifactType, - QueuedArrival, - Planet, - Upgrade, - PlanetType, EmojiFlagBody, + Planet, PlanetMessage, + PlanetType, + QueuedArrival, + Upgrade, } from '@darkforest_eth/types'; -import { isActivated } from './ArtifactUtils'; +import _ from 'lodash'; import { ContractConstants } from '../../_types/darkforest/api/ContractsAPITypes'; -import { isEmojiFlagMessage } from '../../_types/global/GlobalTypes'; // TODO: planet class, cmon, let's go export const blocksLeftToProspectExpiration = ( @@ -41,10 +41,6 @@ export const isProspectable = (planet: Planet): boolean => { return planet.planetType === PlanetType.RUINS && planet.prospectedBlockNumber === undefined; }; -export const enoughEnergyToProspect = (p: Planet): boolean => { - return p.energy / p.energyCap > 0.955; -}; - const getSilverOverTime = ( planet: Planet, startTimeMillis: number, @@ -95,8 +91,11 @@ export const updatePlanetToTime = ( return; } - planet.silver = getSilverOverTime(planet, planet.lastUpdated * 1000, atTimeMillis); - planet.energy = getEnergyAtTime(planet, atTimeMillis); + if (planet.pausers === 0) { + planet.silver = getSilverOverTime(planet, planet.lastUpdated * 1000, atTimeMillis); + planet.energy = getEnergyAtTime(planet, atTimeMillis); + } + planet.lastUpdated = atTimeMillis / 1000; const photoidActivationTime = contractConstants.PHOTOID_ACTIVATION_DELAY * 1000; @@ -131,12 +130,24 @@ export const applyUpgrade = (planet: Planet, upgrade: Upgrade, unApply = false) } }; +/** + * @param previous The previously calculated state of a planet + * @param current The current calculated state of the planet + * @param arrival The Arrival that caused the state change + */ +export interface PlanetDiff { + previous: Planet; + current: Planet; + arrival: QueuedArrival; +} + export const arrive = ( toPlanet: Planet, artifactsOnPlanet: Artifact[], arrival: QueuedArrival, + arrivingArtifact: Artifact | undefined, contractConstants: ContractConstants -): void => { +): PlanetDiff => { // this function optimistically simulates an arrival if (toPlanet.locationId !== arrival.toPlanet) { throw new Error(`attempted to apply arrival for wrong toPlanet ${toPlanet.locationId}`); @@ -145,16 +156,21 @@ export const arrive = ( // update toPlanet energy and silver right before arrival updatePlanetToTime(toPlanet, artifactsOnPlanet, arrival.arrivalTime * 1000, contractConstants); + const prevPlanet = _.cloneDeep(toPlanet); if (toPlanet.destroyed) { - return; + return { arrival: arrival, previous: toPlanet, current: toPlanet }; } // apply energy const { energyArriving } = arrival; if (arrival.player !== toPlanet.owner) { + if (arrival.arrivalType === ArrivalType.Wormhole) { + // if this is a wormhole arrival to a planet that isn't owned by the initiator of + // the move, then don't move any energy + } // attacking enemy - includes emptyAddress - if ( + else if ( toPlanet.energy > Math.floor((energyArriving * CONTRACT_PRECISION * 100) / toPlanet.defense) / CONTRACT_PRECISION @@ -176,7 +192,7 @@ export const arrive = ( toPlanet.energy += energyArriving; } - if (toPlanet.planetType === PlanetType.SILVER_BANK) { + if (toPlanet.planetType === PlanetType.SILVER_BANK || toPlanet.pausers !== 0) { if (toPlanet.energy > toPlanet.energyCap) { toPlanet.energy = toPlanet.energyCap; } @@ -193,6 +209,19 @@ export const arrive = ( if (arrival.artifactId) { toPlanet.heldArtifactIds.push(arrival.artifactId); } + + if (arrivingArtifact) { + if (arrivingArtifact.artifactType === ArtifactType.ShipMothership) { + toPlanet.energyGrowth *= 2; + } else if (arrivingArtifact.artifactType === ArtifactType.ShipWhale) { + toPlanet.silverGrowth *= 2; + } else if (arrivingArtifact.artifactType === ArtifactType.ShipTitan) { + toPlanet.pausers++; + } + arrivingArtifact.onPlanetId = toPlanet.locationId; + } + + return { arrival, current: toPlanet, previous: prevPlanet }; }; /** diff --git a/src/Backend/GameLogic/ArtifactUtils.ts b/src/Backend/GameLogic/ArtifactUtils.ts deleted file mode 100644 index b582899b..00000000 --- a/src/Backend/GameLogic/ArtifactUtils.ts +++ /dev/null @@ -1,194 +0,0 @@ -import { - Biome, - BiomeNames, - ArtifactRarity, - RarityNames, - Planet, - PlanetLevel, - Artifact, - ArtifactType, - ArtifactNames, - ArtifactId, -} from '@darkforest_eth/types'; -import { ProcgenUtils } from '../Procedural/ProcgenUtils'; - -export const RelicsList: ArtifactType[] = [ - ArtifactType.Wormhole, - ArtifactType.PlanetaryShield, - ArtifactType.PhotoidCannon, - ArtifactType.BloomFilter, - ArtifactType.BlackDomain, -]; - -// relics are the forgotten technologies / the artifacts that you can talk to -export function isRelic(type: ArtifactType): boolean { - return ArtifactType.Wormhole <= type && type <= ArtifactType.BlackDomain; -} - -export function isBasic(type: ArtifactType): boolean { - return ArtifactType.Monolith <= type && type <= ArtifactType.Pyramid; -} - -/** Convert an `artifactId` to an int in [0, 255] */ -export function artifactRoll(id: ArtifactId): number { - return ProcgenUtils.hashToInt(id) % 256; -} - -const artifactIsAncientMap: Map = new Map(); - -export interface RenderedArtifact extends Partial { - artifactType: ArtifactType; - planetBiome: Biome; - rarity: ArtifactRarity; - id: ArtifactId; // for rolls -} - -let forceAncient: boolean | undefined = undefined; - -export function isAncient(artifact: RenderedArtifact): boolean { - if (forceAncient !== undefined) return forceAncient; - - const { id, planetBiome: biome } = artifact; - - if (artifactIsAncientMap.has(id)) { - return artifactIsAncientMap.get(id) || false; - } - - let ancient = false; - const roll = artifactRoll(id); - - if (biome === Biome.CORRUPTED) ancient = roll % 2 === 0; - else ancient = roll % 16 === 0; - - artifactIsAncientMap.set(id, ancient); - - return ancient; -} - -/** Really, really shitty workaround to add a `return true` or `return false` to the above `isAncient`. Used in `GifRenderer.ts` */ -export function setForceAncient(force: boolean): void { - forceAncient = force; -} - -const artifactCooldownHoursMap: Record = [ - 24, 24, 24, 24, 24, 48, 24, 24, 24, 24, -]; - -export function artifactAvailableTimestamp(artifact: Artifact) { - if (artifact.lastDeactivated === 0) { - return Date.now(); - } - - const availableAtTimestampMs = - artifact.lastDeactivated * 1000 + - artifactCooldownHoursMap[artifact.artifactType] * 60 * 60 * 1000; - - return availableAtTimestampMs; -} - -export function isActivated(artifact: Artifact | undefined) { - if (artifact === undefined) { - return false; - } - - return artifact.lastActivated > artifact.lastDeactivated; -} - -export function getActivatedArtifact(artifacts: Artifact[]): Artifact | undefined { - return artifacts.find(isActivated); -} - -export function getArtifactDebugName(a?: Artifact): string { - if (!a) { - return 'unknown artifact'; - } - - return a.id.substring(0, 8); -} - -export const hasUnconfirmedArtifactTx = (p: Planet | undefined): boolean => - !!( - p?.unconfirmedDepositArtifact || - p?.unconfirmedWithdrawArtifact || - p?.unconfirmedFindArtifact || - p?.unconfirmedProspectPlanet - ); - -export const biomeName = (biome: Biome): string => BiomeNames[biome]; - -export const rarityName = (rarity: ArtifactRarity): string => RarityNames[rarity]; - -export const rarityNameFromArtifact = (a: Artifact): string => rarityName(a.rarity); - -export function artifactBiomeName(artifact: Artifact): string { - if (isAncient(artifact)) return 'Ancient'; - else return biomeName(artifact.planetBiome); -} - -export const levelFromRarity = (rarity: ArtifactRarity): PlanetLevel => { - if (rarity === ArtifactRarity.Mythic) return 9; - else if (rarity === ArtifactRarity.Legendary) return 7; - else if (rarity === ArtifactRarity.Epic) return 5; - else if (rarity === ArtifactRarity.Rare) return 3; - else return 1; -}; - -const artifactFileNamesById: Map = new Map(); - -export enum ArtifactFileColor { - BLUE, - APP_BACKGROUND, -} - -export function artifactFileName( - videoMode: boolean, - thumb: boolean, - artifact: RenderedArtifact, - color: ArtifactFileColor, - // used in GifRenderer.ts to generate filenames from mock artifacts - debugProps: { forceAncient: boolean; skipCaching: boolean } | undefined = undefined -): string { - const { artifactType: type, rarity, planetBiome: biome, id } = artifact; - - const size = thumb ? '16' : '64'; - const ext = videoMode ? 'webm' : 'png'; - - let fileName = ''; - - if (!debugProps?.skipCaching && artifactFileNamesById.has(id)) { - fileName = artifactFileNamesById.get(id) || ''; - } else { - const typeStr = ArtifactNames[type]; - const rarityStr = RarityNames[rarity]; - let nameStr = ''; - if (debugProps) { - if (debugProps.forceAncient) { - nameStr = 'ancient'; - } else { - nameStr = biome + BiomeNames[biome]; - } - } else { - if (isAncient(artifact)) { - nameStr = 'ancient'; - } else { - nameStr = biome + BiomeNames[biome]; - } - } - fileName = `${typeStr}-${rarityStr}-${nameStr}`; - } - - if (!debugProps?.skipCaching) artifactFileNamesById.set(id, fileName); - - let colorStr = ''; - if (color === ArtifactFileColor.APP_BACKGROUND) colorStr = '-bg'; - - return `${size}-${fileName}${colorStr}.${ext}`; -} - -export function getActiveBlackDomain(artifacts: Artifact[]): Artifact | undefined { - for (const artifact of artifacts) { - if (artifact.artifactType === ArtifactType.BlackDomain && isActivated(artifact)) - return artifact; - } - return undefined; -} diff --git a/src/Backend/GameLogic/CaptureZoneGenerator.ts b/src/Backend/GameLogic/CaptureZoneGenerator.ts new file mode 100644 index 00000000..bec19fa9 --- /dev/null +++ b/src/Backend/GameLogic/CaptureZoneGenerator.ts @@ -0,0 +1,167 @@ +import { monomitter, Monomitter } from '@darkforest_eth/events'; +import { CaptureZone, Chunk, LocationId } from '@darkforest_eth/types'; +import bigInt from 'big-integer'; +import { utils } from 'ethers'; +import GameManager, { GameManagerEvent } from './GameManager'; + +export type CaptureZonesGeneratedEvent = { + changeBlock: number; + nextChangeBlock: number; + zones: CaptureZone[]; +}; + +/** + * Given a game start block and a zone change block interval, decide when to generate new Capture Zones. + */ +export class CaptureZoneGenerator { + private gameManager: GameManager; + + private zones: Set; + private capturablePlanets: Set; + + private lastChangeBlock: number; + private nextChangeBlock: number; + private changeInterval: number; + + public readonly generated$: Monomitter; + + constructor(gameManager: GameManager, gameStartBlock: number, changeInterval: number) { + this.gameManager = gameManager; + this.changeInterval = changeInterval; + this.nextChangeBlock = gameStartBlock; + this.generated$ = monomitter(); + this.capturablePlanets = new Set(); + this.zones = new Set(); + + gameManager.on(GameManagerEvent.DiscoveredNewChunk, this.onNewChunk.bind(this)); + } + + /** + * Call when a new block is received to check if generation is needed. + * @param blockNumber Current block number. + */ + async generate(blockNumber: number) { + this.setNextGenerationBlock(blockNumber); + + const newZones = await this._generate(this.nextChangeBlock - this.changeInterval); + this.zones = newZones; + this.updateCapturablePlanets(); + this.generated$.publish({ + changeBlock: this.lastChangeBlock, + nextChangeBlock: this.nextChangeBlock, + zones: Array.from(this.zones), + }); + } + + private setNextGenerationBlock(blockNumber: number) { + const totalGameBlocks = blockNumber - this.gameManager.getContractConstants().GAME_START_BLOCK; + const numPastIntervals = Math.floor(totalGameBlocks / this.changeInterval); + this.nextChangeBlock = + this.gameManager.getContractConstants().GAME_START_BLOCK + + (numPastIntervals + 1) * this.changeInterval; + } + + private async _generate(blockNumber: number) { + const block = await this.gameManager.getEthConnection().getProvider().getBlock(blockNumber); + const worldRadius = await this.gameManager.getContractAPI().getWorldRadius(); + + const captureZones = new Set(); + const ringSize = 5000; + const ringCount = Math.floor(worldRadius / ringSize); + const zonesPerRing = + this.gameManager.getContractConstants().CAPTURE_ZONES_PER_5000_WORLD_RADIUS; + + for (let ring = 0; ring < ringCount; ring++) { + const nonceBase = ring * zonesPerRing; + + for (let j = 0; j < zonesPerRing; j++) { + const nonce = nonceBase + j; + const blockAndNonceHash = utils.solidityKeccak256( + ['bytes32', 'uint256'], + [block.hash, nonce] + ); + // Chop off 0x and convert to BigInt + const seed = bigInt(blockAndNonceHash.substring(2, blockAndNonceHash.length), 16); + // Last 3 hex characters + const angleSeed = seed.mod(0xfff); + // Max value of 0xfff is 4095 + // 4095 / 651 is max radians in circle + // Mult by 1e18 to convert to big number math + const angleRads = angleSeed.multiply(1e18).divide(651); + + // Next 6 hex characters + const distanceSeed = seed.minus(angleSeed).divide(4096).mod(0xffffff); + // 16777215 is value of FFFFFF + // Clamp distance within ring radius + const divisor = Math.floor(16777215 / ringSize); + // Add in distance from origin point + const distance = distanceSeed.divide(divisor).add(ring * ringSize); + + // Bring it back down to number + const angleNumber = Number(angleRads) / 1e18; + const distanceNumber = Number(distance); + + const coords = { + x: Math.floor(distanceNumber * Math.cos(angleNumber)), + y: Math.floor(distanceNumber * Math.sin(angleNumber)), + }; + + captureZones.add({ + coords, + radius: this.gameManager.getContractConstants().CAPTURE_ZONE_RADIUS, + }); + } + } + + this.lastChangeBlock = blockNumber; + + return captureZones; + } + + private updateCapturablePlanets() { + this.capturablePlanets = new Set(); + + for (const zone of this.getZones()) { + const planetsInZone = this.gameObjects.getPlanetsInWorldCircle(zone.coords, zone.radius); + for (const planet of planetsInZone) { + this.capturablePlanets.add(planet.locationId); + } + } + } + + private get gameObjects() { + return this.gameManager.getGameObjects(); + } + + private onNewChunk(chunk: Chunk) { + for (const worldLocation of chunk.planetLocations) { + for (const zone of this.getZones()) { + const { x: planetX, y: planetY } = worldLocation.coords; + const { x: zoneX, y: zoneY } = zone.coords; + + const distance = Math.sqrt((planetX - zoneX) ** 2 + (planetY - zoneY) ** 2); + if (distance <= zone.radius) { + this.capturablePlanets.add(worldLocation.hash); + } + } + } + } + + /** + * Is the given planet inside of a Capture Zone. + */ + public isInZone(locationId: LocationId) { + return this.capturablePlanets.has(locationId); + } + + /** + * The next block that will trigger a Capture Zone generation. + */ + public getNextChangeBlock() { + return this.nextChangeBlock; + } + + public getZones() { + return this.zones; + } +} diff --git a/src/Backend/GameLogic/ContractCaller.ts b/src/Backend/GameLogic/ContractCaller.ts deleted file mode 100644 index e09d74e9..00000000 --- a/src/Backend/GameLogic/ContractCaller.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { ContractFunction } from 'ethers'; -import { DiagnosticUpdater } from '../Interfaces/DiagnosticUpdater'; -import { ThrottledConcurrentQueue } from '../Network/ThrottledConcurrentQueue'; -import { sleep } from '../Utils/Utils'; - -export class ContractCaller { - private diagnosticsUpdater?: DiagnosticUpdater; - private static readonly MAX_RETRIES = 12; - private readonly callQueue = new ThrottledConcurrentQueue(10, 1000, 20); - - public async makeCall( - contractViewFunction: ContractFunction, - args: unknown[] = [] - ): Promise { - for (let i = 0; i < ContractCaller.MAX_RETRIES; i++) { - try { - const callPromise = this.callQueue.add(() => { - this.diagnosticsUpdater?.updateDiagnostics((d) => { - d.totalCalls++; - }); - return contractViewFunction(...args); - }); - - this.diagnosticsUpdater?.updateDiagnostics((d) => { - d.callsInQueue = this.callQueue.size(); - }); - - const callResult = await callPromise; - - this.diagnosticsUpdater?.updateDiagnostics((d) => { - d.callsInQueue = this.callQueue.size(); - }); - - return callResult; - } catch (e) { - await sleep(1000 * 2 ** i + Math.random() * 100); - } finally { - this.diagnosticsUpdater?.updateDiagnostics((d) => { - d.totalCalls++; - }); - } - } - - throw new Error('failed to call contract'); - } - - public setDiagnosticUpdater(diagnosticUpdater?: DiagnosticUpdater) { - this.diagnosticsUpdater = diagnosticUpdater; - } -} diff --git a/src/Backend/GameLogic/ContractsAPI.ts b/src/Backend/GameLogic/ContractsAPI.ts index 4263efb9..3a2cb3de 100644 --- a/src/Backend/GameLogic/ContractsAPI.ts +++ b/src/Backend/GameLogic/ContractsAPI.ts @@ -1,136 +1,187 @@ -import { EventEmitter } from 'events'; -import { providers, utils, Event, BigNumber as EthersBN, ContractFunction, ethers } from 'ethers'; -import _ from 'lodash'; -import { - ContractConstants, - MoveArgs, - ZKArgIdx, - MoveArgIdxs, - ContractEvent, - ContractsAPIEvent, - UpgradeArgs, - UpgradeArgIdxs, - DepositArtifactArgs, - WithdrawArtifactArgs, - PlanetTypeWeightsBySpaceType, -} from '../../_types/darkforest/api/ContractsAPITypes'; -import { - Player, - EthAddress, - LocationId, - ArtifactId, - RevealedCoords, - WorldLocation, - Artifact, - Planet, - QueuedArrival, - UnconfirmedInit, - EthTxType, - SubmittedTx, - SubmittedInit, - SubmittedUpgrade, - SubmittedMove, - SubmittedBuyHat, - SubmittedPlanetTransfer, - SubmittedFindArtifact, - SubmittedDepositArtifact, - SubmittedWithdrawArtifact, - UnconfirmedDepositArtifact, - UnconfirmedWithdrawArtifact, - SubmittedProspectPlanet, - UnconfirmedActivateArtifact, - SubmittedActivateArtifact, - SubmittedDeactivateArtifact, - UnconfirmedDeactivateArtifact, - SubmittedReveal, - UnconfirmedReveal, - SubmittedBuyGPTCredits, - SubmittedWithdrawSilver, - UnconfirmedWithdrawSilver, - VoyageId, -} from '@darkforest_eth/types'; -import { aggregateBulkGetter } from '../Utils/Utils'; -import bigInt from 'big-integer'; -import { TxExecutor } from '../Network/TxExecutor'; -import EthConnection from '../Network/EthConnection'; +import { EMPTY_LOCATION_ID } from '@darkforest_eth/constants'; +import { DarkForest } from '@darkforest_eth/contracts/typechain'; import { - DarkForestCore, - DarkForestGetters, - DarkForestGPTCredit, -} from '@darkforest_eth/contracts/typechain'; + aggregateBulkGetter, + ContractCaller, + EthConnection, + ethToWei, + TxCollection, + TxExecutor, +} from '@darkforest_eth/network'; import { address, artifactIdFromEthersBN, artifactIdToDecStr, - locationIdFromEthersBN, - locationIdToDecStr, - locationIdFromDecStr, decodeArrival, decodeArtifact, - decodeUpgradeBranches, + decodeArtifactPointValues, decodePlanet, decodePlanetDefaults, - decodeRevealedCoords, decodePlayer, - decodeArtifactPointValues, + decodeRevealedCoords, + decodeUpgradeBranches, + locationIdFromEthersBN, + locationIdToDecStr, } from '@darkforest_eth/serde'; -import { EMPTY_LOCATION_ID, CONTRACT_PRECISION } from '@darkforest_eth/constants'; -import type { - RevealSnarkContractCallArgs, - InitSnarkContractCallArgs, - MoveSnarkContractCallArgs, - BiomebaseSnarkContractCallArgs, -} from '@darkforest_eth/snarks'; -import { ContractCaller } from './ContractCaller'; -import { DiagnosticUpdater } from '../Interfaces/DiagnosticUpdater'; +import { + Artifact, + ArtifactId, + ArtifactType, + AutoGasSetting, + DiagnosticUpdater, + EthAddress, + LocationId, + Planet, + Player, + QueuedArrival, + RevealedCoords, + Setting, + Transaction, + TransactionId, + TxIntent, + VoyageId, +} from '@darkforest_eth/types'; +import { BigNumber as EthersBN, ContractFunction, Event, providers } from 'ethers'; +import { EventEmitter } from 'events'; +import _ from 'lodash'; +import NotificationManager from '../../Frontend/Game/NotificationManager'; +import { openConfirmationWindowForTransaction } from '../../Frontend/Game/Popups'; +import { getSetting } from '../../Frontend/Utils/SettingsHooks'; +import { + ContractConstants, + ContractEvent, + ContractsAPIEvent, + PlanetTypeWeightsBySpaceType, +} from '../../_types/darkforest/api/ContractsAPITypes'; +import { loadDiamondContract } from '../Network/Blockchain'; +import { eventLogger, EventType } from '../Network/EventLogger'; + +interface ContractsApiConfig { + connection: EthConnection; + contractAddress: EthAddress; +} /** - * Roughly contains methods that map 1:1 with functions that live - * in the contract. + * Roughly contains methods that map 1:1 with functions that live in the contract. Responsible for + * reading and writing to and from the blockchain. + * + * @todo don't inherit from {@link EventEmitter}. instead use {@link Monomitter} */ -class ContractsAPI extends EventEmitter { +export class ContractsAPI extends EventEmitter { + /** + * Don't allow users to submit txs if balance falls below this amount/ + */ + private static readonly MIN_BALANCE = ethToWei(0.002); + + /** + * Instrumented {@link ThrottledConcurrentQueue} for blockchain reads. + */ private readonly contractCaller: ContractCaller; - private readonly txRequestExecutor: TxExecutor | undefined; - - private diagnosticsUpdater?: DiagnosticUpdater; - private ethConnection: EthConnection; - private coreContract: DarkForestCore; - private gettersContract: DarkForestGetters; - private gptCreditContract: DarkForestGPTCredit; - - private constructor( - ethConnection: EthConnection, - coreContract: DarkForestCore, - gettersContract: DarkForestGetters, - gptCreditContract: DarkForestGPTCredit, - nonce: number - ) { + + /** + * Instrumented {@link ThrottledConcurrentQueue} for blockchain writes. + */ + public readonly txExecutor: TxExecutor; + + /** + * Our connection to the blockchain. In charge of low level networking, and also of the burner + * wallet. + */ + public readonly ethConnection: EthConnection; + + /** + * The contract address is saved on the object upon construction + */ + private contractAddress: EthAddress; + + get contract() { + return this.ethConnection.getContract(this.contractAddress); + } + + public constructor({ connection, contractAddress }: ContractsApiConfig) { super(); this.contractCaller = new ContractCaller(); - this.coreContract = coreContract; - this.gettersContract = gettersContract; - this.gptCreditContract = gptCreditContract; - this.txRequestExecutor = new TxExecutor(ethConnection, nonce); - this.ethConnection = ethConnection; + this.ethConnection = connection; + this.contractAddress = contractAddress; + this.txExecutor = new TxExecutor( + connection, + this.getGasFeeForTransaction.bind(this), + this.beforeQueued.bind(this), + this.beforeTransaction.bind(this), + this.afterTransaction.bind(this) + ); + + this.setupEventListeners(); } - static async create(ethConnection: EthConnection): Promise { - let nonce = 0; - try { - nonce = await ethConnection.getNonce(); - } catch (e) { - console.error('WARNING: creating TxExecutor with no account/signer'); + /** + * We pass this function into {@link TxExecutor} to calculate what gas fee we should use for the + * given transaction. The result is either a number, measured in gwei, represented as a string, or + * a string representing that we want to use an auto gas setting. + */ + private getGasFeeForTransaction(tx: Transaction): AutoGasSetting | string { + if ( + (tx.intent.methodName === 'initializePlayer' || tx.intent.methodName === 'getSpaceShips') && + tx.intent.contract.address === this.contract.address + ) { + return '50'; } - const contractsAPI: ContractsAPI = new ContractsAPI( - ethConnection, - await ethConnection.loadCoreContract(), - await ethConnection.loadGettersContract(), - await ethConnection.loadGPTCreditContract(), - nonce - ); + const config = { + contractAddress: this.contractAddress, + account: this.ethConnection.getAddress(), + }; - return contractsAPI; + return getSetting(config, Setting.GasFeeGwei); + } + + /** + * This function is called by {@link TxExecutor} before a transaction is queued. + * It gives the client an opportunity to prevent a transaction from being queued based + * on business logic or user interaction. + * + * Reject the promise to prevent the queued transaction from being queued. + */ + private async beforeQueued( + id: TransactionId, + intent: TxIntent, + overrides?: providers.TransactionRequest + ): Promise { + const address = this.ethConnection.getAddress(); + if (!address) throw new Error("can't send a transaction, no signer"); + + const balance = await this.ethConnection.loadBalance(address); + + if (balance.lt(ContractsAPI.MIN_BALANCE)) { + const notifsManager = NotificationManager.getInstance(); + notifsManager.balanceEmpty(); + throw new Error('xDAI balance too low!'); + } + + const gasFeeGwei = EthersBN.from(overrides?.gasPrice || '1000000000'); + + await openConfirmationWindowForTransaction({ + contractAddress: this.contractAddress, + connection: this.ethConnection, + id, + intent, + overrides, + from: address, + gasFeeGwei, + }); + } + + /** + * This function is called by {@link TxExecutor} before each transaction. It gives the client an + * opportunity to prevent a transaction from going through based on business logic or user + * interaction. To prevent the queued transaction from being submitted, throw an Error. + */ + private async beforeTransaction(tx: Transaction): Promise { + this.emit(ContractsAPIEvent.TxProcessing, tx); + } + + private async afterTransaction(_txRequest: Transaction, txDiagnosticInfo: unknown) { + eventLogger.logEvent(EventType.Transaction, txDiagnosticInfo); } public destroy(): void { @@ -141,8 +192,49 @@ class ContractsAPI extends EventEmitter { return this.contractCaller.makeCall(contractViewFunction, args); } - public setupEventListeners(): void { - this.ethConnection.subscribeToEvents(this.coreContract, { + public async setupEventListeners(): Promise { + const { contract } = this; + + const filter = { + address: contract.address, + topics: [ + [ + contract.filters.ArrivalQueued(null, null, null, null, null).topics, + contract.filters.ArtifactActivated(null, null, null).topics, + contract.filters.ArtifactDeactivated(null, null, null).topics, + contract.filters.ArtifactDeposited(null, null, null).topics, + contract.filters.ArtifactFound(null, null, null).topics, + contract.filters.ArtifactWithdrawn(null, null, null).topics, + contract.filters.LocationRevealed(null, null, null, null).topics, + contract.filters.PlanetHatBought(null, null, null).topics, + contract.filters.PlanetProspected(null, null).topics, + contract.filters.PlanetSilverWithdrawn(null, null, null).topics, + contract.filters.PlanetTransferred(null, null, null).topics, + contract.filters.PlanetInvaded(null, null).topics, + contract.filters.PlanetCaptured(null, null).topics, + contract.filters.PlayerInitialized(null, null).topics, + contract.filters.AdminOwnershipChanged(null, null).topics, + contract.filters.AdminGiveSpaceship(null, null).topics, + contract.filters.PauseStateChanged(null).topics, + contract.filters.LobbyCreated(null, null).topics, + ].map((topicsOrUndefined) => (topicsOrUndefined || [])[0]), + ] as Array>, + }; + + const eventHandlers = { + [ContractEvent.PauseStateChanged]: (paused: boolean) => { + this.emit(ContractsAPIEvent.PauseStateChanged, paused); + }, + [ContractEvent.AdminOwnershipChanged]: (location: EthersBN, _newOwner: string) => { + this.emit(ContractsAPIEvent.PlanetUpdate, locationIdFromEthersBN(location)); + }, + [ContractEvent.AdminGiveSpaceship]: ( + location: EthersBN, + _newOwner: string, + _type: ArtifactType + ) => { + this.emit(ContractsAPIEvent.PlanetUpdate, locationIdFromEthersBN(location)); + }, [ContractEvent.ArtifactFound]: ( _playerAddr: string, rawArtifactId: EthersBN, @@ -202,11 +294,11 @@ class ContractsAPI extends EventEmitter { this.emit( ContractsAPIEvent.PlanetTransferred, locationIdFromEthersBN(planetId), - receiverAddress.toLowerCase() as EthAddress + address(receiverAddress) ); }, [ContractEvent.ArrivalQueued]: async ( - _playerAddr: string, + playerAddr: string, arrivalId: EthersBN, fromLocRaw: EthersBN, toLocRaw: EthersBN, @@ -219,6 +311,7 @@ class ContractsAPI extends EventEmitter { locationIdFromEthersBN(fromLocRaw), locationIdFromEthersBN(toLocRaw) ); + this.emit(ContractsAPIEvent.PlayerUpdate, address(playerAddr)); this.emit(ContractsAPIEvent.RadiusUpdated); }, [ContractEvent.PlanetUpgraded]: async ( @@ -230,6 +323,12 @@ class ContractsAPI extends EventEmitter { ) => { this.emit(ContractsAPIEvent.PlanetUpdate, locationIdFromEthersBN(location)); }, + [ContractEvent.PlanetInvaded]: async (_playerAddr: string, location: EthersBN, _: Event) => { + this.emit(ContractsAPIEvent.PlanetUpdate, locationIdFromEthersBN(location)); + }, + [ContractEvent.PlanetCaptured]: async (_playerAddr: string, location: EthersBN, _: Event) => { + this.emit(ContractsAPIEvent.PlanetUpdate, locationIdFromEthersBN(location)); + }, [ContractEvent.PlanetHatBought]: async ( _playerAddress: string, location: EthersBN, @@ -238,6 +337,8 @@ class ContractsAPI extends EventEmitter { [ContractEvent.LocationRevealed]: async ( revealerAddr: string, location: EthersBN, + _x: EthersBN, + _y: EthersBN, _: Event ) => { this.emit(ContractsAPIEvent.PlanetUpdate, locationIdFromEthersBN(location)); @@ -257,466 +358,35 @@ class ContractsAPI extends EventEmitter { this.emit(ContractsAPIEvent.PlanetUpdate, locationIdFromEthersBN(location)); this.emit(ContractsAPIEvent.PlayerUpdate, address(player)); }, - }); - - this.gptCreditContract.on( - ContractEvent.ChangedGPTCreditPrice, - async (newPrice: EthersBN, _: Event) => { - this.emit( - ContractsAPIEvent.ChangedGPTCreditPrice, - parseFloat(ethers.utils.formatEther(newPrice.toString())) - ); - } - ); + [ContractEvent.LobbyCreated]: (ownerAddr: string, lobbyAddr: string) => { + this.emit(ContractsAPIEvent.LobbyCreated, address(ownerAddr), address(lobbyAddr)); + }, + }; - this.ethConnection.on('ChangedRPCEndpoint', async () => { - this.coreContract = await this.ethConnection.loadCoreContract(); - }); + this.ethConnection.subscribeToContractEvents(contract, eventHandlers, filter); } public removeEventListeners(): void { - this.coreContract.removeAllListeners(ContractEvent.PlayerInitialized); - this.coreContract.removeAllListeners(ContractEvent.ArrivalQueued); - this.coreContract.removeAllListeners(ContractEvent.PlanetUpgraded); - this.coreContract.removeAllListeners(ContractEvent.PlanetHatBought); - this.coreContract.removeAllListeners(ContractEvent.PlanetTransferred); - this.coreContract.removeAllListeners(ContractEvent.ArtifactFound); - this.coreContract.removeAllListeners(ContractEvent.ArtifactDeposited); - this.coreContract.removeAllListeners(ContractEvent.ArtifactWithdrawn); - this.coreContract.removeAllListeners(ContractEvent.ArtifactActivated); - this.coreContract.removeAllListeners(ContractEvent.ArtifactDeactivated); - this.coreContract.removeAllListeners(ContractEvent.LocationRevealed); - this.coreContract.removeAllListeners(ContractEvent.PlanetSilverWithdrawn); - this.gptCreditContract.removeAllListeners(ContractEvent.ChangedGPTCreditPrice); + const { contract } = this; + + contract.removeAllListeners(ContractEvent.PlayerInitialized); + contract.removeAllListeners(ContractEvent.ArrivalQueued); + contract.removeAllListeners(ContractEvent.PlanetUpgraded); + contract.removeAllListeners(ContractEvent.PlanetHatBought); + contract.removeAllListeners(ContractEvent.PlanetTransferred); + contract.removeAllListeners(ContractEvent.ArtifactFound); + contract.removeAllListeners(ContractEvent.ArtifactDeposited); + contract.removeAllListeners(ContractEvent.ArtifactWithdrawn); + contract.removeAllListeners(ContractEvent.ArtifactActivated); + contract.removeAllListeners(ContractEvent.ArtifactDeactivated); + contract.removeAllListeners(ContractEvent.LocationRevealed); + contract.removeAllListeners(ContractEvent.PlanetSilverWithdrawn); + contract.removeAllListeners(ContractEvent.PlanetInvaded); + contract.removeAllListeners(ContractEvent.PlanetCaptured); } public getContractAddress(): EthAddress { - return address(this.coreContract.address); - } - - /** - * Given an unconfirmed (but submitted) transaction, emits the appropriate - * [[ContractsAPIEvent]]. - */ - public waitFor(submitted: SubmittedTx, receiptPromise: Promise) { - this.emit(ContractsAPIEvent.TxSubmitted, submitted); - - return receiptPromise - .then((receipt) => { - this.emit(ContractsAPIEvent.TxConfirmed, submitted); - return receipt; - }) - .catch((e) => { - this.emit(ContractsAPIEvent.TxReverted, submitted); - throw e; - }); - } - - async reveal( - args: RevealSnarkContractCallArgs, - action: UnconfirmedReveal - ): Promise { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - - const tx = this.txRequestExecutor.makeRequest( - EthTxType.REVEAL_LOCATION, - action.actionId, - this.coreContract, - args - ); - const unminedRevealTx: SubmittedReveal = { - ...action, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - }; - - return this.waitFor(unminedRevealTx, tx.confirmed); - } - - async initializePlayer( - args: InitSnarkContractCallArgs, - action: UnconfirmedInit - ): Promise { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - const tx = this.txRequestExecutor.makeRequest( - EthTxType.INIT, - action.actionId, - this.coreContract, - args - ); - - const unminedInitTx: SubmittedInit = { - ...action, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - }; - - return this.waitFor(unminedInitTx, tx.confirmed); - } - - async transferOwnership( - planetId: LocationId, - newOwner: EthAddress, - actionId: string - ): Promise { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - const tx = this.txRequestExecutor.makeRequest( - EthTxType.PLANET_TRANSFER, - actionId, - this.coreContract, - [locationIdToDecStr(planetId), newOwner] - ); - - const unminedTransferTx: SubmittedPlanetTransfer = { - actionId, - type: EthTxType.PLANET_TRANSFER, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - planetId, - newOwner, - }; - - return this.waitFor(unminedTransferTx, tx.confirmed); - } - - // throws if tx initialization fails - // otherwise, returns a promise of a submtited (unmined) tx receipt - async upgradePlanet(args: UpgradeArgs, actionId: string): Promise { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - const tx = this.txRequestExecutor.makeRequest( - EthTxType.UPGRADE, - actionId, - this.coreContract, - args - ); - - const unminedUpgradeTx: SubmittedUpgrade = { - actionId, - type: EthTxType.UPGRADE, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - locationId: locationIdFromDecStr(args[UpgradeArgIdxs.LOCATION_ID]), - upgradeBranch: parseInt(args[UpgradeArgIdxs.UPGRADE_BRANCH]), - }; - - return this.waitFor(unminedUpgradeTx, tx.confirmed); - } - - async prospectPlanet(planetId: LocationId, actionId: string) { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - - const args = [locationIdToDecStr(planetId)]; - - const tx = this.txRequestExecutor.makeRequest( - EthTxType.PROSPECT_PLANET, - actionId, - this.coreContract, - args - ); - - const unminedFindArtifact: SubmittedProspectPlanet = { - actionId, - type: EthTxType.PROSPECT_PLANET, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - planetId, - }; - - return this.waitFor(unminedFindArtifact, tx.confirmed); - } - - // throws if tx initialization fails - // otherwise, returns a promise of a submtited (unmined) tx receipt - async findArtifact( - location: WorldLocation, - biomeSnarkArgs: BiomebaseSnarkContractCallArgs, - actionId: string - ): Promise { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - const tx = this.txRequestExecutor.makeRequest( - EthTxType.FIND_ARTIFACT, - actionId, - this.coreContract, - biomeSnarkArgs - ); - - const unminedFindArtifact: SubmittedFindArtifact = { - actionId, - type: EthTxType.FIND_ARTIFACT, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - planetId: location.hash, - }; - - return this.waitFor(unminedFindArtifact, tx.confirmed); - } - - async depositArtifact(action: UnconfirmedDepositArtifact): Promise { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - const args: DepositArtifactArgs = [ - locationIdToDecStr(action.locationId), - artifactIdToDecStr(action.artifactId), - ]; - - const tx = this.txRequestExecutor.makeRequest( - EthTxType.DEPOSIT_ARTIFACT, - action.actionId, - this.coreContract, - args - ); - - const submittedTx: SubmittedDepositArtifact = { - ...action, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - }; - - return this.waitFor(submittedTx, tx.confirmed); - } - - // throws if tx initialization fails - // otherwise, returns a promise of a submtited (unmined) tx receipt - async withdrawArtifact( - action: UnconfirmedWithdrawArtifact - ): Promise { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - const args: WithdrawArtifactArgs = [ - locationIdToDecStr(action.locationId), - artifactIdToDecStr(action.artifactId), - ]; - - const tx = this.txRequestExecutor.makeRequest( - EthTxType.WITHDRAW_ARTIFACT, - action.actionId, - this.coreContract, - args - ); - - const submittedTx: SubmittedWithdrawArtifact = { - ...action, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - }; - - return this.waitFor(submittedTx, tx.confirmed); - } - - async activateArtifact(action: UnconfirmedActivateArtifact) { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - - const args = [ - locationIdToDecStr(action.locationId), - artifactIdToDecStr(action.artifactId), - action.wormholeTo ? locationIdToDecStr(action.wormholeTo) : '0', - ]; - - const tx = this.txRequestExecutor.makeRequest( - EthTxType.ACTIVATE_ARTIFACT, - action.actionId, - this.coreContract, - args - ); - - const submittedTx: SubmittedActivateArtifact = { - ...action, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - }; - - return this.waitFor(submittedTx, tx.confirmed); - } - - async deactivateArtifact(action: UnconfirmedDeactivateArtifact) { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - - const args = [locationIdToDecStr(action.locationId)]; - - const tx = this.txRequestExecutor.makeRequest( - EthTxType.DEACTIVATE_ARTIFACT, - action.actionId, - this.coreContract, - args - ); - - const submittedTx: SubmittedDeactivateArtifact = { - ...action, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - }; - - return this.waitFor(submittedTx, tx.confirmed); - } - - // throws if tx initialization fails - // otherwise, returns a promise of a submtited (unmined) tx receipt - async move( - actionId: string, - snarkArgs: MoveSnarkContractCallArgs, - shipsMoved: number, - silverMoved: number, - artifactMoved?: ArtifactId - ): Promise { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - const args = [ - snarkArgs[ZKArgIdx.PROOF_A], - snarkArgs[ZKArgIdx.PROOF_B], - snarkArgs[ZKArgIdx.PROOF_C], - [ - ...snarkArgs[ZKArgIdx.DATA], - (shipsMoved * CONTRACT_PRECISION).toString(), - (silverMoved * CONTRACT_PRECISION).toString(), - '0', - ], - ] as MoveArgs; - - if (artifactMoved) { - args[ZKArgIdx.DATA][MoveArgIdxs.ARTIFACT_SENT] = artifactIdToDecStr(artifactMoved); - } - - const tx = this.txRequestExecutor.makeRequest( - EthTxType.MOVE, - actionId, - this.coreContract, - args - ); - - const forcesFloat = parseFloat(args[ZKArgIdx.DATA][MoveArgIdxs.SHIPS_SENT]); - const silverFloat = parseFloat(args[ZKArgIdx.DATA][MoveArgIdxs.SILVER_SENT]); - - const unminedMoveTx: SubmittedMove = { - actionId, - type: EthTxType.MOVE, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - from: locationIdFromDecStr(args[ZKArgIdx.DATA][MoveArgIdxs.FROM_ID]), - to: locationIdFromDecStr(args[ZKArgIdx.DATA][MoveArgIdxs.TO_ID]), - forces: forcesFloat / CONTRACT_PRECISION, - silver: silverFloat / CONTRACT_PRECISION, - }; - - if (artifactMoved) unminedMoveTx.artifact = artifactMoved; - - return this.waitFor(unminedMoveTx, tx.confirmed); - } - - async buyHat(planetIdDecStr: string, currentHatLevel: number, actionId: string) { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - const overrides: providers.TransactionRequest = { - gasLimit: 500000, - value: bigInt(1000000000000000000) - .multiply(2 ** currentHatLevel) - .toString(), - }; - - const tx = this.txRequestExecutor.makeRequest( - EthTxType.BUY_HAT, - actionId, - this.coreContract, - [planetIdDecStr], - overrides - ); - - const unminedBuyHatTx: SubmittedBuyHat = { - actionId, - type: EthTxType.BUY_HAT, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - locationId: locationIdFromDecStr(planetIdDecStr), - }; - - return this.waitFor(unminedBuyHatTx, tx.confirmed); - } - - async withdrawSilver(action: UnconfirmedWithdrawSilver): Promise { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - - const args = [locationIdToDecStr(action.locationId), action.amount * CONTRACT_PRECISION]; - const tx = this.txRequestExecutor.makeRequest( - EthTxType.WITHDRAW_SILVER, - action.actionId, - this.coreContract, - args - ); - const unminedWithdrawSilverTx: SubmittedWithdrawSilver = { - ...action, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - }; - - return this.waitFor(unminedWithdrawSilverTx, tx.confirmed); - } - - async buyGPTCredits(amount: number, actionId: string) { - if (!this.txRequestExecutor) { - throw new Error('no signer, cannot execute tx'); - } - const costPerCreditStr = ( - await this.makeCall(this.gptCreditContract.creditPrice) - ).toString(); - const overrides: providers.TransactionRequest = { - gasLimit: 500000, - value: bigInt(costPerCreditStr).multiply(amount).toString(), - }; - - const tx = this.txRequestExecutor.makeRequest( - EthTxType.BUY_GPT_CREDITS, - actionId, - this.gptCreditContract, - [amount], - overrides - ); - - const unminedBuyGPTCreditsTx: SubmittedBuyGPTCredits = { - actionId, - type: EthTxType.BUY_GPT_CREDITS, - txHash: (await tx.submitted).hash, - sentAtTimestamp: Math.floor(Date.now() / 1000), - amount, - }; - - return this.waitFor(unminedBuyGPTCreditsTx, tx.confirmed); - } - - async getGPTCreditPriceEther(): Promise { - // price in ether - const costPerCreditWeiStr = ( - await this.makeCall(this.gptCreditContract.creditPrice) - ).toString(); - const costPerCredit = ethers.utils.formatEther(costPerCreditWeiStr); - return parseFloat(costPerCredit); - } - - public async getGPTCreditBalance(address: EthAddress): Promise { - const gptCreditsBalance = await this.makeCall(this.gptCreditContract.credits, [ - address, - ]); - return gptCreditsBalance.toNumber(); + return this.contractAddress; } async getConstants(): Promise { @@ -728,8 +398,11 @@ class ContractsAPI extends EventEmitter { PERLIN_LENGTH_SCALE, PERLIN_MIRROR_X, PERLIN_MIRROR_Y, - } = await this.makeCall(this.coreContract.snarkConstants); + } = await this.makeCall(this.contract.getSnarkConstants); const { + ADMIN_CAN_ADD_PLANETS, + WORLD_RADIUS_LOCKED, + WORLD_RADIUS_MIN, MAX_NATURAL_PLANET_LEVEL, TIME_FACTOR_HUNDREDTHS, PERLIN_THRESHOLD_1, @@ -737,38 +410,61 @@ class ContractsAPI extends EventEmitter { PERLIN_THRESHOLD_3, INIT_PERLIN_MIN, INIT_PERLIN_MAX, + SPAWN_RIM_AREA, BIOME_THRESHOLD_1, BIOME_THRESHOLD_2, + SILVER_SCORE_VALUE, + // TODO: Actually put this in game constants + // PLANET_LEVEL_THRESHOLDS, PLANET_RARITY, + PLANET_TRANSFER_ENABLED, PHOTOID_ACTIVATION_DELAY, LOCATION_REVEAL_COOLDOWN, - } = await this.makeCall(this.coreContract.gameConstants); + SPACE_JUNK_ENABLED, + SPACE_JUNK_LIMIT, + PLANET_LEVEL_JUNK, + ABANDON_SPEED_CHANGE_PERCENT, + ABANDON_RANGE_CHANGE_PERCENT, + // Capture Zones + GAME_START_BLOCK, + CAPTURE_ZONES_ENABLED, + CAPTURE_ZONE_COUNT, + CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL, + CAPTURE_ZONE_RADIUS, + CAPTURE_ZONE_PLANET_LEVEL_SCORE, + CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED, + CAPTURE_ZONES_PER_5000_WORLD_RADIUS, + } = await this.makeCall(this.contract.getGameConstants); const TOKEN_MINT_END_SECONDS = ( - await this.makeCall(this.coreContract.TOKEN_MINT_END_TIMESTAMP) + await this.makeCall(this.contract.TOKEN_MINT_END_TIMESTAMP) ).toNumber(); - const upgrades = decodeUpgradeBranches(await this.makeCall(this.coreContract.getUpgrades)); + const adminAddress = address(await this.makeCall(this.contract.adminAddress)); + + const upgrades = decodeUpgradeBranches(await this.makeCall(this.contract.getUpgrades)); const PLANET_TYPE_WEIGHTS: PlanetTypeWeightsBySpaceType = - await this.makeCall(this.coreContract.getTypeWeights); + await this.makeCall(this.contract.getTypeWeights); - const rawPointValues = await this.makeCall(this.coreContract.getArtifactPointValues); + const rawPointValues = await this.makeCall(this.contract.getArtifactPointValues); const ARTIFACT_POINT_VALUES = decodeArtifactPointValues(rawPointValues); - const planetDefaults = decodePlanetDefaults( - await this.makeCall(this.coreContract.getDefaultStats) - ); + const planetDefaults = decodePlanetDefaults(await this.makeCall(this.contract.getDefaultStats)); const planetLevelThresholds = ( - await this.makeCall(this.coreContract.getPlanetLevelThresholds) + await this.makeCall(this.contract.getPlanetLevelThresholds) ).map((x: EthersBN) => x.toNumber()); const planetCumulativeRarities = ( - await this.makeCall(this.coreContract.getCumulativeRarities) + await this.makeCall(this.contract.getCumulativeRarities) ).map((x: EthersBN) => x.toNumber()); - return { + const constants: ContractConstants = { + ADMIN_CAN_ADD_PLANETS, + WORLD_RADIUS_LOCKED, + WORLD_RADIUS_MIN: WORLD_RADIUS_MIN.toNumber(), + DISABLE_ZK_CHECKS, PLANETHASH_KEY: PLANETHASH_KEY.toNumber(), @@ -777,9 +473,8 @@ class ContractsAPI extends EventEmitter { PERLIN_LENGTH_SCALE: PERLIN_LENGTH_SCALE.toNumber(), PERLIN_MIRROR_X, PERLIN_MIRROR_Y, - + CLAIM_PLANET_COOLDOWN: 0, TOKEN_MINT_END_SECONDS, - MAX_NATURAL_PLANET_LEVEL: MAX_NATURAL_PLANET_LEVEL.toNumber(), TIME_FACTOR_HUNDREDTHS: TIME_FACTOR_HUNDREDTHS.toNumber(), PERLIN_THRESHOLD_1: PERLIN_THRESHOLD_1.toNumber(), @@ -789,11 +484,43 @@ class ContractsAPI extends EventEmitter { INIT_PERLIN_MAX: INIT_PERLIN_MAX.toNumber(), BIOME_THRESHOLD_1: BIOME_THRESHOLD_1.toNumber(), BIOME_THRESHOLD_2: BIOME_THRESHOLD_2.toNumber(), + SILVER_SCORE_VALUE: SILVER_SCORE_VALUE.toNumber(), + PLANET_LEVEL_THRESHOLDS: [ + planetLevelThresholds[0], + planetLevelThresholds[1], + planetLevelThresholds[2], + planetLevelThresholds[3], + planetLevelThresholds[4], + planetLevelThresholds[5], + planetLevelThresholds[6], + planetLevelThresholds[7], + planetLevelThresholds[8], + planetLevelThresholds[9], + ], PLANET_RARITY: PLANET_RARITY.toNumber(), + PLANET_TRANSFER_ENABLED, PLANET_TYPE_WEIGHTS, ARTIFACT_POINT_VALUES, + SPACE_JUNK_ENABLED, + SPACE_JUNK_LIMIT: SPACE_JUNK_LIMIT.toNumber(), + PLANET_LEVEL_JUNK: [ + PLANET_LEVEL_JUNK[0].toNumber(), + PLANET_LEVEL_JUNK[1].toNumber(), + PLANET_LEVEL_JUNK[2].toNumber(), + PLANET_LEVEL_JUNK[3].toNumber(), + PLANET_LEVEL_JUNK[4].toNumber(), + PLANET_LEVEL_JUNK[5].toNumber(), + PLANET_LEVEL_JUNK[6].toNumber(), + PLANET_LEVEL_JUNK[7].toNumber(), + PLANET_LEVEL_JUNK[8].toNumber(), + PLANET_LEVEL_JUNK[9].toNumber(), + ], + ABANDON_SPEED_CHANGE_PERCENT: ABANDON_RANGE_CHANGE_PERCENT.toNumber(), + ABANDON_RANGE_CHANGE_PERCENT: ABANDON_SPEED_CHANGE_PERCENT.toNumber(), + PHOTOID_ACTIVATION_DELAY: PHOTOID_ACTIVATION_DELAY.toNumber(), + SPAWN_RIM_AREA: SPAWN_RIM_AREA.toNumber(), LOCATION_REVEAL_COOLDOWN: LOCATION_REVEAL_COOLDOWN.toNumber(), defaultPopulationCap: planetDefaults.populationCap, @@ -807,22 +534,43 @@ class ContractsAPI extends EventEmitter { planetLevelThresholds, planetCumulativeRarities, upgrades, + + adminAddress, + // Capture Zones + GAME_START_BLOCK: GAME_START_BLOCK.toNumber(), + CAPTURE_ZONES_ENABLED, + CAPTURE_ZONE_COUNT: CAPTURE_ZONE_COUNT.toNumber(), + CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL: CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL.toNumber(), + CAPTURE_ZONE_RADIUS: CAPTURE_ZONE_RADIUS.toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE: [ + CAPTURE_ZONE_PLANET_LEVEL_SCORE[0].toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE[1].toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE[2].toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE[3].toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE[4].toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE[5].toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE[6].toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE[7].toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE[8].toNumber(), + CAPTURE_ZONE_PLANET_LEVEL_SCORE[9].toNumber(), + ], + CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED: CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED.toNumber(), + CAPTURE_ZONES_PER_5000_WORLD_RADIUS: CAPTURE_ZONES_PER_5000_WORLD_RADIUS.toNumber(), }; + + return constants; } public async getPlayers( onProgress?: (fractionCompleted: number) => void ): Promise> { - const nPlayers: number = ( - await this.makeCall(this.coreContract.getNPlayers) - ).toNumber(); + const nPlayers: number = (await this.makeCall(this.contract.getNPlayers)).toNumber(); const players = await aggregateBulkGetter( - 'players', nPlayers, 200, async (start, end) => - (await this.makeCall(this.gettersContract.bulkGetPlayers, [start, end])).map(decodePlayer), + (await this.makeCall(this.contract.bulkGetPlayers, [start, end])).map(decodePlayer), onProgress ); @@ -834,39 +582,34 @@ class ContractsAPI extends EventEmitter { } public async getPlayerById(playerId: EthAddress): Promise { - const rawPlayer = await this.makeCall(this.coreContract.players, [playerId]); + const rawPlayer = await this.makeCall(this.contract.players, [playerId]); if (!rawPlayer.isInitialized) return undefined; - return decodePlayer(rawPlayer); + const player = decodePlayer(rawPlayer); + + return player; } public async getWorldRadius(): Promise { - const radius = (await this.makeCall(this.coreContract.worldRadius)).toNumber(); + const radius = (await this.makeCall(this.contract.worldRadius)).toNumber(); return radius; } // timestamp since epoch (in seconds) public async getTokenMintEndTimestamp(): Promise { const timestamp = ( - await this.makeCall(this.coreContract.TOKEN_MINT_END_TIMESTAMP) + await this.makeCall(this.contract.TOKEN_MINT_END_TIMESTAMP) ).toNumber(); return timestamp; } - public async getContractBalance(): Promise { - const rawBalance = await this.makeCall(this.coreContract.getBalance); - const myBalance = utils.formatEther(rawBalance); - const numBalance = parseFloat(myBalance); - return numBalance; - } - public async getArrival(arrivalId: number): Promise { - const rawArrival = await this.makeCall(this.coreContract.planetArrivals, [arrivalId]); + const rawArrival = await this.makeCall(this.contract.planetArrivals, [arrivalId]); return decodeArrival(rawArrival); } public async getArrivalsForPlanet(planetId: LocationId): Promise { const events = ( - await this.makeCall(this.gettersContract.getPlanetArrivals, [locationIdToDecStr(planetId)]) + await this.makeCall(this.contract.getPlanetArrivals, [locationIdToDecStr(planetId)]) ).map(decodeArrival); return events; @@ -877,12 +620,11 @@ class ContractsAPI extends EventEmitter { onProgress?: (fractionCompleted: number) => void ): Promise { const arrivalsUnflattened = await aggregateBulkGetter( - 'arrivals', planetsToLoad.length, 200, async (start, end) => { return ( - await this.makeCall(this.gettersContract.bulkGetPlanetArrivalsByIds, [ + await this.makeCall(this.contract.bulkGetPlanetArrivalsByIds, [ planetsToLoad.slice(start, end).map(locationIdToDecStr), ]) ).map((arrivals) => arrivals.map(decodeArrival)); @@ -897,19 +639,13 @@ class ContractsAPI extends EventEmitter { startingAt: number, onProgress?: (fractionCompleted: number) => void ): Promise { - const nPlanets: number = ( - await this.makeCall(this.coreContract.getNPlanets) - ).toNumber(); + const nPlanets: number = (await this.makeCall(this.contract.getNPlanets)).toNumber(); const planetIds = await aggregateBulkGetter( - 'planetids', nPlanets - startingAt, 1000, async (start, end) => - await this.makeCall(this.gettersContract.bulkGetPlanetIds, [ - start + startingAt, - end + startingAt, - ]), + await this.makeCall(this.contract.bulkGetPlanetIds, [start + startingAt, end + startingAt]), onProgress ); return planetIds.map(locationIdFromEthersBN); @@ -919,7 +655,7 @@ class ContractsAPI extends EventEmitter { planetId: LocationId ): Promise { const decStrId = locationIdToDecStr(planetId); - const rawRevealedCoords = await this.makeCall(this.coreContract.revealedCoords, [decStrId]); + const rawRevealedCoords = await this.makeCall(this.contract.revealedCoords, [decStrId]); const ret = decodeRevealedCoords(rawRevealedCoords); if (ret.hash === EMPTY_LOCATION_ID) { return undefined; @@ -927,21 +663,24 @@ class ContractsAPI extends EventEmitter { return ret; } + public async getIsPaused(): Promise { + return this.makeCall(this.contract.paused); + } + public async getRevealedPlanetsCoords( startingAt: number, onProgressIds?: (fractionCompleted: number) => void, onProgressCoords?: (fractionCompleted: number) => void ): Promise { const nRevealedPlanets: number = ( - await this.makeCall(this.coreContract.getNRevealedPlanets) + await this.makeCall(this.contract.getNRevealedPlanets) ).toNumber(); const rawRevealedPlanetIds = await aggregateBulkGetter( - 'revealed-planetids', nRevealedPlanets - startingAt, 500, async (start, end) => - await this.makeCall(this.gettersContract.bulkGetRevealedPlanetIds, [ + await this.makeCall(this.contract.bulkGetRevealedPlanetIds, [ start + startingAt, end + startingAt, ]), @@ -949,11 +688,10 @@ class ContractsAPI extends EventEmitter { ); const rawRevealedCoords = await aggregateBulkGetter( - 'revealed-coords', rawRevealedPlanetIds.length, 500, async (start, end) => - await this.makeCall(this.gettersContract.bulkGetRevealedCoordsByIds, [ + await this.makeCall(this.contract.bulkGetRevealedCoordsByIds, [ rawRevealedPlanetIds.slice(start, end), ]), onProgressCoords @@ -968,25 +706,39 @@ class ContractsAPI extends EventEmitter { onProgressMetadata?: (fractionCompleted: number) => void ): Promise> { const rawPlanets = await aggregateBulkGetter( - 'planets', toLoadPlanets.length, 200, async (start, end) => - await this.makeCall(this.gettersContract.bulkGetPlanetsByIds, [ + await this.makeCall(this.contract.bulkGetPlanetsByIds, [ toLoadPlanets.slice(start, end).map(locationIdToDecStr), ]), onProgressPlanet ); const rawPlanetsExtendedInfo = await aggregateBulkGetter( - 'planets-extended-info', toLoadPlanets.length, 200, async (start, end) => - await this.makeCall(this.gettersContract.bulkGetPlanetsExtendedInfoByIds, [ + await this.makeCall(this.contract.bulkGetPlanetsExtendedInfoByIds, [ toLoadPlanets.slice(start, end).map(locationIdToDecStr), ]), - onProgressMetadata + (fractionCompleted) => { + if (!onProgressMetadata) return; + onProgressMetadata(fractionCompleted / 2); + } + ); + + const rawPlanetsExtendedInfo2 = await aggregateBulkGetter( + toLoadPlanets.length, + 200, + async (start, end) => + await this.makeCall(this.contract.bulkGetPlanetsExtendedInfo2ByIds, [ + toLoadPlanets.slice(start, end).map(locationIdToDecStr), + ]), + (fractionCompleted) => { + if (!onProgressMetadata) return; + onProgressMetadata(0.5 + fractionCompleted / 2); + } ); const planets: Map = new Map(); @@ -996,8 +748,10 @@ class ContractsAPI extends EventEmitter { const planet = decodePlanet( locationIdToDecStr(toLoadPlanets[i]), rawPlanets[i], - rawPlanetsExtendedInfo[i] + rawPlanetsExtendedInfo[i], + rawPlanetsExtendedInfo2[i] ); + planet.transactions = new TxCollection(); planets.set(planet.locationId, planet); } } @@ -1006,22 +760,27 @@ class ContractsAPI extends EventEmitter { public async getPlanetById(planetId: LocationId): Promise { const decStrId = locationIdToDecStr(planetId); - const rawExtendedInfo = await this.makeCall(this.coreContract.planetsExtendedInfo, [decStrId]); + const rawExtendedInfo = await this.makeCall(this.contract.planetsExtendedInfo, [decStrId]); + const rawExtendedInfo2 = await this.makeCall(this.contract.planetsExtendedInfo2, [decStrId]); + if (!rawExtendedInfo[0]) return undefined; // planetExtendedInfo.isInitialized is false - const rawPlanet = await this.makeCall(this.coreContract.planets, [decStrId]); - return decodePlanet(decStrId, rawPlanet, rawExtendedInfo); + if (!rawExtendedInfo2[0]) return undefined; // planetExtendedInfo.isInitialized is false + const rawPlanet = await this.makeCall(this.contract.planets, [decStrId]); + return decodePlanet(decStrId, rawPlanet, rawExtendedInfo, rawExtendedInfo2); } public async getArtifactById(artifactId: ArtifactId): Promise { - const exists = await this.makeCall(this.gettersContract.doesArtifactExist, [ + const exists = await this.makeCall(this.contract.doesArtifactExist, [ artifactIdToDecStr(artifactId), ]); if (!exists) return undefined; - const rawArtifact = await this.makeCall(this.gettersContract.getArtifactById, [ + const rawArtifact = await this.makeCall(this.contract.getArtifactById, [ artifactIdToDecStr(artifactId), ]); - return decodeArtifact(rawArtifact); + const artifact = decodeArtifact(rawArtifact); + artifact.transactions = new TxCollection(); + return artifact; } public async bulkGetArtifactsOnPlanets( @@ -1029,11 +788,10 @@ class ContractsAPI extends EventEmitter { onProgress?: (fractionCompleted: number) => void ): Promise { const rawArtifacts = await aggregateBulkGetter( - 'planet-artifacts', locationIds.length, 200, async (start, end) => - await this.makeCall(this.gettersContract.bulkGetPlanetArtifacts, [ + await this.makeCall(this.contract.bulkGetPlanetArtifacts, [ locationIds.slice(start, end).map(locationIdToDecStr), ]), onProgress @@ -1049,44 +807,101 @@ class ContractsAPI extends EventEmitter { onProgress?: (fractionCompleted: number) => void ): Promise { const rawArtifacts = await aggregateBulkGetter( - 'artifacts', artifactIds.length, 200, async (start, end) => - await this.makeCall(this.gettersContract.bulkGetArtifactsByIds, [ + await this.makeCall(this.contract.bulkGetArtifactsByIds, [ artifactIds.slice(start, end).map(artifactIdToDecStr), ]), onProgress ); const ret: Artifact[] = rawArtifacts.map(decodeArtifact); + ret.forEach((a) => (a.transactions = new TxCollection())); return ret; } public async getPlayerArtifacts( - playerId: EthAddress, + playerId?: EthAddress, onProgress?: (percent: number) => void ): Promise { - const myArtifactIds = ( - await this.makeCall(this.gettersContract.getPlayerArtifactIds, [playerId]) - ).map(artifactIdFromEthersBN); + if (playerId === undefined) return []; + + const myArtifactIds = (await this.makeCall(this.contract.getPlayerArtifactIds, [playerId])).map( + artifactIdFromEthersBN + ); return this.bulkGetArtifacts(myArtifactIds, onProgress); } - public getAccount() { - return this.ethConnection.getAddress(); + public setDiagnosticUpdater(diagnosticUpdater?: DiagnosticUpdater) { + this.contractCaller.setDiagnosticUpdater(diagnosticUpdater); + this.txExecutor?.setDiagnosticUpdater(diagnosticUpdater); + this.ethConnection.setDiagnosticUpdater(diagnosticUpdater); } - public getBalance() { - return this.ethConnection.getBalance(this.getAccount()); + public async submitTransaction( + txIntent: T, + overrides?: providers.TransactionRequest + ): Promise> { + const queuedTx = await this.txExecutor.queueTransaction(txIntent, overrides); + + this.emit(ContractsAPIEvent.TxQueued, queuedTx); + // TODO: Why is this setTimeout here? Can it be removed? + setTimeout(() => this.emitTransactionEvents(queuedTx), 0); + + return queuedTx; } - public setDiagnosticUpdater(diagnosticUpdater?: DiagnosticUpdater) { - this.diagnosticsUpdater = diagnosticUpdater; - this.contractCaller.setDiagnosticUpdater(diagnosticUpdater); - this.txRequestExecutor?.setDiagnosticUpdater(diagnosticUpdater); + /** + * Remove a transaction from the queue. + */ + public cancelTransaction(tx: Transaction): void { + this.txExecutor.dequeueTransction(tx); + this.emit(ContractsAPIEvent.TxCancelled, tx); + } + + /** + * Make sure this transaction is the next to be executed. + */ + public prioritizeTransaction(tx: Transaction): void { + this.txExecutor.prioritizeTransaction(tx); + this.emit(ContractsAPIEvent.TxPrioritized, tx); + } + + /** + * This is a strange interface between the transaction queue system and the rest of the game. The + * strange thing about it is that introduces another way by which transactions are pushed into the + * game - these {@code ContractsAPIEvent} events. + */ + public emitTransactionEvents(tx: Transaction): void { + tx.submittedPromise + .then(() => { + this.emit(ContractsAPIEvent.TxSubmitted, tx); + }) + .catch(() => { + this.emit(ContractsAPIEvent.TxErrored, tx); + }); + + tx.confirmedPromise + .then(() => { + this.emit(ContractsAPIEvent.TxConfirmed, tx); + }) + .catch(() => { + this.emit(ContractsAPIEvent.TxErrored, tx); + }); + } + + public getAddress() { + return this.ethConnection.getAddress(); } } -export default ContractsAPI; +export async function makeContractsAPI({ + connection, + contractAddress, +}: ContractsApiConfig): Promise { + await connection.loadContract(contractAddress, loadDiamondContract); + + return new ContractsAPI({ connection, contractAddress }); +} diff --git a/src/Backend/GameLogic/ConversationManager.tsx b/src/Backend/GameLogic/ConversationManager.tsx deleted file mode 100644 index 59539d37..00000000 --- a/src/Backend/GameLogic/ConversationManager.tsx +++ /dev/null @@ -1,176 +0,0 @@ -import React from 'react'; -import styled from 'styled-components'; -import { - Conversation, - Message, - ConversationArtifact, - ArtifactType, - ArtifactRarity, - RarityNames, - ArtifactNames, -} from '@darkforest_eth/types'; -import { WikiPane } from '../../Frontend/Panes/WikiPane'; -import { TerminalTextStyle } from '../../Frontend/Utils/TerminalTypes'; -import { TerminalHandle } from '../../Frontend/Views/Terminal'; -import { startConversationOpenAI, stepConversationOpenAI } from '../Network/ConversationAPI'; - -const BadwordsFilter = require('bad-words'); -const filter = new BadwordsFilter(); - -const clean = (str: string): string => filter.clean(str); - -export class ConversationManager { - private terminal: React.MutableRefObject; - private conversation: Conversation; - private username: string; - private artifact: ConversationArtifact; - private setConversation: (conversation: Conversation) => void; - private setLoading: (loading: boolean) => void; - - // TODO 0.6: hook this up to an actual artifact id - private artifactId: string; - - constructor( - terminal: React.MutableRefObject, - setConversation: (conversation: Conversation) => void, - setLoading: (loading: boolean) => void, - artifactType: ArtifactType, - artifactRarity: ArtifactRarity - ) { - this.terminal = terminal; - this.setConversation = setConversation; - this.setLoading = setLoading; - this.username = 'Ivan'; - this.artifact = { - type: artifactType, - rarity: artifactRarity, - name: 'Qora', - }; - this.artifactId = `prototype-ui-${RarityNames[artifactRarity]}-${ArtifactNames[artifactType]}`; - } - - public async start() { - this.terminal.current?.println('Press Enter to Begin...'); - await this.terminal.current?.getInput(); - this.terminal.current?.println(''); - - this.terminal.current?.println( - `Initializing conversation with ${this.artifact.name} (${this.artifact.type})` - ); - this.terminal.current?.printLoadingSpinner(); - - try { - this.setLoading(true); - this.conversation = await startConversationOpenAI( - this.artifact, - this.artifactId, - this.username - ); - this.setConversation(this.conversation); - } catch (e) { - this.terminal.current?.removeLast(2); - this.terminal.current?.println(e.message, TerminalTextStyle.Red); - return; - } finally { - this.setLoading(false); - } - this.terminal.current?.removeLast(2); - - let didError = false; - - while (true) { - let removeLast = true; - const lastMessage = this.conversation.messages[this.conversation.messages.length - 1]; - - this.terminal.current?.print(this.artifact.name, TerminalTextStyle.Blue); - this.terminal.current?.print(': '); - if (!didError) { - this.printLastMessage(lastMessage); - } else { - this.printClean('[TRANSLATION ERROR]. I was not able to understand. Try again.'); - didError = false; - } - this.terminal.current?.newline(); - const input = (await this.terminal.current?.getInput()) || ''; - - /* filter to see if input is valid */ - if (input.length > 200) { - this.terminal.current?.println( - `Input too long. ${input.length} chars received. (Max 200)`, - TerminalTextStyle.Red - ); - } else if (filter.isProfane(input)) { - this.terminal.current?.println( - 'Profane words detected. Please try again.', - TerminalTextStyle.Red - ); - } else { - /* if valid, send to gpt */ - try { - this.terminal.current?.printLoadingSpinner(); - - this.setLoading(true); - const nextConvo = await stepConversationOpenAI(this.artifactId, input); - - this.conversation = nextConvo; - this.setConversation(this.conversation); - } catch (e) { - this.terminal.current?.removeLast(2); - this.terminal.current?.println(e.message, TerminalTextStyle.Red); - removeLast = false; - didError = true; - } finally { - this.setLoading(false); - } - if (removeLast) this.terminal.current?.removeLast(2); - } - } - } - - private printClean( - message: string, - style?: TerminalTextStyle, - hoverContents?: () => JSX.Element - ) { - let cleanedVersion = message; - - if (message !== null && message.length !== 0) { - cleanedVersion = clean(message); - } - - this.terminal.current?.print(cleanedVersion, style, hoverContents); - } - - private printLastMessage(message: Message) { - if (message.highlights.length === 0) { - this.printClean(message.message); - return; - } - - let cursor = 0; - for (const highlight of message.highlights) { - this.printClean(message.message.substr(cursor, highlight.start - cursor)); - this.printClean( - message.message.substr(highlight.start, highlight.stop - highlight.start), - TerminalTextStyle.Hoverable, - () => ( - - {highlight.entry.name} - {highlight.entry.definition} - - ) - ); - cursor = highlight.stop; - } - this.terminal.current?.print(message.message.substr(cursor, message.message.length - cursor)); - this.terminal.current?.newline(); - } -} - -const WikiEntryTitle = styled.div` - font-weight: bold; - font-size: 150%; - margin-bottom: 8px; - text-decoration: underline; - color: white; -`; diff --git a/src/Backend/GameLogic/GameManager.ts b/src/Backend/GameLogic/GameManager.ts index 0f1e0d53..9bcfed0c 100644 --- a/src/Backend/GameLogic/GameManager.ts +++ b/src/Backend/GameLogic/GameManager.ts @@ -1,112 +1,150 @@ -import { EventEmitter } from 'events'; -import { BigInteger } from 'big-integer'; import { - Chunk, - Rectangle, - isLocatable, - HashConfig, - Wormhole, - RevealCountdownInfo, -} from '../../_types/global/GlobalTypes'; -import PersistentChunkStore from '../Storage/PersistentChunkStore'; -import ContractsAPI from './ContractsAPI'; -import MinerManager, { HomePlanetMinerChunkStore, MinerManagerEvent } from '../Miner/MinerManager'; -import _ from 'lodash'; + BLOCK_EXPLORER_URL, + CONTRACT_PRECISION, + EMPTY_ADDRESS, + MIN_PLANET_LEVEL, +} from '@darkforest_eth/constants'; +import type { DarkForest } from '@darkforest_eth/contracts/typechain'; +import { monomitter, Monomitter, Subscription } from '@darkforest_eth/events'; import { - ContractConstants, - ContractsAPIEvent, - UpgradeArgs, -} from '../../_types/darkforest/api/ContractsAPITypes'; + getRange, + isActivated, + isLocatable, + isSpaceShip, + timeUntilNextBroadcastAvailable, +} from '@darkforest_eth/gamelogic'; import { fakeHash, mimcHash, perlin } from '@darkforest_eth/hashing'; -import { GameObjects } from './GameObjects'; -import { getRandomActionId, hexifyBigIntNestedArray } from '../Utils/Utils'; -import { Contract, ContractInterface } from 'ethers'; import { - isUnconfirmedInit, - isUnconfirmedMove, - isUnconfirmedUpgrade, - isUnconfirmedBuyHat, - isUnconfirmedFindArtifact, - isUnconfirmedDepositArtifact, - isUnconfirmedWithdrawArtifact, - isUnconfirmedProspectPlanet, - isUnconfirmedDeactivateArtifact, - isUnconfirmedActivateArtifact, - isUnconfirmedReveal, - isUnconfirmedBuyGPTCredits, - isUnconfirmedWithdrawSilver, -} from '../Utils/TypeAssertions'; + createContract, + EthConnection, + ThrottledConcurrentQueue, + verifySignature, + weiToEth, +} from '@darkforest_eth/network'; +import { getPlanetName } from '@darkforest_eth/procedural'; import { - EthAddress, - Player, + artifactIdToDecStr, + isUnconfirmedActivateArtifactTx, + isUnconfirmedBuyHatTx, + isUnconfirmedCapturePlanetTx, + isUnconfirmedDeactivateArtifactTx, + isUnconfirmedDepositArtifactTx, + isUnconfirmedFindArtifactTx, + isUnconfirmedInitTx, + isUnconfirmedInvadePlanetTx, + isUnconfirmedMoveTx, + isUnconfirmedProspectPlanetTx, + isUnconfirmedRevealTx, + isUnconfirmedUpgradeTx, + isUnconfirmedWithdrawArtifactTx, + isUnconfirmedWithdrawSilverTx, + locationIdFromBigInt, + locationIdToDecStr, +} from '@darkforest_eth/serde'; +import { + Artifact, ArtifactId, - VoyageId, + ArtifactRarity, + ArtifactType, + CaptureZone, + Chunk, + ClaimedCoords, + ClaimedLocation, + Diagnostics, + EthAddress, + LocatablePlanet, LocationId, - WorldLocation, - WorldCoords, - Conversation, + NetworkHealthSummary, + Planet, PlanetLevel, + PlanetMessageType, PlanetType, - SpaceType, + Player, QueuedArrival, - Upgrade, - Planet, - Artifact, - UnconfirmedUpgrade, - EthTxType, + Radii, + Rectangle, + RevealedCoords, + RevealedLocation, + Setting, + SignedMessage, + SpaceType, + Transaction, TxIntent, - UnconfirmedMove, - SubmittedTx, + UnconfirmedActivateArtifact, + UnconfirmedBuyHat, + UnconfirmedCapturePlanet, + UnconfirmedDeactivateArtifact, + UnconfirmedDepositArtifact, + UnconfirmedFindArtifact, UnconfirmedInit, + UnconfirmedInvadePlanet, + UnconfirmedMove, UnconfirmedPlanetTransfer, - UnconfirmedFindArtifact, - UnconfirmedDepositArtifact, - UnconfirmedWithdrawArtifact, UnconfirmedProspectPlanet, - UnconfirmedActivateArtifact, - UnconfirmedDeactivateArtifact, UnconfirmedReveal, - UnconfirmedBuyGPTCredits, + UnconfirmedUpgrade, + UnconfirmedWithdrawArtifact, UnconfirmedWithdrawSilver, - ArtifactType, - ArtifactRarity, - RevealedCoords, - LocatablePlanet, - RevealedLocation, - PlanetMessageType, - SignedMessage, + Upgrade, + VoyageId, + WorldCoords, + WorldLocation, + Wormhole, } from '@darkforest_eth/types'; +import bigInt, { BigInteger } from 'big-integer'; +import delay from 'delay'; +import { BigNumber, Contract, ContractInterface, providers } from 'ethers'; +import { EventEmitter } from 'events'; import NotificationManager from '../../Frontend/Game/NotificationManager'; import { MIN_CHUNK_SIZE } from '../../Frontend/Utils/constants'; -import { monomitter, Monomitter, Subscription } from '../../Frontend/Utils/Monomitter'; -import { TerminalTextStyle } from '../../Frontend/Utils/TerminalTypes'; -import UIEmitter from '../../Frontend/Utils/UIEmitter'; -import { TerminalHandle } from '../../Frontend/Views/Terminal'; -import { MiningPattern, SpiralPattern, SwissCheesePattern } from '../Miner/MiningPatterns'; -import EthConnection from '../Network/EthConnection'; -import { ThrottledConcurrentQueue } from '../Network/ThrottledConcurrentQueue'; -import { getAllTwitters, verifyTwitterHandle } from '../Network/UtilityServerAPI'; -import { SerializedPlugin } from '../Plugins/SerializedPlugin'; -import { ProcgenUtils } from '../Procedural/ProcgenUtils'; -import SnarkArgsHelper from '../Utils/SnarkArgsHelper'; -import { isActivated } from './ArtifactUtils'; -import stringify from 'json-stable-stringify'; -import { getConversation, startConversation, stepConversation } from '../Network/ConversationAPI'; -import { address, locationIdToDecStr, locationIdFromBigInt } from '@darkforest_eth/serde'; -import { InitialGameStateDownloader } from './InitialGameStateDownloader'; -import { Radii } from './ViewportEntities'; -import { BLOCK_EXPLORER_URL } from '../../Frontend/Utils/constants'; -import { Diagnostics } from '../../Frontend/Panes/DiagnosticsPane'; +import { Diff, generateDiffEmitter, getDisposableEmitter } from '../../Frontend/Utils/EmitterUtils'; import { + getBooleanSetting, + getNumberSetting, pollSetting, + setBooleanSetting, setSetting, - Setting, settingChanged$, - getNumberSetting, } from '../../Frontend/Utils/SettingsHooks'; +import { TerminalTextStyle } from '../../Frontend/Utils/TerminalTypes'; +import UIEmitter from '../../Frontend/Utils/UIEmitter'; +import { TerminalHandle } from '../../Frontend/Views/Terminal'; +import { + ContractConstants, + ContractsAPIEvent, + MoveArgIdxs, + MoveArgs, + ZKArgIdx, +} from '../../_types/darkforest/api/ContractsAPITypes'; +import { AddressTwitterMap } from '../../_types/darkforest/api/UtilityServerAPITypes'; +import { HashConfig, RevealCountdownInfo } from '../../_types/global/GlobalTypes'; +import MinerManager, { HomePlanetMinerChunkStore, MinerManagerEvent } from '../Miner/MinerManager'; +import { + MiningPattern, + SpiralPattern, + SwissCheesePattern, + TowardsCenterPattern, + TowardsCenterPatternV2, +} from '../Miner/MiningPatterns'; +import { eventLogger, EventType } from '../Network/EventLogger'; +import { loadLeaderboard } from '../Network/LeaderboardApi'; import { addMessage, deleteMessages, getMessagesOnPlanets } from '../Network/MessageAPI'; -import { getEmojiMessage } from './ArrivalUtils'; +import { loadNetworkHealth } from '../Network/NetworkHealthApi'; +import { + disconnectTwitter, + getAllTwitters, + verifyTwitterHandle, +} from '../Network/UtilityServerAPI'; +import { SerializedPlugin } from '../Plugins/SerializedPlugin'; +import PersistentChunkStore from '../Storage/PersistentChunkStore'; import { easeInAnimation, emojiEaseOutAnimation } from '../Utils/Animation'; +import SnarkArgsHelper from '../Utils/SnarkArgsHelper'; +import { hexifyBigIntNestedArray } from '../Utils/Utils'; +import { getEmojiMessage } from './ArrivalUtils'; +import { CaptureZoneGenerator, CaptureZonesGeneratedEvent } from './CaptureZoneGenerator'; +import { ContractsAPI, makeContractsAPI } from './ContractsAPI'; +import { GameObjects } from './GameObjects'; +import { InitialGameStateDownloader } from './InitialGameStateDownloader'; export enum GameManagerEvent { PlanetUpdate = 'PlanetUpdate', @@ -192,10 +230,12 @@ class GameManager extends EventEmitter { */ private readonly contractConstants: ContractConstants; + private paused: boolean; + /** * @todo change this to the correct timestamp each round. */ - private readonly endTimeSeconds: number = 1643587533; // jan 2022 + private readonly endTimeSeconds: number = 1948939200; // new Date("2031-10-05T04:00:00.000Z").getTime() / 1000 /** * An interface to the blockchain that is a little bit lower-level than {@link ContractsAPI}. It @@ -220,26 +260,14 @@ class GameManager extends EventEmitter { private readonly planetHashMimc: (...inputs: number[]) => BigInteger; /** - * This is kept relatively up-to-date with the balance of the player's wallet on the latest block - * of whatever blockchain we're connected to. - * - * @todo move this into a new `PlayerState` class. - */ - private balance: number; - - /** - * Any time the balance of the player's address changes, we publish an event here. - * - * @todo move this into a new `PlayerState` class. + * Whenever we refresh the players twitter accounts or scores, we publish an event here. */ - private myBalance$: Monomitter; + public readonly playersUpdated$: Monomitter; /** - * Handle to an interval that periodically refreshes the player's balance. - * - * @todo move this into a new `PlayerState` class. + * Handle to an interval that periodically uploads diagnostic information from this client. */ - private balanceInterval: ReturnType; + private diagnosticsInterval: ReturnType; /** * Handle to an interval that periodically refreshes some information about the player from the @@ -249,6 +277,16 @@ class GameManager extends EventEmitter { */ private playerInterval: ReturnType; + /** + * Handle to an interval that periodically refreshes the scoreboard from our webserver. + */ + private scoreboardInterval: ReturnType; + + /** + * Handle to an interval that periodically refreshes the network's health from our webserver. + */ + private networkHealthInterval: ReturnType; + /** * Manages the process of mining new space territory. */ @@ -283,31 +321,12 @@ class GameManager extends EventEmitter { private worldRadius: number; /** - * Price of a single gpt credit, which buys you a single interaction with the GPT-powered AI - * Artifact Chat Bots. - * - * @todo move this into a new `GameConfiguration` class. - */ - private gptCreditPriceEther: number; - - /** - * Whenever the price of single GPT credit changes, we emit that event here. - */ - private gptCreditPriceEtherEmitter$: Monomitter; - - /** - * The total amount of GPT credits that belong to the current player. - * - * @todo move this into a new `PlayerState` class. + * Emits whenever we load the network health summary from the webserver, which is derived from + * diagnostics that the client sends up to the webserver as well. */ - private myGPTCredits: number; + public networkHealth$: Monomitter; - /** - * Whenever the amount of the GPT credits that this player owns changes, we publish an event here. - * - * @todo move this into a new `PlayerState` class. - */ - private myGPTCredits$: Monomitter; + public paused$: Monomitter; /** * Diagnostic information about the game. @@ -319,18 +338,30 @@ class GameManager extends EventEmitter { */ private settingsSubscription: Subscription | undefined; + /** + * Setting to allow players to start game without plugins that were running during the previous + * run of the game client. By default, the game launches plugins that were running that were + * running when the game was last closed. + */ + private safeMode: boolean; + public get planetRarity(): number { return this.contractConstants.PLANET_RARITY; } + /** + * Generates capture zones. + */ + private captureZoneGenerator: CaptureZoneGenerator | undefined; + private constructor( terminal: React.MutableRefObject, account: EthAddress | undefined, - balance: number, players: Map, touchedPlanets: Map, allTouchedPlanetIds: Set, revealedCoords: Map, + claimedCoords: Map, worldRadius: number, unprocessedArrivals: Map, unprocessedPlanetArrivalIds: Map, @@ -342,12 +373,12 @@ class GameManager extends EventEmitter { useMockHash: boolean, artifacts: Map, ethConnection: EthConnection, - gptCreditPriceEther: number, - myGPTCredits: number + paused: boolean ) { super(); this.diagnostics = { + rpcUrl: 'unknown', totalPlanets: 0, visiblePlanets: 0, visibleChunks: 0, @@ -358,21 +389,24 @@ class GameManager extends EventEmitter { totalTransactions: 0, transactionsInQueue: 0, totalChunks: 0, + width: 0, + height: 0, }; - this.terminal = terminal; this.account = account; - this.balance = balance; - this.myBalance$ = monomitter(true); - this.myBalance$.publish(balance); this.players = players; this.worldRadius = worldRadius; - this.gptCreditPriceEther = gptCreditPriceEther; - this.myGPTCredits$ = monomitter(true); - this.gptCreditPriceEtherEmitter$ = monomitter(true); - this.myGPTCredits = myGPTCredits; - this.myGPTCredits$.publish(myGPTCredits); - this.gptCreditPriceEtherEmitter$.publish(gptCreditPriceEther); + this.networkHealth$ = monomitter(true); + this.paused$ = monomitter(true); + this.playersUpdated$ = monomitter(); + + if (contractConstants.CAPTURE_ZONES_ENABLED) { + this.captureZoneGenerator = new CaptureZoneGenerator( + this, + contractConstants.GAME_START_BLOCK, + contractConstants.CAPTURE_ZONE_CHANGE_BLOCK_INTERVAL + ); + } this.hashConfig = { planetHashKey: contractConstants.PLANETHASH_KEY, @@ -381,8 +415,11 @@ class GameManager extends EventEmitter { perlinLengthScale: contractConstants.PERLIN_LENGTH_SCALE, perlinMirrorX: contractConstants.PERLIN_MIRROR_X, perlinMirrorY: contractConstants.PERLIN_MIRROR_Y, + planetRarity: contractConstants.PLANET_RARITY, }; - this.planetHashMimc = useMockHash ? fakeHash : mimcHash(this.hashConfig.planetHashKey); + this.planetHashMimc = useMockHash + ? fakeHash(this.hashConfig.planetRarity) + : mimcHash(this.hashConfig.planetHashKey); this.contractConstants = contractConstants; this.homeLocation = homeLocation; @@ -401,11 +438,32 @@ class GameManager extends EventEmitter { } } + const claimedLocations = new Map(); + + for (const [locationId, coords] of claimedCoords) { + const planet = touchedPlanets.get(locationId); + + if (planet) { + const location: WorldLocation = { + hash: locationId, + coords, + perlin: planet.perlin, + biomebase: this.biomebasePerlin(coords, true), + }; + + const revealedLocation = { ...location, revealer: coords.revealer }; + + revealedLocations.set(locationId, revealedLocation); + claimedLocations.set(locationId, revealedLocation); + } + } + this.entityStore = new GameObjects( account, touchedPlanets, allTouchedPlanetIds, revealedLocations, + claimedLocations, artifacts, persistentChunkStore.allChunks(), unprocessedArrivals, @@ -418,17 +476,13 @@ class GameManager extends EventEmitter { this.persistentChunkStore = persistentChunkStore; this.snarkHelper = snarkHelper; this.useMockHash = useMockHash; + this.paused = paused; this.ethConnection = ethConnection; - this.balanceInterval = setInterval(() => { - if (this.account) { - ethConnection.getBalance(this.account).then((balance) => { - this.balance = balance; - this.myBalance$.publish(balance); - }); - } - }, 1000); + this.diagnosticsInterval = setInterval(this.uploadDiagnostics.bind(this), 10_000); + this.scoreboardInterval = setInterval(this.refreshScoreboard.bind(this), 10_000); + this.networkHealthInterval = setInterval(this.refreshNetworkHealth.bind(this), 10_000); this.playerInterval = setInterval(() => { if (this.account) { @@ -441,11 +495,54 @@ class GameManager extends EventEmitter { this.settingsSubscription = settingChanged$.subscribe((setting: Setting) => { if (setting === Setting.MiningCores) { if (this.minerManager) { - const cores = getNumberSetting(this.account, Setting.MiningCores); + const config = { + contractAddress: this.getContractAddress(), + account: this.account, + }; + const cores = getNumberSetting(config, Setting.MiningCores); this.minerManager.setCores(cores); } } }); + + this.refreshScoreboard(); + this.refreshNetworkHealth(); + this.getSpaceships(); + + this.safeMode = false; + } + + private async uploadDiagnostics() { + eventLogger.logEvent(EventType.Diagnostics, this.diagnostics); + } + + private async refreshNetworkHealth() { + try { + this.networkHealth$.publish(await loadNetworkHealth()); + } catch (e) { + // @todo - what do we do if we can't connect to the webserver + } + } + + private async refreshScoreboard() { + try { + const leaderboard = await loadLeaderboard(); + + for (const entry of leaderboard.entries) { + const player = this.players.get(entry.ethAddress); + if (player) { + // current player's score is updated via `this.playerInterval` + if (player.address !== this.account && entry.score !== undefined) { + player.score = entry.score; + } + } + } + + this.playersUpdated$.publish(); + } catch (e) { + // @todo - what do we do if we can't connect to the webserver? in general this should be a + // valid state of affairs because arenas is a thing. + } } public getEthConnection() { @@ -460,35 +557,49 @@ class GameManager extends EventEmitter { } this.contractsAPI.destroy(); this.persistentChunkStore.destroy(); - clearInterval(this.balanceInterval); clearInterval(this.playerInterval); + clearInterval(this.diagnosticsInterval); + clearInterval(this.scoreboardInterval); + clearInterval(this.networkHealthInterval); this.settingsSubscription?.unsubscribe(); } - static async create( - ethConnection: EthConnection, - terminal: React.MutableRefObject - ): Promise { + static async create({ + connection, + terminal, + contractAddress, + }: { + connection: EthConnection; + terminal: React.MutableRefObject; + contractAddress: EthAddress; + }): Promise { if (!terminal.current) { throw new Error('you must pass in a handle to a terminal'); } - const account = ethConnection.getAddress(); + const account = connection.getAddress(); + + if (!account) { + throw new Error('no account on eth connection'); + } + const gameStateDownloader = new InitialGameStateDownloader(terminal.current); - const contractsAPI = await ContractsAPI.create(ethConnection); + const contractsAPI = await makeContractsAPI({ connection, contractAddress }); terminal.current?.println('Loading game data from disk...'); - const persistentChunkStore = await PersistentChunkStore.create(account); + const persistentChunkStore = await PersistentChunkStore.create({ account, contractAddress }); - terminal.current?.println( - 'Downloading data from Ethereum blockchain... (the contract is very big. this may take a while)' - ); + terminal.current?.println('Downloading data from Ethereum blockchain...'); + terminal.current?.println('(the contract is very big. this may take a while)'); terminal.current?.newline(); const initialState = await gameStateDownloader.download(contractsAPI, persistentChunkStore); const possibleHomes = await persistentChunkStore.getHomeLocations(); + terminal.current?.println(''); + terminal.current?.println('Building Index...'); + await persistentChunkStore.saveTouchedPlanetIds(initialState.allTouchedPlanetIds); await persistentChunkStore.saveRevealedCoords(initialState.allRevealedCoords); @@ -533,6 +644,7 @@ class GameManager extends EventEmitter { perlinLengthScale: initialState.contractConstants.PERLIN_LENGTH_SCALE, perlinMirrorX: initialState.contractConstants.PERLIN_MIRROR_X, perlinMirrorY: initialState.contractConstants.PERLIN_MIRROR_Y, + planetRarity: initialState.contractConstants.PLANET_RARITY, }; const useMockHash = initialState.contractConstants.DISABLE_ZK_CHECKS; @@ -541,11 +653,13 @@ class GameManager extends EventEmitter { const gameManager = new GameManager( terminal, account, - initialState.balance, initialState.players, initialState.touchedAndLocatedPlanets, new Set(Array.from(initialState.allTouchedPlanetIds)), initialState.revealedCoordsMap, + initialState.claimedCoordsMap + ? initialState.claimedCoordsMap + : new Map(), initialState.worldRadius, initialState.arrivals, initialState.planetVoyageIdMap, @@ -556,12 +670,17 @@ class GameManager extends EventEmitter { homeLocation, useMockHash, knownArtifacts, - ethConnection, - initialState.gptCreditPriceEther, - initialState.myGPTCredits + connection, + initialState.paused ); - pollSetting(gameManager.getAccount(), Setting.AutoApproveNonPurchaseTransactions); + gameManager.setPlayerTwitters(initialState.twitters); + + const config = { + contractAddress, + account: gameManager.getAccount(), + }; + pollSetting(config, Setting.AutoApproveNonPurchaseTransactions); persistentChunkStore.setDiagnosticUpdater(gameManager); contractsAPI.setDiagnosticUpdater(gameManager); @@ -574,6 +693,8 @@ class GameManager extends EventEmitter { // get twitter handles gameManager.refreshTwitters(); + gameManager.listenForNewBlock(); + // set up listeners: whenever ContractsAPI reports some game state update, do some logic gameManager.contractsAPI .on(ContractsAPIEvent.ArtifactUpdate, async (artifactId: ArtifactId) => { @@ -594,6 +715,10 @@ class GameManager extends EventEmitter { .on(ContractsAPIEvent.PlayerUpdate, async (playerId: EthAddress) => { await gameManager.hardRefreshPlayer(playerId); }) + .on(ContractsAPIEvent.PauseStateChanged, async (paused: boolean) => { + gameManager.paused = paused; + gameManager.paused$.publish(paused); + }) .on(ContractsAPIEvent.PlanetUpdate, async (planetId: LocationId) => { // don't reload planets that you don't have in your map. once a planet // is in your map it will be loaded from the contract. @@ -622,73 +747,97 @@ class GameManager extends EventEmitter { gameManager.emit(GameManagerEvent.PlanetUpdate); } ) - .on(ContractsAPIEvent.ChangedGPTCreditPrice, async (newPriceInEther: number) => { - gameManager.gptCreditPriceEther = newPriceInEther; - gameManager.gptCreditPriceEtherEmitter$.publish(newPriceInEther); + .on(ContractsAPIEvent.TxQueued, (tx: Transaction) => { + gameManager.entityStore.onTxIntent(tx); }) - .on(ContractsAPIEvent.TxSubmitted, (unconfirmedTx: SubmittedTx) => { - gameManager.persistentChunkStore.onEthTxSubmit(unconfirmedTx); - gameManager.onTxSubmit(unconfirmedTx); + .on(ContractsAPIEvent.TxSubmitted, (tx: Transaction) => { + gameManager.persistentChunkStore.onEthTxSubmit(tx); + gameManager.onTxSubmit(tx); }) - .on(ContractsAPIEvent.TxConfirmed, async (unconfirmedTx: SubmittedTx) => { - gameManager.persistentChunkStore.onEthTxComplete(unconfirmedTx.txHash); - if (isUnconfirmedReveal(unconfirmedTx)) { - await gameManager.hardRefreshPlanet(unconfirmedTx.locationId); - } else if (isUnconfirmedInit(unconfirmedTx)) { - gameManager.emit(GameManagerEvent.InitializedPlayer); + .on(ContractsAPIEvent.TxConfirmed, async (tx: Transaction) => { + if (!tx.hash) return; // this should never happen + gameManager.persistentChunkStore.onEthTxComplete(tx.hash); + + if (isUnconfirmedRevealTx(tx)) { + await gameManager.hardRefreshPlanet(tx.intent.locationId); + } else if (isUnconfirmedInitTx(tx)) { + terminal.current?.println('Loading Home Planet from Blockchain...'); + const retries = 5; + for (let i = 0; i < retries; i++) { + const planet = await gameManager.contractsAPI.getPlanetById(tx.intent.locationId); + if (planet) { + break; + } else if (i === retries - 1) { + console.error("couldn't load player's home planet"); + } else { + await delay(2000); + } + } + await gameManager.hardRefreshPlanet(tx.intent.locationId); // mining manager should be initialized already via joinGame, but just in case... - gameManager.initMiningManager(unconfirmedTx.location.coords); - } else if (isUnconfirmedMove(unconfirmedTx)) { - const promises = [ - gameManager.bulkHardRefreshPlanets([unconfirmedTx.from, unconfirmedTx.to]), - ]; - if (unconfirmedTx.artifact) { - promises.push(gameManager.hardRefreshArtifact(unconfirmedTx.artifact)); + gameManager.initMiningManager(tx.intent.location.coords, 4); + } else if (isUnconfirmedMoveTx(tx)) { + const promises = [gameManager.bulkHardRefreshPlanets([tx.intent.from, tx.intent.to])]; + if (tx.intent.artifact) { + promises.push(gameManager.hardRefreshArtifact(tx.intent.artifact)); } await Promise.all(promises); - } else if (isUnconfirmedUpgrade(unconfirmedTx)) { - await gameManager.hardRefreshPlanet(unconfirmedTx.locationId); - } else if (isUnconfirmedBuyHat(unconfirmedTx)) { - await gameManager.hardRefreshPlanet(unconfirmedTx.locationId); - } else if (isUnconfirmedInit(unconfirmedTx)) { - await gameManager.hardRefreshPlanet(unconfirmedTx.locationId); - } else if (isUnconfirmedFindArtifact(unconfirmedTx)) { - await gameManager.hardRefreshPlanet(unconfirmedTx.planetId); - } else if (isUnconfirmedDepositArtifact(unconfirmedTx)) { + } else if (isUnconfirmedUpgradeTx(tx)) { + await gameManager.hardRefreshPlanet(tx.intent.locationId); + } else if (isUnconfirmedBuyHatTx(tx)) { + await gameManager.hardRefreshPlanet(tx.intent.locationId); + } else if (isUnconfirmedInitTx(tx)) { + await gameManager.hardRefreshPlanet(tx.intent.locationId); + } else if (isUnconfirmedFindArtifactTx(tx)) { + await gameManager.hardRefreshPlanet(tx.intent.planetId); + } else if (isUnconfirmedDepositArtifactTx(tx)) { + await Promise.all([ + gameManager.hardRefreshPlanet(tx.intent.locationId), + gameManager.hardRefreshArtifact(tx.intent.artifactId), + ]); + } else if (isUnconfirmedWithdrawArtifactTx(tx)) { + await Promise.all([ + await gameManager.hardRefreshPlanet(tx.intent.locationId), + await gameManager.hardRefreshArtifact(tx.intent.artifactId), + ]); + } else if (isUnconfirmedProspectPlanetTx(tx)) { + await gameManager.softRefreshPlanet(tx.intent.planetId); + } else if (isUnconfirmedActivateArtifactTx(tx)) { await Promise.all([ - gameManager.hardRefreshPlanet(unconfirmedTx.locationId), - gameManager.hardRefreshArtifact(unconfirmedTx.artifactId), + gameManager.hardRefreshPlanet(tx.intent.locationId), + gameManager.hardRefreshArtifact(tx.intent.artifactId), ]); - } else if (isUnconfirmedWithdrawArtifact(unconfirmedTx)) { + } else if (isUnconfirmedDeactivateArtifactTx(tx)) { await Promise.all([ - await gameManager.hardRefreshPlanet(unconfirmedTx.locationId), - await gameManager.hardRefreshArtifact(unconfirmedTx.artifactId), + gameManager.hardRefreshPlanet(tx.intent.locationId), + gameManager.hardRefreshArtifact(tx.intent.artifactId), ]); - } else if (isUnconfirmedProspectPlanet(unconfirmedTx)) { - await gameManager.softRefreshPlanet(unconfirmedTx.planetId); - } else if (isUnconfirmedActivateArtifact(unconfirmedTx)) { + } else if (isUnconfirmedWithdrawSilverTx(tx)) { + await gameManager.softRefreshPlanet(tx.intent.locationId); + } else if (isUnconfirmedCapturePlanetTx(tx)) { await Promise.all([ - gameManager.hardRefreshPlanet(unconfirmedTx.locationId), - gameManager.hardRefreshArtifact(unconfirmedTx.artifactId), + gameManager.hardRefreshPlayer(gameManager.getAccount()), + gameManager.hardRefreshPlanet(tx.intent.locationId), ]); - } else if (isUnconfirmedDeactivateArtifact(unconfirmedTx)) { + } else if (isUnconfirmedInvadePlanetTx(tx)) { await Promise.all([ - gameManager.hardRefreshPlanet(unconfirmedTx.locationId), - gameManager.hardRefreshArtifact(unconfirmedTx.artifactId), + gameManager.hardRefreshPlayer(gameManager.getAccount()), + gameManager.hardRefreshPlanet(tx.intent.locationId), ]); - } else if (isUnconfirmedWithdrawSilver(unconfirmedTx)) { - await gameManager.softRefreshPlanet(unconfirmedTx.locationId); - } else if (isUnconfirmedBuyGPTCredits(unconfirmedTx)) { - await gameManager.refreshMyGPTCredits(); } - gameManager.entityStore.clearUnconfirmedTxIntent(unconfirmedTx); - gameManager.onTxConfirmed(unconfirmedTx); + gameManager.entityStore.clearUnconfirmedTxIntent(tx); + gameManager.onTxConfirmed(tx); + }) + .on(ContractsAPIEvent.TxErrored, async (tx: Transaction) => { + gameManager.entityStore.clearUnconfirmedTxIntent(tx); + if (tx.hash) { + gameManager.persistentChunkStore.onEthTxComplete(tx.hash); + } + gameManager.onTxReverted(tx); }) - .on(ContractsAPIEvent.TxReverted, async (unconfirmedTx: SubmittedTx) => { - gameManager.entityStore.clearUnconfirmedTxIntent(unconfirmedTx); - gameManager.persistentChunkStore.onEthTxComplete(unconfirmedTx.txHash); - gameManager.onTxReverted(unconfirmedTx); + .on(ContractsAPIEvent.TxCancelled, async (tx: Transaction) => { + gameManager.onTxCancelled(tx); }) .on(ContractsAPIEvent.RadiusUpdated, async () => { const newRadius = await gameManager.contractsAPI.getWorldRadius(); @@ -696,14 +845,18 @@ class GameManager extends EventEmitter { }); const unconfirmedTxs = await persistentChunkStore.getUnconfirmedSubmittedEthTxs(); - const confirmationQueue = new ThrottledConcurrentQueue(10, 1000, 1); + const confirmationQueue = new ThrottledConcurrentQueue({ + invocationIntervalMs: 1000, + maxInvocationsPerIntervalMs: 10, + maxConcurrency: 1, + }); for (const unconfirmedTx of unconfirmedTxs) { - // recommits the tx to storage but whatever - gameManager.contractsAPI.waitFor( - unconfirmedTx, - confirmationQueue.add(() => ethConnection.waitForTransaction(unconfirmedTx.txHash)) - ); + confirmationQueue.add(async () => { + const tx = gameManager.contractsAPI.txExecutor.waitForTransaction(unconfirmedTx); + gameManager.contractsAPI.emitTransactionEvents(tx); + return tx.confirmedPromise; + }); } // we only want to initialize the mining manager if the player has already joined the game @@ -715,16 +868,19 @@ class GameManager extends EventEmitter { return gameManager; } - private async hardRefreshPlayer(address: EthAddress): Promise { - const player = await this.contractsAPI.getPlayerById(address); - if (!player) { - return; - } - const existingPlayerTwitter = this.players.get(address)?.twitter; - if (existingPlayerTwitter) { - player.twitter = existingPlayerTwitter; + private async hardRefreshPlayer(address?: EthAddress): Promise { + if (!address) return; + const playerFromBlockchain = await this.contractsAPI.getPlayerById(address); + if (!playerFromBlockchain) return; + + const localPlayer = this.getPlayer(address); + + if (localPlayer?.twitter) { + playerFromBlockchain.twitter = localPlayer.twitter; } - this.players.set(address, player); + + this.players.set(address, playerFromBlockchain); + this.playersUpdated$.publish(); } // Dirty hack for only refreshing properties on a planet and nothing else @@ -734,7 +890,7 @@ class GameManager extends EventEmitter { this.entityStore.replacePlanetFromContractData(planet); } - private async hardRefreshPlanet(planetId: LocationId): Promise { + public async hardRefreshPlanet(planetId: LocationId): Promise { const planet = await this.contractsAPI.getPlanetById(planetId); if (!planet) return; const arrivals = await this.contractsAPI.getArrivalsForPlanet(planetId); @@ -743,6 +899,8 @@ class GameManager extends EventEmitter { const revealedCoords = await this.contractsAPI.getRevealedCoordsByIdIfExists(planetId); let revealedLocation: RevealedLocation | undefined; + let claimedCoords: ClaimedCoords | undefined; + if (revealedCoords) { revealedLocation = { ...this.locationFromCoords(revealedCoords), @@ -754,7 +912,8 @@ class GameManager extends EventEmitter { planet, arrivals, artifactsOnPlanet.map((a) => a.id), - revealedLocation + revealedLocation, + claimedCoords?.revealer ); // it's important that we reload the artifacts that are on the planet after the move @@ -770,7 +929,6 @@ class GameManager extends EventEmitter { const allVoyages = await this.contractsAPI.getAllArrivals(planetIds); const planetsToUpdateMap = await this.contractsAPI.bulkGetPlanets(planetIds); const artifactsOnPlanets = await this.contractsAPI.bulkGetArtifactsOnPlanets(planetIds); - planetsToUpdateMap.forEach((planet, locId) => { if (planetsToUpdateMap.has(locId)) { planetVoyageMap.set(locId, []); @@ -809,87 +967,61 @@ class GameManager extends EventEmitter { } } - private async hardRefreshArtifact(artifactId: ArtifactId): Promise { + public async hardRefreshArtifact(artifactId: ArtifactId): Promise { const artifact = await this.contractsAPI.getArtifactById(artifactId); if (!artifact) return; this.entityStore.replaceArtifactFromContractData(artifact); } - private async refreshMyGPTCredits(): Promise { - if (this.account) { - this.myGPTCredits = await this.contractsAPI.getGPTCreditBalance(this.account); - this.myGPTCredits$.publish(this.myGPTCredits); - } - } - - private onTxSubmit(unminedTx: SubmittedTx): void { - this.terminal.current?.print( - `[TX SUBMIT] ${unminedTx.type} transaction (`, - TerminalTextStyle.Blue - ); + private onTxSubmit(tx: Transaction): void { + this.terminal.current?.print(`${tx.intent.methodName} transaction (`, TerminalTextStyle.Blue); this.terminal.current?.printLink( - `${unminedTx.txHash.slice(0, 6)}`, + `${tx.hash?.slice(0, 6) ?? ''}`, () => { - window.open(`${BLOCK_EXPLORER_URL}/tx/${unminedTx.txHash}`); + window.open(`${BLOCK_EXPLORER_URL}/${tx.hash ?? ''}`); }, TerminalTextStyle.White ); - this.terminal.current?.println(`) submitted to blockchain.`, TerminalTextStyle.Blue); - - NotificationManager.getInstance().txSubmit(unminedTx); + this.terminal.current?.println(`) submitted`, TerminalTextStyle.Blue); } - private onTxConfirmed(unminedTx: SubmittedTx) { - this.terminal.current?.print( - `[TX CONFIRM] ${unminedTx.type} transaction (`, - TerminalTextStyle.Green - ); + private onTxConfirmed(tx: Transaction) { + this.terminal.current?.print(`${tx.intent.methodName} transaction (`, TerminalTextStyle.Green); this.terminal.current?.printLink( - `${unminedTx.txHash.slice(0, 6)}`, + `${tx.hash?.slice(0, 6) ?? ''}`, () => { - window.open(`${BLOCK_EXPLORER_URL}/tx/${unminedTx.txHash}`); + window.open(`${BLOCK_EXPLORER_URL}/${tx.hash ?? ''}`); }, TerminalTextStyle.White ); - this.terminal.current?.println(`) confirmed.`, TerminalTextStyle.Green); - - NotificationManager.getInstance().txConfirm(unminedTx); + this.terminal.current?.println(`) confirmed`, TerminalTextStyle.Green); } - private onTxReverted(unminedTx: SubmittedTx) { - this.terminal.current?.print( - `[TX ERROR] ${unminedTx.type} transaction (`, - TerminalTextStyle.Red - ); + private onTxReverted(tx: Transaction) { + this.terminal.current?.print(`${tx.intent.methodName} transaction (`, TerminalTextStyle.Red); this.terminal.current?.printLink( - `${unminedTx.txHash.slice(0, 6)}`, + `${tx.hash?.slice(0, 6) ?? ''}`, () => { - window.open(`${BLOCK_EXPLORER_URL}/tx/${unminedTx.txHash}`); + window.open(`${BLOCK_EXPLORER_URL}/${tx.hash ?? ''}`); }, TerminalTextStyle.White ); - this.terminal.current?.println(`) reverted. Please try again.`, TerminalTextStyle.Red); - NotificationManager.getInstance().txRevert(unminedTx); + this.terminal.current?.println(`) reverted`, TerminalTextStyle.Red); } - private onTxIntentFail(txIntent: TxIntent, e: Error): void { - const notifManager = NotificationManager.getInstance(); - notifManager.unsubmittedTxFail(txIntent, e); - - this.terminal.current?.println( - `[TX ERROR]: ${e.message.slice(0, 10000)}`, - TerminalTextStyle.Red + private onTxCancelled(tx: Transaction) { + this.entityStore.clearUnconfirmedTxIntent(tx); + this.terminal.current?.print(`${tx.intent.methodName} transaction (`, TerminalTextStyle.Red); + this.terminal.current?.printLink( + `${tx.hash?.slice(0, 6) ?? ''}`, + () => { + window.open(`${BLOCK_EXPLORER_URL}/${tx.hash ?? ''}`); + }, + TerminalTextStyle.White ); - this.entityStore.clearUnconfirmedTxIntent(txIntent); - } - - public getGptCreditPriceEmitter(): Monomitter { - return this.gptCreditPriceEtherEmitter$; - } - public getGptCreditBalanceEmitter(): Monomitter { - return this.myGPTCredits$; + this.terminal.current?.println(`) cancelled`, TerminalTextStyle.Red); } /** @@ -900,8 +1032,14 @@ class GameManager extends EventEmitter { } /** - * Gets the address of the `DarkForestCore` contract, which is essentially - * the 'backend' of the game. + * Get the thing that handles contract interaction. + */ + public getContractAPI(): ContractsAPI { + return this.contractsAPI; + } + + /** + * Gets the address of the `DarkForest` contract, which is the 'backend' of the game. */ public getContractAddress(): EthAddress { return this.contractsAPI.getContractAddress(); @@ -977,6 +1115,20 @@ class GameManager extends EventEmitter { return Array.from(this.players.values()); } + /** + * Gets either the given player, or if no address was provided, gets the player that is logged + * this client. + */ + public getPlayer(address?: EthAddress): Player | undefined { + address = address || this.account; + + if (!address) { + return undefined; + } + + return this.players.get(address); + } + /** * Gets all the map chunks that this client is aware of. Chunks may have come from * mining, or from importing map data. @@ -1062,13 +1214,26 @@ class GameManager extends EventEmitter { .reduce((totalSoFar: number, nextPlanet: Planet) => totalSoFar + nextPlanet.energy, 0); } - public getWithdrawnSilverOfPlayer(addr: EthAddress): number { + public getPlayerScore(addr: EthAddress): number | undefined { + const player = this.players.get(addr); + return player?.score; + } + + public getPlayerSpaceJunk(addr: EthAddress): number | undefined { const player = this.players.get(addr); - if (!player) return 0; - return player.withdrawnSilver; + return player?.spaceJunk; } - private initMiningManager(homeCoords: WorldCoords): void { + public getPlayerSpaceJunkLimit(addr: EthAddress): number | undefined { + const player = this.players.get(addr); + return player?.spaceJunkLimit; + } + + public getDefaultSpaceJunkForPlanetLevel(level: number) { + return this.contractConstants.PLANET_LEVEL_JUNK[level]; + } + + private initMiningManager(homeCoords: WorldCoords, cores?: number): void { if (this.minerManager) return; const myPattern: MiningPattern = new SpiralPattern(homeCoords, MIN_CHUNK_SIZE); @@ -1082,7 +1247,12 @@ class GameManager extends EventEmitter { this.useMockHash ); - this.minerManager.setCores(getNumberSetting(this.account, Setting.MiningCores)); + const config = { + contractAddress: this.getContractAddress(), + account: this.account, + }; + + this.minerManager.setCores(cores || getNumberSetting(config, Setting.MiningCores)); this.minerManager.on( MinerManagerEvent.DiscoveredNewChunk, @@ -1093,7 +1263,10 @@ class GameManager extends EventEmitter { } ); - this.minerManager.startExplore(); + const isMining = getBooleanSetting(config, Setting.IsMining); + if (isMining) { + this.minerManager.startExplore(); + } } /** @@ -1117,7 +1290,11 @@ class GameManager extends EventEmitter { * Set the amount of cores to mine the universe with. More cores equals faster! */ setMinerCores(nCores: number): void { - setSetting(this.account, Setting.MiningCores, nCores + ''); + const config = { + contractAddress: this.getContractAddress(), + account: this.account, + }; + setSetting(config, Setting.MiningCores, nCores + ''); } /** @@ -1162,7 +1339,7 @@ class GameManager extends EventEmitter { const myLastRevealTimestamp = this.players.get(this.account)?.lastRevealTimestamp; return { myLastRevealTimestamp: myLastRevealTimestamp || undefined, - currentlyRevealing: !!this.entityStore.getUnconfirmedReveal(), + currentlyRevealing: this.entityStore.transactions.hasTransaction(isUnconfirmedRevealTx), revealCooldownTime: this.contractConstants.LOCATION_REVEAL_COOLDOWN, }; } @@ -1173,7 +1350,12 @@ class GameManager extends EventEmitter { getMyArtifacts(): Artifact[] { if (!this.account) return []; const ownedByMe = this.entityStore.getArtifactsOwnedBy(this.account); - const onPlanetsOwnedByMe = this.entityStore.getArtifactsOnPlanetsOwnedBy(this.account); + const onPlanetsOwnedByMe = this.entityStore + .getArtifactsOnPlanetsOwnedBy(this.account) + // filter out space ships because they always show up + // in the `ownedByMe` array. + .filter((a) => !isSpaceShip(a.artifactType)); + return [...ownedByMe, ...onPlanetsOwnedByMe]; } @@ -1182,7 +1364,7 @@ class GameManager extends EventEmitter { * location or if no planet exists at location. If the planet needs to be updated (because * some time has passed since we last updated the planet), then updates that planet first. */ - getPlanetWithCoords(coords: WorldCoords): Planet | undefined { + getPlanetWithCoords(coords: WorldCoords): LocatablePlanet | undefined { return this.entityStore.getPlanetWithCoords(coords); } @@ -1210,21 +1392,18 @@ class GameManager extends EventEmitter { /** * Get the score of the currently logged-in account. */ - getMyScore(): number { + getMyScore(): number | undefined { if (!this.account) { - return 0; + return undefined; } const player = this.players.get(this.account); - if (!player) { - return 0; - } - return player.withdrawnSilver + player.totalArtifactPoints; + return player?.score; } /** * Gets the artifact with the given id. Null if no artifact with id exists. */ - getArtifactWithId(artifactId: ArtifactId): Artifact | undefined { + getArtifactWithId(artifactId?: ArtifactId): Artifact | undefined { return this.entityStore.getArtifactById(artifactId); } @@ -1232,7 +1411,7 @@ class GameManager extends EventEmitter { * Gets the artifacts with the given ids, including ones we know exist but haven't been loaded, * represented by `undefined`. */ - getArtifactsWithIds(artifactIds: ArtifactId[]): Array { + getArtifactsWithIds(artifactIds: ArtifactId[] = []): Array { return artifactIds.map((id) => this.getArtifactWithId(id)); } @@ -1284,12 +1463,19 @@ class GameManager extends EventEmitter { } /** - * Gets a map of all location IDs whose coords have been publicly revealed + * Gets a map of all location IDs whose coords have been publically revealed */ getRevealedLocations(): Map { return this.entityStore.getRevealedLocations(); } + /** + * Gets a map of all location IDs which have been claimed. + */ + getClaimedLocations(): Map { + return this.entityStore.getClaimedLocations(); + } + /** * Each coordinate lives in a particular type of space, determined by a smooth random * function called 'perlin noise. @@ -1317,44 +1503,52 @@ class GameManager extends EventEmitter { /** * Gets the private key of the burner wallet used by this account. */ - getPrivateKey(): string { + getPrivateKey(): string | undefined { return this.ethConnection.getPrivateKey(); } /** - * Gets the balance of the account + * Gets the balance of the account measured in Eth (i.e. in full units of the chain). */ - getMyBalance(): number { + getMyBalanceEth(): number { if (!this.account) return 0; - return this.balance; + return weiToEth(this.getMyBalance()); + } + + /** + * Gets the balance of the account + */ + getMyBalance(): BigNumber { + return this.ethConnection.getMyBalance() || BigNumber.from('0'); } - getMyBalanceEmitter(): Monomitter { - return this.myBalance$; + /** + * Returns the monomitter which publishes events whenever the player's balance changes. + */ + getMyBalance$(): Monomitter { + return this.ethConnection.myBalance$; } /** * Gets all moves that this client has queued to be uploaded to the contract, but * have not been successfully confirmed yet. */ - getUnconfirmedMoves(): UnconfirmedMove[] { - return this.entityStore.getUnconfirmedMoves(); + getUnconfirmedMoves(): Transaction[] { + return this.entityStore.transactions.getTransactions(isUnconfirmedMoveTx); } /** * Gets all upgrades that this client has queued to be uploaded to the contract, but * have not been successfully confirmed yet. */ - getUnconfirmedUpgrades(): UnconfirmedUpgrade[] { - return this.entityStore.getUnconfirmedUpgrades(); - } - - getUnconfirmedWormholeActivations(): UnconfirmedActivateArtifact[] { - return this.entityStore.getUnconfirmedWormholeActivations(); + getUnconfirmedUpgrades(): Transaction[] { + return this.entityStore.transactions.getTransactions(isUnconfirmedUpgradeTx); } - getWormholes(): Iterable { - return this.entityStore.getWormholes(); + getUnconfirmedWormholeActivations(): Transaction[] { + return this.entityStore.transactions + .getTransactions(isUnconfirmedActivateArtifactTx) + .filter((tx) => tx.intent.wormholeTo !== undefined); } /** @@ -1416,6 +1610,11 @@ class GameManager extends EventEmitter { */ startExplore(): void { if (this.minerManager) { + const config = { + contractAddress: this.getContractAddress(), + account: this.account, + }; + setBooleanSetting(config, Setting.IsMining, true); this.minerManager.startExplore(); } } @@ -1425,6 +1624,11 @@ class GameManager extends EventEmitter { */ stopExplore(): void { if (this.minerManager) { + const config = { + contractAddress: this.getContractAddress(), + account: this.account, + }; + setBooleanSetting(config, Setting.IsMining, false); this.hashRate = 0; this.minerManager.stopExplore(); } @@ -1439,22 +1643,27 @@ class GameManager extends EventEmitter { } private async refreshTwitters(): Promise { - // get twitter handles const addressTwitters = await getAllTwitters(); - for (const key of Object.keys(addressTwitters)) { - const addr = address(key); - const player = this.players.get(addr); - if (player) player.twitter = addressTwitters[addr]; + this.setPlayerTwitters(addressTwitters); + } + + private setPlayerTwitters(twitters: AddressTwitterMap): void { + for (const [address, player] of this.players.entries()) { + const newPlayerTwitter = twitters[address]; + player.twitter = newPlayerTwitter; } + this.playersUpdated$.publish(); } /** - * Once you have posted the verificatoin tweet - complete the twitter-account-linking + * Once you have posted the verification tweet - complete the twitter-account-linking * process by telling the Dark Forest webserver to look at that tweet. */ - async verifyTwitter(twitter: string): Promise { + async submitVerifyTwitter(twitter: string): Promise { if (!this.account) return Promise.resolve(false); - const success = await verifyTwitterHandle(twitter, this.account); + const success = await verifyTwitterHandle( + await this.ethConnection.signMessageObject({ twitter }) + ); await this.refreshTwitters(); return success; } @@ -1471,150 +1680,331 @@ class GameManager extends EventEmitter { * Gets the timestamp (ms) of the next time that we can broadcast the coordinates of a planet. */ public getNextBroadcastAvailableTimestamp() { + return Date.now() + this.timeUntilNextBroadcastAvailable(); + } + + /** + * Gets the amount of time (ms) until the next time the current player can broadcast a planet. + */ + public timeUntilNextBroadcastAvailable() { if (!this.account) { throw new Error('no account set'); } + const myLastRevealTimestamp = this.players.get(this.account)?.lastRevealTimestamp; - if (!myLastRevealTimestamp) { + return timeUntilNextBroadcastAvailable( + myLastRevealTimestamp, + this.contractConstants.LOCATION_REVEAL_COOLDOWN + ); + } + + /** + * Gets the timestamp (ms) of the next time that we can claim a planet. + */ + public getNextClaimAvailableTimestamp() { + if (!this.account) { + throw new Error('no account set'); + } + const myLastClaimTimestamp = this.players.get(this.account)?.lastClaimTimestamp; + + if (!myLastClaimTimestamp) { return Date.now(); } + if (!this.contractConstants.CLAIM_PLANET_COOLDOWN) { + return 0; + } // both the variables in the next line are denominated in seconds - return (myLastRevealTimestamp + this.contractConstants.LOCATION_REVEAL_COOLDOWN) * 1000; + return (myLastClaimTimestamp + this.contractConstants.CLAIM_PLANET_COOLDOWN) * 1000; + } + + public getCaptureZones(): Set { + return this.captureZoneGenerator?.getZones() || new Set(); } /** * Reveals a planet's location on-chain. */ - public revealLocation(planetId: LocationId): GameManager { - if (this.checkGameHasEnded()) return this; + public async revealLocation(planetId: LocationId): Promise> { + try { + if (!this.account) { + throw new Error('no account set'); + } - if (!this.account) { - throw new Error('no account set'); - } + const planet = this.entityStore.getPlanetWithId(planetId); - const planet = this.entityStore.getPlanetWithId(planetId); + if (!planet) { + throw new Error("you can't reveal a planet you haven't discovered"); + } - if (!planet) { - throw new Error("you can't reveal a planet you haven't discovered"); - } + if (!isLocatable(planet)) { + throw new Error("you can't reveal a planet whose coordinates you don't know"); + } - if (!isLocatable(planet)) { - throw new Error("you can't reveal a planet whose coordinates you don't know"); - } + if (planet.coordsRevealed) { + throw new Error("this planet's location is already revealed"); + } - if (planet.coordsRevealed) { - throw new Error("this planet's location is already revealed"); - } + if (planet.transactions?.hasTransaction(isUnconfirmedRevealTx)) { + throw new Error("you're already revealing this planet's location"); + } - if (planet.unconfirmedReveal) { - throw new Error("you're already revealing this planet's location"); - } + if (this.entityStore.transactions.hasTransaction(isUnconfirmedRevealTx)) { + throw new Error("you're already broadcasting coordinates"); + } - if (!!this.entityStore.getUnconfirmedReveal()) { - throw new Error("you're already broadcasting coordinates"); - } - const myLastRevealTimestamp = this.players.get(this.account)?.lastRevealTimestamp; - if (myLastRevealTimestamp && Date.now() < this.getNextBroadcastAvailableTimestamp()) { - throw new Error('still on cooldown for broadcasting'); + const myLastRevealTimestamp = this.players.get(this.account)?.lastRevealTimestamp; + if (myLastRevealTimestamp && Date.now() < this.getNextBroadcastAvailableTimestamp()) { + throw new Error('still on cooldown for broadcasting'); + } + + // this is shitty. used for the popup window + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-revealLocationId`, planetId); + + const getArgs = async () => { + const revealArgs = await this.snarkHelper.getRevealArgs( + planet.location.coords.x, + planet.location.coords.y + ); + + this.terminal.current?.println( + 'REVEAL: calculated SNARK with args:', + TerminalTextStyle.Sub + ); + this.terminal.current?.println( + JSON.stringify(hexifyBigIntNestedArray(revealArgs.slice(0, 3))), + TerminalTextStyle.Sub + ); + this.terminal.current?.newline(); + + return revealArgs; + }; + + const txIntent: UnconfirmedReveal = { + methodName: 'revealLocation', + contract: this.contractsAPI.contract, + locationId: planetId, + location: planet.location, + args: getArgs(), + }; + + // Always await the submitTransaction so we can catch rejections + const tx = await this.contractsAPI.submitTransaction(txIntent); + + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('revealLocation', e.message); + throw e; } + } + + public async invadePlanet(locationId: LocationId) { + try { + if (!this.captureZoneGenerator) { + throw new Error('Capture zones are not enabled in this game'); + } - // this is shitty. used for the popup window - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-revealLocationId`, planetId); + const planet = this.entityStore.getPlanetWithId(locationId); - const actionId = getRandomActionId(); - const txIntent: UnconfirmedReveal = { - actionId, - type: EthTxType.REVEAL_LOCATION, - locationId: planetId, - location: planet.location, - }; + if (!planet || !isLocatable(planet)) { + throw new Error("you can't invade a planet you haven't discovered"); + } + + if (planet.destroyed) { + throw new Error("you can't invade destroyed planets"); + } + + if (planet.invader !== EMPTY_ADDRESS) { + throw new Error("you can't invade planets that have already been invaded"); + } + + if (planet.owner !== this.account) { + throw new Error('you can only invade planets you own'); + } + + if (!this.captureZoneGenerator.isInZone(planet.locationId)) { + throw new Error("you can't invade planets that are not in a capture zone"); + } + + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-invadePlanet`, locationId); - this.handleTxIntent(txIntent); + const getArgs = async () => { + const revealArgs = await this.snarkHelper.getRevealArgs( + planet.location.coords.x, + planet.location.coords.y + ); - this.snarkHelper - .getRevealArgs(planet.location.coords.x, planet.location.coords.y) - .then((snarkArgs) => { this.terminal.current?.println( 'REVEAL: calculated SNARK with args:', TerminalTextStyle.Sub ); this.terminal.current?.println( - JSON.stringify(hexifyBigIntNestedArray(snarkArgs.slice(0, 3))), + JSON.stringify(hexifyBigIntNestedArray(revealArgs.slice(0, 3))), TerminalTextStyle.Sub ); this.terminal.current?.newline(); - return this.contractsAPI.reveal(snarkArgs, txIntent); - }) - .catch((err) => { - this.onTxIntentFail(txIntent, err); - }); + return revealArgs; + }; - return this; + const txIntent: UnconfirmedInvadePlanet = { + methodName: 'invadePlanet', + contract: this.contractsAPI.contract, + locationId, + args: getArgs(), + }; + + const tx = await this.contractsAPI.submitTransaction(txIntent); + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('invadePlanet', e.message); + throw e; + } + } + + public async capturePlanet(locationId: LocationId) { + try { + const planet = this.entityStore.getPlanetWithId(locationId); + + if (!planet) { + throw new Error('planet is not loaded'); + } + + if (planet.destroyed) { + throw new Error("you can't capture destroyed planets"); + } + + if (planet.capturer !== EMPTY_ADDRESS) { + throw new Error("you can't capture planets that have already been captured"); + } + + if (planet.owner !== this.account) { + throw new Error('you can only capture planets you own'); + } + + if (planet.energy < planet.energyCap * 0.8) { + throw new Error('the planet needs >80% energy before capturing'); + } + + if ( + !planet.invadeStartBlock || + this.ethConnection.getCurrentBlockNumber() < + planet.invadeStartBlock + this.contractConstants.CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED + ) { + throw new Error( + `you need to hold a planet for ${this.contractConstants.CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED} blocks before capturing` + ); + } + + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-capturePlanet`, locationId); + + const txIntent: UnconfirmedCapturePlanet = { + methodName: 'capturePlanet', + contract: this.contractsAPI.contract, + locationId, + args: Promise.resolve([locationIdToDecStr(locationId)]), + }; + + const tx = await this.contractsAPI.submitTransaction(txIntent); + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('capturePlanet', e.message); + throw e; + } } /** * Attempts to join the game. Should not be called once you've already joined. */ - joinGame(beforeRetry: (e: Error) => Promise): GameManager { - if (this.checkGameHasEnded()) return this; - let actionId: string; - let txIntent: UnconfirmedInit; - this.getRandomHomePlanetCoords() - .then(async (loc) => { - const { - coords: { x, y }, - hash: h, - } = loc; - this.homeLocation = loc; - await this.persistentChunkStore.addHomeLocation(loc); - actionId = getRandomActionId(); - txIntent = { - actionId, - type: EthTxType.INIT, - locationId: h, - location: loc, - }; - this.handleTxIntent(txIntent as TxIntent); - const callArgs = await this.snarkHelper.getInitArgs(x, y, this.worldRadius); - this.initMiningManager(loc.coords); // get an early start - - // if player initialization causes an error, give the caller an opportunity - // to resolve that error. if the asynchronous `beforeRetry` function returns - // true, retry initializing the player. if it returns false, or if the - // `beforeRetry` is undefined, then don't retry and throw an exception. - while (true) { - try { - this.terminal.current?.println( - 'INIT: calculated SNARK with args:', - TerminalTextStyle.Sub - ); - this.terminal.current?.println( - JSON.stringify(hexifyBigIntNestedArray(callArgs.slice(0, 3))), - TerminalTextStyle.Sub - ); - this.terminal.current?.newline(); - await this.contractsAPI.initializePlayer(callArgs, txIntent); - break; - } catch (e) { - if (beforeRetry) { - if (await beforeRetry(e)) { - continue; - } - } else { - throw e; + public async joinGame(beforeRetry: (e: Error) => Promise): Promise { + try { + if (this.checkGameHasEnded()) { + throw new Error('game has ended'); + } + + const planet = await this.findRandomHomePlanet(); + this.homeLocation = planet.location; + this.terminal.current?.println(''); + this.terminal.current?.println(`Found Suitable Home Planet: ${getPlanetName(planet)} `); + this.terminal.current?.println( + `Its coordinates are: (${planet.location.coords.x}, ${planet.location.coords.y})` + ); + this.terminal.current?.println(''); + + await this.persistentChunkStore.addHomeLocation(planet.location); + + const getArgs = async () => { + const args = await this.snarkHelper.getInitArgs( + planet.location.coords.x, + planet.location.coords.y, + Math.floor(Math.sqrt(planet.location.coords.x ** 2 + planet.location.coords.y ** 2)) + 1 // floor(sqrt(x^2 + y^2)) + 1 + ); + this.terminal.current?.println('INIT: calculated SNARK with args:', TerminalTextStyle.Sub); + this.terminal.current?.println( + JSON.stringify(hexifyBigIntNestedArray(args.slice(0, 3) as unknown as string[])), + TerminalTextStyle.Sub + ); + this.terminal.current?.newline(); + return args; + }; + + const txIntent: UnconfirmedInit = { + methodName: 'initializePlayer', + contract: this.contractsAPI.contract, + locationId: planet.location.hash, + location: planet.location, + args: getArgs(), + }; + + this.terminal.current?.println('INIT: proving that planet exists', TerminalTextStyle.Sub); + + this.initMiningManager(planet.location.coords); // get an early start + + // if player initialization causes an error, give the caller an opportunity + // to resolve that error. if the asynchronous `beforeRetry` function returns + // true, retry initializing the player. if it returns false, or if the + // `beforeRetry` is undefined, then don't retry and throw an exception. + while (true) { + try { + const tx = await this.contractsAPI.submitTransaction(txIntent); + await tx.confirmedPromise; + break; + } catch (e) { + if (beforeRetry) { + if (await beforeRetry(e)) { + continue; } + } else { + throw e; } } - }) - .catch((err) => { - this.onTxIntentFail(txIntent, err); - this.emit(GameManagerEvent.InitializedPlayerError, err); - }); + } - return this; + await this.getSpaceships(); + await this.hardRefreshPlanet(planet.locationId); + + this.emit(GameManagerEvent.InitializedPlayer); + } catch (e) { + this.getNotificationsManager().txInitError('initializePlayer', e.message); + throw e; + } + } + + private async getSpaceships() { + if (!this.account || !this.homeLocation?.hash) return; + + const player = await this.contractsAPI.getPlayerById(this.account); + if (player?.claimedShips) return; + + if (this.getGameObjects().isGettingSpaceships()) return; + const tx = await this.contractsAPI.submitTransaction({ + methodName: 'giveSpaceShips', + contract: this.contractsAPI.contract, + args: Promise.resolve(['0x' + this.homeLocation?.hash]), + }); + await tx.confirmedPromise; + this.hardRefreshPlanet(this.homeLocation?.hash); } // this is slow, do not call in i.e. render/draw loop @@ -1644,8 +2034,8 @@ class GameManager extends EventEmitter { return true; } - private async getRandomHomePlanetCoords(): Promise { - return new Promise((resolve) => { + private async findRandomHomePlanet(): Promise { + return new Promise((resolve, reject) => { const initPerlinMin = this.contractConstants.INIT_PERLIN_MIN; const initPerlinMax = this.contractConstants.INIT_PERLIN_MAX; let minedChunksCount = 0; @@ -1655,12 +2045,15 @@ class GameManager extends EventEmitter { let d: number; let p: number; - const isProd = process.env.NODE_ENV === 'production'; - let spawnInnerRadius = 0; - if (isProd) { - // there is always a fixed area for players to spawn in, equal to the - // area of a 32 radius disc - spawnInnerRadius = Math.sqrt(Math.max(this.worldRadius ** 2 - 32000 ** 2, 0)); + // if this.contractConstants.SPAWN_RIM_AREA is non-zero, then players must spawn in that + // area, distributed evenly in the inner perimeter of the world + let spawnInnerRadius = Math.sqrt( + Math.max(Math.PI * this.worldRadius ** 2 - this.contractConstants.SPAWN_RIM_AREA, 0) / + Math.PI + ); + + if (this.contractConstants.SPAWN_RIM_AREA === 0) { + spawnInnerRadius = 0; } do { @@ -1673,7 +2066,7 @@ class GameManager extends EventEmitter { p >= initPerlinMax || // keep searching if above or equal to the max p < initPerlinMin || // keep searching if below the minimum d >= this.worldRadius || // can't be out of bound - d <= spawnInnerRadius // can't be inside spawn percentage ring + d <= spawnInnerRadius // can't be inside spawn area ring ); // when setting up a new account in development mode, you can tell @@ -1708,39 +2101,69 @@ class GameManager extends EventEmitter { this.hashConfig, this.useMockHash ); + + this.terminal.current?.println(``); + this.terminal.current?.println(`Initializing Home Planet Search...`); + this.terminal.current?.println(``); + this.terminal.current?.println(`Chunked explorer: start!`); + this.terminal.current?.println( + `Each chunk contains ${MIN_CHUNK_SIZE}x${MIN_CHUNK_SIZE} coordinates.` + ); + const percentSpawn = (1 / this.contractConstants.PLANET_RARITY) * 100; + const printProgress = 8; + this.terminal.current?.print(`Each coordinate has a`); + this.terminal.current?.print(` ${percentSpawn}%`, TerminalTextStyle.Text); + this.terminal.current?.print(` chance of spawning a planet.`); + this.terminal.current?.println(''); + + this.terminal.current?.println( + `Hashing first ${MIN_CHUNK_SIZE ** 2 * printProgress} potential home planets...` + ); + homePlanetFinder.on(MinerManagerEvent.DiscoveredNewChunk, (chunk: Chunk) => { chunkStore.addChunk(chunk); minedChunksCount++; - if (minedChunksCount % 8 === 0) { + if (minedChunksCount % printProgress === 0) { this.terminal.current?.println( `Hashed ${minedChunksCount * MIN_CHUNK_SIZE ** 2} potential home planets...` ); } - for (const planetLoc of chunk.planetLocations) { - const planetPerlin = planetLoc.perlin; - const planetX = planetLoc.coords.x; - const planetY = planetLoc.coords.y; + for (const homePlanetLocation of chunk.planetLocations) { + const planetPerlin = homePlanetLocation.perlin; + const planetX = homePlanetLocation.coords.x; + const planetY = homePlanetLocation.coords.y; const planetLevel = this.entityStore.planetLevelFromHexPerlin( - planetLoc.hash, - planetLoc.perlin + homePlanetLocation.hash, + homePlanetLocation.perlin ); const planetType = this.entityStore.planetTypeFromHexPerlin( - planetLoc.hash, - planetLoc.perlin + homePlanetLocation.hash, + homePlanetLocation.perlin ); - const planet = this.getPlanetWithId(planetLoc.hash); + const planet = this.getPlanetWithId(homePlanetLocation.hash); + const distFromOrigin = Math.sqrt(planetX ** 2 + planetY ** 2); if ( planetPerlin < initPerlinMax && planetPerlin >= initPerlinMin && - planetX ** 2 + planetY ** 2 < this.worldRadius ** 2 && - planetLevel === PlanetLevel.MIN && + distFromOrigin < this.worldRadius && + distFromOrigin > spawnInnerRadius && + planetLevel === MIN_PLANET_LEVEL && planetType === PlanetType.PLANET && (!planet || !planet.isInContract) // init will fail if planet has been initialized in contract already ) { // valid home planet homePlanetFinder.stopExplore(); homePlanetFinder.destroy(); - resolve(planetLoc); + + const homePlanet = this.getGameObjects().getPlanetWithLocation(homePlanetLocation); + + if (!homePlanet) { + reject(new Error("Unable to create default planet for your home planet's location.")); + } else { + // can cast to `LocatablePlanet` because we know its location, as we just mined it. + resolve(homePlanet as LocatablePlanet); + } + break; } } @@ -1749,125 +2172,142 @@ class GameManager extends EventEmitter { }); } - public async prospectPlanet(planetId: LocationId, bypassChecks = false) { - if (!bypassChecks) { - if (this.checkGameHasEnded()) return this; - - const planet = this.entityStore.getPlanetWithId(planetId); + public async prospectPlanet( + planetId: LocationId, + bypassChecks = false + ): Promise> { + const planet = this.entityStore.getPlanetWithId(planetId); - if (!planet) { + try { + if (!planet || !isLocatable(planet)) { throw new Error("you can't prospect a planet you haven't discovered"); } - if (planet.owner !== this.getAccount()) { - throw new Error("you can't prospect a planet you don't own"); - } + if (!bypassChecks) { + if (this.checkGameHasEnded()) throw new Error('game ended'); - if (!isLocatable(planet)) { - throw new Error("you don't know this planet's location"); - } + if (!planet) { + throw new Error("you can't prospect a planet you haven't discovered"); + } - if (planet.prospectedBlockNumber !== undefined) { - throw new Error('someone already prospected this planet'); - } + if (planet.owner !== this.getAccount()) { + throw new Error("you can't prospect a planet you don't own"); + } - if (planet.unconfirmedFindArtifact) { - throw new Error("you're already looking bro..."); - } + if (!isLocatable(planet)) { + throw new Error("you don't know this planet's location"); + } - if (planet.planetType !== PlanetType.RUINS) { - throw new Error("this planet doesn't have an artifact on it."); - } + if (planet.prospectedBlockNumber !== undefined) { + throw new Error('someone already prospected this planet'); + } + + if (planet.transactions?.hasTransaction(isUnconfirmedProspectPlanetTx)) { + throw new Error("you're already looking bro..."); + } - if (planet.energy < planet.energyCap * 0.95) { - throw new Error('you can only prospect planets that are 95% to the energy cap'); + if (planet.planetType !== PlanetType.RUINS) { + throw new Error("this planet doesn't have an artifact on it."); + } } - } - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-prospectPlanet`, planetId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-prospectPlanet`, planetId); - const actionId = getRandomActionId(); - const txIntent: UnconfirmedProspectPlanet = { - actionId, - type: EthTxType.PROSPECT_PLANET, - planetId: planetId, - }; + const txIntent: UnconfirmedProspectPlanet = { + methodName: 'prospectPlanet', + contract: this.contractsAPI.contract, + planetId: planetId, + args: Promise.resolve([locationIdToDecStr(planetId)]), + }; - this.handleTxIntent(txIntent); + const tx = await this.contractsAPI.submitTransaction(txIntent); - await this.contractsAPI.prospectPlanet(planetId, actionId).catch((err) => { - this.onTxIntentFail(txIntent, err); - }); + tx.confirmedPromise.then(() => + NotificationManager.getInstance().artifactProspected(planet as LocatablePlanet) + ); + + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('prospectPlanet', e.message); + throw e; + } } /** * Calls the contract to find an artifact on the given planet. */ - public findArtifact(planetId: LocationId, bypassChecks = false): GameManager { + public async findArtifact( + planetId: LocationId, + bypassChecks = false + ): Promise> { const planet = this.entityStore.getPlanetWithId(planetId); - if (!planet) { - throw new Error("you can't find artifacts on a planet you haven't discovered"); - } - - if (!isLocatable(planet)) { - throw new Error("you don't know the biome of this planet"); - } - - if (!bypassChecks) { - if (this.checkGameHasEnded()) { - throw new Error('game has ended'); + try { + if (!planet) { + throw new Error("you can't find artifacts on a planet you haven't discovered"); } - if (planet.owner !== this.getAccount()) { - throw new Error("you can't find artifacts on planets you don't own"); + if (!isLocatable(planet)) { + throw new Error("you don't know the biome of this planet"); } - if (planet.hasTriedFindingArtifact) { - throw new Error('someone already tried finding an artifact on this planet'); - } + if (!bypassChecks) { + if (this.checkGameHasEnded()) { + throw new Error('game has ended'); + } - if (planet.unconfirmedFindArtifact) { - throw new Error("you're already looking bro..."); - } + if (planet.owner !== this.getAccount()) { + throw new Error("you can't find artifacts on planets you don't own"); + } - if (planet.planetType !== PlanetType.RUINS) { - throw new Error("this planet doesn't have an artifact on it."); - } - } + if (planet.hasTriedFindingArtifact) { + throw new Error('someone already tried finding an artifact on this planet'); + } - // this is shitty. used for the popup window - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-findArtifactOnPlanet`, planetId); + if (planet.transactions?.hasTransaction(isUnconfirmedFindArtifactTx)) { + throw new Error("you're already looking bro..."); + } - const actionId = getRandomActionId(); - const txIntent: UnconfirmedFindArtifact = { - actionId, - type: EthTxType.FIND_ARTIFACT, - planetId, - }; + if (planet.planetType !== PlanetType.RUINS) { + throw new Error("this planet doesn't have an artifact on it."); + } + } - this.handleTxIntent(txIntent); + // this is shitty. used for the popup window + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-findArtifactOnPlanet`, planetId); + + const txIntent: UnconfirmedFindArtifact = { + methodName: 'findArtifact', + contract: this.contractsAPI.contract, + planetId: planet.locationId, + args: this.snarkHelper.getFindArtifactArgs( + planet.location.coords.x, + planet.location.coords.y + ), + }; - this.snarkHelper - .getFindArtifactArgs(planet.location.coords.x, planet.location.coords.y) - .then((snarkArgs) => { - this.terminal.current?.println( - 'ARTIFACT: calculated SNARK with args:', - TerminalTextStyle.Sub - ); - this.terminal.current?.println( - JSON.stringify(hexifyBigIntNestedArray(snarkArgs.slice(0, 3))), - TerminalTextStyle.Sub - ); - this.terminal.current?.newline(); + const tx = await this.contractsAPI.submitTransaction(txIntent); - return this.contractsAPI.findArtifact(planet.location, snarkArgs, actionId); - }) - .catch((err) => { - this.onTxIntentFail(txIntent, err); - }); + tx.confirmedPromise + .then(() => { + return this.waitForPlanet(planet.locationId, ({ current }: Diff) => { + return current.heldArtifactIds + .map(this.getArtifactWithId.bind(this)) + .find((a: Artifact) => a?.planetDiscoveredOn === planet.locationId) as Artifact; + }).then((foundArtifact) => { + if (!foundArtifact) throw new Error('Artifact not found?'); + const notifManager = NotificationManager.getInstance(); - return this; + notifManager.artifactFound(planet as LocatablePlanet, foundArtifact); + }); + }) + .catch(console.log); + + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('findArtifact', e.message); + throw e; + } } getContractConstants(): ContractConstants { @@ -1878,189 +2318,231 @@ class GameManager extends EventEmitter { * Submits a transaction to the blockchain to deposit an artifact on a given planet. * You must own the planet and you must own the artifact directly (can't be locked in contract) */ - depositArtifact( + public async depositArtifact( locationId: LocationId, - artifactId: ArtifactId, - bypassChecks = true - ): GameManager { - if (!bypassChecks) { - if (this.checkGameHasEnded()) return this; - } - // this is shitty. used for the popup window - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-depositPlanet`, locationId); - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-depositArtifact`, artifactId); - - const actionId = getRandomActionId(); - const txIntent: UnconfirmedDepositArtifact = { - actionId, - type: EthTxType.DEPOSIT_ARTIFACT, - locationId, - artifactId, - }; - this.handleTxIntent(txIntent); + artifactId: ArtifactId + ): Promise> { + try { + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-depositPlanet`, locationId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-depositArtifact`, artifactId); - this.terminal.current?.println( - 'DEPOSIT_ARTIFACT: sending deposit to blockchain', - TerminalTextStyle.Sub - ); - this.terminal.current?.newline(); - this.contractsAPI.depositArtifact(txIntent).catch((e) => this.onTxIntentFail(txIntent, e)); - return this; + if (this.checkGameHasEnded()) { + const error = new Error('game has ended'); + this.getNotificationsManager().txInitError('depositArtifact', error.message); + throw error; + } + + const txIntent: UnconfirmedDepositArtifact = { + methodName: 'depositArtifact', + contract: this.contractsAPI.contract, + locationId, + artifactId, + args: Promise.resolve([locationIdToDecStr(locationId), artifactIdToDecStr(artifactId)]), + }; + + const tx = await this.contractsAPI.submitTransaction(txIntent); + + tx.confirmedPromise.then(() => + this.getGameObjects().updateArtifact(artifactId, (a) => (a.onPlanetId = locationId)) + ); + + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('depositArtifact', e.message); + throw e; + } } /** * Withdraws the artifact that is locked up on the given planet. */ - withdrawArtifact( + public async withdrawArtifact( locationId: LocationId, artifactId: ArtifactId, bypassChecks = true - ): GameManager { - if (!bypassChecks) { - if (this.checkGameHasEnded()) return this; - - const planet = this.entityStore.getPlanetWithId(locationId); - if (!planet) { - console.error('tried to withdraw from unknown planet'); - return this; - } - if (!artifactId) { - console.error('must supply an artifact id'); - return this; + ): Promise> { + try { + if (!bypassChecks) { + if (this.checkGameHasEnded()) { + throw new Error('game has ended'); + } + const planet = this.entityStore.getPlanetWithId(locationId); + if (!planet) { + throw new Error('tried to withdraw from unknown planet'); + } + if (!artifactId) { + throw new Error('must supply an artifact id'); + } } - } - // this is shitty. used for the popup window - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-withdrawPlanet`, locationId); - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-withdrawArtifact`, artifactId); + // this is shitty. used for the popup window + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-withdrawPlanet`, locationId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-withdrawArtifact`, artifactId); - if (Date.now() / 1000 > this.endTimeSeconds) { - this.terminal.current?.println('[ERROR] Game has ended.'); - return this; - } + const txIntent: UnconfirmedWithdrawArtifact = { + methodName: 'withdrawArtifact', + contract: this.contractsAPI.contract, + args: Promise.resolve([locationIdToDecStr(locationId), artifactIdToDecStr(artifactId)]), + locationId, + artifactId, + }; - const actionId = getRandomActionId(); - const txIntent: UnconfirmedWithdrawArtifact = { - actionId, - type: EthTxType.WITHDRAW_ARTIFACT, - locationId, - artifactId, - }; + this.terminal.current?.println( + 'WITHDRAW_ARTIFACT: sending withdrawal to blockchain', + TerminalTextStyle.Sub + ); + this.terminal.current?.newline(); - this.handleTxIntent(txIntent); + const tx = await this.contractsAPI.submitTransaction(txIntent); - this.terminal.current?.println( - 'WITHDRAW_ARTIFACT: sending withdrawal to blockchain', - TerminalTextStyle.Sub - ); - this.terminal.current?.newline(); + tx.confirmedPromise.then(() => + this.getGameObjects().updateArtifact(artifactId, (a) => (a.onPlanetId = undefined)) + ); - this.contractsAPI.withdrawArtifact(txIntent).catch((e) => this.onTxIntentFail(txIntent, e)); - return this; + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('withdrawArtifact', e.message); + throw e; + } } - activateArtifact( + public async activateArtifact( locationId: LocationId, artifactId: ArtifactId, wormholeTo: LocationId | undefined, bypassChecks = false - ) { - if (!bypassChecks) { - if (this.checkGameHasEnded()) return this; - - const planet = this.entityStore.getPlanetWithId(locationId); - - if (!planet) { - throw new Error('tried to activate on an unknown planet'); + ): Promise> { + try { + if (this.checkGameHasEnded()) { + throw new Error('game has ended'); } - if (!artifactId) { - throw new Error('must supply an artifact id'); + if (!bypassChecks) { + const planet = this.entityStore.getPlanetWithId(locationId); + if (this.checkGameHasEnded()) { + throw new Error('game has ended'); + } + + if (!planet) { + throw new Error('tried to activate on an unknown planet'); + } + if (!artifactId) { + throw new Error('must supply an artifact id'); + } } - } - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-activatePlanet`, locationId); - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-activateArtifact`, artifactId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-activatePlanet`, locationId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-activateArtifact`, artifactId); + + const txIntent: UnconfirmedActivateArtifact = { + methodName: 'activateArtifact', + contract: this.contractsAPI.contract, + args: Promise.resolve([ + locationIdToDecStr(locationId), + artifactIdToDecStr(artifactId), + wormholeTo ? locationIdToDecStr(wormholeTo) : '0', + ]), + locationId, + artifactId, + wormholeTo, + }; - const actionId = getRandomActionId(); - const txIntent: UnconfirmedActivateArtifact = { - actionId, - type: EthTxType.ACTIVATE_ARTIFACT, - locationId, - artifactId, - wormholeTo, - }; + // Always await the submitTransaction so we can catch rejections + const tx = await this.contractsAPI.submitTransaction(txIntent); - this.handleTxIntent(txIntent); - this.contractsAPI.activateArtifact(txIntent).catch((e) => this.onTxIntentFail(txIntent, e)); - return this; + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('activateArtifact', e.message); + throw e; + } } - deactivateArtifact(locationId: LocationId, artifactId: ArtifactId, bypassChecks = false) { - if (!bypassChecks) { - if (this.checkGameHasEnded()) return this; - - const planet = this.entityStore.getPlanetWithId(locationId); - if (!planet) { - throw new Error('tried to deactivate on an unknown planet'); + public async deactivateArtifact( + locationId: LocationId, + artifactId: ArtifactId, + bypassChecks = false + ): Promise> { + try { + if (!bypassChecks) { + const planet = this.entityStore.getPlanetWithId(locationId); + if (!planet) { + throw new Error('tried to deactivate on an unknown planet'); + } } - } - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-deactivatePlanet`, locationId); - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-deactivateArtifact`, artifactId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-deactivatePlanet`, locationId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-deactivateArtifact`, artifactId); - const actionId = getRandomActionId(); - const txIntent: UnconfirmedDeactivateArtifact = { - actionId, - type: EthTxType.DEACTIVATE_ARTIFACT, - locationId, - artifactId, - }; + const txIntent: UnconfirmedDeactivateArtifact = { + methodName: 'deactivateArtifact', + contract: this.contractsAPI.contract, + args: Promise.resolve([locationIdToDecStr(locationId)]), + locationId, + artifactId, + }; - this.handleTxIntent(txIntent); - this.contractsAPI.deactivateArtifact(txIntent).catch((e) => this.onTxIntentFail(txIntent, e)); - } + // Always await the submitTransaction so we can catch rejections + const tx = await this.contractsAPI.submitTransaction(txIntent); - withdrawSilver(locationId: LocationId, amount: number, bypassChecks = false) { - if (!bypassChecks) { - if (this.checkGameHasEnded()) return this; - if (!this.account) return this; + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('deactivateArtifact', e.message); + throw e; + } + } - const planet = this.entityStore.getPlanetWithId(locationId); - if (!planet) { - throw new Error('tried to withdraw silver from an unknown planet'); - } - if (planet.planetType !== PlanetType.TRADING_POST) { - throw new Error('can only withdraw silver from spacetime rips'); - } - if (planet.owner !== this.account) { - throw new Error('can only withdraw silver from a planet you own'); - } - if (planet.unconfirmedWithdrawSilver) { - throw new Error('a withdraw silver action is already in progress for this planet'); - } - if (amount > planet.silver) { - throw new Error('not enough silver to withdraw!'); - } - if (amount === 0) { - throw new Error('must withdraw more than 0 silver!'); - } - if (planet.destroyed) { - throw new Error("can't withdraw silver from a destroyed planet"); + public async withdrawSilver( + locationId: LocationId, + amount: number, + bypassChecks = false + ): Promise> { + try { + if (!bypassChecks) { + if (!this.account) throw new Error('no account'); + if (this.checkGameHasEnded()) { + throw new Error('game has ended'); + } + const planet = this.entityStore.getPlanetWithId(locationId); + if (!planet) { + throw new Error('tried to withdraw silver from an unknown planet'); + } + if (planet.planetType !== PlanetType.TRADING_POST) { + throw new Error('can only withdraw silver from spacetime rips'); + } + if (planet.owner !== this.account) { + throw new Error('can only withdraw silver from a planet you own'); + } + if (planet.transactions?.hasTransaction(isUnconfirmedWithdrawSilverTx)) { + throw new Error('a withdraw silver action is already in progress for this planet'); + } + if (amount > planet.silver) { + throw new Error('not enough silver to withdraw!'); + } + if (amount === 0) { + throw new Error('must withdraw more than 0 silver!'); + } + if (planet.destroyed) { + throw new Error("can't withdraw silver from a destroyed planet"); + } } - } - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-withdrawSilverPlanet`, locationId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-withdrawSilverPlanet`, locationId); - const actionId = getRandomActionId(); - const txIntent: UnconfirmedWithdrawSilver = { - actionId, - type: EthTxType.WITHDRAW_SILVER, - locationId, - amount, - }; + const txIntent: UnconfirmedWithdrawSilver = { + methodName: 'withdrawSilver', + contract: this.contractsAPI.contract, + args: Promise.resolve([locationIdToDecStr(locationId), amount * CONTRACT_PRECISION]), + locationId, + amount, + }; + + // Always await the submitTransaction so we can catch rejections + const tx = await this.contractsAPI.submitTransaction(txIntent); - this.handleTxIntent(txIntent); - this.contractsAPI.withdrawSilver(txIntent).catch((e) => this.onTxIntentFail(txIntent, e)); + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('withdrawSilver', e.message); + throw e; + } } /** @@ -2137,7 +2619,7 @@ class GameManager extends EventEmitter { p.unconfirmedClearEmoji = true; }); - const request = await this.signMessage({ + const request = await this.ethConnection.signMessageObject({ locationId, ids: this.getPlanetWithId(locationId)?.messages?.map((m) => m.id) || [], }); @@ -2156,6 +2638,11 @@ class GameManager extends EventEmitter { await this.refreshServerPlanetStates([locationId]); } + public async submitDisconnectTwitter(twitter: string) { + await disconnectTwitter(await this.ethConnection.signMessageObject({ twitter })); + await this.refreshTwitters(); + } + /** * The planet emoji feature is built on top of a more general 'Planet Message' system, which * allows players to upload pieces of data called 'Message's to planets that they own. Emojis are @@ -2178,7 +2665,7 @@ class GameManager extends EventEmitter { p.unconfirmedAddEmoji = true; }); - const request = await this.signMessage({ + const request = await this.ethConnection.signMessageObject({ locationId, sender: this.account, type, @@ -2199,24 +2686,6 @@ class GameManager extends EventEmitter { await this.refreshServerPlanetStates([locationId]); } - /** - * Returns a signed version of this message. - */ - private async signMessage(obj: T): Promise> { - if (!this.account) { - throw new Error('not logged in'); - } - - const stringified = JSON.stringify(obj); - const signature = await this.ethConnection.signMessage(stringified); - - return { - signature, - sender: this.account, - message: obj, - }; - } - /** * Checks that a message signed by {@link GameManager#signMessage} was signed by the address that * it claims it was signed by. @@ -2224,110 +2693,144 @@ class GameManager extends EventEmitter { private async verifyMessage(message: SignedMessage): Promise { const preSigned = JSON.stringify(message.message); - return this.ethConnection.verifySignature( - preSigned, - message.signature as string, - message.sender as EthAddress - ); + return verifySignature(preSigned, message.signature as string, message.sender); } /** * Submits a transaction to the blockchain to move the given amount of resources from * the given planet to the given planet. */ - move( + public async move( from: LocationId, to: LocationId, forces: number, silver: number, artifactMoved?: ArtifactId, + abandoning = false, bypassChecks = false - ): GameManager { - if (this.checkGameHasEnded()) return this; + ): Promise> { localStorage.setItem(`${this.getAccount()?.toLowerCase()}-fromPlanet`, from); localStorage.setItem(`${this.getAccount()?.toLowerCase()}-toPlanet`, to); - if (!bypassChecks && Date.now() / 1000 > this.endTimeSeconds) { - this.terminal.current?.println('[ERROR] Game has ended.'); - return this; - } + try { + if (!bypassChecks && this.checkGameHasEnded()) { + throw new Error('game has ended'); + } - const oldLocation = this.entityStore.getLocationOfPlanet(from); - const newLocation = this.entityStore.getLocationOfPlanet(to); - if (!oldLocation) { - console.error('tried to move from planet that does not exist'); - return this; - } - if (!newLocation) { - console.error('tried to move from planet that does not exist'); - return this; - } + const arrivalsToOriginPlanet = this.entityStore.getArrivalIdsForLocation(from); + const hasIncomingVoyage = arrivalsToOriginPlanet && arrivalsToOriginPlanet.length > 0; + if (abandoning && hasIncomingVoyage) { + throw new Error('cannot abandon a planet that has incoming voyages'); + } - const oldX = oldLocation.coords.x; - const oldY = oldLocation.coords.y; - const newX = newLocation.coords.x; - const newY = newLocation.coords.y; - const xDiff = newX - oldX; - const yDiff = newY - oldY; + const oldLocation = this.entityStore.getLocationOfPlanet(from); + const newLocation = this.entityStore.getLocationOfPlanet(to); + if (!oldLocation) { + throw new Error('tried to move from planet that does not exist'); + } + if (!newLocation) { + throw new Error('tried to move from planet that does not exist'); + } - const distMax = Math.ceil(Math.sqrt(xDiff ** 2 + yDiff ** 2)); + const oldX = oldLocation.coords.x; + const oldY = oldLocation.coords.y; + const newX = newLocation.coords.x; + const newY = newLocation.coords.y; + const xDiff = newX - oldX; + const yDiff = newY - oldY; - const shipsMoved = forces; - const silverMoved = silver; + const distMax = Math.ceil(Math.sqrt(xDiff ** 2 + yDiff ** 2)); - if (newX ** 2 + newY ** 2 >= this.worldRadius ** 2) { - throw new Error('attempted to move out of bounds'); - } + // Contract will automatically send full forces/silver on abandon + const shipsMoved = !abandoning ? forces : 0; + const silverMoved = !abandoning ? silver : 0; - const oldPlanet = this.entityStore.getPlanetWithLocation(oldLocation); + if (newX ** 2 + newY ** 2 >= this.worldRadius ** 2) { + throw new Error('attempted to move out of bounds'); + } - if ((!bypassChecks && !this.account) || !oldPlanet || oldPlanet.owner !== this.account) { - throw new Error('attempted to move from a planet not owned by player'); - } - const actionId = getRandomActionId(); - const txIntent: UnconfirmedMove = { - actionId, - type: EthTxType.MOVE, - from: oldLocation.hash, - to: newLocation.hash, - forces: shipsMoved, - silver: silverMoved, - }; + const oldPlanet = this.entityStore.getPlanetWithLocation(oldLocation); - if (artifactMoved) { - const artifact = this.entityStore.getArtifactById(artifactMoved); - if (!bypassChecks) { - if (!artifact) { - throw new Error("couldn't find this artifact"); - } - if (isActivated(artifact)) { - throw new Error("can't move an activated artifact"); - } - if (!oldPlanet.heldArtifactIds.includes(artifactMoved)) { - throw new Error("that artifact isn't on this planet!"); - } + if ( + ((!bypassChecks && !this.account) || !oldPlanet || oldPlanet.owner !== this.account) && + !isSpaceShip(this.getArtifactWithId(artifactMoved)?.artifactType) + ) { + throw new Error('attempted to move from a planet not owned by player'); } - txIntent.artifact = artifactMoved; - } - this.handleTxIntent(txIntent); + const getArgs = async (): Promise => { + const snarkArgs = await this.snarkHelper.getMoveArgs( + oldX, + oldY, + newX, + newY, + this.worldRadius, + distMax + ); + + const args: MoveArgs = [ + snarkArgs[ZKArgIdx.PROOF_A], + snarkArgs[ZKArgIdx.PROOF_B], + snarkArgs[ZKArgIdx.PROOF_C], + [ + ...snarkArgs[ZKArgIdx.DATA], + (shipsMoved * CONTRACT_PRECISION).toString(), + (silverMoved * CONTRACT_PRECISION).toString(), + '0', + abandoning ? '1' : '0', + ], + ] as MoveArgs; - this.snarkHelper - .getMoveArgs(oldX, oldY, newX, newY, this.worldRadius, distMax) - .then((callArgs) => { this.terminal.current?.println('MOVE: calculated SNARK with args:', TerminalTextStyle.Sub); this.terminal.current?.println( - JSON.stringify(hexifyBigIntNestedArray(callArgs)), + JSON.stringify(hexifyBigIntNestedArray(args)), TerminalTextStyle.Sub ); this.terminal.current?.newline(); - return this.contractsAPI.move(actionId, callArgs, shipsMoved, silverMoved, artifactMoved); - }) - .catch((err) => { - this.onTxIntentFail(txIntent, err); - }); - return this; + if (artifactMoved) { + args[ZKArgIdx.DATA][MoveArgIdxs.ARTIFACT_SENT] = artifactIdToDecStr(artifactMoved); + } + + return args; + }; + + const txIntent: UnconfirmedMove = { + methodName: 'move', + contract: this.contractsAPI.contract, + args: getArgs(), + from: oldLocation.hash, + to: newLocation.hash, + forces: shipsMoved, + silver: silverMoved, + artifact: artifactMoved, + abandoning, + }; + + if (artifactMoved) { + const artifact = this.entityStore.getArtifactById(artifactMoved); + + if (!bypassChecks) { + if (!artifact) { + throw new Error("couldn't find this artifact"); + } + if (isActivated(artifact)) { + throw new Error("can't move an activated artifact"); + } + if (!oldPlanet?.heldArtifactIds?.includes(artifactMoved)) { + throw new Error("that artifact isn't on this planet!"); + } + } + } + + // Always await the submitTransaction so we can catch rejections + const tx = await this.contractsAPI.submitTransaction(txIntent); + + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('move', e.message); + throw e; + } } /** @@ -2335,230 +2838,127 @@ class GameManager extends EventEmitter { * upgrade branch. You must own the planet, and have enough silver on it to complete * the upgrade. */ - upgrade(planetId: LocationId, branch: number, _bypassChecks = false): GameManager { - if (this.checkGameHasEnded()) return this; - // this is shitty - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-upPlanet`, planetId); - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-branch`, branch.toString()); - - const upgradeArgs: UpgradeArgs = [locationIdToDecStr(planetId), branch.toString()]; - const actionId = getRandomActionId(); - const txIntent = { - actionId, - type: EthTxType.UPGRADE, - locationId: planetId, - upgradeBranch: branch, - }; - this.handleTxIntent(txIntent); + public async upgrade( + planetId: LocationId, + branch: number, + _bypassChecks = false + ): Promise> { + try { + // this is shitty + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-upPlanet`, planetId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-branch`, branch.toString()); + + const txIntent: UnconfirmedUpgrade = { + methodName: 'upgradePlanet', + contract: this.contractsAPI.contract, + args: Promise.resolve([locationIdToDecStr(planetId), branch.toString()]), + locationId: planetId, + upgradeBranch: branch, + }; - this.terminal.current?.println('UPGRADE: sending upgrade to blockchain', TerminalTextStyle.Sub); - this.terminal.current?.newline(); - this.contractsAPI - .upgradePlanet(upgradeArgs, actionId) - .catch((e) => this.onTxIntentFail(txIntent, e)); + // Always await the submitTransaction so we can catch rejections + const tx = await this.contractsAPI.submitTransaction(txIntent); - return this; + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('upgradePlanet', e.message); + throw e; + } } /** - * Submits a transaction to the blockchain to buy a hat for the given planet. You - * must own the planet. Warning costs real xdai. Hats are permanently locked to a - * planet. They are purely cosmetic and a great way to BM your opponents or just - * look your best. Just like in the real world, more money means more hat. + * Submits a transaction to the blockchain to buy a hat for the given planet. You must own the + * planet. Warning costs real xdai. Hats are permanently locked to a planet. They are purely + * cosmetic and a great way to BM your opponents or just look your best. Just like in the real + * world, more money means more hat. */ - buyHat(planetId: LocationId, _bypassChecks = false): GameManager { - if (this.checkGameHasEnded()) return this; - + public async buyHat( + planetId: LocationId, + _bypassChecks = false + ): Promise> { const planetLoc = this.entityStore.getLocationOfPlanet(planetId); - if (!planetLoc) { - console.error('planet not found'); - this.terminal.current?.println('[TX ERROR] Planet not found'); - return this; - } const planet = this.entityStore.getPlanetWithLocation(planetLoc); - if (!planet) { - console.error('planet not found'); - this.terminal.current?.println('[TX ERROR] Planet not found'); - return this; - } - - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-hatPlanet`, planetId); - localStorage.setItem( - `${this.getAccount()?.toLowerCase()}-hatLevel`, - (planet.hatLevel + 1).toString() - ); - - const actionId = getRandomActionId(); - const txIntent = { - actionId, - type: EthTxType.BUY_HAT, - locationId: planetId, - }; - this.handleTxIntent(txIntent); - - this.terminal.current?.println('BUY HAT: sending request to blockchain', TerminalTextStyle.Sub); - this.terminal.current?.newline(); - - this.contractsAPI.buyHat(locationIdToDecStr(planetId), planet.hatLevel, actionId).catch((e) => { - this.onTxIntentFail(txIntent, e); - }); - return this; - } - transferOwnership(planetId: LocationId, newOwner: EthAddress, bypassChecks = false): GameManager { - if (!bypassChecks) { - if (this.checkGameHasEnded()) return this; - const planetLoc = this.entityStore.getLocationOfPlanet(planetId); + try { if (!planetLoc) { console.error('planet not found'); - this.terminal.current?.println('[TX ERROR] Planet not found'); - return this; + throw new Error('[TX ERROR] Planet not found'); } - const planet = this.entityStore.getPlanetWithLocation(planetLoc); if (!planet) { console.error('planet not found'); - this.terminal.current?.println('[TX ERROR] Planet not found'); - return this; + throw new Error('[TX ERROR] Planet not found'); } - } - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-transferPlanet`, planetId); - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-transferOwner`, newOwner); - - const actionId = getRandomActionId(); - const txIntent: UnconfirmedPlanetTransfer = { - actionId, - type: EthTxType.PLANET_TRANSFER, - planetId, - newOwner, - }; - this.handleTxIntent(txIntent); - - this.contractsAPI - .transferOwnership(planetId, newOwner, actionId) - .catch((e) => this.onTxIntentFail(txIntent, e)); - return this; - } + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-hatPlanet`, planetId); + localStorage.setItem( + `${this.getAccount()?.toLowerCase()}-hatLevel`, + planet.hatLevel.toString() + ); - buyGPTCredits(amount: number) { - if (this.checkGameHasEnded()) return this; + const txIntent: UnconfirmedBuyHat = { + methodName: 'buyHat', + contract: this.contractsAPI.contract, + args: Promise.resolve([locationIdToDecStr(planetId)]), + locationId: planetId, + }; - const cost = this.gptCreditPriceEther * amount; + // Always await the submitTransaction so we can catch rejections + const tx = await this.contractsAPI.submitTransaction(txIntent, { + gasLimit: 500000, + value: bigInt(1000000000000000000) + .multiply(2 ** planet.hatLevel) + .toString(), + }); - if (cost > this.balance) { - throw new Error('not enough balance to buy credits!'); - } - if (this.entityStore.getUnconfirmedBuyGPTCredits()) { - throw new Error('already processing GPT credit purchase'); + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('buyHat', e.message); + throw e; } - - localStorage.setItem( - `${this.getAccount()?.toLowerCase()}-buyGPTCreditAmount`, - amount.toString() - ); - localStorage.setItem(`${this.getAccount()?.toLowerCase()}-buyGPTCreditCost`, cost.toString()); - - const actionId = getRandomActionId(); - const txIntent: UnconfirmedBuyGPTCredits = { - actionId, - type: EthTxType.BUY_GPT_CREDITS, - amount, - }; - this.handleTxIntent(txIntent); - - this.contractsAPI - .buyGPTCredits(amount, actionId) - .catch((e) => this.onTxIntentFail(txIntent, e)); - return this; - } - - private handleTxIntent(txIntent: TxIntent) { - this.entityStore.onTxIntent(txIntent); - } - - public getIsBuyingCreditsEmitter() { - return this.entityStore.getIsBuyingCreditsEmitter(); - } - - /** - * Gets the GPT conversation with an artifact; undefined if there is none so far - */ - async getConversation(artifactId: ArtifactId): Promise { - return getConversation(artifactId); } - /** - * Starts a GPT conversation with an artifact - */ - async startConversation(artifactId: ArtifactId): Promise { - const artifact = this.entityStore.getArtifactById(artifactId); - - if (!artifact) { - throw new Error('artifact with this ID does not exist'); - } - if (this.entityStore.getArtifactController(artifactId) !== this.account) { - throw new Error("can't talk with artifact you don't own"); - } - if (!this.account) { - throw new Error('must be logged in'); - } - if (this.myGPTCredits === 0) { - throw new Error("You don't have any GPT credits! You can purchase some below."); - } - - const timestamp = Date.now(); - const stringToSign = stringify({ - timestamp, - artifactId, - }); - const signature = await this.ethConnection.signMessage(stringToSign); - const conversation = await startConversation(timestamp, this.account, signature, artifactId); - - await this.refreshMyGPTCredits(); + // TODO: Change this to transferPlanet in a breaking release + public async transferOwnership( + planetId: LocationId, + newOwner: EthAddress, + bypassChecks = false + ): Promise> { + try { + if (!bypassChecks) { + if (this.checkGameHasEnded()) { + throw new Error('game has ended'); + } + const planetLoc = this.entityStore.getLocationOfPlanet(planetId); + if (!planetLoc) { + console.error('planet not found'); + throw new Error('[TX ERROR] Planet not found'); + } + const planet = this.entityStore.getPlanetWithLocation(planetLoc); + if (!planet) { + console.error('planet not found'); + throw new Error('[TX ERROR] Planet not found'); + } + } - return conversation; - } + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-transferPlanet`, planetId); + localStorage.setItem(`${this.getAccount()?.toLowerCase()}-transferOwner`, newOwner); - /** - * Sends a message to an artifact you are having a GPT conversation with - */ - async stepConversation(artifactId: ArtifactId, message: string): Promise { - const artifact = this.entityStore.getArtifactById(artifactId); + const txIntent: UnconfirmedPlanetTransfer = { + methodName: 'transferPlanet', + contract: this.contractsAPI.contract, + args: Promise.resolve([locationIdToDecStr(planetId), newOwner]), + planetId, + newOwner, + }; - if (!artifact) { - throw new Error('artifact with this ID does not exist'); - } - if (this.entityStore.getArtifactController(artifactId) !== this.account) { - throw new Error("can't talk with artifact you don't own"); - } - if (!this.account) { - throw new Error('must be logged in'); - } - if (this.myGPTCredits === 0) { - throw new Error("You don't have any GPT credits! You can purchase some below."); - } + // Always await the submitTransaction so we can catch rejections + const tx = await this.contractsAPI.submitTransaction(txIntent); - const timestamp = Date.now(); - const stringToSign = stringify({ - timestamp, - artifactId, - message, - }); - const signature = await this.ethConnection.signMessage(stringToSign); - const conversation = await stepConversation( - timestamp, - this.account, - signature, - artifactId, - message - ); - if (!conversation) { - throw new Error("you're probably being rate limited!"); + return tx; + } catch (e) { + this.getNotificationsManager().txInitError('transferPlanet', e.message); + throw e; } - - await this.refreshMyGPTCredits(); - - return conversation; } /** @@ -2578,6 +2978,14 @@ class GameManager extends EventEmitter { return this; } + listenForNewBlock() { + this.getEthConnection().blockNumber$.subscribe((blockNumber) => { + if (this.captureZoneGenerator) { + this.captureZoneGenerator.generate(blockNumber); + } + }); + } + /** * To add multiple chunks at once, use this function rather than `addNewChunk`, in order * to load all of the associated planet data in an efficient manner. @@ -2611,26 +3019,34 @@ class GameManager extends EventEmitter { * Gets the maximuim distance that you can send your energy from the given planet, * using the given percentage of that planet's current silver. */ - getMaxMoveDist(planetId: LocationId, sendingPercent: number): number { + getMaxMoveDist(planetId: LocationId, sendingPercent: number, abandoning: boolean): number { const planet = this.getPlanetWithId(planetId); if (!planet) throw new Error('origin planet unknown'); - // log_2(sendingPercent / 5%) - let ratio = Math.log(sendingPercent / 5) / Math.log(2); - ratio = Math.max(ratio, 0); - return ratio * planet.range; + return getRange(planet, sendingPercent, this.getRangeBuff(abandoning)); } /** * Gets the distance between two planets. Throws an exception if you don't - * know the location of either planet. + * know the location of either planet. Takes into account wormholes. */ getDist(fromId: LocationId, toId: LocationId): number { - const fromLoc = this.entityStore.getLocationOfPlanet(fromId); - if (!fromLoc) throw new Error('origin location unknown'); - const toLoc = this.entityStore.getLocationOfPlanet(toId); - if (!toLoc) throw new Error('destination location unknown'); + const from = this.entityStore.getPlanetWithId(fromId); + const to = this.entityStore.getPlanetWithId(toId); + + if (!from) throw new Error('origin planet unknown'); + if (!to) throw new Error('destination planet unknown'); + if (!isLocatable(from)) throw new Error('origin location unknown'); + if (!isLocatable(to)) throw new Error('destination location unknown'); - return this.getDistCoords(fromLoc.coords, toLoc.coords); + const wormholeFactors = this.getWormholeFactors(from, to); + + let distance = this.getDistCoords(from.location.coords, to.location.coords); + + if (wormholeFactors) { + distance /= wormholeFactors.distanceFactor; + } + + return distance; } /** @@ -2642,37 +3058,44 @@ class GameManager extends EventEmitter { /** * Gets all the planets that you can reach with at least 1 energy from - * the given planet. + * the given planet. Does not take into account wormholes. */ - getPlanetsInRange(planetId: LocationId, sendingPercent: number): Planet[] { - const loc = this.entityStore.getLocationOfPlanet(planetId); - if (!loc) throw new Error('origin planet location unknown'); - - const ret: Planet[] = []; - const maxDist = this.getMaxMoveDist(planetId, sendingPercent); - const planetsIt = this.entityStore.getAllPlanets(); - for (const toPlanet of planetsIt) { - const toLoc = this.entityStore.getLocationOfPlanet(toPlanet.locationId); - if (!toLoc) continue; - - const { x: fromX, y: fromY } = loc.coords; - const { x: toX, y: toY } = toLoc.coords; - if ((fromX - toX) ** 2 + (fromY - toY) ** 2 < maxDist ** 2) { - ret.push(toPlanet); + getPlanetsInRange(planetId: LocationId, sendingPercent: number, abandoning: boolean): Planet[] { + const planet = this.entityStore.getPlanetWithId(planetId); + if (!planet) throw new Error('planet unknown'); + if (!isLocatable(planet)) throw new Error('planet location unknown'); + + // Performance improvements originally suggested by [@modokon](https://github.com/modukon) + // at https://github.com/darkforest-eth/client/issues/15 + // Improved by using `planetMap` by [@phated](https://github.com/phated) + const result = []; + const range = getRange(planet, sendingPercent, this.getRangeBuff(abandoning)); + for (const p of this.getPlanetMap().values()) { + if (isLocatable(p)) { + if (this.getDistCoords(planet.location.coords, p.location.coords) < range) { + result.push(p); + } } } - return ret; + + return result; } /** * Gets the amount of energy needed in order for a voyage from the given to the given * planet to arrive with your desired amount of energy. */ - getEnergyNeededForMove(fromId: LocationId, toId: LocationId, arrivingEnergy: number): number { + getEnergyNeededForMove( + fromId: LocationId, + toId: LocationId, + arrivingEnergy: number, + abandoning = false + ): number { const from = this.getPlanetWithId(fromId); if (!from) throw new Error('origin planet unknown'); const dist = this.getDist(fromId, toId); - const rangeSteps = dist / from.range; + const range = from.range * this.getRangeBuff(abandoning); + const rangeSteps = dist / range; const arrivingProp = arrivingEnergy / from.energyCap + 0.05; @@ -2688,7 +3111,8 @@ class GameManager extends EventEmitter { fromId: LocationId, toId: LocationId | undefined, distance: number | undefined, - sentEnergy: number + sentEnergy: number, + abandoning: boolean ) { const from = this.getPlanetWithId(fromId); const to = this.getPlanetWithId(toId); @@ -2697,20 +3121,19 @@ class GameManager extends EventEmitter { if (distance === undefined && toId === undefined) throw new Error(`you must provide either a target planet or a distance`); - let dist = (toId && this.getDist(fromId, toId)) || (distance as number); + const dist = (toId && this.getDist(fromId, toId)) || (distance as number); if (to && toId) { const wormholeFactors = this.getWormholeFactors(from, to); if (wormholeFactors !== undefined) { - if (to.owner === from.owner) { - dist /= wormholeFactors.distanceFactor; - } else { + if (to.owner !== from.owner) { return 0; } } } - const scale = (1 / 2) ** (dist / from.range); + const range = from.range * this.getRangeBuff(abandoning); + const scale = (1 / 2) ** (dist / range); let ret = scale * sentEnergy - 0.05 * from.energyCap; if (ret < 0) ret = 0; @@ -2755,7 +3178,7 @@ class GameManager extends EventEmitter { if (greaterRarity === undefined) { greaterRarity = toActiveArtifact.rarity; } else { - greaterRarity = Math.max(greaterRarity, toActiveArtifact.rarity); + greaterRarity = Math.max(greaterRarity, toActiveArtifact.rarity) as ArtifactRarity; } } @@ -2776,11 +3199,13 @@ class GameManager extends EventEmitter { * Gets the amount of time, in seconds that a voyage between from the first to the * second planet would take. */ - getTimeForMove(fromId: LocationId, toId: LocationId): number { + getTimeForMove(fromId: LocationId, toId: LocationId, abandoning = false): number { const from = this.getPlanetWithId(fromId); if (!from) throw new Error('origin planet unknown'); const dist = this.getDist(fromId, toId); - return dist / (from.speed / 100); + + const speed = from.speed * this.getSpeedBuff(abandoning); + return dist / (speed / 100); } /** @@ -2821,6 +3246,8 @@ class GameManager extends EventEmitter { MinerManager, SpiralPattern, SwissCheesePattern, + TowardsCenterPattern, + TowardsCenterPatternV2, }; } @@ -2851,11 +3278,8 @@ class GameManager extends EventEmitter { }); } - /** - * Helpful functions for getting the names, descriptions, and colors of in-game entities. - */ - public getProcgenUtils() { - return ProcgenUtils; + public locationBigIntFromCoords(coords: WorldCoords): BigInteger { + return this.planetHashMimc(coords.x, coords.y); } /** @@ -2865,10 +3289,25 @@ class GameManager extends EventEmitter { return UIEmitter.getInstance(); } + public getCaptureZoneGenerator() { + return this.captureZoneGenerator; + } + + /** + * Emits when new capture zones are generated. + */ + public get captureZoneGeneratedEmitter(): Monomitter | undefined { + return this.captureZoneGenerator?.generated$; + } + public getNotificationsManager() { return NotificationManager.getInstance(); } + getWormholes(): Iterable { + return this.entityStore.getWormholes(); + } + /** Return a reference to the planet map */ public getPlanetMap(): Map { return this.entityStore.getPlanetMap(); @@ -2909,9 +3348,21 @@ class GameManager extends EventEmitter { * Returns an instance of a `Contract` from the ethersjs library. This is the library we use to * connect to the blockchain. For documentation about how `Contract` works, see: * https://docs.ethers.io/v5/api/contract/contract/ - */ - public loadContract(contractAddress: string, contractABI: ContractInterface): Promise { - return this.ethConnection.loadContract(contractAddress, contractABI); + * + * Also, registers your contract in the system to make calls against it and to reload it when + * necessary (such as the RPC endpoint changing). + */ + public loadContract( + contractAddress: string, + contractABI: ContractInterface + ): Promise { + return this.ethConnection.loadContract(contractAddress, async (address, provider, signer) => + createContract(address, contractABI, provider, signer) + ); + } + + public testNotification() { + NotificationManager.getInstance().reallyLongNotification(); } /** @@ -2922,6 +3373,10 @@ class GameManager extends EventEmitter { return this.entityStore; } + public forceTick(locationId: LocationId) { + this.getGameObjects().forceTick(locationId); + } + /** * Gets some diagnostic information about the game. Returns a copy, you can't modify it. */ @@ -2937,6 +3392,110 @@ class GameManager extends EventEmitter { public updateDiagnostics(updateFn: (d: Diagnostics) => void): void { updateFn(this.diagnostics); } + + /** + * Listen for changes to a planet take action, + * eg. + * waitForPlanet("yourAsteroidId", ({current}) => current.silverCap / current.silver > 90) + * .then(() => { + * // Send Silver to nearby planet + * }) + * + * @param locationId A locationId to watch for updates + * @param predicate a function that accepts a Diff and should return a truth-y value, value will be passed to promise.resolve() + * @returns a promise that will resolve with results returned from the predicate function + */ + public waitForPlanet( + locationId: LocationId, + predicate: ({ current, previous }: Diff) => T | undefined + ): Promise { + const disposableEmitter = getDisposableEmitter( + this.getPlanetMap(), + locationId, + this.getPlanetUpdated$() + ); + const diffEmitter = generateDiffEmitter(disposableEmitter); + return new Promise((resolve, reject) => { + diffEmitter.subscribe(({ current, previous }: Diff) => { + try { + const predicateResults = predicate({ current, previous }); + if (!!predicateResults) { + disposableEmitter.clear(); + diffEmitter.clear(); + resolve(predicateResults); + } + } catch (err) { + disposableEmitter.clear(); + diffEmitter.clear(); + reject(err); + } + }); + }); + } + + public getSafeMode() { + return this.safeMode; + } + + public setSafeMode(safeMode: boolean) { + this.safeMode = safeMode; + } + + public getAddress() { + return this.ethConnection.getAddress(); + } + + public isAdmin(): boolean { + return this.getAddress() === this.contractConstants.adminAddress; + } + + /** + * Right now the only buffs supported in this way are + * speed/range buffs from Abandoning a planet. + * + * The abandoning argument is used when interacting with + * this function programmatically. + */ + public getSpeedBuff(abandoning: boolean): number { + const { SPACE_JUNK_ENABLED, ABANDON_SPEED_CHANGE_PERCENT } = this.contractConstants; + if (SPACE_JUNK_ENABLED && abandoning) { + return ABANDON_SPEED_CHANGE_PERCENT / 100; + } + + return 1; + } + + public getRangeBuff(abandoning: boolean): number { + const { SPACE_JUNK_ENABLED, ABANDON_RANGE_CHANGE_PERCENT } = this.contractConstants; + if (SPACE_JUNK_ENABLED && abandoning) { + return ABANDON_RANGE_CHANGE_PERCENT / 100; + } + + return 1; + } + + public getSnarkHelper(): SnarkArgsHelper { + return this.snarkHelper; + } + + public async submitTransaction( + txIntent: T, + overrides?: providers.TransactionRequest + ): Promise> { + return this.contractsAPI.submitTransaction(txIntent, overrides); + } + + public getContract(): DarkForest { + return this.contractsAPI.contract; + } + + public getPaused(): boolean { + return this.paused; + } + + public getPaused$(): Monomitter { + return this.paused$; + } } export default GameManager; diff --git a/src/Backend/GameLogic/GameObjects.ts b/src/Backend/GameLogic/GameObjects.ts index 9fe92dfa..ef498061 100644 --- a/src/Backend/GameLogic/GameObjects.ts +++ b/src/Backend/GameLogic/GameObjects.ts @@ -1,69 +1,80 @@ +import { EMPTY_ADDRESS, MAX_PLANET_LEVEL, MIN_PLANET_LEVEL } from '@darkforest_eth/constants'; +import { Monomitter, monomitter } from '@darkforest_eth/events'; +import { hasOwner, isActivated, isLocatable } from '@darkforest_eth/gamelogic'; +import { bonusFromHex, getBytesFromHex } from '@darkforest_eth/hexgen'; +import { TxCollection } from '@darkforest_eth/network'; +import { + isUnconfirmedActivateArtifact, + isUnconfirmedActivateArtifactTx, + isUnconfirmedBuyHat, + isUnconfirmedBuyHatTx, + isUnconfirmedCapturePlanetTx, + isUnconfirmedDeactivateArtifact, + isUnconfirmedDeactivateArtifactTx, + isUnconfirmedDepositArtifact, + isUnconfirmedDepositArtifactTx, + isUnconfirmedFindArtifact, + isUnconfirmedFindArtifactTx, + isUnconfirmedGetShipsTx, + isUnconfirmedInvadePlanetTx, + isUnconfirmedMove, + isUnconfirmedMoveTx, + isUnconfirmedProspectPlanet, + isUnconfirmedProspectPlanetTx, + isUnconfirmedReveal, + isUnconfirmedRevealTx, + isUnconfirmedTransfer, + isUnconfirmedTransferTx, + isUnconfirmedUpgrade, + isUnconfirmedUpgradeTx, + isUnconfirmedWithdrawArtifact, + isUnconfirmedWithdrawArtifactTx, + isUnconfirmedWithdrawSilver, + isUnconfirmedWithdrawSilverTx, +} from '@darkforest_eth/serde'; import { + Abstract, + ArrivalWithTimer, + Artifact, + ArtifactId, + ArtifactType, + Biome, + Chunk, + ClaimedLocation, EthAddress, + LocatablePlanet, LocationId, - ArtifactId, - VoyageId, Planet, - LocatablePlanet, - Artifact, - WorldCoords, - WorldLocation, PlanetLevel, - ArtifactType, - SpaceType, - Biome, PlanetType, QueuedArrival, - ArrivalWithTimer, - UnconfirmedMove, - UnconfirmedUpgrade, - UnconfirmedBuyHat, - UnconfirmedPlanetTransfer, - UnconfirmedActivateArtifact, - TxIntent, - UnconfirmedReveal, - UnconfirmedBuyGPTCredits, + Radii, RevealedLocation, + SpaceType, + Transaction, + TransactionCollection, + VoyageId, + WorldCoords, + WorldLocation, + Wormhole, } from '@darkforest_eth/types'; import autoBind from 'auto-bind'; import bigInt from 'big-integer'; +import { ethers } from 'ethers'; +import _ from 'lodash'; import NotificationManager from '../../Frontend/Game/NotificationManager'; import { - setObjectSyncState, - getPlanetId, - getPlanetOwner, getArtifactId, getArtifactOwner, + getPlanetId, + getPlanetOwner, + setObjectSyncState, } from '../../Frontend/Utils/EmitterUtils'; -import { Monomitter, monomitter } from '../../Frontend/Utils/Monomitter'; import { ContractConstants } from '../../_types/darkforest/api/ContractsAPITypes'; -import { Wormhole, isLocatable, Chunk } from '../../_types/global/GlobalTypes'; -import { - isUnconfirmedMove, - isUnconfirmedUpgrade, - isUnconfirmedBuyHat, - isUnconfirmedTransfer, - isUnconfirmedProspectPlanet, - isUnconfirmedFindArtifact, - isUnconfirmedDepositArtifact, - isUnconfirmedWithdrawArtifact, - isUnconfirmedActivateArtifact, - isUnconfirmedDeactivateArtifact, - isUnconfirmedReveal, - isUnconfirmedBuyGPTCredits, - isUnconfirmedWithdrawSilver, -} from '../Utils/TypeAssertions'; -import { hasOwner } from '../Utils/Utils'; -import { updatePlanetToTime, arrive } from './ArrivalUtils'; -import { isActivated } from './ArtifactUtils'; -import { EMPTY_ADDRESS } from '@darkforest_eth/constants'; -import { bonusFromHex, getBytesFromHex } from '@darkforest_eth/hexgen'; +import { arrive, PlanetDiff, updatePlanetToTime } from './ArrivalUtils'; import { LayeredMap } from './LayeredMap'; -import { Radii } from './ViewportEntities'; -type CoordsString = string & { - __value__: never; -}; +type CoordsString = Abstract; const getCoordsString = (coords: WorldCoords): CoordsString => { return `${coords.x},${coords.y}` as CoordsString; @@ -162,6 +173,13 @@ export class GameObjects { */ private readonly revealedLocations: Map; + /** + * Map from location ids to, if that location id has been claimed on-chain, the world coordinates + * of that location id, as well as some extra information regarding the circumstances of the + * revealing of this planet. + */ + private readonly claimedLocations: Map; + /** * Some of the game's parameters are downloaded from the blockchain. This allows the client to be * flexible, and connect to any compatible set of Dark Forest contracts, download the parameters, @@ -177,27 +195,9 @@ export class GameObjects { private readonly coordsToLocation: Map; /** - * The following set of fields represent actions which the user has initiated on the blockchain, - * and have not yet completed. The nature of the blockchain is that transactions could take up to - * several minutes to confirm (depending on network congestion). This means that we need to make - * it clear to players that the action that they have initiated is indeed in progress, and that - * something is actually happening. See `Prospect.tsx` for example. - * - * The storage and retrieval of unconfirmed transactions could, and - * probablu should be abstracted into some sort of class which keeps in sync both *these* fields - * and each of these fields counterparts in their corresponding entity objects (Planet, Artifact, - * etc.) - * - * @todo these are good candidates for being in the `PlayerInfo` class. + * Transactions that are currently in flight. */ - - private unconfirmedReveal?: UnconfirmedReveal; // at most one at a time - private unconfirmedBuyGPTCredits?: UnconfirmedBuyGPTCredits; // at most one at a time - private readonly unconfirmedMoves: Record; - private readonly unconfirmedUpgrades: Record; - private readonly unconfirmedBuyHats: Record; - private readonly unconfirmedPlanetTransfers: Record; - private readonly unconfirmedWormholeActivations: UnconfirmedActivateArtifact[]; + public readonly transactions: TransactionCollection; /** * Event emitter which publishes whenever a planet is updated. @@ -224,19 +224,12 @@ export class GameObjects { */ public readonly myArtifactsUpdated$: Monomitter>; - /** - * Event emitter which publishes whenever the player begins and finishes (whether with a success - * or an error) buying gpt credits. - * - * @todo move into `PlayerInfo` - */ - public readonly isBuyingCredits$: Monomitter; - constructor( address: EthAddress | undefined, touchedPlanets: Map, allTouchedPlanetIds: Set, revealedLocations: Map, + claimedLocations: Map, artifacts: Map, allChunks: Iterable, unprocessedArrivals: Map, @@ -250,7 +243,8 @@ export class GameObjects { this.planets = touchedPlanets; this.myPlanets = new Map(); this.touchedPlanetIds = allTouchedPlanetIds; - this.revealedLocations = new Map(); + this.revealedLocations = revealedLocations; + this.claimedLocations = claimedLocations; this.artifacts = artifacts; this.myArtifacts = new Map(); this.contractConstants = contractConstants; @@ -258,7 +252,7 @@ export class GameObjects { this.planetLocationMap = new Map(); const planetArrivalIds = new Map(); const arrivals = new Map(); - this.unconfirmedWormholeActivations = []; + this.transactions = new TxCollection(); this.wormholes = new Map(); this.layeredMap = new LayeredMap(worldRadius); @@ -266,7 +260,6 @@ export class GameObjects { this.artifactUpdated$ = monomitter(); this.myArtifactsUpdated$ = monomitter(); this.myPlanetsUpdated$ = monomitter(); - this.isBuyingCredits$ = monomitter(true); for (const chunk of allChunks) { for (const planetLocation of chunk.planetLocations) { @@ -296,8 +289,6 @@ export class GameObjects { planet.coordsRevealed = true; planet.revealer = revealedLocation.revealer; } - - this.setPlanet(planet); const arrivalsWithTimers = this.processArrivalsForPlanet( planet.locationId, arrivalsForPlanet @@ -316,19 +307,18 @@ export class GameObjects { (planet as LocatablePlanet).biome = this.getBiome(planetLocation); } - this.updateScore(planetId as LocationId); + this.setPlanet(planet); } }); this.arrivals = arrivals; this.planetArrivalIds = planetArrivalIds; - this.unconfirmedBuyGPTCredits = undefined; - this.isBuyingCredits$.publish(false); - this.unconfirmedReveal = undefined; - this.unconfirmedMoves = {}; - this.unconfirmedUpgrades = {}; - this.unconfirmedBuyHats = {}; - this.unconfirmedPlanetTransfers = {}; + + for (const [_locId, claimedLoc] of claimedLocations) { + this.updatePlanet(claimedLoc.hash, (p) => { + p.claimer = claimedLoc.revealer; + }); + } // TODO: do this better... // set interval to update all planets every 120s @@ -346,18 +336,18 @@ export class GameObjects { }, 120 * 1000); } - public getIsBuyingCreditsEmitter() { - return this.isBuyingCredits$; + public getWormholes(): Iterable { + return this.wormholes.values(); } - public getArtifactById(artifactId: ArtifactId): Artifact | undefined { - return this.artifacts.get(artifactId); + public getArtifactById(artifactId?: ArtifactId): Artifact | undefined { + return artifactId ? this.artifacts.get(artifactId) : undefined; } public getArtifactsOwnedBy(addr: EthAddress): Artifact[] { const ret: Artifact[] = []; this.artifacts.forEach((artifact) => { - if (artifact.currentOwner === addr) { + if (artifact.currentOwner === addr || artifact.controller === addr) { ret.push(artifact); } }); @@ -412,7 +402,7 @@ export class GameObjects { public getPlanetDetailLevel(planetId: LocationId): number | undefined { const planet = this.planets.get(planetId); if (planet) { - let detailLevel = planet.planetLevel; + let detailLevel = planet.planetLevel as number; if (hasOwner(planet)) { detailLevel += 1; } @@ -427,22 +417,11 @@ export class GameObjects { */ public replaceArtifactFromContractData(artifact: Artifact): void { const localArtifact = this.artifacts.get(artifact.id); - // does not modify unconfirmed txs - // that is handled by onTxConfirm if (localArtifact) { - const { - unconfirmedDepositArtifact, - unconfirmedWithdrawArtifact, - unconfirmedActivateArtifact, - unconfirmedDeactivateArtifact, - unconfirmedMove, - } = localArtifact; - artifact.unconfirmedDepositArtifact = unconfirmedDepositArtifact; - artifact.unconfirmedWithdrawArtifact = unconfirmedWithdrawArtifact; - artifact.unconfirmedActivateArtifact = unconfirmedActivateArtifact; - artifact.unconfirmedDeactivateArtifact = unconfirmedDeactivateArtifact; - artifact.unconfirmedMove = unconfirmedMove; + artifact.transactions = localArtifact.transactions; + artifact.onPlanetId = localArtifact.onPlanetId; } + this.setArtifact(artifact); } @@ -465,6 +444,19 @@ export class GameObjects { } } + /** + * Given a planet id, update the state of the given planet by calling the given update function. + * If the planet was updated, then also publish the appropriate event. + */ + public updateArtifact(id: ArtifactId | undefined, updateFn: (p: Artifact) => void) { + const artifact = this.getArtifactById(id); + + if (artifact !== undefined) { + updateFn(artifact); + this.setArtifact(artifact); + } + } + /** * received some planet data from the contract. update our stores */ @@ -472,7 +464,8 @@ export class GameObjects { planet: Planet, updatedArrivals?: QueuedArrival[], updatedArtifactsOnPlanet?: ArtifactId[], - revealedLocation?: RevealedLocation + revealedLocation?: RevealedLocation, + claimerEthAddress?: EthAddress // TODO: Remove this ): void { this.touchedPlanetIds.add(planet.locationId); // does not modify unconfirmed txs @@ -480,18 +473,7 @@ export class GameObjects { const localPlanet = this.planets.get(planet.locationId); if (localPlanet) { const { - unconfirmedReveal, - unconfirmedDepartures, - unconfirmedUpgrades, - unconfirmedBuyHats, - unconfirmedPlanetTransfers, - unconfirmedFindArtifact, - unconfirmedDepositArtifact, - unconfirmedWithdrawArtifact, - unconfirmedActivateArtifact, - unconfirmedDeactivateArtifact, - unconfirmedWithdrawSilver, - unconfirmedProspectPlanet, + transactions, loadingServerState, needsServerRefresh, lastLoadedServerState, @@ -500,18 +482,7 @@ export class GameObjects { emojiZoopOutAnimation, messages, } = localPlanet; - planet.unconfirmedReveal = unconfirmedReveal; - planet.unconfirmedDepartures = unconfirmedDepartures; - planet.unconfirmedUpgrades = unconfirmedUpgrades; - planet.unconfirmedBuyHats = unconfirmedBuyHats; - planet.unconfirmedPlanetTransfers = unconfirmedPlanetTransfers; - planet.unconfirmedFindArtifact = unconfirmedFindArtifact; - planet.unconfirmedDepositArtifact = unconfirmedDepositArtifact; - planet.unconfirmedWithdrawArtifact = unconfirmedWithdrawArtifact; - planet.unconfirmedActivateArtifact = unconfirmedActivateArtifact; - planet.unconfirmedDeactivateArtifact = unconfirmedDeactivateArtifact; - planet.unconfirmedWithdrawSilver = unconfirmedWithdrawSilver; - planet.unconfirmedProspectPlanet = unconfirmedProspectPlanet; + planet.transactions = transactions; planet.loadingServerState = loadingServerState; planet.needsServerRefresh = needsServerRefresh; planet.lastLoadedServerState = lastLoadedServerState; @@ -522,7 +493,10 @@ export class GameObjects { // Possibly non updated props planet.heldArtifactIds = localPlanet.heldArtifactIds; + } else { + this.planets.set(planet.locationId, planet); } + if (updatedArtifactsOnPlanet) { planet.heldArtifactIds = updatedArtifactsOnPlanet; } @@ -539,6 +513,10 @@ export class GameObjects { planet.revealer = revealedLocation.revealer; } + if (claimerEthAddress) { + planet.claimer = claimerEthAddress; + } + this.setPlanet(planet); if (updatedArrivals) { @@ -555,12 +533,11 @@ export class GameObjects { } } } - this.updateScore(planet.locationId); } // returns an empty planet if planet is not in contract // returns undefined if this isn't a planet, according to hash and coords - public getPlanetWithCoords(coords: WorldCoords): Planet | undefined { + public getPlanetWithCoords(coords: WorldCoords): LocatablePlanet | undefined { const str = getCoordsString(coords); const location = this.coordsToLocation.get(str); @@ -568,12 +545,15 @@ export class GameObjects { return undefined; } - return this.getPlanetWithLocation(location); + return this.getPlanetWithLocation(location) as LocatablePlanet; } - // returns an empty planet if planet is not in contract - // returns undefined if this isn't a planet, according to hash and coords - public getPlanetWithLocation(location: WorldLocation): Planet | undefined { + // - returns an empty planet if planet is not in contract + // - returns undefined if this isn't a planet, according to hash and coords + // - if this planet hasn't been initialized in the client yet, initializes it + public getPlanetWithLocation(location: WorldLocation | undefined): Planet | undefined { + if (!location) return undefined; + const planet = this.planets.get(location.hash); if (planet) { this.updatePlanetIfStale(planet); @@ -602,7 +582,8 @@ export class GameObjects { public addPlanetLocation(planetLocation: WorldLocation): void { this.layeredMap.insertPlanet( planetLocation, - this.planetLevelFromHexPerlin(planetLocation.hash, planetLocation.perlin) + this.getPlanetWithId(planetLocation.hash, false)?.planetLevel ?? + this.planetLevelFromHexPerlin(planetLocation.hash, planetLocation.perlin) ); this.planetLocationMap.set(planetLocation.hash, planetLocation); @@ -692,121 +673,124 @@ export class GameObjects { * * Whenever we update an entity, we must do it via that entity's type's corresponding * `set` function, in order for us to publish these events. + * + * @todo: this entire function could be automated by implementing a new interface called + * {@code TxFilter}. */ - public onTxIntent(txIntent: TxIntent) { - const notifManager = NotificationManager.getInstance(); - notifManager.txInit(txIntent); + public onTxIntent(tx: Transaction) { + this.transactions.addTransaction(tx); - if (isUnconfirmedReveal(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); + if (isUnconfirmedRevealTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); if (planet) { - planet.unconfirmedReveal = txIntent; + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } - this.unconfirmedReveal = txIntent; - } else if (isUnconfirmedMove(txIntent)) { - this.unconfirmedMoves[txIntent.actionId] = txIntent; - const planet = this.getPlanetWithId(txIntent.from); + } else if (isUnconfirmedMoveTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.from); if (planet) { - planet.unconfirmedDepartures.push(txIntent); + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } - if (txIntent.artifact) { - const artifact = this.getArtifactById(txIntent.artifact); + if (tx.intent.artifact) { + const artifact = this.getArtifactById(tx.intent.artifact); if (artifact) { - artifact.unconfirmedMove = txIntent; + artifact.transactions?.addTransaction(tx); this.setArtifact(artifact); } } - } else if (isUnconfirmedUpgrade(txIntent)) { - this.unconfirmedUpgrades[txIntent.actionId] = txIntent; - const planet = this.getPlanetWithId(txIntent.locationId); + } else if (isUnconfirmedUpgradeTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); if (planet) { - planet.unconfirmedUpgrades.push(txIntent); + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } - } else if (isUnconfirmedBuyHat(txIntent)) { - this.unconfirmedBuyHats[txIntent.actionId] = txIntent; - const planet = this.getPlanetWithId(txIntent.locationId); + } else if (isUnconfirmedBuyHatTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); if (planet) { - planet.unconfirmedBuyHats.push(txIntent); + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } - } else if (isUnconfirmedTransfer(txIntent)) { - this.unconfirmedPlanetTransfers[txIntent.actionId] = txIntent; - const planet = this.getPlanetWithId(txIntent.planetId); + } else if (isUnconfirmedTransferTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.planetId); if (planet) { - planet.unconfirmedPlanetTransfers.push(txIntent); + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } - } else if (isUnconfirmedProspectPlanet(txIntent)) { - const planet = this.getPlanetWithId(txIntent.planetId); + } else if (isUnconfirmedProspectPlanetTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.planetId); if (planet) { - planet.unconfirmedProspectPlanet = txIntent; + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } - } else if (isUnconfirmedFindArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.planetId); + } else if (isUnconfirmedFindArtifactTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.planetId); if (planet) { - planet.unconfirmedFindArtifact = txIntent; + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } - } else if (isUnconfirmedDepositArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); - const artifact = this.getArtifactById(txIntent.artifactId); + } else if (isUnconfirmedDepositArtifactTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + const artifact = this.getArtifactById(tx.intent.artifactId); if (planet) { - planet.unconfirmedDepositArtifact = txIntent; + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } if (artifact) { - artifact.unconfirmedDepositArtifact = txIntent; + artifact.transactions?.addTransaction(tx); this.setArtifact(artifact); } - } else if (isUnconfirmedWithdrawArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); - const artifact = this.getArtifactById(txIntent.artifactId); + } else if (isUnconfirmedWithdrawArtifactTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + const artifact = this.getArtifactById(tx.intent.artifactId); if (planet) { - planet.unconfirmedWithdrawArtifact = txIntent; + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } if (artifact) { - artifact.unconfirmedWithdrawArtifact = txIntent; + artifact.transactions?.addTransaction(tx); this.setArtifact(artifact); } - } else if (isUnconfirmedActivateArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); - const artifact = this.getArtifactById(txIntent.artifactId); + } else if (isUnconfirmedActivateArtifactTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + const artifact = this.getArtifactById(tx.intent.artifactId); if (planet) { - planet.unconfirmedActivateArtifact = txIntent; + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } if (artifact) { - artifact.unconfirmedActivateArtifact = txIntent; + artifact.transactions?.addTransaction(tx); this.setArtifact(artifact); } - if (txIntent.wormholeTo) { - this.unconfirmedWormholeActivations.push(txIntent); - } - } else if (isUnconfirmedDeactivateArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); - const artifact = this.getArtifactById(txIntent.artifactId); + } else if (isUnconfirmedDeactivateArtifactTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + const artifact = this.getArtifactById(tx.intent.artifactId); if (planet) { - planet.unconfirmedDeactivateArtifact = txIntent; + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } if (artifact) { - artifact.unconfirmedDeactivateArtifact = txIntent; + artifact.transactions?.addTransaction(tx); this.setArtifact(artifact); } - } else if (isUnconfirmedWithdrawSilver(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); + } else if (isUnconfirmedWithdrawSilverTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + if (planet) { + planet.transactions?.addTransaction(tx); + this.setPlanet(planet); + } + } else if (isUnconfirmedCapturePlanetTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); if (planet) { - planet.unconfirmedWithdrawSilver = txIntent; + planet.transactions?.addTransaction(tx); + this.setPlanet(planet); + } + } else if (isUnconfirmedInvadePlanetTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + if (planet) { + planet.transactions?.addTransaction(tx); this.setPlanet(planet); } - } else if (isUnconfirmedBuyGPTCredits(txIntent)) { - this.isBuyingCredits$.publish(true); - this.unconfirmedBuyGPTCredits = txIntent; } } @@ -820,205 +804,127 @@ export class GameObjects { * * @todo Make this less tedious. */ - public clearUnconfirmedTxIntent(txIntent: TxIntent) { - if (isUnconfirmedReveal(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); + public clearUnconfirmedTxIntent(tx: Transaction) { + this.transactions.removeTransaction(tx); + + if (isUnconfirmedReveal(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.locationId); if (planet) { - planet.unconfirmedReveal = undefined; + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } - - if (txIntent.actionId === this.unconfirmedReveal?.actionId) { - this.unconfirmedReveal = undefined; - } else { - console.error( - "unexpected error occurred: tried to clear an unconfirmed reveal that doesn't exist" - ); - } - } else if (isUnconfirmedMove(txIntent)) { - const planet = this.getPlanetWithId(txIntent.from); + } else if (isUnconfirmedMove(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.from); if (planet) { - let removeIdx = -1; - for (let i = 0; i < planet.unconfirmedDepartures.length; i += 1) { - if (planet.unconfirmedDepartures[i].actionId === txIntent.actionId) { - removeIdx = i; - break; - } - } - if (removeIdx > -1) { - planet.unconfirmedDepartures.splice(removeIdx, 1); - } + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } - if (txIntent.artifact) { - const artifact = this.getArtifactById(txIntent.artifact); + if (tx.intent.artifact) { + const artifact = this.getArtifactById(tx.intent.artifact); if (artifact) { - delete artifact.unconfirmedMove; + artifact.transactions?.removeTransaction(tx); this.setArtifact(artifact); } } - delete this.unconfirmedMoves[txIntent.actionId]; - } else if (isUnconfirmedUpgrade(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); + } else if (isUnconfirmedUpgrade(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.locationId); if (planet) { - let removeIdx = -1; - for (let i = 0; i < planet.unconfirmedUpgrades.length; i += 1) { - if (planet.unconfirmedUpgrades[i].actionId === txIntent.actionId) { - removeIdx = i; - break; - } - } - if (removeIdx > -1) { - planet.unconfirmedUpgrades.splice(removeIdx, 1); - } + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } - delete this.unconfirmedUpgrades[txIntent.actionId]; - } else if (isUnconfirmedBuyHat(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); + } else if (isUnconfirmedBuyHat(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.locationId); if (planet) { - let removeIdx = -1; - for (let i = 0; i < planet.unconfirmedBuyHats.length; i += 1) { - if (planet.unconfirmedBuyHats[i].actionId === txIntent.actionId) { - removeIdx = i; - break; - } - } - if (removeIdx > -1) { - planet.unconfirmedBuyHats.splice(removeIdx, 1); - } + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } - delete this.unconfirmedBuyHats[txIntent.actionId]; - } else if (isUnconfirmedFindArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.planetId); + } else if (isUnconfirmedFindArtifact(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.planetId); if (planet) { - planet.unconfirmedFindArtifact = undefined; + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } - } else if (isUnconfirmedDepositArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); - const artifact = this.getArtifactById(txIntent.artifactId); + } else if (isUnconfirmedDepositArtifact(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + const artifact = this.getArtifactById(tx.intent.artifactId); if (planet) { - planet.unconfirmedDepositArtifact = undefined; + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } if (artifact) { - artifact.unconfirmedDepositArtifact = undefined; + artifact.transactions?.removeTransaction(tx); this.setArtifact(artifact); } - } else if (isUnconfirmedWithdrawArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); - const artifact = this.getArtifactById(txIntent.artifactId); + } else if (isUnconfirmedWithdrawArtifact(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + const artifact = this.getArtifactById(tx.intent.artifactId); if (planet) { - planet.unconfirmedWithdrawArtifact = undefined; + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } if (artifact) { - artifact.unconfirmedWithdrawArtifact = undefined; + artifact.transactions?.removeTransaction(tx); this.setArtifact(artifact); } - } else if (isUnconfirmedTransfer(txIntent)) { - const planet = this.getPlanetWithId(txIntent.planetId); + } else if (isUnconfirmedTransfer(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.planetId); if (planet) { - let removeIdx = -1; - for (let i = 0; i < planet.unconfirmedPlanetTransfers.length; i += 1) { - if (planet.unconfirmedPlanetTransfers[i].actionId === txIntent.actionId) { - removeIdx = i; - break; - } - } - if (removeIdx > -1) { - planet.unconfirmedPlanetTransfers.splice(removeIdx, 1); - } + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } - delete this.unconfirmedPlanetTransfers[txIntent.actionId]; - } else if (isUnconfirmedProspectPlanet(txIntent)) { - const planet = this.getPlanetWithId(txIntent.planetId); + } else if (isUnconfirmedProspectPlanet(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.planetId); if (planet) { - delete planet.unconfirmedProspectPlanet; + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } - } else if (isUnconfirmedActivateArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); - const artifact = this.getArtifactById(txIntent.artifactId); + } else if (isUnconfirmedActivateArtifact(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + const artifact = this.getArtifactById(tx.intent.artifactId); if (planet) { - delete planet.unconfirmedActivateArtifact; + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } if (artifact) { - delete artifact.unconfirmedActivateArtifact; + artifact.transactions?.removeTransaction(tx); this.setArtifact(artifact); } - - let removeIdx = -1; - for (let i = 0; i < this.unconfirmedWormholeActivations.length; i += 1) { - if (this.unconfirmedWormholeActivations[i].actionId === txIntent.actionId) { - removeIdx = i; - break; - } - } - if (removeIdx > -1) { - this.unconfirmedWormholeActivations.splice(removeIdx, 1); - } - } else if (isUnconfirmedDeactivateArtifact(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); - const artifact = this.getArtifactById(txIntent.artifactId); + } else if (isUnconfirmedDeactivateArtifact(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + const artifact = this.getArtifactById(tx.intent.artifactId); if (planet) { - delete planet.unconfirmedDeactivateArtifact; + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } if (artifact) { - delete artifact.unconfirmedDeactivateArtifact; + artifact.transactions?.removeTransaction(tx); this.setArtifact(artifact); } - } else if (isUnconfirmedWithdrawSilver(txIntent)) { - const planet = this.getPlanetWithId(txIntent.locationId); + } else if (isUnconfirmedWithdrawSilver(tx.intent)) { + const planet = this.getPlanetWithId(tx.intent.locationId); if (planet) { - delete planet.unconfirmedWithdrawSilver; + planet.transactions?.removeTransaction(tx); this.setPlanet(planet); } - } else if (isUnconfirmedBuyGPTCredits(txIntent)) { - if (txIntent.actionId === this.unconfirmedBuyGPTCredits?.actionId) { - this.isBuyingCredits$.publish(false); - this.unconfirmedBuyGPTCredits = undefined; - } else { - console.error( - "unexpected error occurred: tried to clear an unconfirmed GPT credit purchase that doesn't exist" - ); + } else if (isUnconfirmedCapturePlanetTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + if (planet) { + planet.transactions?.removeTransaction(tx); + this.setPlanet(planet); + } + } else if (isUnconfirmedInvadePlanetTx(tx)) { + const planet = this.getPlanetWithId(tx.intent.locationId); + if (planet) { + planet.transactions?.removeTransaction(tx); + this.setPlanet(planet); } } } - public getUnconfirmedMoves(): UnconfirmedMove[] { - return Object.values(this.unconfirmedMoves); - } - - public getUnconfirmedWormholeActivations(): UnconfirmedActivateArtifact[] { - return this.unconfirmedWormholeActivations; - } - - public getWormholes(): Iterable { - return this.wormholes.values(); - } - - public getUnconfirmedUpgrades(): UnconfirmedUpgrade[] { - return Object.values(this.unconfirmedUpgrades); - } - - public getUnconfirmedReveal(): UnconfirmedReveal | undefined { - return this.unconfirmedReveal; - } - - public getUnconfirmedBuyGPTCredits(): UnconfirmedBuyGPTCredits | undefined { - return this.unconfirmedBuyGPTCredits; - } - public getPlanetMap(): Map { return this.planets; } @@ -1039,10 +945,36 @@ export class GameObjects { return this.revealedLocations; } + public getClaimedLocations(): Map { + return this.claimedLocations; + } + + public setClaimedLocation(claimedLocation: ClaimedLocation) { + this.claimedLocations.set(claimedLocation.hash, claimedLocation); + } + + /** + * Gets all the planets with the given ids, giltering out the ones that we don't have. + */ + public getPlanetsWithIds(locationIds: LocationId[], updateIfStale = true): Planet[] { + return locationIds + .map((id) => this.getPlanetWithId(id, updateIfStale)) + .filter((p) => p !== undefined) as Planet[]; + } + /** - * Gets the ids of all the planets that are both within the given bounding box (defined by its bottom - * left coordinate, width, and height) in the world and of a level that was passed in via the - * `planetLevels` parameter. + * Gets all the planets that are within {@code radius} world units from the given coordinate. Fast + * because it uses {@link LayeredMap}. + */ + public getPlanetsInWorldCircle(coords: WorldCoords, radius: number): LocatablePlanet[] { + const locationIds = this.layeredMap.getPlanetsInCircle(coords, radius); + return this.getPlanetsWithIds(locationIds) as LocatablePlanet[]; + } + + /** + * Gets the ids of all the planets that are both within the given bounding box (defined by its + * bottom left coordinate, width, and height) in the world and of a level that was passed in via + * the `planetLevels` parameter. Fast because it uses {@link LayeredMap}. */ public getPlanetsInWorldRectangle( worldX: number, @@ -1061,9 +993,14 @@ export class GameObjects { levels, planetLevelToRadii ); - return locationIds - .map((id) => this.getPlanetWithId(id, updateIfStale)) - .filter((p) => p !== undefined) as LocatablePlanet[]; + return this.getPlanetsWithIds(locationIds, updateIfStale) as LocatablePlanet[]; + } + + public forceTick(locationId: LocationId) { + const planet = this.getPlanetWithId(locationId); + if (planet) { + this.setPlanet(planet); + } } /** @@ -1118,6 +1055,42 @@ export class GameObjects { artifact ); } + /** + * Emit notifications based on a planet's state change + */ + private emitArrivalNotifications({ previous, current, arrival }: PlanetDiff) { + const notifManager = NotificationManager.getInstance(); + if ( + !GameObjects.planetCanUpgrade(previous) && + GameObjects.planetCanUpgrade(current) && + current.owner === this.address + ) { + notifManager.planetCanUpgrade(current); + } + if ( + previous.owner !== this.address && + previous.owner !== ethers.constants.AddressZero && + current.owner === this.address + ) { + notifManager.planetConquered(current as LocatablePlanet); + } + if (previous.owner === this.address && current.owner !== this.address) { + notifManager.planetLost(current as LocatablePlanet); + } + if ( + arrival.player !== this.address && + current.owner === this.address && + arrival.energyArriving !== 0 + ) { + notifManager.planetAttacked(current as LocatablePlanet); + } + } + + private removeArrival(planetId: LocationId, arrivalId: VoyageId) { + this.arrivals?.delete(arrivalId); + const planetArrivalIds = this.planetArrivalIds?.get(planetId) ?? []; + _.remove(planetArrivalIds, (id) => id === arrivalId); + } private processArrivalsForPlanet( planetId: LocationId, @@ -1138,27 +1111,29 @@ export class GameObjects { try { if (nowInSeconds - arrival.arrivalTime > 0) { // if arrival happened in the past, run this arrival - arrive( + const update = arrive( planet, this.getPlanetArtifacts(planet.locationId), arrival, + this.getArtifactById(arrival.artifactId), this.contractConstants ); + + this.removeArrival(planetId, update.arrival.eventId); + this.emitArrivalNotifications(update); } else { // otherwise, set a timer to do this arrival in the future // and append it to arrivalsWithTimers const applyFutureArrival = setTimeout(() => { - arrive( + const update = arrive( planet, this.getPlanetArtifacts(planet.locationId), arrival, + this.getArtifactById(arrival.artifactId), this.contractConstants ); - - const notifManager = NotificationManager.getInstance(); - if (GameObjects.planetCanUpgrade(planet) && planet.owner === this.address) { - notifManager.planetCanUpgrade(planet); - } + this.emitArrivalNotifications(update); + this.removeArrival(planetId, update.arrival.eventId); }, arrival.arrivalTime * 1000 - Date.now()); const arrivalWithTimer = { @@ -1171,7 +1146,6 @@ export class GameObjects { console.error(`error occurred processing arrival for updated planet ${planetId}: ${e}`); } } - this.updateScore(planetId); return arrivalsWithTimers; } @@ -1199,9 +1173,9 @@ export class GameObjects { const levelBigInt = getBytesFromHex(hex, 4, 7); - let ret = PlanetLevel.MIN; + let ret = MIN_PLANET_LEVEL; - for (let type = PlanetLevel.MAX; type >= PlanetLevel.MIN; type--) { + for (let type = MAX_PLANET_LEVEL; type >= MIN_PLANET_LEVEL; type--) { if (levelBigInt < bigInt(this.contractConstants.planetLevelThresholds[type])) { ret = type; break; @@ -1215,7 +1189,7 @@ export class GameObjects { ret = PlanetLevel.FIVE; } if (ret > this.contractConstants.MAX_NATURAL_PLANET_LEVEL) { - ret = this.contractConstants.MAX_NATURAL_PLANET_LEVEL; + ret = this.contractConstants.MAX_NATURAL_PLANET_LEVEL as PlanetLevel; } return ret; @@ -1266,7 +1240,7 @@ export class GameObjects { const typeByte = Number(getBytesFromHex(hex, 8, 9)); for (let i = 0; i < thresholds.length; i++) { if (typeByte >= thresholds[i]) { - return i; + return i as PlanetType; } } // this should never happen @@ -1284,7 +1258,7 @@ export class GameObjects { else if (biomebase < this.contractConstants.BIOME_THRESHOLD_2) biome += 2; else biome += 3; - return biome; + return biome as Biome; } /** @@ -1299,7 +1273,8 @@ export class GameObjects { const planetType = this.planetTypeFromHexPerlin(hex, perlin); const spaceType = this.spaceTypeFromPerlin(perlin); - const [energyCapBonus, energyGroBonus, rangeBonus, speedBonus, defBonus] = bonusFromHex(hex); + const [energyCapBonus, energyGroBonus, rangeBonus, speedBonus, defBonus, spaceJunkBonus] = + bonusFromHex(hex); let energyCap = this.contractConstants.defaultPopulationCap[planetLevel]; let energyGro = this.contractConstants.defaultPopulationGrowth[planetLevel]; @@ -1307,6 +1282,7 @@ export class GameObjects { let speed = this.contractConstants.defaultSpeed[planetLevel]; let defense = this.contractConstants.defaultDefense[planetLevel]; let silCap = this.contractConstants.defaultSilverCap[planetLevel]; + let spaceJunk = this.contractConstants.PLANET_LEVEL_JUNK[planetLevel]; let silGro = 0; if (planetType === PlanetType.SILVER_MINE) { @@ -1318,6 +1294,7 @@ export class GameObjects { range *= rangeBonus ? 2 : 1; speed *= speedBonus ? 2 : 1; defense *= defBonus ? 2 : 1; + spaceJunk = Math.floor(spaceJunk / (spaceJunkBonus ? 2 : 1)); if (spaceType === SpaceType.DEAD_SPACE) { range *= 2; @@ -1362,12 +1339,14 @@ export class GameObjects { silCap *= 2; } - let barbarians = + let pirates = (energyCap * this.contractConstants.defaultBarbarianPercentage[planetLevel]) / 100; - // increase barbarians - if (spaceType === SpaceType.DEAD_SPACE) barbarians *= 20; - else if (spaceType === SpaceType.DEEP_SPACE) barbarians *= 10; - else if (spaceType === SpaceType.SPACE) barbarians *= 4; + // increase pirates + if (spaceType === SpaceType.DEAD_SPACE) pirates *= 20; + else if (spaceType === SpaceType.DEEP_SPACE) pirates *= 10; + else if (spaceType === SpaceType.SPACE) pirates *= 4; + + if (planetType === PlanetType.SILVER_BANK) pirates /= 2; const silver = planetType === PlanetType.SILVER_MINE ? silCap / 2 : 0; @@ -1399,17 +1378,16 @@ export class GameObjects { speed, defense, - energy: barbarians, + energy: pirates, silver, + spaceJunk, + lastUpdated: Math.floor(Date.now() / 1000), upgradeState: [0, 0, 0], - unconfirmedDepartures: [], - unconfirmedUpgrades: [], - unconfirmedBuyHats: [], - unconfirmedPlanetTransfers: [], + transactions: new TxCollection(), unconfirmedClearEmoji: false, unconfirmedAddEmoji: false, loadingServerState: false, @@ -1426,6 +1404,10 @@ export class GameObjects { biome, hasTriedFindingArtifact: false, messages: undefined, + pausers: 0, + + invader: EMPTY_ADDRESS, + capturer: EMPTY_ADDRESS, }; } @@ -1503,24 +1485,19 @@ export class GameObjects { } } - private calculateSilverSpent(planet: Planet): number { - const upgradeCosts = [20, 40, 60, 80, 100]; - let totalUpgrades = 0; - for (let i = 0; i < planet.upgradeState.length; i++) { - totalUpgrades += planet.upgradeState[i]; - } - let totalUpgradeCostPercent = 0; - for (let i = 0; i < totalUpgrades; i++) { - totalUpgradeCostPercent += upgradeCosts[i]; - } - return (totalUpgradeCostPercent / 100) * planet.silverCap; + /** + * Get all of the incoming voyages for a given location. + */ + public getArrivalIdsForLocation(location: LocationId | undefined): VoyageId[] | undefined { + if (!location) return []; + + return this.planetArrivalIds.get(location); } - private updateScore(planetId: LocationId) { - const planet = this.planets.get(planetId); - if (!planet) { - return; - } - planet.silverSpent = this.calculateSilverSpent(planet); + /** + * Whether or not we're already asking the game to give us spaceships. + */ + public isGettingSpaceships(): boolean { + return this.transactions.hasTransaction(isUnconfirmedGetShipsTx); } } diff --git a/src/Backend/GameLogic/GameUIManager.ts b/src/Backend/GameLogic/GameUIManager.ts index efb52f74..f528e093 100644 --- a/src/Backend/GameLogic/GameUIManager.ts +++ b/src/Backend/GameLogic/GameUIManager.ts @@ -1,82 +1,96 @@ +import { EMPTY_ADDRESS } from '@darkforest_eth/constants'; +import { Monomitter, monomitter } from '@darkforest_eth/events'; +import { biomeName, isLocatable, isSpaceShip } from '@darkforest_eth/gamelogic'; +import { planetHasBonus } from '@darkforest_eth/hexgen'; +import { EthConnection } from '@darkforest_eth/network'; +import { GameGLManager, Renderer } from '@darkforest_eth/renderer'; +import { isUnconfirmedMoveTx } from '@darkforest_eth/serde'; import { - LocationId, + Artifact, ArtifactId, + BaseRenderer, + Biome, + Chunk, + CursorState, + Diagnostics, EthAddress, - Player, - Artifact, - Planet, LocatablePlanet, + LocationId, + PerlinConfig, + Planet, PlanetLevel, - UpgradeBranchName, - WorldLocation, - WorldCoords, - Biome, - SpaceType, PlanetType, + Player, QueuedArrival, - Upgrade, - Conversation, + Rectangle, + Setting, + SpaceType, + Transaction, + UnconfirmedActivateArtifact, UnconfirmedMove, UnconfirmedUpgrade, - UnconfirmedActivateArtifact, + Upgrade, + UpgradeBranchName, + WorldCoords, + WorldLocation, + Wormhole, } from '@darkforest_eth/types'; import autoBind from 'auto-bind'; +import { BigNumber } from 'ethers'; import EventEmitter from 'events'; +import deferred from 'p-defer'; +import React from 'react'; +import ModalManager from '../../Frontend/Game/ModalManager'; import NotificationManager from '../../Frontend/Game/NotificationManager'; import Viewport from '../../Frontend/Game/Viewport'; import { getObjectWithIdFromMap } from '../../Frontend/Utils/EmitterUtils'; -import { Monomitter, monomitter } from '../../Frontend/Utils/Monomitter'; +import { listenForKeyboardEvents, unlinkKeyboardEvents } from '../../Frontend/Utils/KeyEmitters'; +import { + getBooleanSetting, + getSetting, + setBooleanSetting, +} from '../../Frontend/Utils/SettingsHooks'; import UIEmitter, { UIEmitterEvent } from '../../Frontend/Utils/UIEmitter'; import { TerminalHandle } from '../../Frontend/Views/Terminal'; import { ContractConstants } from '../../_types/darkforest/api/ContractsAPITypes'; -import { - Chunk, - Rectangle, - isLocatable, - Wormhole, - HashConfig, -} from '../../_types/global/GlobalTypes'; +import { HashConfig } from '../../_types/global/GlobalTypes'; import { MiningPattern } from '../Miner/MiningPatterns'; -import EthConnection from '../Network/EthConnection'; import { coordsEqual } from '../Utils/Coordinates'; -import { deferred } from '../Utils/Utils'; -import { biomeName } from './ArtifactUtils'; import GameManager, { GameManagerEvent } from './GameManager'; +import { GameObjects } from './GameObjects'; import { PluginManager } from './PluginManager'; import TutorialManager, { TutorialState } from './TutorialManager'; -import { EMPTY_ADDRESS } from '@darkforest_eth/constants'; -import { planetHasBonus } from '@darkforest_eth/hexgen'; import { ViewportEntities } from './ViewportEntities'; -import { Diagnostics } from '../../Frontend/Panes/DiagnosticsPane'; -import { - getBooleanSetting, - getSetting, - Setting, - setBooleanSetting, -} from '../../Frontend/Utils/SettingsHooks'; -import { GameObjects } from './GameObjects'; -import { PerlinConfig } from '@darkforest_eth/hashing'; -export enum GameUIManagerEvent { +export const enum GameUIManagerEvent { InitializedPlayer = 'InitializedPlayer', InitializedPlayerError = 'InitializedPlayerError', } class GameUIManager extends EventEmitter { - private readonly radiusMap: Record; + private readonly radiusMap: { [PlanetLevel: number]: number }; private readonly gameManager: GameManager; + private modalManager: ModalManager; private terminal: React.MutableRefObject; - private previousSelectedPlanet: Planet | undefined; - private selectedPlanet: Planet | undefined; + + /** + * In order to render React on top of the game, we need to insert React nodes into an overlay + * container. We keep a reference to this container, so that our React components can optionally + * choose to render themselves into this overlay container using React Portals. + */ + private overlayContainer?: HTMLDivElement; + private previousSelectedPlanetId: LocationId | undefined; + private selectedPlanetId: LocationId | undefined; private selectedCoords: WorldCoords | undefined; - private mouseDownOverPlanet: Planet | undefined; + private mouseDownOverPlanet: LocatablePlanet | undefined; private mouseDownOverCoords: WorldCoords | undefined; - private mouseHoveringOverPlanet: Planet | undefined; + private mouseHoveringOverPlanet: LocatablePlanet | undefined; private mouseHoveringOverCoords: WorldCoords | undefined; - private sendingPlanet: Planet | undefined; + private sendingPlanet: LocatablePlanet | undefined; private sendingCoords: WorldCoords | undefined; private isSending = false; + private abandoning = false; private viewportEntities: ViewportEntities; /** @@ -97,13 +111,17 @@ class GameUIManager extends EventEmitter { private plugins: PluginManager; public readonly selectedPlanetId$: Monomitter; - public readonly selectedPlanet$: Monomitter; public readonly hoverPlanetId$: Monomitter; public readonly hoverPlanet$: Monomitter; - public readonly selectedArtifactId$: Monomitter; - public readonly selectedArtifact$: Monomitter; + public readonly hoverArtifactId$: Monomitter; + public readonly hoverArtifact$: Monomitter; public readonly myArtifacts$: Monomitter>; + public readonly isSending$: Monomitter; + public readonly isAbandoning$: Monomitter; + + private planetHoveringInRenderer = false; + // lifecycle methods private constructor( @@ -132,17 +150,11 @@ class GameUIManager extends EventEmitter { [PlanetLevel.SEVEN]: 729 * scaleFactor, [PlanetLevel.EIGHT]: 972 * scaleFactor, [PlanetLevel.NINE]: 1215 * scaleFactor, - }; + } as const; this.plugins = new PluginManager(gameManager); - this.selectedPlanetId$ = monomitter(); - this.selectedPlanet$ = getObjectWithIdFromMap( - this.getPlanetMap(), - this.selectedPlanetId$, - this.gameManager.getPlanetUpdated$() - ); - + this.selectedPlanetId$ = monomitter(true); this.hoverPlanetId$ = monomitter(); this.hoverPlanet$ = getObjectWithIdFromMap( this.getPlanetMap(), @@ -150,25 +162,48 @@ class GameUIManager extends EventEmitter { this.gameManager.getPlanetUpdated$() ); - this.selectedArtifactId$ = monomitter(); - this.selectedArtifact$ = getObjectWithIdFromMap( + this.hoverArtifactId$ = monomitter(); + this.hoverArtifact$ = getObjectWithIdFromMap( this.getArtifactMap(), - this.selectedArtifactId$, + this.hoverArtifactId$, this.gameManager.getArtifactUpdated$() ); this.myArtifacts$ = this.gameManager.getMyArtifactsUpdated$(); this.viewportEntities = new ViewportEntities(this.gameManager, this); + this.isSending$ = monomitter(true); + this.isAbandoning$ = monomitter(true); + autoBind(this); } + /** + * Sets the overlay container. See {@link GameUIManger.overlayContainer} for more information + * about what the overlay container is. + */ + public setOverlayContainer(randomContainer?: HTMLDivElement) { + this.overlayContainer = randomContainer; + } + + /** + * Gets the overlay container. See {@link GameUIManger.overlayContainer} for more information + * about what the overlay container is. + */ + public getOverlayContainer(): HTMLDivElement | undefined { + return this.overlayContainer; + } + public static async create( gameManager: GameManager, terminalHandle: React.MutableRefObject ) { + listenForKeyboardEvents(); const uiEmitter = UIEmitter.getInstance(); const uiManager = new GameUIManager(gameManager, terminalHandle); + const modalManager = await ModalManager.create(gameManager.getChunkStore()); + + uiManager.setModalManager(modalManager); uiEmitter.on(UIEmitterEvent.WorldMouseDown, uiManager.onMouseDown); uiEmitter.on(UIEmitterEvent.WorldMouseClick, uiManager.onMouseClick); @@ -178,6 +213,7 @@ class GameUIManager extends EventEmitter { uiEmitter.on(UIEmitterEvent.SendInitiated, uiManager.onSendInit); uiEmitter.on(UIEmitterEvent.SendCancelled, uiManager.onSendCancel); + uiEmitter.on(UIEmitterEvent.SendCompleted, uiManager.onSendComplete); gameManager.on(GameManagerEvent.PlanetUpdate, uiManager.updatePlanets); gameManager.on(GameManagerEvent.DiscoveredNewChunk, uiManager.onDiscoveredChunk); @@ -186,6 +222,7 @@ class GameUIManager extends EventEmitter { } public destroy(): void { + unlinkKeyboardEvents(); const uiEmitter = UIEmitter.getInstance(); uiEmitter.removeListener(UIEmitterEvent.WorldMouseDown, this.onMouseDown); @@ -194,8 +231,9 @@ class GameUIManager extends EventEmitter { uiEmitter.removeListener(UIEmitterEvent.WorldMouseUp, this.onMouseUp); uiEmitter.removeListener(UIEmitterEvent.WorldMouseOut, this.onMouseOut); - uiEmitter.on(UIEmitterEvent.SendInitiated, this.onSendInit); - uiEmitter.on(UIEmitterEvent.SendCancelled, this.onSendCancel); + uiEmitter.removeListener(UIEmitterEvent.SendInitiated, this.onSendInit); + uiEmitter.removeListener(UIEmitterEvent.SendCancelled, this.onSendCancel); + uiEmitter.removeListener(UIEmitterEvent.SendCompleted, this.onSendComplete); this.gameManager.removeListener(GameManagerEvent.PlanetUpdate, this.updatePlanets); this.gameManager.removeListener( @@ -210,23 +248,29 @@ class GameUIManager extends EventEmitter { this.gameManager.destroy(); this.selectedPlanetId$.clear(); - this.selectedArtifactId$.clear(); + this.hoverArtifactId$.clear(); } public getStringSetting(setting: Setting): string | undefined { - const address = this.getAccount(); + const account = this.getAccount(); + const config = { + contractAddress: this.getContractAddress(), + account, + }; - return address && getSetting(address, setting); + return account && getSetting(config, setting); } public getBooleanSetting(setting: Setting): boolean { - const address = this.getAccount(); + const account = this.getAccount(); - if (!address) { + if (!account) { return false; } - return getBooleanSetting(address, setting); + const config = { contractAddress: this.getContractAddress(), account }; + + return getBooleanSetting(config, setting); } public getDiagnostics(): Diagnostics { @@ -247,7 +291,7 @@ class GameUIManager extends EventEmitter { // actions - public centerPlanet(planet: Planet | undefined) { + public centerPlanet(planet: LocatablePlanet | undefined) { if (planet) { Viewport.getInstance().centerPlanet(planet); this.setSelectedPlanet(planet); @@ -256,7 +300,7 @@ class GameUIManager extends EventEmitter { public centerCoords(coords: WorldCoords) { const planet = this.gameManager.getPlanetWithCoords(coords); - if (planet) { + if (planet && isLocatable(planet)) { this.centerPlanet(planet); } else { Viewport.getInstance().centerCoords(coords); @@ -265,16 +309,13 @@ class GameUIManager extends EventEmitter { public centerLocationId(planetId: LocationId) { const planet = this.getPlanetWithId(planetId); - this.centerPlanet(planet); + if (planet && isLocatable(planet)) { + this.centerPlanet(planet); + } } - public joinGame(beforeRetry: (e: Error) => Promise): GameUIManager { - this.gameManager - .joinGame(beforeRetry) - .once(GameManagerEvent.InitializedPlayer, this.onEmitInitializedPlayer) - .once(GameManagerEvent.InitializedPlayerError, this.onEmitInitializedPlayerError); - - return this; + public joinGame(beforeRetry: (e: Error) => Promise): Promise { + return this.gameManager.joinGame(beforeRetry); } public addAccount(coords: WorldCoords): Promise { @@ -282,23 +323,31 @@ class GameUIManager extends EventEmitter { } public verifyTwitter(twitter: string): Promise { - return this.gameManager.verifyTwitter(twitter); + return this.gameManager.submitVerifyTwitter(twitter); + } + + public disconnectTwitter(twitter: string) { + return this.gameManager.submitDisconnectTwitter(twitter); } public getPluginManager(): PluginManager { return this.plugins; } - public getPrivateKey(): string { + public getPrivateKey(): string | undefined { return this.gameManager.getPrivateKey(); } public getMyBalance(): number { + return this.gameManager.getMyBalanceEth(); + } + + public getMyBalanceBn(): BigNumber { return this.gameManager.getMyBalance(); } - public getMyBalanceEmitter(): Monomitter { - return this.gameManager.getMyBalanceEmitter(); + public getMyBalance$(): Monomitter { + return this.gameManager.getMyBalance$(); } public findArtifact(planetId: LocationId) { @@ -325,6 +374,10 @@ class GameUIManager extends EventEmitter { this.gameManager.depositArtifact(locationId, artifactId); } + public drawAllRunningPlugins(ctx: CanvasRenderingContext2D) { + this.getPluginManager().drawAllRunningPlugins(ctx); + } + public activateArtifact(locationId: LocationId, id: ArtifactId, wormholeTo?: LocationId) { const confirmationText = `Are you sure you want to activate this artifact? ` + @@ -367,11 +420,11 @@ class GameUIManager extends EventEmitter { this.mouseDownOverCoords = planet.location.coords; this.mouseDownOverPlanet = planet; - const [resolve, _reject, resultPromise] = deferred(); + const { resolve, promise } = deferred(); this.onChooseTargetPlanet = resolve; - return resultPromise; + return promise; } public revealLocation(locationId: LocationId) { @@ -382,16 +435,8 @@ class GameUIManager extends EventEmitter { return this.gameManager.getNextBroadcastAvailableTimestamp(); } - public getConversation(artifactId: ArtifactId): Promise { - return this.gameManager.getConversation(artifactId); - } - - public startConversation(artifactId: ArtifactId): Promise { - return this.gameManager.startConversation(artifactId); - } - - public stepConversation(artifactId: ArtifactId, message: string): Promise { - return this.gameManager.stepConversation(artifactId, message); + public timeUntilNextBroadcastAvailable() { + return this.gameManager.timeUntilNextBroadcastAvailable(); } public getEnergyArrivingForMove( @@ -400,7 +445,7 @@ class GameUIManager extends EventEmitter { dist: number | undefined, energy: number ) { - return this.gameManager.getEnergyArrivingForMove(from, to, dist, energy); + return this.gameManager.getEnergyArrivingForMove(from, to, dist, energy, this.abandoning); } getIsChoosingTargetPlanet() { @@ -442,6 +487,9 @@ class GameUIManager extends EventEmitter { const mouseUpOverPlanet = this.gameManager.getPlanetWithCoords(mouseUpOverCoords); const mouseDownPlanet = this.getMouseDownPlanet(); + const tutorialManager = TutorialManager.getInstance(this); + + const uiEmitter = UIEmitter.getInstance(); if (mouseUpOverPlanet) { if ( @@ -452,21 +500,30 @@ class GameUIManager extends EventEmitter { this.setSelectedPlanet(mouseUpOverPlanet); this.selectedCoords = mouseUpOverCoords; this.terminal.current?.println(`Selected: ${mouseUpOverPlanet.locationId}`); - } else if (mouseDownPlanet && mouseDownPlanet.owner === this.gameManager.getAccount()) { + this.terminal.current?.println(``); + } else if ( + mouseDownPlanet && + (mouseDownPlanet.owner === this.gameManager.getAccount() || + this.isSendingShip(mouseDownPlanet.locationId)) + ) { // move initiated if enough forces const from = mouseDownPlanet; const to = mouseUpOverPlanet; // TODO: the following code block needs to be in a Planet class let effectiveEnergy = from.energy; - for (const unconfirmedMove of from.unconfirmedDepartures) { - effectiveEnergy -= unconfirmedMove.forces; + for (const unconfirmedMove of from.transactions?.getTransactions(isUnconfirmedMoveTx) ?? + []) { + effectiveEnergy -= unconfirmedMove.intent.forces; } const effPercent = Math.min(this.getForcesSending(from.locationId), 98); let forces = Math.floor((effectiveEnergy * effPercent) / 100); // make it so you leave one force behind - if (forces >= from.energy) { + if (this.isSendingShip(mouseDownPlanet.locationId)) { + tutorialManager.acceptInput(TutorialState.Spaceship); + forces = 0; + } else if (forces >= from.energy) { forces = from.energy - 1; if (forces < 1) return; } @@ -477,7 +534,8 @@ class GameUIManager extends EventEmitter { from.locationId, to.locationId, dist, - forces + forces, + this.abandoning ); let effPercentSilver = this.getSilverSending(from.locationId); @@ -491,7 +549,9 @@ class GameUIManager extends EventEmitter { // Date.now() and block.timestamp are occasionally a bit out of sync, so clip effPercentSilver = 98; } - if (myAtk > 0) { + + if (myAtk > 0 || this.isSendingShip(from.locationId)) { + const abandoning = this.isAbandoning(); const silver = Math.floor((from.silver * effPercentSilver) / 100); // TODO: do something like JSON.stringify(args) so we know formatting is correct this.terminal.current?.printShellLn( @@ -499,28 +559,33 @@ class GameUIManager extends EventEmitter { ); const artifact = this.getArtifactSending(from.locationId); - this.gameManager.move(from.locationId, to.locationId, forces, silver, artifact?.id); - const tutorialManager = TutorialManager.getInstance(); + this.gameManager.move( + from.locationId, + to.locationId, + forces, + silver, + artifact?.id, + abandoning + ); tutorialManager.acceptInput(TutorialState.SendFleet); } + + uiEmitter.emit(UIEmitterEvent.SendCompleted, from.locationId); } this.isChoosingTargetPlanet = false; + } else { + uiEmitter.emit(UIEmitterEvent.SendCancelled); } this.mouseDownOverPlanet = undefined; this.mouseDownOverCoords = undefined; - - const uiEmitter = UIEmitter.getInstance(); - uiEmitter.emit(UIEmitterEvent.SendCompleted); - this.sendingPlanet = undefined; - this.isSending = false; } public onMouseOut() { this.mouseDownOverPlanet = undefined; this.mouseDownOverCoords = undefined; - this.setHoveringOverPlanet(undefined); + this.setHoveringOverPlanet(undefined, true); this.mouseHoveringOverCoords = undefined; } @@ -533,16 +598,62 @@ class GameUIManager extends EventEmitter { this.minerLocation = undefined; } + public toggleExplore() { + if (this.isMining()) { + this?.stopExplore(); + TutorialManager.getInstance(this).acceptInput(TutorialState.MinerPause); + } else { + this?.startExplore(); + } + } + + public toggleTargettingExplorer() { + const modalManager = this.modalManager; + if (modalManager.getCursorState() === CursorState.TargetingExplorer) + modalManager.setCursorState(CursorState.Normal); + else modalManager.setCursorState(CursorState.TargetingExplorer); + } + public setForcesSending(planetId: LocationId, percentage: number) { + if (percentage < 0) percentage = 0; + if (percentage > 100) percentage = 100; this.forcesSending[planetId] = percentage; + this.gameManager.getGameObjects().forceTick(planetId); } public setSilverSending(planetId: LocationId, percentage: number) { + if (percentage < 0) percentage = 0; + if (percentage > 100) percentage = 100; this.silverSending[planetId] = percentage; + this.gameManager.getGameObjects().forceTick(planetId); + } + + public setSending(sending: boolean): void { + this.isSending = sending; + this.isSending$.publish(sending); + } + + public setAbandoning(abandoning: boolean): void { + if (!this.gameManager.getContractConstants().SPACE_JUNK_ENABLED) return; + + const planet = this.getSelectedPlanet(); + if (planet?.isHomePlanet) return; + if (this.isSendingShip(planet?.locationId)) return; + + // An abandon is always a send + this.isSending = abandoning; + this.abandoning = abandoning; + this.isSending$.publish(abandoning); + this.isAbandoning$.publish(abandoning); } public setArtifactSending(planetId: LocationId, artifact?: Artifact) { this.artifactSending[planetId] = artifact; + if (this.isSendingShip(planetId)) { + this.abandoning = false; + this.isAbandoning$.publish(false); + } + this.gameManager.getGameObjects().forceTick(planetId); } public isOwnedByMe(planet: Planet): boolean { @@ -576,6 +687,10 @@ class GameUIManager extends EventEmitter { return this.gameManager.getAccount(); } + public isAdmin(): boolean { + return this.gameManager.isAdmin(); + } + public getTwitter(address: EthAddress | undefined): string | undefined { return this.gameManager.getTwitter(address); } @@ -622,29 +737,35 @@ class GameUIManager extends EventEmitter { return this.gameManager.getAllPlayers(); } - public getSelectedPlanet(): Planet | undefined { - return this.selectedPlanet; + public getSelectedPlanet(): LocatablePlanet | undefined { + const planet = this.getPlanetWithId(this.selectedPlanetId); + + if (isLocatable(planet)) { + return planet; + } + + return undefined; } public getPreviousSelectedPlanet(): Planet | undefined { - return this.previousSelectedPlanet; + return this.getPlanetWithId(this.previousSelectedPlanetId); } public setSelectedId(id: LocationId): void { const planet = this.getPlanetWithId(id); - if (planet) this.setSelectedPlanet(planet); + if (planet && isLocatable(planet)) this.setSelectedPlanet(planet); } - public setSelectedPlanet(planet: Planet | undefined): void { - this.previousSelectedPlanet = this.selectedPlanet; + public setSelectedPlanet(planet: LocatablePlanet | undefined): void { + this.previousSelectedPlanetId = this.selectedPlanetId; if (!planet) { - const tutorialManager = TutorialManager.getInstance(); + const tutorialManager = TutorialManager.getInstance(this); tutorialManager.acceptInput(TutorialState.Deselect); } const uiEmitter = UIEmitter.getInstance(); - this.selectedPlanet = planet; + this.selectedPlanetId = planet?.locationId; if (!planet) { this.selectedCoords = undefined; } else { @@ -655,7 +776,7 @@ class GameUIManager extends EventEmitter { this.selectedCoords = loc.coords; if (coordsEqual(loc.coords, this.getHomeCoords())) { - const tutorialManager = TutorialManager.getInstance(); + const tutorialManager = TutorialManager.getInstance(this); tutorialManager.acceptInput(TutorialState.HomePlanet); } } @@ -669,22 +790,39 @@ class GameUIManager extends EventEmitter { return this.selectedCoords; } - public getMouseDownPlanet(): Planet | undefined { + public getMouseDownPlanet(): LocatablePlanet | undefined { if (this.isSending && this.sendingPlanet) return this.sendingPlanet; return this.mouseDownOverPlanet; } - public onSendInit(planet: Planet | undefined): void { + public onSendInit(planet: LocatablePlanet | undefined): void { + this.modalManager.setCursorState(CursorState.TargetingForces); this.isSending = true; this.sendingPlanet = planet; const loc = planet && this.getLocationOfPlanet(planet.locationId); this.sendingCoords = loc ? loc.coords : { x: 0, y: 0 }; } + public onSendComplete(locationId: LocationId): void { + this.modalManager.setCursorState(CursorState.Normal); + + // Set to undefined after SendComplete so it can send another one + this.artifactSending[locationId] = undefined; + + this.sendingPlanet = undefined; + // Done at the end so they clear the artifact + this.setSending(false); + this.setAbandoning(false); + } + public onSendCancel(): void { - this.isSending = false; + this.modalManager.setCursorState(CursorState.Normal); + this.sendingPlanet = undefined; this.sendingCoords = undefined; + + this.setSending(false); + this.setAbandoning(false); } public hasMinedChunk(chunkLocation: Rectangle): boolean { @@ -710,6 +848,10 @@ class GameUIManager extends EventEmitter { public onDiscoveredChunk(chunk: Chunk): void { const res = this.gameManager.getCurrentlyExploringChunk(); const account = this.getAccount(); + const config = { + contractAddress: this.getContractAddress(), + account, + }; if (res) { const { bottomLeft, sideLength } = res; @@ -733,7 +875,7 @@ class GameUIManager extends EventEmitter { this.getBooleanSetting(Setting.TutorialCompleted) ) { notifManager.foundPirates(planet); - setBooleanSetting(account, Setting.FoundPirates, true); + setBooleanSetting(config, Setting.FoundPirates, true); } } @@ -743,7 +885,7 @@ class GameUIManager extends EventEmitter { this.getBooleanSetting(Setting.TutorialCompleted) ) { notifManager.foundSilver(planet); - setBooleanSetting(account, Setting.FoundSilver, true); + setBooleanSetting(config, Setting.FoundSilver, true); } } if (planet.planetType === PlanetType.SILVER_BANK) { @@ -752,7 +894,7 @@ class GameUIManager extends EventEmitter { this.getBooleanSetting(Setting.TutorialCompleted) ) { notifManager.foundSilverBank(planet); - setBooleanSetting(account, Setting.FoundSilverBank, true); + setBooleanSetting(config, Setting.FoundSilverBank, true); } } if (planet.planetType === PlanetType.TRADING_POST) { @@ -761,7 +903,7 @@ class GameUIManager extends EventEmitter { this.getBooleanSetting(Setting.TutorialCompleted) ) { notifManager.foundTradingPost(planet); - setBooleanSetting(account, Setting.FoundTradingPost, true); + setBooleanSetting(config, Setting.FoundTradingPost, true); } } if (planetHasBonus(planet)) { @@ -770,7 +912,7 @@ class GameUIManager extends EventEmitter { this.getBooleanSetting(Setting.TutorialCompleted) ) { notifManager.foundComet(planet); - setBooleanSetting(account, Setting.FoundComet, true); + setBooleanSetting(config, Setting.FoundComet, true); } } if (isLocatable(planet) && planet.planetType === PlanetType.PLANET) { @@ -781,8 +923,8 @@ class GameUIManager extends EventEmitter { !this.getBooleanSetting(Setting.FoundArtifact) && this.getBooleanSetting(Setting.TutorialCompleted) ) { - notifManager.foundArtifact(planet); - setBooleanSetting(account, Setting.FoundArtifact, true); + notifManager.foundFoundry(planet); + setBooleanSetting(config, Setting.FoundArtifact, true); } } } @@ -794,7 +936,7 @@ class GameUIManager extends EventEmitter { this.getBooleanSetting(Setting.TutorialCompleted) ) { notifManager.foundDeepSpace(chunk); - setBooleanSetting(account, Setting.FoundDeepSpace, true); + setBooleanSetting(config, Setting.FoundDeepSpace, true); } } else if (this.spaceTypeFromPerlin(chunk.perlin) === SpaceType.SPACE) { if ( @@ -802,7 +944,7 @@ class GameUIManager extends EventEmitter { this.getBooleanSetting(Setting.TutorialCompleted) ) { notifManager.foundSpace(chunk); - setBooleanSetting(account, Setting.FoundSpace, true); + setBooleanSetting(config, Setting.FoundSpace, true); } } else if (this.spaceTypeFromPerlin(chunk.perlin) === SpaceType.DEAD_SPACE) { if ( @@ -810,7 +952,7 @@ class GameUIManager extends EventEmitter { this.getBooleanSetting(Setting.TutorialCompleted) ) { notifManager.foundDeadSpace(chunk); - setBooleanSetting(account, Setting.FoundDeepSpace, true); + setBooleanSetting(config, Setting.FoundDeepSpace, true); } } } @@ -841,16 +983,22 @@ class GameUIManager extends EventEmitter { return this.mouseDownOverCoords; } - private setHoveringOverPlanet(planet: Planet | undefined) { + public setHoveringOverPlanet(planet: LocatablePlanet | undefined, inRenderer: boolean) { const lastHover = this.mouseHoveringOverPlanet; this.mouseHoveringOverPlanet = planet; if (lastHover?.locationId !== planet?.locationId) { this.hoverPlanetId$.publish(planet?.locationId); + this.planetHoveringInRenderer = inRenderer; } } + public setHoveringOverArtifact(artifactId?: ArtifactId) { + this.hoverArtifactId$.publish(artifactId); + this.hoverArtifact$.publish(artifactId ? this.getArtifactWithId(artifactId) : undefined); + } + public getHoveringOverPlanet(): Planet | undefined { return this.mouseHoveringOverPlanet; } @@ -859,18 +1007,69 @@ class GameUIManager extends EventEmitter { return this.mouseHoveringOverCoords; } - public getForcesSending(planetId: LocationId): number { - return this.forcesSending[planetId] || 50; + public isSendingForces(): boolean { + return this.isSending; } - public getSilverSending(planetId: LocationId): number { - return this.silverSending[planetId] || 0; + /** + * Percent from 0 to 100. + */ + public getForcesSending(planetId?: LocationId): number { + const defaultSending = 50; + if (!planetId) return defaultSending; + + if (this.isAbandoning()) return 100; + if (this.isSendingShip(planetId)) return 0; + + const forces = this.forcesSending[planetId]; + return forces ?? defaultSending; } - public getArtifactSending(planetId: LocationId): Artifact | undefined { + /** + * Percent from 0 to 100. + */ + public getSilverSending(planetId?: LocationId): number { + const defaultSending = 0; + if (!planetId) return defaultSending; + + if (this.isAbandoning()) return 100; + if (this.isSendingShip(planetId)) return 0; + + return this.silverSending[planetId] ?? defaultSending; + } + + public isAbandoning(): boolean { + return this.abandoning; + } + + public getArtifactSending(planetId?: LocationId): Artifact | undefined { + if (!planetId) return undefined; return this.artifactSending[planetId]; } + public getAbandonSpeedChangePercent(): number { + const { SPACE_JUNK_ENABLED, ABANDON_SPEED_CHANGE_PERCENT } = this.contractConstants; + if (SPACE_JUNK_ENABLED) { + return ABANDON_SPEED_CHANGE_PERCENT; + } else { + return 100; + } + } + + public getAbandonRangeChangePercent(): number { + const { SPACE_JUNK_ENABLED, ABANDON_RANGE_CHANGE_PERCENT } = this.contractConstants; + if (SPACE_JUNK_ENABLED) { + return ABANDON_RANGE_CHANGE_PERCENT; + } else { + return 100; + } + } + + public isSendingShip(planetId?: LocationId): boolean { + if (!planetId) return false; + return isSpaceShip(this.artifactSending[planetId]?.artifactType); + } + public isOverOwnPlanet(coords: WorldCoords): Planet | undefined { const res = this.viewportEntities.getNearestVisiblePlanet(coords); const planet: LocatablePlanet | undefined = res; @@ -888,15 +1087,19 @@ class GameUIManager extends EventEmitter { return this.getMyArtifacts().filter((a) => !a.onPlanetId); } - public getPlanetWithId(planetId: LocationId): Planet | undefined { + public getPlanetWithId(planetId: LocationId | undefined): Planet | undefined { return this.gameManager.getPlanetWithId(planetId); } - public getMyScore(): number { + public getMyScore(): number | undefined { return this.gameManager.getMyScore(); } - public getArtifactWithId(artifactId: ArtifactId): Artifact | undefined { + public getPlayer(address?: EthAddress): Player | undefined { + return this.gameManager.getPlayer(address); + } + + public getArtifactWithId(artifactId: ArtifactId | undefined): Artifact | undefined { return this.gameManager.getArtifactWithId(artifactId); } @@ -904,7 +1107,7 @@ class GameUIManager extends EventEmitter { return coords && this.gameManager.getPlanetWithCoords(coords); } - public getArtifactsWithIds(artifactIds: ArtifactId[]): Array { + public getArtifactsWithIds(artifactIds?: ArtifactId[]): Array { return this.gameManager.getArtifactsWithIds(artifactIds); } @@ -925,17 +1128,25 @@ class GameUIManager extends EventEmitter { return this.gameManager.getAllVoyages(); } + public getSpeedBuff(): number { + return this.gameManager.getSpeedBuff(this.abandoning); + } + + public getRangeBuff(): number { + return this.gameManager.getRangeBuff(this.abandoning); + } + /** * @todo delete this. now that {@link GameObjects} is publically accessible, we shouldn't need to * drill fields like this anymore. * @tutorial Plugin developers, please access fields like this with something like {@code df.getGameObjects().} * @deprecated */ - getUnconfirmedMoves(): UnconfirmedMove[] { + public getUnconfirmedMoves(): Transaction[] { return this.gameManager.getUnconfirmedMoves(); } - public getUnconfirmedUpgrades(): UnconfirmedUpgrade[] { + public getUnconfirmedUpgrades(): Transaction[] { return this.gameManager.getUnconfirmedUpgrades(); } @@ -943,7 +1154,7 @@ class GameUIManager extends EventEmitter { return this.gameManager.getNextRevealCountdownInfo().currentlyRevealing; } - public getUnconfirmedWormholeActivations(): UnconfirmedActivateArtifact[] { + public getUnconfirmedWormholeActivations(): Transaction[] { return this.gameManager.getUnconfirmedWormholeActivations(); } @@ -963,6 +1174,14 @@ class GameUIManager extends EventEmitter { return this.viewportEntities.getPlanetsAndChunks(); } + public getCaptureZones() { + return this.gameManager.getCaptureZones(); + } + + public getCaptureZoneGenerator() { + return this.gameManager.getCaptureZoneGenerator(); + } + public getIsHighPerfMode(): boolean { const account = this.getAccount(); @@ -999,8 +1218,8 @@ class GameUIManager extends EventEmitter { return this.gameManager.getEnergyOfPlayer(player); } - public getWithdrawnSilverOfPlayer(player: EthAddress): number { - return this.gameManager.getWithdrawnSilverOfPlayer(player); + public getPlayerScore(player: EthAddress): number | undefined { + return this.gameManager.getPlayerScore(player); } public upgrade(planet: Planet, branch: number): void { @@ -1015,22 +1234,6 @@ class GameUIManager extends EventEmitter { this.gameManager.buyHat(planet.locationId); } - public buyGPTCredits(amount: number) { - this.gameManager.buyGPTCredits(amount); - } - - public getGptCreditPriceEmitter(): Monomitter { - return this.gameManager.getGptCreditPriceEmitter(); - } - - public getGptCreditBalanceEmitter(): Monomitter { - return this.gameManager.getGptCreditBalanceEmitter(); - } - - public getIsBuyingCreditsEmitter(): Monomitter { - return this.gameManager.getIsBuyingCreditsEmitter(); - } - // non-nullable public getHomeCoords(): WorldCoords { return this.gameManager.getHomeCoords() || { x: 0, y: 0 }; @@ -1098,10 +1301,26 @@ class GameUIManager extends EventEmitter { return this.terminal.current; } - public getContractConstants(): ContractConstants { + public get contractConstants(): ContractConstants { return this.gameManager.getContractConstants(); } + public getSpaceJunkEnabled(): boolean { + return this.contractConstants.SPACE_JUNK_ENABLED; + } + + public get captureZonesEnabled(): boolean { + return this.contractConstants.CAPTURE_ZONES_ENABLED; + } + + public potentialCaptureScore(planetLevel: number): number { + return this.contractConstants.CAPTURE_ZONE_PLANET_LEVEL_SCORE[planetLevel]; + } + + public getDefaultSpaceJunkForPlanetLevel(level: number): number { + return this.contractConstants.PLANET_LEVEL_JUNK[level]; + } + public getPerlinConfig(isBiome = false): PerlinConfig { const hashConfig = this.gameManager.getHashConfig(); const key = isBiome ? hashConfig.biomebaseKey : hashConfig.spaceTypeKey; @@ -1127,17 +1346,17 @@ class GameUIManager extends EventEmitter { // internal utils private updatePlanets() { - if (this.selectedPlanet) { - this.selectedPlanet = this.gameManager.getPlanetWithId(this.selectedPlanet.locationId); - } if (this.mouseDownOverPlanet) { this.mouseDownOverPlanet = this.gameManager.getPlanetWithId( this.mouseDownOverPlanet.locationId - ); + ) as LocatablePlanet; } if (this.mouseHoveringOverPlanet) { this.setHoveringOverPlanet( - this.gameManager.getPlanetWithId(this.mouseHoveringOverPlanet.locationId) + this.gameManager.getPlanetWithId( + this.mouseHoveringOverPlanet.locationId + ) as LocatablePlanet, + true ); } } @@ -1153,7 +1372,7 @@ class GameUIManager extends EventEmitter { this.mouseHoveringOverCoords = res.location.coords; } - this.setHoveringOverPlanet(hoveringPlanet); + this.setHoveringOverPlanet(hoveringPlanet, true); this.mouseHoveringOverCoords = { x: Math.round(this.mouseHoveringOverCoords.x), @@ -1173,6 +1392,93 @@ class GameUIManager extends EventEmitter { public getGameManager(): GameManager { return this.gameManager; } + + private setModalManager(modalManager: ModalManager) { + this.modalManager = modalManager; + } + + public getModalManager(): ModalManager { + return this.modalManager; + } + + /** + * If there is a planet being hovered over, returns whether or not it's being hovered + * over in the renderer. + */ + public getPlanetHoveringInRenderer() { + return this.planetHoveringInRenderer; + } + + public getRenderer(): Renderer | null { + return Renderer.instance; + } + + getPaused(): boolean { + return this.gameManager.getPaused(); + } + + getPaused$(): Monomitter { + return this.gameManager.getPaused$(); + } + + public getSilverScoreValue(): number { + return this.contractConstants.SILVER_SCORE_VALUE; + } + + public getArtifactPointValues() { + return this.contractConstants.ARTIFACT_POINT_VALUES; + } + + public getCaptureZonePointValues() { + return this.contractConstants.CAPTURE_ZONE_PLANET_LEVEL_SCORE; + } + + public getArtifactUpdated$() { + return this.gameManager.getArtifactUpdated$(); + } + + public getUIEmitter() { + return UIEmitter.getInstance(); + } + + /** + * @returns - A wrapper class for the WebGL2RenderingContext. + */ + public getGlManager(): GameGLManager | null { + const renderer = this.getRenderer(); + if (renderer) return renderer.glManager; + return null; + } + + /** + * @returns the CanvasRenderingContext2D for the game canvas. + */ + public get2dRenderer(): CanvasRenderingContext2D | null { + const renderer = this.getRenderer(); + if (renderer) return renderer.get2DRenderer(); + return null; + } + + /** + * Replaces the current renderer with the passed in custom renderer and adds the renderer + * to the rendering stack. The function will automatically determine which renderer it is + * by the rendererType and the methods in the renderer. + * @param customRenderer - a Renderer that follows one of the 23 renderer tempaltes + */ + public setCustomRenderer(customRenderer: BaseRenderer) { + const renderer = this.getRenderer(); + if (renderer) renderer.addCustomRenderer(customRenderer); + } + + /** + * This function will remove the passed in renderer from the renderering stack. If the + * renderer is on top of the renderering stack the next renderer will be the one bellow it. + * @param customRenderer - a Renderer that follows one of the 23 renderer tempaltes + */ + public disableCustomRenderer(customRenderer: BaseRenderer) { + const renderer = this.getRenderer(); + if (renderer) renderer.removeCustomRenderer(customRenderer); + } } export default GameUIManager; diff --git a/src/Backend/GameLogic/InitialGameStateDownloader.ts b/src/Backend/GameLogic/InitialGameStateDownloader.ts deleted file mode 100644 index 866e5f51..00000000 --- a/src/Backend/GameLogic/InitialGameStateDownloader.ts +++ /dev/null @@ -1,189 +0,0 @@ -import { - VoyageId, - QueuedArrival, - LocationId, - ArtifactId, - Artifact, - Player, - RevealedCoords, - Planet, -} from '@darkforest_eth/types'; -import _ from 'lodash'; -import React from 'react'; -import { LoadingBarHandle } from '../../Frontend/Components/TextLoadingBar'; -import { MakeDarkForestTips } from '../../Frontend/Views/DarkForestTips'; -import { TerminalHandle } from '../../Frontend/Views/Terminal'; -import { ContractConstants } from '../../_types/darkforest/api/ContractsAPITypes'; -import PersistentChunkStore from '../Storage/PersistentChunkStore'; -import ContractsAPI from './ContractsAPI'; - -export interface InitialGameState { - contractConstants: ContractConstants; - players: Map; - worldRadius: number; - gptCreditPriceEther: number; - myGPTCredits: number; - allTouchedPlanetIds: LocationId[]; - allRevealedCoords: RevealedCoords[]; - pendingMoves: QueuedArrival[]; - touchedAndLocatedPlanets: Map; - artifactsOnVoyages: Artifact[]; - myArtifacts: Artifact[]; - heldArtifacts: Artifact[][]; - loadedPlanets: LocationId[]; - balance: number; - revealedCoordsMap: Map; - planetVoyageIdMap: Map; - arrivals: Map; -} - -export class InitialGameStateDownloader { - private terminal: TerminalHandle; - - public constructor(terminal: TerminalHandle) { - this.terminal = terminal; - } - - private makeProgressListener(prettyEntityName: string) { - const ref = React.createRef(); - this.terminal.printLoadingBar(prettyEntityName, ref); - this.terminal.newline(); - - return (percent: number) => { - ref.current?.setFractionCompleted(percent); - }; - } - - async download( - contractsAPI: ContractsAPI, - persistentChunkStore: PersistentChunkStore - ): Promise { - const storedTouchedPlanetIds = await persistentChunkStore.getSavedTouchedPlanetIds(); - const storedRevealedCoords = await persistentChunkStore.getSavedRevealedCoords(); - - this.terminal.printElement(MakeDarkForestTips()); - this.terminal.newline(); - - const planetIdsLoadingBar = this.makeProgressListener('Planet IDs'); - const playersLoadingBar = this.makeProgressListener('Players'); - const revealedPlanetsLoadingBar = this.makeProgressListener('Revealed Planet IDs'); - const revealedPlanetsCoordsLoadingBar = this.makeProgressListener( - 'Revealed Planet Coordinates' - ); - const pendingMovesLoadingBar = this.makeProgressListener('Pending Moves'); - const planetsLoadingBar = this.makeProgressListener('Planets'); - const planetsMetadataLoadingBar = this.makeProgressListener('Planet Metadatas'); - const artifactsOnPlanetsLoadingBar = this.makeProgressListener('Artifacts On Planets'); - const artifactsInFlightLoadingBar = this.makeProgressListener('Artifacts On Moves'); - const yourArtifactsLoadingBar = this.makeProgressListener('Your Artifacts'); - - const contractConstants = contractsAPI.getConstants(); - const worldRadius = contractsAPI.getWorldRadius(); - const gptCreditPriceEther = contractsAPI.getGPTCreditPriceEther(); - const myGPTCredits = contractsAPI.getGPTCreditBalance(contractsAPI.getAccount()); - const balance = contractsAPI.getBalance(); - - const players = contractsAPI.getPlayers(playersLoadingBar); - - const arrivals: Map = new Map(); - const planetVoyageIdMap: Map = new Map(); - - const minedChunks = Array.from(await persistentChunkStore.allChunks()); - const minedPlanetIds = new Set( - _.flatMap(minedChunks, (c) => c.planetLocations).map((l) => l.hash) - ); - - const loadedTouchedPlanetIds = contractsAPI.getTouchedPlanetIds( - storedTouchedPlanetIds.length, - planetIdsLoadingBar - ); - - const loadedRevealedCoords = contractsAPI.getRevealedPlanetsCoords( - storedRevealedCoords.length, - revealedPlanetsLoadingBar, - revealedPlanetsCoordsLoadingBar - ); - - const allTouchedPlanetIds = storedTouchedPlanetIds.concat(await loadedTouchedPlanetIds); - const allRevealedCoords = storedRevealedCoords.concat(await loadedRevealedCoords); - const revealedCoordsMap = new Map(); - for (const revealedCoords of allRevealedCoords) { - revealedCoordsMap.set(revealedCoords.hash, revealedCoords); - } - - let planetsToLoad = allTouchedPlanetIds.filter( - (id) => minedPlanetIds.has(id) || revealedCoordsMap.has(id) - ); - - const pendingMoves = await contractsAPI.getAllArrivals(planetsToLoad, pendingMovesLoadingBar); - - // add origin points of voyages to known planets, because we need to know origin owner to render - // the shrinking / incoming circle - for (const arrival of pendingMoves) { - planetsToLoad.push(arrival.fromPlanet); - } - planetsToLoad = [...new Set(planetsToLoad)]; - - const touchedAndLocatedPlanets = await contractsAPI.bulkGetPlanets( - planetsToLoad, - planetsLoadingBar, - planetsMetadataLoadingBar - ); - - touchedAndLocatedPlanets.forEach((_planet, locId) => { - if (touchedAndLocatedPlanets.has(locId)) { - planetVoyageIdMap.set(locId, []); - } - }); - - for (const arrival of pendingMoves) { - const voyageIds = planetVoyageIdMap.get(arrival.toPlanet); - if (voyageIds) { - voyageIds.push(arrival.eventId); - planetVoyageIdMap.set(arrival.toPlanet, voyageIds); - } - arrivals.set(arrival.eventId, arrival); - } - - const artifactIdsOnVoyages: ArtifactId[] = []; - for (const arrival of pendingMoves) { - if (arrival.artifactId) { - artifactIdsOnVoyages.push(arrival.artifactId); - } - } - - const artifactsOnVoyages = await contractsAPI.bulkGetArtifacts( - artifactIdsOnVoyages, - artifactsInFlightLoadingBar - ); - - const heldArtifacts = contractsAPI.bulkGetArtifactsOnPlanets( - planetsToLoad, - artifactsOnPlanetsLoadingBar - ); - const myArtifacts = contractsAPI.getPlayerArtifacts( - contractsAPI.getAccount(), - yourArtifactsLoadingBar - ); - - return { - contractConstants: await contractConstants, - players: await players, - worldRadius: await worldRadius, - gptCreditPriceEther: await gptCreditPriceEther, - myGPTCredits: await myGPTCredits, - allTouchedPlanetIds, - allRevealedCoords, - pendingMoves, - touchedAndLocatedPlanets, - artifactsOnVoyages, - myArtifacts: await myArtifacts, - heldArtifacts: await heldArtifacts, - loadedPlanets: planetsToLoad, - balance: await balance, - revealedCoordsMap, - planetVoyageIdMap, - arrivals, - }; - } -} diff --git a/src/Backend/GameLogic/InitialGameStateDownloader.tsx b/src/Backend/GameLogic/InitialGameStateDownloader.tsx new file mode 100644 index 00000000..d0daf097 --- /dev/null +++ b/src/Backend/GameLogic/InitialGameStateDownloader.tsx @@ -0,0 +1,252 @@ +import { + Artifact, + ArtifactId, + ClaimedCoords, + LocationId, + Planet, + Player, + QueuedArrival, + RevealedCoords, + VoyageId, +} from '@darkforest_eth/types'; +import _ from 'lodash'; +import React from 'react'; +import { Link } from '../../Frontend/Components/CoreUI'; +import { LoadingBarHandle } from '../../Frontend/Components/TextLoadingBar'; +import { DarkForestTips } from '../../Frontend/Views/DarkForestTips'; +import { TerminalHandle } from '../../Frontend/Views/Terminal'; +import { ContractConstants } from '../../_types/darkforest/api/ContractsAPITypes'; +import { AddressTwitterMap } from '../../_types/darkforest/api/UtilityServerAPITypes'; +import { tryGetAllTwitters } from '../Network/UtilityServerAPI'; +import PersistentChunkStore from '../Storage/PersistentChunkStore'; +import { ContractsAPI } from './ContractsAPI'; + +export interface InitialGameState { + contractConstants: ContractConstants; + players: Map; + worldRadius: number; + allTouchedPlanetIds: LocationId[]; + allRevealedCoords: RevealedCoords[]; + allClaimedCoords?: ClaimedCoords[]; + pendingMoves: QueuedArrival[]; + touchedAndLocatedPlanets: Map; + artifactsOnVoyages: Artifact[]; + myArtifacts: Artifact[]; + heldArtifacts: Artifact[][]; + loadedPlanets: LocationId[]; + revealedCoordsMap: Map; + claimedCoordsMap?: Map; + planetVoyageIdMap: Map; + arrivals: Map; + twitters: AddressTwitterMap; + paused: boolean; +} + +export class InitialGameStateDownloader { + private terminal: TerminalHandle; + + public constructor(terminal: TerminalHandle) { + this.terminal = terminal; + } + + private makeProgressListener(prettyEntityName: string) { + const ref = React.createRef(); + this.terminal.printLoadingBar(prettyEntityName, ref); + this.terminal.newline(); + + return (percent: number) => { + ref.current?.setFractionCompleted(percent); + }; + } + + async download( + contractsAPI: ContractsAPI, + persistentChunkStore: PersistentChunkStore + ): Promise { + const isDev = process.env.NODE_ENV !== 'production'; + + /** + * In development we use the same contract address every time we deploy, + * so storage is polluted with the IDs of old universes. + */ + const storedTouchedPlanetIds = isDev + ? [] + : await persistentChunkStore.getSavedTouchedPlanetIds(); + const storedRevealedCoords = isDev ? [] : await persistentChunkStore.getSavedRevealedCoords(); + + this.terminal.printElement(); + this.terminal.newline(); + + const planetIdsLoadingBar = this.makeProgressListener('Planet IDs'); + const playersLoadingBar = this.makeProgressListener('Players'); + const revealedPlanetsLoadingBar = this.makeProgressListener('Revealed Planet IDs'); + const revealedPlanetsCoordsLoadingBar = this.makeProgressListener( + 'Revealed Planet Coordinates' + ); + + const pendingMovesLoadingBar = this.makeProgressListener('Pending Moves'); + const planetsLoadingBar = this.makeProgressListener('Planets'); + const planetsMetadataLoadingBar = this.makeProgressListener('Planet Metadatas'); + const artifactsOnPlanetsLoadingBar = this.makeProgressListener('Artifacts On Planets'); + const artifactsInFlightLoadingBar = this.makeProgressListener('Artifacts On Moves'); + const yourArtifactsLoadingBar = this.makeProgressListener('Your Artifacts'); + + const contractConstants = contractsAPI.getConstants(); + const worldRadius = contractsAPI.getWorldRadius(); + + const players = contractsAPI.getPlayers(playersLoadingBar); + + const arrivals: Map = new Map(); + const planetVoyageIdMap: Map = new Map(); + + const minedChunks = Array.from(await persistentChunkStore.allChunks()); + const minedPlanetIds = new Set( + _.flatMap(minedChunks, (c) => c.planetLocations).map((l) => l.hash) + ); + + const loadedTouchedPlanetIds = contractsAPI.getTouchedPlanetIds( + storedTouchedPlanetIds.length, + planetIdsLoadingBar + ); + + const loadedRevealedCoords = contractsAPI.getRevealedPlanetsCoords( + storedRevealedCoords.length, + revealedPlanetsLoadingBar, + revealedPlanetsCoordsLoadingBar + ); + const claimedCoordsMap = new Map(); + + const allTouchedPlanetIds = storedTouchedPlanetIds.concat(await loadedTouchedPlanetIds); + const allRevealedCoords = storedRevealedCoords.concat(await loadedRevealedCoords); + const revealedCoordsMap = new Map(); + for (const revealedCoords of allRevealedCoords) { + revealedCoordsMap.set(revealedCoords.hash, revealedCoords); + } + + let planetsToLoad = allTouchedPlanetIds.filter( + (id) => minedPlanetIds.has(id) || revealedCoordsMap.has(id) || claimedCoordsMap.has(id) + ); + + const pendingMoves = await contractsAPI.getAllArrivals(planetsToLoad, pendingMovesLoadingBar); + + // add origin points of voyages to known planets, because we need to know origin owner to render + // the shrinking / incoming circle + for (const arrival of pendingMoves) { + planetsToLoad.push(arrival.fromPlanet); + } + planetsToLoad = [...new Set(planetsToLoad)]; + + const touchedAndLocatedPlanets = await contractsAPI.bulkGetPlanets( + planetsToLoad, + planetsLoadingBar, + planetsMetadataLoadingBar + ); + + touchedAndLocatedPlanets.forEach((_planet, locId) => { + if (touchedAndLocatedPlanets.has(locId)) { + planetVoyageIdMap.set(locId, []); + } + }); + + for (const arrival of pendingMoves) { + const voyageIds = planetVoyageIdMap.get(arrival.toPlanet); + if (voyageIds) { + voyageIds.push(arrival.eventId); + planetVoyageIdMap.set(arrival.toPlanet, voyageIds); + } + arrivals.set(arrival.eventId, arrival); + } + + const artifactIdsOnVoyages: ArtifactId[] = []; + for (const arrival of pendingMoves) { + if (arrival.artifactId) { + artifactIdsOnVoyages.push(arrival.artifactId); + } + } + + const artifactsOnVoyages = await contractsAPI.bulkGetArtifacts( + artifactIdsOnVoyages, + artifactsInFlightLoadingBar + ); + + const heldArtifacts = contractsAPI.bulkGetArtifactsOnPlanets( + planetsToLoad, + artifactsOnPlanetsLoadingBar + ); + const myArtifacts = contractsAPI.getPlayerArtifacts( + contractsAPI.getAddress(), + yourArtifactsLoadingBar + ); + + const twitters = await tryGetAllTwitters(); + const paused = contractsAPI.getIsPaused(); + + const initialState: InitialGameState = { + contractConstants: await contractConstants, + players: await players, + worldRadius: await worldRadius, + allTouchedPlanetIds, + allRevealedCoords, + pendingMoves, + touchedAndLocatedPlanets, + artifactsOnVoyages, + myArtifacts: await myArtifacts, + heldArtifacts: await heldArtifacts, + loadedPlanets: planetsToLoad, + revealedCoordsMap, + claimedCoordsMap, + planetVoyageIdMap, + arrivals, + twitters, + paused: await paused, + }; + + return initialState; + } +} + +const tips = [ + 'Beware of pirates! To capture a planet with pirates, simply send an attack large enough to overcome its current energy.', + <> + Navigate the Dark Forest with allies (and enemies) - join the{' '} + Dark Forest Discord! + , + 'There are many different artifact types, each with unique properties... try activating one on a planet!', + 'The top 63 players get NFT rewards at the end of each v0.6 round!', + "There are many different ways to enjoy Dark Forest - as long as you're having fun, you're doing it right.", + 'Be careful when capturing planets - if you attack a player-owned planet, it may look like an act of war!', + 'A planet can have at most one active artifact.', + 'Withdrawing an artifact (via a Spacetime Rip) gives you full control of that artifact as an ERC 721 token. You can deposit artifacts you have withdrawn back into the universe via Spacetime Rips.', + 'You can use plugins to enhance your capabilities by automating repetitive tasks. The top players are probably using plugins (:', + 'Quasars can store lots of energy and silver, at the expense of being able to generate neither.', + 'Never share your private key with anyone else!', + 'Broadcasting a planet reveals its location to ALL other players!', + 'You can spend silver to upgrade your planets.', + 'Planets in Nebula are more difficult to capture than planets in Deep Space.', + 'Some of the universe is corrupted, and contains special versions of the artifacts.', + 'You can import and export maps! Be careful importing maps from others, they may contain fabricated map data.', + <> + If mining the universe is slow on your computer, you can try the Remote Miner plugin. Find that + and other plugins on plugins.zkga.me. + , + "A planet can only have 6 artifacts on it at any given time. Sometimes more if you get lucky. It's the blockchain, after all.", + 'A foundry must be prospected before you can attempt to find an artifact, but make sure to click "Find" before 256 blocks or it will be lost forever.', + 'Defense upgrades make your planets less vulnerable to attack, Range upgrades make your voyages go further and decay less, and Speed upgrades make your voyages go much faster.', + 'Wormhole artifacts reduce the effective distance between 2 planets. Try using them to link 2 planets very far apart!', + 'Upon deactivation, some artifacts must cooldown for a period before they can be activated again.', + 'Photoid Cannon artifacts will debuff your planet on activation, but get a massive stat boost for the first voyage from the planet after that a charging period. Photoid Cannon artifacts are destroyed upon use.', + "Planetary Shield artifacts will massively boost a planet's defense, but at the cost of energy and energy growth stats. Planetary Shield artifacts are destroyed upon deactivation.", + "Bloom Filter artifacts instantly set a planet's energy and silver to full, but are destroyed upon activation. Try using them on a Quasar!", + 'Dark Forest exists on the blockchain, so you can play with an entirely different client if you want.', + <> + Writing plugins? Check out some documentation{' '} + + here + {' '} + and{' '} + + here + + . + , +]; diff --git a/src/Backend/GameLogic/LayeredMap.ts b/src/Backend/GameLogic/LayeredMap.ts index db9c06e3..d318f056 100644 --- a/src/Backend/GameLogic/LayeredMap.ts +++ b/src/Backend/GameLogic/LayeredMap.ts @@ -1,7 +1,6 @@ -import { LocationId, PlanetLevel, WorldLocation } from '@darkforest_eth/types'; -import { QuadTree, Box, Point } from 'js-quadtree'; -import { QuadTreeConfig } from 'js-quadtree/dist/types'; -import { Radii } from './ViewportEntities'; +import { MAX_PLANET_LEVEL, MIN_PLANET_LEVEL } from '@darkforest_eth/constants'; +import { LocationId, Radii, WorldCoords, WorldLocation } from '@darkforest_eth/types'; +import { Box, Circle, Point, QuadTree } from 'js-quadtree'; /** * For every point in each of the planet quadtrees, we store a pointer to the planet. @@ -28,9 +27,9 @@ export class LayeredMap { this.perLevelPlanetQuadtrees = new Map(); this.insertedLocations = new Set(); - for (let i = PlanetLevel.MIN; i <= PlanetLevel.MAX; i++) { - const config: QuadTreeConfig = { - maximumDepth: i <= 3 ? 15 : 10, + for (let i = MIN_PLANET_LEVEL; i <= MAX_PLANET_LEVEL; i++) { + const config = { + maximumDepth: 10, removeEmptyNodes: true, }; @@ -51,6 +50,19 @@ export class LayeredMap { this.insertedLocations.add(location.hash); } + /** + * Gets all the planets within the given world radius of a world location. + */ + public getPlanetsInCircle(coords: WorldCoords, worldRadius: number): LocationId[] { + const results = []; + for (const quad of this.perLevelPlanetQuadtrees.values()) { + results.push( + ...quad.query(new Circle(coords.x, coords.y, worldRadius)).map(this.getPointLocationId) + ); + } + return results; + } + /** * Gets the ids of all the planets that are both within the given bounding box (defined by its bottom * left coordinate, width, and height) in the world and of a level that was passed in via the @@ -78,14 +90,15 @@ export class LayeredMap { ); const planets = - this.perLevelPlanetQuadtrees - .get(level) - ?.query(bounds) - .map((p) => (p.data as PlanetPointData).locationId) || []; + this.perLevelPlanetQuadtrees.get(level)?.query(bounds).map(this.getPointLocationId) || []; result.push(...planets); } return result; } + + private getPointLocationId(point: Point): LocationId { + return (point.data as PlanetPointData).locationId; + } } diff --git a/src/Backend/GameLogic/PaidConversationManager.tsx b/src/Backend/GameLogic/PaidConversationManager.tsx deleted file mode 100644 index 33d5f879..00000000 --- a/src/Backend/GameLogic/PaidConversationManager.tsx +++ /dev/null @@ -1,211 +0,0 @@ -import React from 'react'; -import styled from 'styled-components'; -import { Artifact, Conversation, Message, ArtifactNames } from '@darkforest_eth/types'; -import { WikiPane } from '../../Frontend/Panes/WikiPane'; -import { TerminalTextStyle } from '../../Frontend/Utils/TerminalTypes'; -import { TerminalHandle } from '../../Frontend/Views/Terminal'; -import GameUIManager from './GameUIManager'; -import { artifactName } from '../Procedural/ArtifactProcgen'; - -const BadwordsFilter = require('bad-words'); -const filter = new BadwordsFilter(); - -const clean = (str: string): string => filter.clean(str); - -export class PaidConversationManager { - private gameUIManager: GameUIManager; - private terminal: React.MutableRefObject; - private conversation: Conversation | undefined; - private setConversation: (conversation: Conversation | undefined) => void; - private setLoading: (loading: boolean) => void; - private artifact: Artifact; - - constructor( - gameUIManager: GameUIManager, - terminal: React.MutableRefObject, - setConversation: (conversation: Conversation) => void, - setLoading: (loading: boolean) => void, - artifact: Artifact - ) { - this.gameUIManager = gameUIManager; - this.terminal = terminal; - this.setConversation = setConversation; - this.setLoading = setLoading; - this.artifact = artifact; - } - - public getQuestionsRemaining() { - return ( - this.conversation && - this.conversation.questionsAllowed - - this.conversation.messages.filter((m) => m.entity === 'AI').length - ); - } - - public async start() { - this.terminal.current?.printLoadingSpinner(); - const existingConversation = await this.gameUIManager.getConversation(this.artifact.id); - this.terminal.current?.removeLast(2); - - this.conversation = existingConversation; - this.setConversation(existingConversation); - - if (this.conversation) { - this.printAllMessages(); - } else { - while (true) { - this.terminal.current?.println('Press Enter to Begin Chat...'); - await this.terminal.current?.getInput(); - this.terminal.current?.println( - `Initializing conversation with ${artifactName(this.artifact)} (${ - ArtifactNames[this.artifact.artifactType] - })` - ); - - this.terminal.current?.printLoadingSpinner(); - - try { - this.setLoading(true); - this.conversation = await this.gameUIManager.startConversation(this.artifact.id); - this.setConversation(this.conversation); - this.terminal.current?.removeLast(2); - this.terminal.current?.newline(); - this.printMessage(this.conversation.messages[0]); - break; - } catch (e) { - this.terminal.current?.removeLast(2); - this.terminal.current?.println(e.message, TerminalTextStyle.Red); - this.terminal.current?.newline(); - } finally { - this.setLoading(false); - } - } - } - - while (true) { - const questionsRemaining = this.getQuestionsRemaining(); - - if (questionsRemaining !== undefined && questionsRemaining <= 0) { - this.printMessage({ - entity: 'AI', - message: - 'My translation mechanisms are failing. See you at the heat death of the universe.', - highlights: [], - }); - this.terminal.current?.println('[LINK DISCONNECTED]', TerminalTextStyle.Green); - this.terminal.current?.println('No questions remaining.'); - this.terminal.current?.newline(); - this.terminal.current?.setUserInputEnabled(false); - return; - } - - const input = - (await this.terminal.current?.getInput()) || ''; /* filter to see if input is valid */ - if (input.length > 200) { - this.terminal.current?.println( - `Input too long. ${input.length} chars received. (Max 200)`, - TerminalTextStyle.Red - ); - } else if (filter.isProfane(input)) { - this.terminal.current?.println( - 'Profane words detected. Please try again.', - TerminalTextStyle.Red - ); - } else { - /* if valid, send to gpt */ - try { - this.terminal.current?.printLoadingSpinner(); - - this.setLoading(true); - const nextConvo = await this.gameUIManager.stepConversation(this.artifact.id, input); - if (nextConvo) { - this.conversation = nextConvo; - this.setConversation(this.conversation); - } else { - throw new Error('unable to step conversation'); - } - } catch (e) { - this.terminal.current?.removeLast(2); - this.terminal.current?.println(e.message, TerminalTextStyle.Red); - this.terminal.current?.newline(); - continue; - } finally { - this.setLoading(false); - } - - // remove newline, loading spinner, newline, input view, prompt character - this.terminal.current?.removeLast(5); - - // re-print last user message as if it we loaded it from the webserver, not as if it was just inputted - // into the terminal - const lastUserMessage = this.conversation.messages[this.conversation.messages.length - 2]; - this.printMessage(lastUserMessage); - - // also print the last artifact message - const lastArtifactMessage = - this.conversation.messages[this.conversation.messages.length - 1]; - this.printMessage(lastArtifactMessage); - } - } - } - - private printClean( - message: string, - style?: TerminalTextStyle, - hoverContents?: () => JSX.Element - ) { - let cleanedVersion = message; - - if (message !== null && message.length !== 0) { - cleanedVersion = clean(message); - } - - this.terminal.current?.print(cleanedVersion, style, hoverContents); - } - - private printAllMessages() { - this.conversation?.messages?.forEach((m) => this.printMessage(m)); - } - - private printMessage(message: Message) { - if (message.entity === 'AI') { - this.terminal.current?.print(artifactName(this.artifact), TerminalTextStyle.Blue); - this.terminal.current?.print(': '); - } else { - this.terminal.current?.print('Adventurer', TerminalTextStyle.White); - this.terminal.current?.print(': '); - } - - if (message.highlights.length === 0) { - this.printClean(message.message); - } else { - let cursor = 0; - for (const highlight of message.highlights) { - this.printClean(message.message.substr(cursor, highlight.start - cursor)); - this.printClean( - message.message.substr(highlight.start, highlight.stop - highlight.start), - TerminalTextStyle.Hoverable, - () => ( - - {highlight.entry.name} - {highlight.entry.definition} - - ) - ); - cursor = highlight.stop; - } - this.printClean(message.message.substr(cursor, message.message.length - cursor)); - } - - this.terminal.current?.newline(); - this.terminal.current?.newline(); - } -} - -const WikiEntryTitle = styled.div` - font-weight: bold; - font-size: 150%; - margin-bottom: 8px; - text-decoration: underline; - color: white; -`; diff --git a/src/Backend/GameLogic/PluginManager.tsx b/src/Backend/GameLogic/PluginManager.tsx index f21f1117..95217d54 100644 --- a/src/Backend/GameLogic/PluginManager.tsx +++ b/src/Backend/GameLogic/PluginManager.tsx @@ -1,7 +1,8 @@ -import { Monomitter, monomitter } from '../../Frontend/Utils/Monomitter'; -import { getEmbeddedPlugins, EmbeddedPlugin } from '../Plugins/EmbeddedPluginLoader'; +import { Monomitter, monomitter } from '@darkforest_eth/events'; +import { PluginId } from '@darkforest_eth/types'; +import { EmbeddedPlugin, getEmbeddedPlugins } from '../Plugins/EmbeddedPluginLoader'; import { PluginProcess } from '../Plugins/PluginProcess'; -import { SerializedPlugin, PluginId } from '../Plugins/SerializedPlugin'; +import { SerializedPlugin } from '../Plugins/SerializedPlugin'; import GameManager from './GameManager'; /** @@ -36,11 +37,10 @@ export class PluginManager { private pluginLibrary: SerializedPlugin[]; /** - * Plugins that are currently loaded into the game, and are rendering into a - * window. `PluginsManager` makes sure that when a plugin starts executing, it - * is added into `pluginInstances`, and that once a plugin is unloaded, its - * `.destroy()` method is called, and that the plugin is removed from - * `pluginInstances`. + * Plugins that are currently loaded into the game, and are rendering into a modal. + * `PluginsManager` makes sure that when a plugin starts executing, it is added into + * `pluginInstances`, and that once a plugin is unloaded, its `.destroy()` method is called, and + * that the plugin is removed from `pluginInstances`. */ private pluginProcesses: Record; @@ -88,11 +88,14 @@ export class PluginManager { * Load all plugins from this disk into `pluginLibrary`. Insert the default * plugins into the player's library if the default plugins have never been * added before. Effectively idempotent after the first time you call it. + * @param isAdmin Is an admin loading the plugins. + * @param overwriteEmbeddedPlugins Reload all embedded plugins even if a local copy is found. + * Useful for plugin development. */ - public async load(): Promise { + public async load(isAdmin: boolean, overwriteEmbeddedPlugins: boolean): Promise { this.pluginLibrary = await this.gameManager.loadPlugins(); - this.onNewEmbeddedPlugins(getEmbeddedPlugins()); + this.onNewEmbeddedPlugins(getEmbeddedPlugins(isAdmin), overwriteEmbeddedPlugins); this.notifyPluginLibraryUpdated(); } @@ -287,10 +290,12 @@ export class PluginManager { return this.pluginLibrary.some((p) => p.id === plugin.id); } - private onNewEmbeddedPlugins(newPlugins: EmbeddedPlugin[]) { + private onNewEmbeddedPlugins(newPlugins: EmbeddedPlugin[], overwriteEmbeddedPlugins: boolean) { for (const plugin of newPlugins) { if (!this.hasPlugin(plugin)) { this.addPluginToLibrary(plugin.id, plugin.name, plugin.code); + } else if (overwriteEmbeddedPlugins) { + this.overwritePlugin(plugin.name, plugin.code, plugin.id); } } } diff --git a/src/Backend/GameLogic/TutorialManager.ts b/src/Backend/GameLogic/TutorialManager.ts index bacc7d18..a673be3c 100644 --- a/src/Backend/GameLogic/TutorialManager.ts +++ b/src/Backend/GameLogic/TutorialManager.ts @@ -1,24 +1,27 @@ -import { EthAddress } from '@darkforest_eth/types'; +import { Setting } from '@darkforest_eth/types'; import { EventEmitter } from 'events'; import NotificationManager from '../../Frontend/Game/NotificationManager'; -import { Setting, setBooleanSetting } from '../../Frontend/Utils/SettingsHooks'; +import { setBooleanSetting } from '../../Frontend/Utils/SettingsHooks'; import GameUIManager from './GameUIManager'; -export enum TutorialManagerEvent { +export const enum TutorialManagerEvent { StateChanged = 'StateChanged', } -export enum TutorialState { +export const enum TutorialState { None, HomePlanet, SendFleet, + SpaceJunk, + Spaceship, Deselect, ZoomOut, MinerMove, MinerPause, Terminal, HowToGetScore, + ScoringDetails, Valhalla, AlmostCompleted, @@ -29,13 +32,16 @@ class TutorialManager extends EventEmitter { static instance: TutorialManager; private tutorialState: TutorialState = TutorialState.None; - private constructor() { + private uiManager: GameUIManager; + + private constructor(uiManager: GameUIManager) { super(); + this.uiManager = uiManager; } - static getInstance() { + static getInstance(uiManager: GameUIManager) { if (!TutorialManager.instance) { - TutorialManager.instance = new TutorialManager(); + TutorialManager.instance = new TutorialManager(uiManager); } return TutorialManager.instance; @@ -52,17 +58,32 @@ class TutorialManager extends EventEmitter { } private advance() { - this.setTutorialState(Math.min(this.tutorialState + 1, TutorialState.Completed)); + let newState = Math.min(this.tutorialState + 1, TutorialState.Completed); + if (this.shouldSkipState(newState)) newState++; + + this.setTutorialState(newState); + } + + private shouldSkipState(state: TutorialState) { + return !this.uiManager.getSpaceJunkEnabled() && state === TutorialState.SpaceJunk; } - reset(account: EthAddress | undefined) { - setBooleanSetting(account, Setting.TutorialOpen, true); + reset() { + const config = { + contractAddress: this.uiManager.getContractAddress(), + account: this.uiManager.getAccount(), + }; + setBooleanSetting(config, Setting.TutorialOpen, true); this.setTutorialState(TutorialState.None); } - complete(gameUiManager: GameUIManager) { + complete() { this.setTutorialState(TutorialState.Completed); - setBooleanSetting(gameUiManager.getAccount(), Setting.TutorialCompleted, true); + const config = { + contractAddress: this.uiManager.getContractAddress(), + account: this.uiManager.getAccount(), + }; + setBooleanSetting(config, Setting.TutorialCompleted, true); } acceptInput(state: TutorialState) { diff --git a/src/Backend/GameLogic/ViewportEntities.ts b/src/Backend/GameLogic/ViewportEntities.ts index 40c114f7..21085693 100644 --- a/src/Backend/GameLogic/ViewportEntities.ts +++ b/src/Backend/GameLogic/ViewportEntities.ts @@ -1,20 +1,19 @@ -import { LocatablePlanet, LocationId, PlanetLevel, WorldCoords } from '@darkforest_eth/types'; +import { MAX_PLANET_LEVEL, MIN_PLANET_LEVEL } from '@darkforest_eth/constants'; +import { isLocatable } from '@darkforest_eth/gamelogic'; +import { + Chunk, + LocatablePlanet, + LocationId, + PlanetLevel, + PlanetRenderInfo, + Radii, + WorldCoords, +} from '@darkforest_eth/types'; import Viewport from '../../Frontend/Game/Viewport'; -import { Chunk, isLocatable } from '../../_types/global/GlobalTypes'; import { planetLevelToAnimationSpeed, sinusoidalAnimation } from '../Utils/Animation'; import GameManager from './GameManager'; import GameUIManager from './GameUIManager'; -export interface PlanetRenderInfo { - planet: LocatablePlanet; - radii: Radii; -} - -export interface Radii { - radiusWorld: number; - radiusPixels: number; -} - /** * Efficiently calculates which planets are in the viewport, and allows you to find the nearest * visible planet to the mouse. @@ -25,7 +24,6 @@ export class ViewportEntities { private cachedExploredChunks: Set = new Set(); private cachedPlanets: Map = new Map(); - private cachedPlanetsAsList: PlanetRenderInfo[] = []; public constructor(gameManager: GameManager, gameUIManager: GameUIManager) { this.gameManager = gameManager; @@ -42,10 +40,10 @@ export class ViewportEntities { public getPlanetsAndChunks() { this.updateLocationsAndChunks(); - this.cachedPlanetsAsList.forEach((p) => { + for (const p of this.cachedPlanets.values()) { p.planet.emojiBobAnimation?.update(); p.planet.emojiZoopAnimation?.update(); - }); + } return { chunks: this.cachedExploredChunks, @@ -85,11 +83,14 @@ export class ViewportEntities { } private async loadPlanetMessages() { - const planetIds = this.cachedPlanetsAsList + const planetIds = []; + for (const p of this.cachedPlanets.values()) { // by definition, only planets that are owned can have planet messages on them, so they must // also be 'in the contract' - .filter((p) => p.planet.isInContract) - .map((p) => p.planet.locationId); + if (p.planet.isInContract) { + planetIds.push(p.planet.locationId); + } + } this.gameManager.refreshServerPlanetStates(planetIds); } @@ -144,8 +145,6 @@ export class ViewportEntities { planet.planet.emojiBobAnimation = undefined; } } - - this.cachedPlanetsAsList = Array.from(this.cachedPlanets.values()); } /** @@ -161,7 +160,7 @@ export class ViewportEntities { const radii = this.getPlanetRadii(Viewport.getInstance()); let bestPlanet: LocatablePlanet | undefined; - for (const planetInfo of this.cachedPlanetsAsList) { + for (const planetInfo of this.cachedPlanets.values()) { const planet = planetInfo.planet; const distThreshold = radii.get(planet.planetLevel)?.radiusWorld as number; @@ -185,7 +184,7 @@ export class ViewportEntities { private getPlanetRadii(viewport: Viewport): Map { const result = new Map(); - for (let i = PlanetLevel.MIN; i <= PlanetLevel.MAX; i++) { + for (let i = MIN_PLANET_LEVEL; i <= MAX_PLANET_LEVEL; i++) { const radiusWorld = this.uiManager.getRadiusOfPlanetLevel(i as PlanetLevel); const radiusPixels = viewport.worldToCanvasDist(radiusWorld); @@ -202,11 +201,14 @@ export class ViewportEntities { private getVisiblePlanetLevels(viewport: Viewport) { const result = []; - for (let i = 0; i <= PlanetLevel.MAX; i++) { + const viewportWidthPx = viewport.worldToCanvasDist(viewport.getViewportWorldWidth()); + const minPlanetSize = viewportWidthPx > 40_000 ? 3 : 1; + + for (let i = 0; i <= MAX_PLANET_LEVEL; i++) { const radiusW = this.uiManager.getRadiusOfPlanetLevel(i as PlanetLevel); const radiusPx = viewport.worldToCanvasDist(radiusW); - if (radiusPx >= 1) { + if (radiusPx >= minPlanetSize) { result.push(i); } } diff --git a/src/Backend/Interfaces/DiagnosticUpdater.ts b/src/Backend/Interfaces/DiagnosticUpdater.ts deleted file mode 100644 index 9306dd8b..00000000 --- a/src/Backend/Interfaces/DiagnosticUpdater.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Diagnostics } from '../../Frontend/Panes/DiagnosticsPane'; - -/** - * Various parts of our codebase need to be able to self-report diagnostics. To enable them to do - * so, you must provide them with an object that conforms to this interface. Currently, the only - * implementation of this function is `GameManager`. However, in the future, we might want to stream - * a sample of these diagnostic updates to our backend, so that we can analyze performance, catch - * bugs, etc. - */ -export interface DiagnosticUpdater { - /** - * Updates the diagnostics using the provided updater function. - */ - updateDiagnostics: (updateFn: (d: Diagnostics) => void) => void; -} diff --git a/src/Backend/Miner/ChunkUtils.ts b/src/Backend/Miner/ChunkUtils.ts index fb3ec1ef..174b31fd 100644 --- a/src/Backend/Miner/ChunkUtils.ts +++ b/src/Backend/Miner/ChunkUtils.ts @@ -1,6 +1,5 @@ -import { BucketId, PersistedChunk, ChunkId } from '../../_types/darkforest/api/ChunkStoreTypes'; -import { Rectangle, Chunk } from '../../_types/global/GlobalTypes'; -import { WorldLocation, WorldCoords } from '@darkforest_eth/types'; +import { Chunk, Rectangle, WorldCoords, WorldLocation } from '@darkforest_eth/types'; +import { BucketId, ChunkId, PersistedChunk } from '../../_types/darkforest/api/ChunkStoreTypes'; /** * Deterministically assigns a bucket ID to a rectangle, based on its position and size in the diff --git a/src/Backend/Miner/MinerManager.ts b/src/Backend/Miner/MinerManager.ts index 709df3b2..5c0917c6 100644 --- a/src/Backend/Miner/MinerManager.ts +++ b/src/Backend/Miner/MinerManager.ts @@ -1,16 +1,22 @@ -import { Chunk, Rectangle, MinerWorkerMessage, HashConfig } from '../../_types/global/GlobalTypes'; -import Worker from 'worker-loader!./miner.worker'; +import { perlin } from '@darkforest_eth/hashing'; +import { Chunk, PerlinConfig, Rectangle } from '@darkforest_eth/types'; import { EventEmitter } from 'events'; import _ from 'lodash'; -import { MiningPattern } from './MiningPatterns'; -import { perlin, PerlinConfig } from '@darkforest_eth/hashing'; import { ChunkStore } from '../../_types/darkforest/api/ChunkStoreTypes'; +import { HashConfig, MinerWorkerMessage } from '../../_types/global/GlobalTypes'; import { getChunkKey } from './ChunkUtils'; +import { MiningPattern } from './MiningPatterns'; -export enum MinerManagerEvent { +export const enum MinerManagerEvent { DiscoveredNewChunk = 'DiscoveredNewChunk', } +export type workerFactory = () => Worker; + +function defaultWorker() { + return new Worker(new URL('./miner.worker.ts', import.meta.url)); +} + export class HomePlanetMinerChunkStore implements ChunkStore { private initPerlinMin: number; private initPerlinMax: number; @@ -65,7 +71,7 @@ class MinerManager extends EventEmitter { private useMockHash: boolean; private perlinOptions: PerlinConfig; private hashConfig: HashConfig; - private WorkerCtor: typeof Worker; + private workerFactory: workerFactory; private constructor( minedChunksStore: ChunkStore, @@ -74,7 +80,7 @@ class MinerManager extends EventEmitter { planetRarity: number, hashConfig: HashConfig, useMockHash: boolean, - WorkerCtor: typeof Worker + workerFactory: workerFactory ) { super(); this.minedChunksStore = minedChunksStore; @@ -90,7 +96,7 @@ class MinerManager extends EventEmitter { mirrorY: hashConfig.perlinMirrorY, floor: false, }; - this.WorkerCtor = WorkerCtor; + this.workerFactory = workerFactory; this.useMockHash = useMockHash; } @@ -118,7 +124,7 @@ class MinerManager extends EventEmitter { planetRarity: number, hashConfig: HashConfig, useMockHash = false, - WorkerCtor: typeof Worker = Worker + workerFactory: workerFactory = defaultWorker ): MinerManager { const minerManager = new MinerManager( chunkStore, @@ -127,7 +133,7 @@ class MinerManager extends EventEmitter { planetRarity, hashConfig, useMockHash, - WorkerCtor + workerFactory ); _.range(minerManager.cores).forEach((i) => minerManager.initWorker(i)); @@ -135,7 +141,7 @@ class MinerManager extends EventEmitter { } private initWorker(index: number): void { - this.workers[index] = new this.WorkerCtor(); + this.workers[index] = this.workerFactory(); this.workers[index].onmessage = (e: MessageEvent) => { // worker explored a slice of a chunk const [exploredChunk, jobId] = JSON.parse(e.data) as [Chunk, number]; @@ -185,7 +191,9 @@ class MinerManager extends EventEmitter { } public setCores(nCores: number): void { + const wasMining = this.isMining(); this.stopExplore(); + this.workers.map((x) => x.terminate()); this.workers = []; @@ -194,8 +202,12 @@ class MinerManager extends EventEmitter { } else { this.cores = nCores; } + _.range(this.cores).forEach((i) => this.initWorker(i)); - this.startExplore(); + + if (wasMining) { + this.startExplore(); + } } public startExplore(): void { @@ -288,7 +300,6 @@ class MinerManager extends EventEmitter { chunkFootprint: chunkToExplore, workerIndex, totalWorkers: this.workers.length, - planetRarity: this.planetRarity, jobId, useMockHash: this.useMockHash, ...this.hashConfig, diff --git a/src/Backend/Miner/MiningPatterns.ts b/src/Backend/Miner/MiningPatterns.ts index 2e30078e..47cc43eb 100644 --- a/src/Backend/Miner/MiningPatterns.ts +++ b/src/Backend/Miner/MiningPatterns.ts @@ -1,7 +1,6 @@ -import { Rectangle } from '../../_types/global/GlobalTypes'; -import { WorldCoords } from '@darkforest_eth/types'; +import { Rectangle, WorldCoords } from '@darkforest_eth/types'; -export enum MiningPatternType { +export const enum MiningPatternType { Home, Target, Spiral, @@ -9,6 +8,8 @@ export enum MiningPatternType { Grid, ETH, SwissCheese, + TowardsCenter, + TowardsCenterV2, } export interface MiningPattern { @@ -114,3 +115,210 @@ export class SwissCheesePattern implements MiningPattern { }; } } + +export class TowardsCenterPattern implements MiningPattern { + type: MiningPatternType = MiningPatternType.TowardsCenter; + fromChunk: Rectangle; + chunkSideLength: number; + private tipX: number; + private tipY: number; + private maxWidth = 1600; + + constructor(center: WorldCoords, chunkSize: number) { + const bottomLeftX = Math.floor(center.x / chunkSize) * chunkSize; + const bottomLeftY = Math.floor(center.y / chunkSize) * chunkSize; + const bottomLeft = { x: bottomLeftX, y: bottomLeftY }; + this.fromChunk = { + bottomLeft, + sideLength: chunkSize, + }; + if (bottomLeftX < 0) { + this.tipX = bottomLeftX + chunkSize; + } else { + this.tipX = bottomLeftX - chunkSize; + } + if (bottomLeftY < 0) { + this.tipY = bottomLeftY + chunkSize; + } else { + this.tipY = bottomLeftY - chunkSize; + } + this.chunkSideLength = chunkSize; + } + + nextChunk(chunk: Rectangle): Rectangle { + const homeX = this.fromChunk.bottomLeft.x; + const homeY = this.fromChunk.bottomLeft.y; + const currX = chunk.bottomLeft.x; + const currY = chunk.bottomLeft.y; + + const absHomeX = Math.abs(homeX); + const absHomeY = Math.abs(homeY); + const absTipX = Math.abs(this.tipX); + const absTipY = Math.abs(this.tipY); + const absCurrX = Math.abs(currX); + const absCurrY = Math.abs(currY); + + const endX = + currX <= 0 + ? Math.max(homeX, this.tipX - this.maxWidth) + : Math.min(homeX, this.tipX + this.maxWidth); + + const nextBottomLeft = { + x: currX, + y: currY, + }; + + if (currX === homeX && currY === homeY) { + nextBottomLeft.x = this.tipX; + nextBottomLeft.y = this.tipY; + } else if (currX === this.tipX && currY === this.tipY) { + if (currX < 0) { + nextBottomLeft.x = currX - this.chunkSideLength; + } else if (currX > 0) { + nextBottomLeft.x = currX + this.chunkSideLength; + } else { + // Exactly 0 + if (homeX < 0) { + nextBottomLeft.x = currX - this.chunkSideLength; + } else { + nextBottomLeft.x = currX + this.chunkSideLength; + } + } + } else if (absCurrX < absHomeX && currY === this.tipY && absCurrX - absTipX < this.maxWidth) { + if (currX < 0) { + nextBottomLeft.x = currX - this.chunkSideLength; + } else if (currX > 0) { + nextBottomLeft.x = currX + this.chunkSideLength; + } else { + // Exactly 0 + if (homeX < 0) { + nextBottomLeft.x = currX - this.chunkSideLength; + } else { + nextBottomLeft.x = currX + this.chunkSideLength; + } + } + } else if (currX === endX && currY === this.tipY) { + nextBottomLeft.x = this.tipX; + if (currY < 0) { + nextBottomLeft.y = currY - this.chunkSideLength; + } else if (currY > 0) { + nextBottomLeft.y = currY + this.chunkSideLength; + } else { + // Exactly 0 + if (homeY < 0) { + nextBottomLeft.y = currY - this.chunkSideLength; + } else { + nextBottomLeft.y = currY + this.chunkSideLength; + } + } + } else if (currX === this.tipX && absCurrY < absHomeY && absCurrY - absTipY < this.maxWidth) { + if (currY < 0) { + nextBottomLeft.y = currY - this.chunkSideLength; + } else if (currY > 0) { + nextBottomLeft.y = currY + this.chunkSideLength; + } else { + // Exactly 0 + if (homeY < 0) { + nextBottomLeft.y = currY - this.chunkSideLength; + } else { + nextBottomLeft.y = currY + this.chunkSideLength; + } + } + } else { + if (this.tipX < 0) { + this.tipX += this.chunkSideLength; + } else if (this.tipX > 0) { + this.tipX -= this.chunkSideLength; + } else { + this.tipX = 0; + } + if (this.tipY < 0) { + this.tipY += this.chunkSideLength; + } else if (this.tipY > 0) { + this.tipY -= this.chunkSideLength; + } else { + this.tipY = 0; + } + nextBottomLeft.x = this.tipX; + nextBottomLeft.y = this.tipY; + } + + return { + bottomLeft: nextBottomLeft, + sideLength: this.chunkSideLength, + }; + } +} + +export class TowardsCenterPatternV2 implements MiningPattern { + type: MiningPatternType = MiningPatternType.TowardsCenterV2; + fromChunk: Rectangle; + chunkSideLength: number; + private rowRadius: number; + private yDominant: boolean; + private slopeToCenter: number; + + constructor(center: WorldCoords, chunkSize: number) { + const bottomLeftX = Math.floor(center.x / chunkSize) * chunkSize; + const bottomLeftY = Math.floor(center.y / chunkSize) * chunkSize; + const bottomLeft = { x: bottomLeftX, y: bottomLeftY }; + this.fromChunk = { + bottomLeft, + sideLength: chunkSize, + }; + this.chunkSideLength = chunkSize; + this.rowRadius = 5; // In chunks + this.yDominant = Math.abs(bottomLeftY) > Math.abs(bottomLeftX); + this.slopeToCenter = bottomLeftX === 0 ? 1 : bottomLeftY / bottomLeftX; // i.e. deltaY / deltaX + } + + toChunk(coord: number): number { + return Math.floor(coord / this.chunkSideLength) * this.chunkSideLength; + } + + nextChunk(chunk: Rectangle): Rectangle { + const homeX = this.fromChunk.bottomLeft.x; + const homeY = this.fromChunk.bottomLeft.y; + const currX = chunk.bottomLeft.x; + const currY = chunk.bottomLeft.y; + + if (this.yDominant) { + const centerOfRowX = Math.floor(homeX + (currY - homeY) / this.slopeToCenter); + if (currX < centerOfRowX + this.chunkSideLength * (this.rowRadius - 1)) { + return { + bottomLeft: { x: currX + this.chunkSideLength, y: currY }, + sideLength: this.chunkSideLength, + }; + } else { + const nextCenterOfRowX = Math.floor( + centerOfRowX + this.chunkSideLength / this.slopeToCenter + ); + return { + bottomLeft: { + x: this.toChunk(nextCenterOfRowX - (this.rowRadius - 1) * this.chunkSideLength), + y: currY < 0 ? currY + this.chunkSideLength : currY - this.chunkSideLength, + }, + sideLength: this.chunkSideLength, + }; + } + } + + // We are now in the X dominant case + const centerOfRowY = Math.floor(homeY + (currX - homeX) * this.slopeToCenter); + if (currY < centerOfRowY + this.chunkSideLength * (this.rowRadius - 1)) { + return { + bottomLeft: { x: currX, y: currY + this.chunkSideLength }, + sideLength: this.chunkSideLength, + }; + } else { + const nextCenterOfRowY = Math.floor(centerOfRowY + this.chunkSideLength * this.slopeToCenter); + return { + bottomLeft: { + x: currX < 0 ? currX + this.chunkSideLength : currX - this.chunkSideLength, + y: this.toChunk(nextCenterOfRowY - (this.rowRadius - 1) * this.chunkSideLength), + }, + sideLength: this.chunkSideLength, + }; + } + } +} diff --git a/src/Backend/Miner/miner.worker.ts b/src/Backend/Miner/miner.worker.ts index ec463763..c3752c8c 100644 --- a/src/Backend/Miner/miner.worker.ts +++ b/src/Backend/Miner/miner.worker.ts @@ -1,11 +1,11 @@ -import { mimcHash, PerlinConfig, perlin } from '@darkforest_eth/hashing'; -import { LOCATION_ID_UB } from '../../Frontend/Utils/constants'; -import { Rectangle, Chunk, MinerWorkerMessage } from '../../_types/global/GlobalTypes'; +import { mimcHash, perlin } from '@darkforest_eth/hashing'; +import { locationIdFromBigInt } from '@darkforest_eth/serde'; +import { Chunk, PerlinConfig, Rectangle, WorldLocation } from '@darkforest_eth/types'; import * as bigInt from 'big-integer'; import { BigInteger } from 'big-integer'; +import { LOCATION_ID_UB } from '../../Frontend/Utils/constants'; +import { MinerWorkerMessage } from '../../_types/global/GlobalTypes'; import { getPlanetLocations } from './permutation'; -import { WorldLocation } from '@darkforest_eth/types'; -import { locationIdFromBigInt } from '@darkforest_eth/serde'; /* eslint-disable @typescript-eslint/no-explicit-any */ const ctx: Worker = self as any; diff --git a/src/Backend/Miner/permutation.ts b/src/Backend/Miner/permutation.ts index a6b31f04..041b4b6f 100644 --- a/src/Backend/Miner/permutation.ts +++ b/src/Backend/Miner/permutation.ts @@ -1,7 +1,6 @@ -import { Rectangle } from '../../_types/global/GlobalTypes'; import { fakeHash, perlin, seededRandom } from '@darkforest_eth/hashing'; -import { WorldLocation, WorldCoords } from '@darkforest_eth/types'; import { locationIdFromBigInt } from '@darkforest_eth/serde'; +import { Rectangle, WorldCoords, WorldLocation } from '@darkforest_eth/types'; type IdxWithRand = { idx: number; @@ -78,7 +77,7 @@ export const getPlanetLocations = const [mPrime, nPrime] = sigma(m, n); const postImages: [number, number][] = []; for (let i = 0; i < SIZE / planetRarity; i += 1) { - postImages.push([0, i]); + postImages.push([Math.floor(i / 256), i % 256]); } const preImages: [number, number][] = []; for (const postImage of postImages) { @@ -99,7 +98,7 @@ export const getPlanetLocations = ) .map((coords) => ({ coords, - hash: locationIdFromBigInt(fakeHash(coords.x, coords.y)), + hash: locationIdFromBigInt(fakeHash(planetRarity)(coords.x, coords.y)), perlin: perlin(coords, { key: spaceTypeKey, scale: perlinLengthScale, diff --git a/src/Backend/Network/AccountManager.ts b/src/Backend/Network/AccountManager.ts new file mode 100644 index 00000000..34c3eeba --- /dev/null +++ b/src/Backend/Network/AccountManager.ts @@ -0,0 +1,87 @@ +import { address } from '@darkforest_eth/serde'; +import { EthAddress } from '@darkforest_eth/types'; +import { utils } from 'ethers'; +import stringify from 'json-stable-stringify'; + +/** + * Represents an account with which the user plays the game. + */ +export interface Account { + address: EthAddress; + privateKey: string; +} + +/** + * This is the key in local storage in which we keep an array of all the public addresses of the + * accounts that have been imported/generated into this client. + */ +const ADDRESS_LOCAL_STORAGE_KEY = 'KNOWN_ADDRESSES'; + +/** + * In-memory representation of all the accounts in this client. + */ +const accounts: Account[] = load(); + +/** + * Store all of the accounts in local storage. + */ +function save() { + localStorage.setItem( + ADDRESS_LOCAL_STORAGE_KEY, + stringify(accounts.map((account) => account.address)) + ); + + for (const account of accounts) { + localStorage.setItem(`skey-${account.address}`, account.privateKey); + } +} + +/** + * Load all of the accounts from local storage. + */ +function load(): Account[] { + const knownAddresses: EthAddress[] = []; + const accounts: Account[] = []; + + // first we load the public addresses + const serializedAddresses = localStorage.getItem(ADDRESS_LOCAL_STORAGE_KEY); + if (serializedAddresses !== null) { + const addresses = JSON.parse(serializedAddresses) as string[]; + for (const addressStr of addresses) { + knownAddresses.push(address(addressStr)); + } + } + + // then we load the private keys + for (const addy of knownAddresses) { + const skey = localStorage.getItem(`skey-${addy}`); + + if (skey !== null) { + accounts.push({ + address: addy, + privateKey: skey, + }); + } + } + + return accounts; +} + +/** + * Returns the list of accounts that are logged into the game. + */ +export function getAccounts(): Account[] { + return [...accounts]; +} + +/** + * Adds the given account, and saves it to localstorage. + */ +export function addAccount(privateKey: string) { + accounts.push({ + address: address(utils.computeAddress(privateKey)), + privateKey, + }); + + save(); +} diff --git a/src/Backend/Network/Blockchain.ts b/src/Backend/Network/Blockchain.ts new file mode 100644 index 00000000..df822447 --- /dev/null +++ b/src/Backend/Network/Blockchain.ts @@ -0,0 +1,37 @@ +// These are loaded as URL paths by a webpack loader +import diamondContractAbiUrl from '@darkforest_eth/contracts/abis/DarkForest.json'; +import { createContract, createEthConnection, EthConnection } from '@darkforest_eth/network'; +import type { Contract, providers, Wallet } from 'ethers'; + +/** + * Loads the game contract, which is responsible for updating the state of the game. + */ +export async function loadDiamondContract( + address: string, + provider: providers.JsonRpcProvider, + signer?: Wallet +): Promise { + const abi = await fetch(diamondContractAbiUrl).then((r) => r.json()); + + return createContract(address, abi, provider, signer); +} + +export function getEthConnection(): Promise { + const isProd = process.env.NODE_ENV === 'production'; + const defaultUrl = process.env.DEFAULT_RPC as string; + + let url: string; + + if (isProd) { + url = localStorage.getItem('XDAI_RPC_ENDPOINT_v5') || defaultUrl; + } else { + url = 'http://localhost:8545'; + } + + console.log(`GAME METADATA:`); + console.log(`rpc url: ${url}`); + console.log(`is production: ${isProd}`); + console.log(`webserver url: ${process.env.DF_WEBSERVER_URL}`); + + return createEthConnection(url); +} diff --git a/src/Backend/Network/ConversationAPI.ts b/src/Backend/Network/ConversationAPI.ts deleted file mode 100644 index 087720d9..00000000 --- a/src/Backend/Network/ConversationAPI.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { ConversationArtifact, Conversation, EthAddress, ArtifactId } from '@darkforest_eth/types'; - -const CONVERSATION_API_HOST = process.env.CONVERSATION_API_HOST as string; - -/** - * OPENAI PRODUCTION APPROVAL SUBMISSION ROUTES - */ - -/** - * For OpenAI production approval we need to prevent the UI from being publically accessible. - * Therefore we send a link with a secret API key in the query string parameter, which is then - * uploaded to the server along with each conversation request. - */ -function getDarkForestKey() { - const urlParams = new URLSearchParams(window.location.search); - return urlParams.get('darkForestKey'); -} - -export async function startConversationOpenAI( - artifact: ConversationArtifact, - artifactId: string, - username: string -): Promise { - const res = await fetch(`${CONVERSATION_API_HOST}/conversation/start_conversation`, { - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - darkforestKey: getDarkForestKey(), - artifactName: artifact.name, - artifactRarity: artifact.rarity, - artifactType: artifact.type, - artifactId, - username, - }), - method: 'POST', - }); - const rep = await res.json(); - if (rep.error) { - throw new Error(rep.error); - } - return rep.conversation; -} - -/* queue that holds the last 3 timestamps; if all of them are in the last 30s it fails - OpenAI likes to rate-limit API usage - this ensures that max 6 requests per min are sent - https://beta.openai.com/docs/use-case-guidelines/chatbots -*/ -const lastThreeTimestamps: [number, number, number] = [0, 0, 0]; - -const THIRTY_SEC = 1000 * 30; -function within30s(t: [number, number, number]): boolean { - const now = Date.now(); - return now - t[0] < THIRTY_SEC && now - t[1] < THIRTY_SEC && now - t[2] < THIRTY_SEC; -} - -export async function stepConversationOpenAI( - artifactId: string, - message: string -): Promise { - if (within30s(lastThreeTimestamps)) { - console.log('too fast'); - throw new Error('Too many requests. Please a few seconds before trying again.'); - } - - lastThreeTimestamps.push(Date.now()); - lastThreeTimestamps.shift(); - - const res = await fetch(`${CONVERSATION_API_HOST}/conversation/step_conversation`, { - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - darkforestKey: getDarkForestKey(), - artifactId, - message, - }), - method: 'POST', - }); - const rep = await res.json(); - if (rep.error) { - throw new Error(rep.error); - } - return rep.conversation; -} - -/** - * IN-GAME ROUTES - */ - -export async function startConversation( - timestamp: number, - player: EthAddress, - signature: string, - artifactId: ArtifactId -): Promise { - const res = await fetch(`${CONVERSATION_API_HOST}/conversation/start_conversation_v2`, { - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - timestamp, - player, - signature, - artifactIdStr: artifactId, - }), - method: 'POST', - }); - const rep = await res.json(); - if (rep.error) { - throw new Error(rep.error); - } - return rep.conversation; -} - -export async function stepConversation( - timestamp: number, - player: EthAddress, - signature: string, - artifactId: ArtifactId, - message: string -): Promise { - if (within30s(lastThreeTimestamps)) { - console.log('too fast'); - throw new Error('Too many requests. Please a few seconds before trying again.'); - } - - lastThreeTimestamps.push(Date.now()); - lastThreeTimestamps.shift(); - - const res = await fetch(`${CONVERSATION_API_HOST}/conversation/step_conversation_v2`, { - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - timestamp, - player, - signature, - message, - artifactIdStr: artifactId, - }), - method: 'POST', - }); - const rep = await res.json(); - if (rep.error) { - throw new Error(rep.error); - } - return rep.conversation; -} - -export async function getConversation(artifactId: ArtifactId): Promise { - const res = await fetch(`${CONVERSATION_API_HOST}/conversation/get_conversation/${artifactId}`, { - headers: { - 'Content-Type': 'application/json', - }, - }); - - if (res.status === 404) { - return undefined; - } - - const rep = await res.json(); - if (rep.error) { - throw new Error(rep.error); - } - - return rep.conversation; -} diff --git a/src/Backend/Network/EthConnection.ts b/src/Backend/Network/EthConnection.ts deleted file mode 100644 index d95ac983..00000000 --- a/src/Backend/Network/EthConnection.ts +++ /dev/null @@ -1,374 +0,0 @@ -import { - GETTERS_CONTRACT_ADDRESS, - CORE_CONTRACT_ADDRESS, - WHITELIST_CONTRACT_ADDRESS, - GPT_CREDIT_CONTRACT_ADDRESS, -} from '@darkforest_eth/contracts'; -import { JsonRpcProvider, TransactionReceipt } from '@ethersproject/providers'; -import { - Wallet, - providers, - ContractInterface, - Contract, - utils, - BigNumber, - EventFilter, - ethers, -} from 'ethers'; -import EventEmitter from 'events'; -import stringify from 'json-stable-stringify'; -import { XDAI_CHAIN_ID } from '../../Frontend/Utils/constants'; -import { Monomitter, monomitter } from '../../Frontend/Utils/Monomitter'; -import { EthAddress } from '@darkforest_eth/types'; -import { callWithRetry, sleep } from '../Utils/Utils'; -import type { - DarkForestCore, - DarkForestGetters, - DarkForestGPTCredit, - Whitelist, -} from '@darkforest_eth/contracts/typechain'; -import { address } from '@darkforest_eth/serde'; -import coreContractAbiPath from '@darkforest_eth/contracts/abis/DarkForestCore.json'; -import gettersContractAbiPath from '@darkforest_eth/contracts/abis/DarkForestGetters.json'; -import whitelistContractAbiPath from '@darkforest_eth/contracts/abis/Whitelist.json'; -import gptCreditContractAbiPath from '@darkforest_eth/contracts/abis/DarkForestGPTCredit.json'; -import { ContractEvent } from '../../_types/darkforest/api/ContractsAPITypes'; -import { BlockWaiter } from '../Utils/BlockWaiter'; - -/* eslint-disable @typescript-eslint/no-explicit-any */ - -function toJSON(x: Response) { - return x.json(); -} - -/** - * Responsible for - * 1) loading the contract - * 2) the in-memory wallet - * 3) connecting to the correct network - */ -class EthConnection extends EventEmitter { - private static readonly XDAI_DEFAULT_URL = process.env.DEFAULT_RPC as string; - - public readonly blockNumber$: Monomitter; - private blockNumber: number; - - private readonly knownAddresses: EthAddress[]; - private provider: JsonRpcProvider; - private signer: Wallet | undefined; - private rpcURL: string; - - public constructor() { - super(); - - let url: string; - // TODO: Provide own env variable for this feature - const isProd = process.env.NODE_ENV === 'production'; - - if (isProd) { - url = localStorage.getItem('XDAI_RPC_ENDPOINT_v5') || EthConnection.XDAI_DEFAULT_URL; - } else { - url = 'http://localhost:8545'; - } - - this.setRpcEndpoint(url); - this.knownAddresses = []; - const knownAddressesStr = localStorage.getItem('KNOWN_ADDRESSES'); - if (knownAddressesStr) { - const addrStrs = JSON.parse(knownAddressesStr) as string[]; - for (const addrStr of addrStrs) { - this.knownAddresses.push(address(addrStr)); - } - } - - this.blockNumber$ = monomitter(true); - this.adjustPollRateBasedOnVisibility(); - } - - private adjustPollRateBasedOnVisibility() { - document.addEventListener('visibilitychange', () => { - // If it is 0, then we are websocket - if (this.provider.pollingInterval === 0) { - return; - } - if (document.hidden) { - this.provider.pollingInterval = 1000 * 60; - } else { - this.provider.pollingInterval = 1000 * 8; - } - }); - } - - public getRpcEndpoint(): string { - return this.rpcURL; - } - - public hasSigner(): boolean { - return !!this.signer; - } - - public subscribeToEvents( - contract: DarkForestCore, - // map from contract event to function. using type 'any' here to satisfy typescript - each of - // the functions has a different type signature. - handlers: Partial> - ) { - const filter = { - address: contract.address, - topics: [ - [ - contract.filters.ArrivalQueued(null, null, null, null, null).topics, - contract.filters.ArtifactActivated(null, null, null).topics, - contract.filters.ArtifactDeactivated(null, null, null).topics, - contract.filters.ArtifactDeposited(null, null, null).topics, - contract.filters.ArtifactFound(null, null, null).topics, - contract.filters.ArtifactWithdrawn(null, null, null).topics, - contract.filters.LocationRevealed(null, null).topics, - contract.filters.PlanetHatBought(null, null, null).topics, - contract.filters.PlanetProspected(null, null).topics, - contract.filters.PlanetSilverWithdrawn(null, null, null).topics, - contract.filters.PlanetTransferred(null, null, null).topics, - contract.filters.PlanetUpgraded(null, null, null, null).topics, - contract.filters.PlayerInitialized(null, null).topics, - ].map((topicsOrUndefined) => (topicsOrUndefined || [])[0]), - ] as Array>, - }; - - const blockWaiter = new BlockWaiter(1000); - - this.provider.on('block', async (latestBlockNumber: number) => { - if (this.blockNumber === undefined) { - this.blockNumber = latestBlockNumber; - } - - blockWaiter.schedule(() => { - const previousBlockNumber = this.blockNumber; - this.blockNumber = latestBlockNumber; - this.blockNumber$.publish(latestBlockNumber); - - console.log(`processing events for ${latestBlockNumber - previousBlockNumber} blocks`); - - this.processEvents( - Math.min(previousBlockNumber + 1, latestBlockNumber), - latestBlockNumber, - filter, - contract, - handlers - ); - }); - }); - } - - private async processEvents( - startBlock: number, - endBlock: number, - eventFilter: EventFilter, - contract: DarkForestCore, - handlers: Partial> - ) { - const logs = await this.provider.getLogs({ - fromBlock: startBlock, // inclusive - toBlock: endBlock, // inclusive - ...eventFilter, - }); - - logs.forEach((log) => { - const parsedData = contract.interface.parseLog(log); - const handler = handlers[parsedData.name as ContractEvent]; - if (handler !== undefined) { - handler(...parsedData.args); - } - }); - } - - public async setRpcEndpoint(url: string): Promise { - try { - this.rpcURL = url; - let newProvider: JsonRpcProvider | undefined; - if (this.rpcURL.startsWith('wss://')) { - newProvider = new providers.WebSocketProvider(this.rpcURL); - } else { - newProvider = new providers.StaticJsonRpcProvider(this.rpcURL); - newProvider.pollingInterval = 8000; - } - /** - * this.provider needs to get set to nonnull value immediately (synchronously) - * otherwise other classes which call loadContract() immediately on app load might - * load a contract without a provider. - * if there ends up being an error with the RPC URL, we emit event and reload contract into ContractsAPI - * This is hacky / bad practice and this whole getInstance() pattern should get refactored - * but for now it is what it is ¯\_(ツ)_/¯ - */ - this.provider = newProvider; - // TODO: Provide own env variable for this feature - if (process.env.NODE_ENV === 'production') { - if ((await newProvider.getNetwork()).chainId !== XDAI_CHAIN_ID) { - throw new Error('not a valid xDAI RPC URL'); - } - } - if (this.signer) { - this.signer = new Wallet(this.signer.privateKey, this.provider); - } else { - this.signer = undefined; - } - localStorage.setItem('XDAI_RPC_ENDPOINT_v5', this.rpcURL); - this.emit('ChangedRPCEndpoint'); - } catch (e) { - console.error(`error setting rpc endpoint: ${e}`); - this.setRpcEndpoint(EthConnection.XDAI_DEFAULT_URL); - this.emit('ChangedRPCEndpoint'); - return; - } - } - - public async loadContract( - contractAddress: string, - contractABI: ContractInterface - ): Promise { - if (this.signer) { - return new Contract(contractAddress, contractABI, this.signer) as C; - } else { - console.log('WARNING: loading contract from provider (no signer)'); - return new Contract(contractAddress, contractABI, this.provider) as C; - } - } - - public async loadGettersContract(): Promise { - const abi = await fetch(gettersContractAbiPath).then(toJSON); - - return this.loadContract(GETTERS_CONTRACT_ADDRESS, abi); - } - - public async loadCoreContract(): Promise { - const abi = await fetch(coreContractAbiPath).then(toJSON); - - return this.loadContract(CORE_CONTRACT_ADDRESS, abi); - } - - public async loadWhitelistContract(): Promise { - const abi = await fetch(whitelistContractAbiPath).then(toJSON); - - return this.loadContract(WHITELIST_CONTRACT_ADDRESS, abi); - } - - public async loadGPTCreditContract(): Promise { - const abi = await fetch(gptCreditContractAbiPath).then(toJSON); - - return this.loadContract(GPT_CREDIT_CONTRACT_ADDRESS, abi); - } - - // TODO: This should be moved to ContractReader once we split ContractsAPI out - // it's here because we need access to this function before GameManager - // (and therefore ContractsAPI) is loaded in GameLandingPage.tsx - public async isWhitelisted(address: EthAddress): Promise { - const whitelist = await this.loadWhitelistContract(); - return callWithRetry(whitelist.isWhitelisted, [address], () => {}, 3); - } - - public getAddress(): EthAddress { - if (!this.signer) { - throw new Error('account not selected yet'); - } - return address(this.signer.address); - } - - public getNonce(): Promise { - // throws if no account has been set yet - if (!this.signer) { - throw new Error('account not selected yet'); - } - - return callWithRetry(this.provider.getTransactionCount.bind(this.provider), [ - this.signer.address, - ]); - } - - public setAccount(address: EthAddress): void { - const skey = localStorage.getItem(`skey-${address}`); - if (skey) { - this.signer = new Wallet(skey, this.provider); - } else { - throw new Error('private key for address not found'); - } - } - - public addAccount(skey: string): void { - // throws if invalid secret key - const addr = address(utils.computeAddress(skey)); - localStorage.setItem(`skey-${addr}`, skey); - this.knownAddresses.push(addr); - localStorage.setItem('KNOWN_ADDRESSES', stringify(this.knownAddresses)); - } - - public getKnownAccounts(): EthAddress[] { - return this.knownAddresses; - } - - public async signMessage(message: string): Promise { - if (!this.signer) { - throw new Error('no signer yet'); - } - - return this.signer.signMessage(message); - } - - public verifySignature(message: string, signature: string, address: EthAddress): boolean { - return ethers.utils.verifyMessage(message, signature).toLowerCase() === address; - } - - public async getBalance(address: EthAddress): Promise { - const balanceWeiBN = await callWithRetry( - this.provider.getBalance.bind(this.provider), - [address] - ); - - return parseFloat(utils.formatEther(balanceWeiBN)); - } - - public getPrivateKey(): string { - if (!this.signer) { - throw new Error('no signer yet'); - } - return this.signer.privateKey; - } - - public async waitForTransaction(txHash: string): Promise { - return new Promise(async (resolve) => { - let receipt = undefined; - let tries = 0; - - // waitForTransaction tends to hang on xDAI. but if we have a txHash - // the tx WILL get confirmed (or reverted) eventually, so for sure - // just keep retrying - while (!receipt) { - console.log(`[wait-tx] WAITING ON tx hash: ${txHash} tries ${tries}`); - - receipt = await Promise.race([ - sleep(30 * 1000, undefined), - this.provider.getTransactionReceipt(txHash).catch((e) => { - console.error(`[wait-tx] TIMED OUT tx hash: ${txHash} tries ${tries} error:`, e); - return undefined; - }), - ]); - - if (receipt) { - console.log(`[wait-tx] FINISHED tx hash: ${txHash} tries ${tries}`); - resolve(receipt); - return; - } - - // exponential backoff, in seconds: - // 5 * (1, 1, 2, 3, 4, 6, 9, 13, 19, 29, 43, 65 ...) - // But never more than a minute - const sleepTime = Math.min(5000 * 1.5 ** tries, 60000); - console.log( - `[wait-tx] SLEEPING tx hash: ${txHash} tries ${tries} sleeping for: ${sleepTime} ` - ); - await sleep(sleepTime); - tries += 1; - } - }); - } -} - -export default EthConnection; diff --git a/src/Backend/Network/EventLogger.ts b/src/Backend/Network/EventLogger.ts index 9ebea7e4..f2f60347 100644 --- a/src/Backend/Network/EventLogger.ts +++ b/src/Backend/Network/EventLogger.ts @@ -1,27 +1,26 @@ -import { WEBSERVER_URL } from './UtilityServerAPI'; +export const enum EventType { + Transaction = 'transaction', + Diagnostics = 'diagnostics', +} export class EventLogger { - private static instance: EventLogger; - - public static getInstance(): EventLogger { - if (!EventLogger.instance) { - EventLogger.instance = new EventLogger(); - } - - return EventLogger.instance; + private static augmentEvent(event: unknown, eventType: EventType) { + return Object.assign(event, { df_event_type: eventType }); } - static augmentEvent(event: unknown) { - return Object.assign(event, {}); - } + logEvent(eventType: EventType, event: unknown) { + if (!process.env.DF_WEBSERVER_URL) { + return; + } - logEvent(event: unknown) { - fetch(`${WEBSERVER_URL}/event`, { + fetch(`${process.env.DF_WEBSERVER_URL}/event`, { method: 'POST', - body: JSON.stringify(EventLogger.augmentEvent(event)), + body: JSON.stringify(EventLogger.augmentEvent(event, eventType)), headers: { 'Content-Type': 'application/json', }, }).catch((err) => console.log(err)); } } + +export const eventLogger = new EventLogger(); diff --git a/src/Backend/Network/LeaderboardApi.ts b/src/Backend/Network/LeaderboardApi.ts index d6981343..6a167178 100644 --- a/src/Backend/Network/LeaderboardApi.ts +++ b/src/Backend/Network/LeaderboardApi.ts @@ -1,9 +1,11 @@ -import { AggregateLeaderboard } from '@darkforest_eth/types'; +import { Leaderboard } from '@darkforest_eth/types'; -const LEADERBOARD_API = process.env.LEADERBOARD_API as string; +export async function loadLeaderboard(): Promise { + if (!process.env.DF_WEBSERVER_URL) { + return { entries: [] }; + } -export async function loadLeaderboard(): Promise { - const address = `${LEADERBOARD_API}/leaderboard`; + const address = `${process.env.DF_WEBSERVER_URL}/leaderboard`; const res = await fetch(address, { method: 'GET', }); diff --git a/src/Backend/Network/MessageAPI.ts b/src/Backend/Network/MessageAPI.ts index 9c2fe05c..5d6c0f3c 100644 --- a/src/Backend/Network/MessageAPI.ts +++ b/src/Backend/Network/MessageAPI.ts @@ -1,22 +1,20 @@ import { - PlanetMessageResponse, + DeleteMessagesRequest, PlanetMessageRequest, + PlanetMessageResponse, PostMessageRequest, - DeleteMessagesRequest, SignedMessage, } from '@darkforest_eth/types'; -const MESSAGE_API_HOST = process.env.CONVERSATION_API_HOST as string; - export async function getMessagesOnPlanets( request: PlanetMessageRequest ): Promise { - if (request.planets.length === 0) { + if (request.planets.length === 0 || !process.env.DF_WEBSERVER_URL) { return {}; } try { - const response = await fetch(`${MESSAGE_API_HOST}/messages`, { + const response = await fetch(`${process.env.DF_WEBSERVER_URL}/messages`, { headers: { 'Content-Type': 'application/json', }, @@ -36,8 +34,12 @@ export async function getMessagesOnPlanets( export async function addMessage( request: SignedMessage> ): Promise { + if (!process.env.DF_WEBSERVER_URL) { + return; + } + try { - const res = await fetch(`${MESSAGE_API_HOST}/add-message`, { + const res = await fetch(`${process.env.DF_WEBSERVER_URL}/add-message`, { headers: { 'Content-Type': 'application/json', }, @@ -55,8 +57,12 @@ export async function addMessage( } export async function deleteMessages(request: SignedMessage): Promise { + if (!process.env.DF_WEBSERVER_URL) { + return; + } + try { - const res = await fetch(`${MESSAGE_API_HOST}/delete-messages`, { + const res = await fetch(`${process.env.DF_WEBSERVER_URL}/delete-messages`, { headers: { 'Content-Type': 'application/json', }, diff --git a/src/Backend/Network/NetworkHealthApi.ts b/src/Backend/Network/NetworkHealthApi.ts new file mode 100644 index 00000000..98e2b082 --- /dev/null +++ b/src/Backend/Network/NetworkHealthApi.ts @@ -0,0 +1,20 @@ +import { NetworkHealthSummary } from '@darkforest_eth/types'; + +/** + * The Dark Forest webserver keeps track of network health, this function loads that information + * from the webserver. + */ +export async function loadNetworkHealth(): Promise { + if (!process.env.DF_WEBSERVER_URL) { + return []; + } + + const result = await fetch(`${process.env.DF_WEBSERVER_URL}/network-health`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }).then((x) => x.json()); + + return result as NetworkHealthSummary; +} diff --git a/src/Backend/Network/ThrottledConcurrentQueue.ts b/src/Backend/Network/ThrottledConcurrentQueue.ts deleted file mode 100644 index fdff6121..00000000 --- a/src/Backend/Network/ThrottledConcurrentQueue.ts +++ /dev/null @@ -1,196 +0,0 @@ -import CircularBuffer from 'mnemonist/circular-buffer'; -import { deferred } from '../Utils/Utils'; - -interface QueuedTask { - resolve: (t: T) => void; - reject: (e?: Error) => void; - generator: () => Promise; -} - -/** - * A queue that executes promises with a max throughput, and optionally max - * concurrency. - */ -export class ThrottledConcurrentQueue { - /** - * The interval during which we only allow a certain maximum amount of tasks - * to be executed. - */ - private readonly invocationIntervalMs: number; - - /** - * Maximum amount of tasks that can be executing at the same time. - */ - private readonly maxConcurrency: number; - - /** - * Queue of tasks to execute. Added to the front, popped off the back. - */ - private taskQueue: Array> = []; - - /** - * Each time a task is executed, record the start of its execution time. - * Execution timestamps are removed when they become outdated. Used for - * keeping the amount of executions under the throttle limit. - */ - private executionTimestamps: CircularBuffer; - - /** - * Amount of tasks being executed right now. - */ - private concurrency = 0; - - /** - * When we schedule an attempt at executing another task in the future, - * we don't want to schedule it more than once. Therefore, we keep track - * of this scheduled attempt. - */ - private executionTimeout: ReturnType; - - public constructor( - maxInvocationsPerIntervalMs: number, - invocationIntervalMs: number, - maxConcurrency = Number.POSITIVE_INFINITY - ) { - if (maxInvocationsPerIntervalMs <= 0) { - throw new Error('must allow at least one invocation per interval'); - } - - if (invocationIntervalMs <= 0) { - throw new Error('invocation interval must be positive'); - } - - if (maxConcurrency <= 0) { - throw new Error('max concurrency must be positive'); - } - - this.invocationIntervalMs = invocationIntervalMs; - this.maxConcurrency = maxConcurrency; - this.executionTimestamps = new CircularBuffer(Array, maxInvocationsPerIntervalMs); - } - - /** - * Adds a task to be executed at some point in the future. Returns a promise - * that resolves when the task finishes successfully, and rejects when there - * is an error. - * - * @param generator a function that returns a promise representing the task - */ - public add(generator: () => Promise): Promise { - const [resolve, reject, promise] = deferred(); - - this.taskQueue.unshift({ - resolve, - reject, - generator, - }); - - setTimeout(() => { - this.executeNextTasks(); - }, 0); - - return promise; - } - - /** - * Returns the amount of queued items, not including the ones that are being executed at this moment. - */ - public size() { - return this.taskQueue.length; - } - - /** - * Runs tasks until it's at either the throttle or concurrency limit. If there are more - * tasks to be executed after that, schedules itself to execute again at the soonest - * possible moment. - */ - private async executeNextTasks(): Promise { - this.deleteOutdatedExecutionTimestamps(); - - const tasksToExecute = Math.min( - this.throttleQuotaRemaining(), - this.concurrencyQuotaRemaining(), - this.taskQueue.length - ); - - for (let i = 0; i < tasksToExecute; i++) { - this.next().then(this.executeNextTasks.bind(this)); - } - - const nextPossibleExecution = this.nextPossibleExecution(); - - if (this.taskQueue.length > 0 && nextPossibleExecution) { - clearTimeout(this.executionTimeout); - this.executionTimeout = setTimeout(this.executeNextTasks.bind(this), nextPossibleExecution); - } - } - - /** - * Returns the soonest possible time from now we could execute another task without going - * over the throttle limit. - */ - private nextPossibleExecution(): number | undefined { - const oldestExecution = this.executionTimestamps.peekFirst(); - - if (!oldestExecution || this.concurrencyQuotaRemaining() === 0) { - return undefined; - } - - return Date.now() - oldestExecution + this.invocationIntervalMs; - } - - /** - * At this moment, how many more tasks we could execute without exceeding the - * concurrency quota. - */ - private concurrencyQuotaRemaining(): number { - return this.maxConcurrency - this.concurrency; - } - - /** - * At this moment, how many more tasks we could execute without exceeding the - * throttle quota. - */ - private throttleQuotaRemaining(): number { - return this.executionTimestamps.capacity - this.executionTimestamps.size; - } - - /** - * Removes all task execution timestamps that are older than [[this.invocationIntervalMs]], - * because those invocations have no bearing on whether or not we can execute another task. - */ - private deleteOutdatedExecutionTimestamps() { - const now = Date.now(); - - let oldestInvocation = this.executionTimestamps.peekFirst(); - - while (oldestInvocation && oldestInvocation < now - this.invocationIntervalMs) { - this.executionTimestamps.shift(); - oldestInvocation = this.executionTimestamps.peekFirst(); - } - } - - /** - * If there is a next task to execute, executes it. Records the time of execution in - * [[executionTimestamps]]. Increments and decrements concurrency counter. Neither throttles - * nor limits concurrency. - */ - private async next(): Promise { - const task = this.taskQueue.pop(); - - if (!task) { - return; - } - - this.executionTimestamps.push(Date.now()); - this.concurrency++; - - try { - task.resolve(await task.generator()); - } catch (e) { - task.reject(e); - } - - this.concurrency--; - } -} diff --git a/src/Backend/Network/TxExecutor.ts b/src/Backend/Network/TxExecutor.ts deleted file mode 100644 index 2662a99a..00000000 --- a/src/Backend/Network/TxExecutor.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { EventEmitter } from 'events'; -import { Contract, providers, BigNumber as EthersBN } from 'ethers'; -import { EthTxType, TxTypeToEthFunctionName } from '@darkforest_eth/types'; -import EthConnection from './EthConnection'; -import { deferred, timeoutAfter } from '../Utils/Utils'; -import { ThrottledConcurrentQueue } from './ThrottledConcurrentQueue'; -import { EventLogger } from './EventLogger'; -import NotificationManager from '../../Frontend/Game/NotificationManager'; -import { openConfirmationWindowForTransaction } from '../../Frontend/Game/Popups'; -import { DiagnosticUpdater } from '../Interfaces/DiagnosticUpdater'; -import { getSetting, Setting } from '../../Frontend/Utils/SettingsHooks'; - -export interface QueuedTxRequest { - onSubmissionError: (e: Error) => void; - onReceiptError: (e: Error) => void; - onTransactionResponse: (e: providers.TransactionResponse) => void; - onTransactionReceipt: (e: providers.TransactionReceipt) => void; - - type: EthTxType; - actionId: string; - contract: Contract; - args: unknown[]; - overrides: providers.TransactionRequest; -} - -export interface PendingTransaction { - submitted: Promise; - confirmed: Promise; -} - -export class TxExecutor extends EventEmitter { - /** - * tx is considered to have errored if haven't successfully - * submitted to mempool within 30s - */ - private static readonly TX_SUBMIT_TIMEOUT = 30000; - - /** - * we refresh the nonce if it hasn't been updated in this amount of time - */ - private static readonly NONCE_STALE_AFTER_MS = 1000 * 45; - - /** - * don't allow users to submit txs if balance falls below - */ - private static readonly MIN_BALANCE_ETH = 0.002; - - private txQueue: ThrottledConcurrentQueue; - private lastTransaction: number; - private nonce: number; - private eth: EthConnection; - private diagnosticsUpdater?: DiagnosticUpdater; - - constructor(ethConnection: EthConnection, nonce: number) { - super(); - - this.txQueue = new ThrottledConcurrentQueue(3, 1000, 1); - this.nonce = nonce; - this.lastTransaction = Date.now(); - this.eth = ethConnection; - } - - /** - * Schedules this transaction to execute once all of the transactions - * ahead of it have completed. - */ - public makeRequest( - type: EthTxType, - actionId: string, - contract: Contract, - args: unknown[], - overrides: providers.TransactionRequest = { - gasPrice: undefined, - gasLimit: 2000000, - } - ): PendingTransaction { - this.diagnosticsUpdater?.updateDiagnostics((d) => { - d.transactionsInQueue++; - }); - - const [txResponse, rejectTxResponse, submittedPromise] = - deferred(); - const [txReceipt, rejectTxReceipt, receiptPromise] = deferred(); - - if (overrides.gasPrice === undefined) { - const gwei = EthersBN.from('1000000000'); - let userGasPriceGwei = getSetting(this.eth.getAddress(), Setting.GasFeeGwei); - - // TODO: this value should be pulled from blockscout API or something - if (type === EthTxType.INIT) { - userGasPriceGwei = '10'; - } - - overrides.gasPrice = gwei.mul(userGasPriceGwei); - } - - this.txQueue.add(() => { - this.diagnosticsUpdater?.updateDiagnostics((d) => { - d.transactionsInQueue--; - }); - - return this.execute({ - type, - actionId, - contract, - args, - overrides, - onSubmissionError: rejectTxResponse, - onReceiptError: rejectTxReceipt, - onTransactionResponse: txResponse, - onTransactionReceipt: txReceipt, - }); - }); - - return { - submitted: submittedPromise, - confirmed: receiptPromise, - }; - } - - private async maybeUpdateNonce() { - if (Date.now() - this.lastTransaction > TxExecutor.NONCE_STALE_AFTER_MS) { - this.nonce = await this.eth.getNonce(); - } - } - - private async checkBalance() { - const balance = await this.eth.getBalance(this.eth.getAddress()); - - if (balance < TxExecutor.MIN_BALANCE_ETH) { - const notifsManager = NotificationManager.getInstance(); - notifsManager.balanceEmpty(); - throw new Error('xDAI balance too low!'); - } - } - - private execute = async (txRequest: QueuedTxRequest) => { - let time_called: number | undefined = undefined; - let error: Error | undefined = undefined; - let time_submitted: number | undefined = undefined; - let time_confirmed: number | undefined = undefined; - let time_errored: number | undefined = undefined; - let tx_hash: string | undefined = undefined; - - const time_exec_called = Date.now(); - - try { - const gasFeeGwei = EthersBN.from(txRequest.overrides.gasPrice || '1000000000') - .div('1000000000') - .toNumber(); - - await this.checkBalance(); - await this.maybeUpdateNonce(); - await openConfirmationWindowForTransaction( - this.eth, - txRequest, - this.eth.getAddress(), - gasFeeGwei - ); - - time_called = Date.now(); - const methodName = TxTypeToEthFunctionName[txRequest.type]; - const submitted = await timeoutAfter( - txRequest.contract[methodName](...txRequest.args, { - ...txRequest.overrides, - nonce: this.nonce, - }), - TxExecutor.TX_SUBMIT_TIMEOUT, - `tx request ${txRequest.actionId} failed to submit: timed out}` - ); - time_submitted = Date.now(); - tx_hash = submitted.hash; - this.nonce += 1; - this.lastTransaction = time_submitted; - txRequest.onTransactionResponse(submitted); - - const confirmed = await this.eth.waitForTransaction(submitted.hash); - time_confirmed = Date.now(); - txRequest.onTransactionReceipt(confirmed); - - if (confirmed.status !== 1) { - time_errored = time_confirmed; - error = new Error('transaction reverted'); - } - } catch (e) { - console.error(e); - time_errored = Date.now(); - error = e; - if (!time_submitted) { - txRequest.onSubmissionError(e); - } else { - txRequest.onReceiptError(e); - } - } finally { - this.diagnosticsUpdater?.updateDiagnostics((d) => { - d.totalTransactions++; - }); - } - - /* eslint-disable @typescript-eslint/no-explicit-any */ - const logEvent: any = { - tx_type: txRequest.type, - time_exec_called, - tx_hash, - }; - - if (time_called && time_submitted) { - logEvent.wait_submit = time_submitted - time_called; - if (time_confirmed) { - logEvent.wait_confirm = time_confirmed - time_called; - } - } - - if (error && time_errored) { - logEvent.error = error.message || JSON.stringify(error); - logEvent.wait_error = time_errored - time_exec_called; - - try { - if ((error as any).body) { - logEvent.parsed_error = String.fromCharCode.apply(null, (error as any).body || []); - } - } catch (e) {} - } - - logEvent.rpc_endpoint = this.eth.getRpcEndpoint(); - logEvent.user_address = this.eth.getAddress(); - - if (localStorage.getItem(`optout-metrics-${logEvent.user_address}`) !== 'true') { - EventLogger.getInstance().logEvent(logEvent); - } - }; - - public setDiagnosticUpdater(diagnosticUpdater?: DiagnosticUpdater) { - this.diagnosticsUpdater = diagnosticUpdater; - } -} diff --git a/src/Backend/Network/UtilityServerAPI.ts b/src/Backend/Network/UtilityServerAPI.ts index 7ace995a..8002a649 100644 --- a/src/Backend/Network/UtilityServerAPI.ts +++ b/src/Backend/Network/UtilityServerAPI.ts @@ -1,20 +1,29 @@ +import { + EthAddress, + RegisterResponse, + SignedMessage, + WhitelistStatusResponse, +} from '@darkforest_eth/types'; import * as EmailValidator from 'email-validator'; +import timeout from 'p-timeout'; +import { TerminalHandle } from '../../Frontend/Views/Terminal'; import { AddressTwitterMap } from '../../_types/darkforest/api/UtilityServerAPITypes'; -import { EthAddress } from '@darkforest_eth/types'; -export const WEBSERVER_URL = process.env.WEBSERVER_URL as string; - -export enum EmailResponse { +export const enum EmailResponse { Success, Invalid, ServerError, } export const submitInterestedEmail = async (email: string): Promise => { + if (!process.env.DF_WEBSERVER_URL) { + return EmailResponse.ServerError; + } + if (!EmailValidator.validate(email)) { return EmailResponse.Invalid; } - const { success } = await fetch(`${WEBSERVER_URL}/email/interested`, { + const { success } = await fetch(`${process.env.DF_WEBSERVER_URL}/email/interested`, { method: 'POST', body: JSON.stringify({ email }), headers: { @@ -26,10 +35,14 @@ export const submitInterestedEmail = async (email: string): Promise => { + if (!process.env.DF_WEBSERVER_URL) { + return EmailResponse.ServerError; + } + if (!EmailValidator.validate(email)) { return EmailResponse.Invalid; } - const { success } = await fetch(`${WEBSERVER_URL}/email/unsubscribe`, { + const { success } = await fetch(`${process.env.DF_WEBSERVER_URL}/email/unsubscribe`, { method: 'POST', body: JSON.stringify({ email }), headers: { @@ -41,16 +54,19 @@ export const submitUnsubscribeEmail = async (email: string): Promise ): Promise => { - if (!EmailValidator.validate(email)) { + if (!process.env.DF_WEBSERVER_URL) { + return EmailResponse.ServerError; + } + + if (!request || !EmailValidator.validate(request.message.email)) { return EmailResponse.Invalid; } - const { success } = await fetch(`${WEBSERVER_URL}/email/playing`, { + const { success } = await fetch(`${process.env.DF_WEBSERVER_URL}/email/playing`, { method: 'POST', - body: JSON.stringify({ email, address: ethAddress }), + body: JSON.stringify(request), headers: { 'Content-Type': 'application/json', }, @@ -59,12 +75,103 @@ export const submitPlayerEmail = async ( return success ? EmailResponse.Success : EmailResponse.ServerError; }; +async function sleep(timeoutMs: number) { + return new Promise((resolve) => { + setTimeout(() => resolve(), timeoutMs); + }); +} + +export type RegisterConfirmationResponse = { + /** + * If the whitelist registration is successful, + * this is populated with the hash of the + * transaction. + */ + txHash?: string; + /** + * If the whitelist registration is unsuccessful, + * this is populated with the error message explaining + * why. + */ + errorMessage?: string; + /** + * If the whitelist registration is unsuccessful, this + * is true if the client is able to retry registration. + */ + canRetry?: boolean; +}; + +/** + * Starts the registration process for the user then + * polls for success. + */ +export async function callRegisterAndWaitForConfirmation( + key: string, + address: EthAddress, + terminal: React.MutableRefObject +): Promise { + if (!process.env.DF_WEBSERVER_URL) { + return { errorMessage: 'Cannot connect to server.', canRetry: false }; + } + + const response = await submitWhitelistKey(key, address); + + if (response?.error) { + return { errorMessage: response.error, canRetry: false }; + } + + while (true) { + const statusResponse = await whitelistStatus(address); + if (!statusResponse) return { errorMessage: 'Cannot connect to server.', canRetry: false }; + + terminal.current?.newline(); + if (statusResponse.failedAt) { + return { errorMessage: 'Transaction failed.', canRetry: true }; + } else if (statusResponse.txHash) { + return { txHash: statusResponse.txHash }; + } else if (statusResponse.position) { + if (statusResponse.position !== '0') { + terminal.current?.print('Position in queue: ' + statusResponse.position + '\n'); + } else { + terminal.current?.print('Position in queue: You are up next!'); + } + } else { + terminal.current?.print('Entering queue...'); + } + + await sleep(3000); + } +} + +export const whitelistStatus = async ( + address: EthAddress +): Promise => { + if (!process.env.DF_WEBSERVER_URL) { + return null; + } + + return await fetch(`${process.env.DF_WEBSERVER_URL}/whitelist/address/${address}/isWhitelisted`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + }, + }).then((x) => x.json()); +}; + +/** + * Submits a whitelist key to register the given player to the game. Returns null if there was an + * error. + */ export const submitWhitelistKey = async ( key: string, address: EthAddress -): Promise => { +): Promise => { + if (!process.env.DF_WEBSERVER_URL) { + return null; + } + try { - const { txHash } = await fetch(`${WEBSERVER_URL}/whitelist/register`, { + return await fetch(`${process.env.DF_WEBSERVER_URL}/whitelist/register`, { method: 'POST', body: JSON.stringify({ key, @@ -74,8 +181,6 @@ export const submitWhitelistKey = async ( 'Content-Type': 'application/json', }, }).then((x) => x.json()); - - return txHash; } catch (e) { console.error(`error when registering for whitelist: ${e}`); return null; @@ -83,12 +188,17 @@ export const submitWhitelistKey = async ( }; export const requestDevFaucet = async (address: EthAddress): Promise => { + if (!process.env.DF_WEBSERVER_URL) { + return false; + } + // TODO: Provide own env variable for this feature if (process.env.NODE_ENV === 'production') { return false; } + try { - const { success } = await fetch(`${WEBSERVER_URL}/whitelist/faucet`, { + const { success } = await fetch(`${process.env.DF_WEBSERVER_URL}/whitelist/faucet`, { method: 'POST', body: JSON.stringify({ address, @@ -105,38 +215,66 @@ export const requestDevFaucet = async (address: EthAddress): Promise => } }; +/** + * Swallows all errors. Either loads the address to twitter map from the webserver in 5 seconds, or + * returan empty map. + */ +export const tryGetAllTwitters = async (): Promise => { + try { + return await timeout(getAllTwitters(), 1000 * 5, "couldn't get twitter map"); + } catch (e) {} + return {}; +}; + export const getAllTwitters = async (): Promise => { try { - const twitterMap: AddressTwitterMap = await fetch(`${WEBSERVER_URL}/twitter/all-twitters`).then( - (x) => x.json() - ); + const twitterMap: AddressTwitterMap = await fetch( + `${process.env.DF_WEBSERVER_URL}/twitter/all-twitters` + ).then((x) => x.json()); return twitterMap; } catch (e) { - console.log('Error getting twitter handles.'); - console.error(e); return {}; } }; export const verifyTwitterHandle = async ( - twitter: string, - address: EthAddress + verifyMessage: SignedMessage<{ twitter: string }> ): Promise => { try { - const { success } = await fetch(`${WEBSERVER_URL}/twitter/verify-twitter`, { + const res = await fetch(`${process.env.DF_WEBSERVER_URL}/twitter/verify-twitter`, { method: 'POST', body: JSON.stringify({ - twitter, - address, + verifyMessage, }), headers: { 'Content-Type': 'application/json', }, }).then((x) => x.json()); - return success; + return res.success; } catch (e) { console.error(`error when verifying twitter handle: ${e}`); return false; } }; + +export const disconnectTwitter = async ( + disconnectMessage: SignedMessage<{ twitter: string }> +): Promise => { + try { + const res = await fetch(`${process.env.DF_WEBSERVER_URL}/twitter/disconnect`, { + method: 'POST', + body: JSON.stringify({ + disconnectMessage, + }), + headers: { + 'Content-Type': 'application/json', + }, + }).then((x) => x.json()); + + return res.success; + } catch (e) { + console.error(`error when disconnecting twitter handle: ${e}`); + return false; + } +}; diff --git a/src/Backend/Plugins/EmbeddedPluginLoader.ts b/src/Backend/Plugins/EmbeddedPluginLoader.ts index 23f5e860..599a575d 100644 --- a/src/Backend/Plugins/EmbeddedPluginLoader.ts +++ b/src/Backend/Plugins/EmbeddedPluginLoader.ts @@ -1,4 +1,4 @@ -import { PluginId } from './SerializedPlugin'; +import { PluginId } from '@darkforest_eth/types'; /** * This interface represents an embedded plugin, which is stored in `embedded_plugins/`. @@ -22,12 +22,21 @@ function cleanFilename(filename: string) { .replace(/\.[jt]sx?$/, ''); } -export function getEmbeddedPlugins() { - return pluginsContext.keys().map((filename) => { - return { - id: filename as PluginId, - name: cleanFilename(filename), - code: pluginsContext<{ default: string }>(filename).default, - }; - }); +export function getEmbeddedPlugins(isAdmin: boolean) { + return pluginsContext + .keys() + .filter((filename) => { + if (isAdmin) { + return true; + } else { + return !filename.startsWith('./Admin-Controls'); + } + }) + .map((filename) => { + return { + id: filename as PluginId, + name: cleanFilename(filename), + code: pluginsContext<{ default: string }>(filename).default, + }; + }); } diff --git a/src/Backend/Plugins/SerializedPlugin.ts b/src/Backend/Plugins/SerializedPlugin.ts index 5b2e42a7..999c8e3c 100644 --- a/src/Backend/Plugins/SerializedPlugin.ts +++ b/src/Backend/Plugins/SerializedPlugin.ts @@ -1,6 +1,4 @@ -export type PluginId = string & { - __nothing__: never; -}; +import { PluginId } from '@darkforest_eth/types'; /** * Represents a plugin that the user has added to their game. Used diff --git a/src/Backend/Procedural/ArtifactProcgen.ts b/src/Backend/Procedural/ArtifactProcgen.ts deleted file mode 100644 index 009c73c7..00000000 --- a/src/Backend/Procedural/ArtifactProcgen.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { - ArtifactId, - LocationId, - Artifact, - Biome, - ArtifactRarity, - ArtifactNames, - ArtifactType, - artifactNameFromArtifact, -} from '@darkforest_eth/types'; -import { EMPTY_LOCATION_ID, EMPTY_ADDRESS } from '@darkforest_eth/constants'; -import { artifactBiomeName } from '../GameLogic/ArtifactUtils'; - -export const artifactBiomeAndName = (artifact: Artifact | undefined): string => { - if (!artifact) return ''; - return `${artifactBiomeName(artifact)} ${ArtifactNames[artifact.artifactType]}`; -}; - -export const dateMintedAt = (artifact: Artifact | undefined): string => { - if (!artifact) return '00/00/0000'; - return new Date(artifact.mintedAtTimestamp * 1000).toDateString(); -}; - -const namesById = new Map(); -export const artifactName = (artifact: Artifact | undefined): string => { - if (!artifact) return 'Unknown'; - - const myName = namesById.get(artifact.id); - if (myName) return myName; - - const name = artifactNameFromArtifact(artifact); - namesById.set(artifact.id, name); - - return name; -}; - -const randomHex = (len: number): string => { - let str = ''; - const chars = 'abcdef0123456789'.split(''); - while (str.length < len) { - str = str + chars[Math.floor(Math.random() * chars.length)]; - } - - return str; -}; - -export const mockArtifact = ( - rarity: ArtifactRarity, - artifactType: ArtifactType = ArtifactType.Spaceship, - planetBiome: Biome = Biome.WASTELAND -): Artifact => - ({ - id: randomHex(64) as ArtifactId, - planetDiscoveredOn: EMPTY_LOCATION_ID, - planetBiome, - mintedAtTimestamp: Date.now(), - discoverer: EMPTY_ADDRESS, - currentOwner: EMPTY_ADDRESS, - isInititalized: true, - lastActivated: 0, - lastDeactivated: 0, - rarity: rarity, - artifactType, - upgrade: { - energyCapMultiplier: 120, - energyGroMultiplier: 100, - rangeMultiplier: 100, - speedMultiplier: 85, - defMultiplier: 100, - }, - onPlanetId: undefined, - } as Artifact); - -export const mockArtifactWithRarity = ( - rarity: ArtifactRarity, - artifactType: ArtifactType = ArtifactType.Spaceship, - planetBiome: Biome = Biome.WASTELAND -): Artifact => mockArtifact(rarity, artifactType, planetBiome); - -export const mockCommon = mockArtifactWithRarity( - ArtifactRarity.Common, - ArtifactType.Spaceship, - Biome.WASTELAND -); - -export const mockRare = mockArtifactWithRarity( - ArtifactRarity.Rare, - ArtifactType.Spaceship, - Biome.WASTELAND -); - -export const mockEpic = mockArtifactWithRarity( - ArtifactRarity.Epic, - ArtifactType.Spaceship, - Biome.WASTELAND -); - -export const mockLegendary = mockArtifactWithRarity( - ArtifactRarity.Legendary, - ArtifactType.Spaceship, - Biome.WASTELAND -); diff --git a/src/Backend/Procedural/Noise.ts b/src/Backend/Procedural/Noise.ts deleted file mode 100755 index 51a7378c..00000000 --- a/src/Backend/Procedural/Noise.ts +++ /dev/null @@ -1,401 +0,0 @@ -/* eslint-disable */ - -/* - * A speed-improved perlin and simplex noise algorithms for 2D. - * - * Based on example code by Stefan Gustavson (stegu@itn.liu.se). - * Optimisations by Peter Eastman (peastman@drizzle.stanford.edu). - * Better rank ordering method by Stefan Gustavson in 2012. - * Converted to Javascript by Joseph Gentle. - * - * Version 2012-03-09 - * - * This code was placed in the public domain by its original author, - * Stefan Gustavson. You may use it as you see fit, but - * attribution is appreciated. - * - */ - -// @ts-nocheck - -// Modified for TypeScript by Alan Luo -class Noise { - noise: any; - static instance: Noise; - static initialize(): Noise { - if (!!Noise.instance) { - throw new Error('Noise has already been initialized'); - } - - const myNoise = new Noise(); - Noise.instance = myNoise; - - return myNoise; - } - static getInstance(): Noise { - if (!Noise.instance) { - Noise.initialize(); - } - - return Noise.instance; - } - simplex2(x, y): number { - return Noise.instance.noise.simplex2(x, y); - } - constructor() { - let module: any = {}; - - function Grad(x, y, z) { - this.x = x; - this.y = y; - this.z = z; - } - - Grad.prototype.dot2 = function (x, y) { - return this.x * x + this.y * y; - }; - - Grad.prototype.dot3 = function (x, y, z) { - return this.x * x + this.y * y + this.z * z; - }; - - var grad3 = [ - new Grad(1, 1, 0), - new Grad(-1, 1, 0), - new Grad(1, -1, 0), - new Grad(-1, -1, 0), - new Grad(1, 0, 1), - new Grad(-1, 0, 1), - new Grad(1, 0, -1), - new Grad(-1, 0, -1), - new Grad(0, 1, 1), - new Grad(0, -1, 1), - new Grad(0, 1, -1), - new Grad(0, -1, -1), - ]; - - var p = [ - 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, - 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, - 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, - 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, - 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, - 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, - 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, - 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, - 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, - 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, - 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, - 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, - 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180, - ]; - // To remove the need for index wrapping, double the permutation table length - var perm = new Array(512); - var gradP = new Array(512); - - // This isn't a very good seeding function, but it works ok. It supports 2^16 - // different seed values. Write something better if you need more seeds. - module.seed = function (seed) { - if (seed > 0 && seed < 1) { - // Scale the seed out - seed *= 65536; - } - - seed = Math.floor(seed); - if (seed < 256) { - seed |= seed << 8; - } - - for (var i = 0; i < 256; i++) { - var v; - if (i & 1) { - v = p[i] ^ (seed & 255); - } else { - v = p[i] ^ ((seed >> 8) & 255); - } - - perm[i] = perm[i + 256] = v; - gradP[i] = gradP[i + 256] = grad3[v % 12]; - } - }; - - module.seed(0); - - /* - for(var i=0; i<256; i++) { - perm[i] = perm[i + 256] = p[i]; - gradP[i] = gradP[i + 256] = grad3[perm[i] % 12]; - }*/ - - // Skewing and unskewing factors for 2, 3, and 4 dimensions - var F2 = 0.5 * (Math.sqrt(3) - 1); - var G2 = (3 - Math.sqrt(3)) / 6; - - var F3 = 1 / 3; - var G3 = 1 / 6; - - // 2D simplex noise - module.simplex2 = function (xin, yin) { - var n0, n1, n2; // Noise contributions from the three corners - // Skew the input space to determine which simplex cell we're in - var s = (xin + yin) * F2; // Hairy factor for 2D - var i = Math.floor(xin + s); - var j = Math.floor(yin + s); - var t = (i + j) * G2; - var x0 = xin - i + t; // The x,y distances from the cell origin, unskewed. - var y0 = yin - j + t; - // For the 2D case, the simplex shape is an equilateral triangle. - // Determine which simplex we are in. - var i1, j1; // Offsets for second (middle) corner of simplex in (i,j) coords - if (x0 > y0) { - // lower triangle, XY order: (0,0)->(1,0)->(1,1) - i1 = 1; - j1 = 0; - } else { - // upper triangle, YX order: (0,0)->(0,1)->(1,1) - i1 = 0; - j1 = 1; - } - // A step of (1,0) in (i,j) means a step of (1-c,-c) in (x,y), and - // a step of (0,1) in (i,j) means a step of (-c,1-c) in (x,y), where - // c = (3-sqrt(3))/6 - var x1 = x0 - i1 + G2; // Offsets for middle corner in (x,y) unskewed coords - var y1 = y0 - j1 + G2; - var x2 = x0 - 1 + 2 * G2; // Offsets for last corner in (x,y) unskewed coords - var y2 = y0 - 1 + 2 * G2; - // Work out the hashed gradient indices of the three simplex corners - i &= 255; - j &= 255; - var gi0 = gradP[i + perm[j]]; - var gi1 = gradP[i + i1 + perm[j + j1]]; - var gi2 = gradP[i + 1 + perm[j + 1]]; - // Calculate the contribution from the three corners - var t0 = 0.5 - x0 * x0 - y0 * y0; - if (t0 < 0) { - n0 = 0; - } else { - t0 *= t0; - n0 = t0 * t0 * gi0.dot2(x0, y0); // (x,y) of grad3 used for 2D gradient - } - var t1 = 0.5 - x1 * x1 - y1 * y1; - if (t1 < 0) { - n1 = 0; - } else { - t1 *= t1; - n1 = t1 * t1 * gi1.dot2(x1, y1); - } - var t2 = 0.5 - x2 * x2 - y2 * y2; - if (t2 < 0) { - n2 = 0; - } else { - t2 *= t2; - n2 = t2 * t2 * gi2.dot2(x2, y2); - } - // Add contributions from each corner to get the final noise value. - // The result is scaled to return values in the interval [-1,1]. - return 70 * (n0 + n1 + n2); - }; - - // 3D simplex noise - module.simplex3 = function (xin, yin, zin) { - var n0, n1, n2, n3; // Noise contributions from the four corners - - // Skew the input space to determine which simplex cell we're in - var s = (xin + yin + zin) * F3; // Hairy factor for 2D - var i = Math.floor(xin + s); - var j = Math.floor(yin + s); - var k = Math.floor(zin + s); - - var t = (i + j + k) * G3; - var x0 = xin - i + t; // The x,y distances from the cell origin, unskewed. - var y0 = yin - j + t; - var z0 = zin - k + t; - - // For the 3D case, the simplex shape is a slightly irregular tetrahedron. - // Determine which simplex we are in. - var i1, j1, k1; // Offsets for second corner of simplex in (i,j,k) coords - var i2, j2, k2; // Offsets for third corner of simplex in (i,j,k) coords - if (x0 >= y0) { - if (y0 >= z0) { - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } else if (x0 >= z0) { - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 0; - k2 = 1; - } else { - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 1; - j2 = 0; - k2 = 1; - } - } else { - if (y0 < z0) { - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 0; - j2 = 1; - k2 = 1; - } else if (x0 < z0) { - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 0; - j2 = 1; - k2 = 1; - } else { - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } - } - // A step of (1,0,0) in (i,j,k) means a step of (1-c,-c,-c) in (x,y,z), - // a step of (0,1,0) in (i,j,k) means a step of (-c,1-c,-c) in (x,y,z), and - // a step of (0,0,1) in (i,j,k) means a step of (-c,-c,1-c) in (x,y,z), where - // c = 1/6. - var x1 = x0 - i1 + G3; // Offsets for second corner - var y1 = y0 - j1 + G3; - var z1 = z0 - k1 + G3; - - var x2 = x0 - i2 + 2 * G3; // Offsets for third corner - var y2 = y0 - j2 + 2 * G3; - var z2 = z0 - k2 + 2 * G3; - - var x3 = x0 - 1 + 3 * G3; // Offsets for fourth corner - var y3 = y0 - 1 + 3 * G3; - var z3 = z0 - 1 + 3 * G3; - - // Work out the hashed gradient indices of the four simplex corners - i &= 255; - j &= 255; - k &= 255; - var gi0 = gradP[i + perm[j + perm[k]]]; - var gi1 = gradP[i + i1 + perm[j + j1 + perm[k + k1]]]; - var gi2 = gradP[i + i2 + perm[j + j2 + perm[k + k2]]]; - var gi3 = gradP[i + 1 + perm[j + 1 + perm[k + 1]]]; - - // Calculate the contribution from the four corners - var t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0; - if (t0 < 0) { - n0 = 0; - } else { - t0 *= t0; - n0 = t0 * t0 * gi0.dot3(x0, y0, z0); // (x,y) of grad3 used for 2D gradient - } - var t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1; - if (t1 < 0) { - n1 = 0; - } else { - t1 *= t1; - n1 = t1 * t1 * gi1.dot3(x1, y1, z1); - } - var t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2; - if (t2 < 0) { - n2 = 0; - } else { - t2 *= t2; - n2 = t2 * t2 * gi2.dot3(x2, y2, z2); - } - var t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3; - if (t3 < 0) { - n3 = 0; - } else { - t3 *= t3; - n3 = t3 * t3 * gi3.dot3(x3, y3, z3); - } - // Add contributions from each corner to get the final noise value. - // The result is scaled to return values in the interval [-1,1]. - return 32 * (n0 + n1 + n2 + n3); - }; - - // ##### Perlin noise stuff - - function fade(t) { - return t * t * t * (t * (t * 6 - 15) + 10); - } - - function lerp(a, b, t) { - return (1 - t) * a + t * b; - } - - // 2D Perlin Noise - module.perlin2 = function (x, y) { - // Find unit grid cell containing point - var X = Math.floor(x), - Y = Math.floor(y); - // Get relative xy coordinates of point within that cell - x = x - X; - y = y - Y; - // Wrap the integer cells at 255 (smaller integer period can be introduced here) - X = X & 255; - Y = Y & 255; - - // Calculate noise contributions from each of the four corners - var n00 = gradP[X + perm[Y]].dot2(x, y); - var n01 = gradP[X + perm[Y + 1]].dot2(x, y - 1); - var n10 = gradP[X + 1 + perm[Y]].dot2(x - 1, y); - var n11 = gradP[X + 1 + perm[Y + 1]].dot2(x - 1, y - 1); - - // Compute the fade curve value for x - var u = fade(x); - - // Interpolate the four results - return lerp(lerp(n00, n10, u), lerp(n01, n11, u), fade(y)); - }; - - // 3D Perlin Noise - module.perlin3 = function (x, y, z) { - // Find unit grid cell containing point - var X = Math.floor(x), - Y = Math.floor(y), - Z = Math.floor(z); - // Get relative xyz coordinates of point within that cell - x = x - X; - y = y - Y; - z = z - Z; - // Wrap the integer cells at 255 (smaller integer period can be introduced here) - X = X & 255; - Y = Y & 255; - Z = Z & 255; - - // Calculate noise contributions from each of the eight corners - var n000 = gradP[X + perm[Y + perm[Z]]].dot3(x, y, z); - var n001 = gradP[X + perm[Y + perm[Z + 1]]].dot3(x, y, z - 1); - var n010 = gradP[X + perm[Y + 1 + perm[Z]]].dot3(x, y - 1, z); - var n011 = gradP[X + perm[Y + 1 + perm[Z + 1]]].dot3(x, y - 1, z - 1); - var n100 = gradP[X + 1 + perm[Y + perm[Z]]].dot3(x - 1, y, z); - var n101 = gradP[X + 1 + perm[Y + perm[Z + 1]]].dot3(x - 1, y, z - 1); - var n110 = gradP[X + 1 + perm[Y + 1 + perm[Z]]].dot3(x - 1, y - 1, z); - var n111 = gradP[X + 1 + perm[Y + 1 + perm[Z + 1]]].dot3(x - 1, y - 1, z - 1); - - // Compute the fade curve value for x, y, z - var u = fade(x); - var v = fade(y); - var w = fade(z); - - // Interpolate - return lerp( - lerp(lerp(n000, n100, u), lerp(n001, n101, u), w), - lerp(lerp(n010, n110, u), lerp(n011, n111, u), w), - v - ); - }; - - this.noise = module; - } -} - -export default Noise; diff --git a/src/Backend/Procedural/ProcgenConsts.ts b/src/Backend/Procedural/ProcgenConsts.ts deleted file mode 100644 index 5b9348d3..00000000 --- a/src/Backend/Procedural/ProcgenConsts.ts +++ /dev/null @@ -1,2572 +0,0 @@ -/* eslint-disable */ -const genericVerb = [ - 'ruin', - 'snow', - 'ban', - 'blot', - 'disappear', - 'scare', - 'relax', - 'tug', - 'sigh', - 'rub', - 'float', - 'entertain', - 'tap', - 'taste', - 'gather', - 'tour', - 'place', - 'treat', - 'program', - 'try', - 'depend', - 'puncture', - 'cheat', - 'whine', - 'tame', - 'check', - 'employ', - 'heap', - 'flower', - 'perform', - 'unite', - 'guarantee', - 'delight', - 'expand', - 'double', - 'fit', - 'ignore', - 'phone', - 'regret', - 'question', - 'jog', - 'attract', - 'learn', - 'twist', - 'drip', - 'remind', - 'slap', - 'knock', - 'train', - 'part', - 'groan', - 'compete', - 'excite', - 'calculate', - 'trouble', - 'shrug', - 'whip', - 'prevent', - 'object', - 'return', - 'scribble', - 'practise', - 'carve', - 'possess', - 'irritate', - 'park', - 'stamp', - 'warm', - 'imagine', - 'fade', - 'admire', - 'hang', - 'unlock', - 'obtain', - 'smash', - 'queue', - 'snatch', - 'develop', - 'end', - 'pine', - 'balance', - 'fold', - 'bat', - 'crawl', - 'frighten', - 'dry', - 'approve', - 'rhyme', - 'contain', - 'sip', - 'battle', - 'peel', - 'trick', - 'chop', - 'heat', - 'wreck', - 'please', - 'preach', - 'risk', - 'kiss', - 'test', - 'thaw', - 'sin', - 'wander', - 'bless', - 'walk', - 'cover', - 'form', - 'seal', - 'reduce', - 'wave', - 'support', - 'coach', - 'spoil', - 'sniff', - 'borrow', - 'zoom', - 'obey', - 'worry', - 'shock', - 'suffer', - 'cry', - 'heal', - 'harm', - 'suspect', - 'raise', - 'remove', - 'deliver', - 'ski', - 'blink', - 'clear', - 'tire', - 'protect', - 'tick', - 'shop', - 'pray', - 'correct', - 'receive', - 'brake', - 'bomb', - 'describe', - 'mend', - 'squeeze', - 'open', - 'welcome', - 'whisper', - 'fear', - 'pack', - 'settle', - 'scatter', - 'rob', - 'hand', - 'exist', - 'zip', - 'wish', - 'separate', - 'fix', - 'pedal', - 'tempt', - 'kneel', - 'suck', - 'sail', - 'observe', - 'replace', - 'race', - 'answer', - 'laugh', - 'play', - 'multiply', - 'repeat', - 'trust', - 'inject', - 'wrestle', - 'argue', - 'guess', - 'decide', - 'load', - 'deceive', - 'dare', - 'book', - 'wait', - 'grease', - 'glow', - 'step', - 'allow', - 'steer', - 'gaze', - 'rain', - 'cause', - 'clap', - 'peep', - 'wriggle', - 'bare', - 'explode', - 'rush', - 'bolt', - 'announce', - 'match', - 'concern', - 'colour', - 'type', - 'spill', - 'exercise', - 'pick', - 'delay', - 'nail', - 'screw', - 'slow', - 'ask', - 'shiver', - 'add', - 'dream', - 'warn', - 'lick', - 'kick', - 'plan', - 'memorise', - 'bump', - 'arrive', - 'intend', - 'polish', - 'trip', - 'subtract', - 'include', - 'trace', - 'handle', - 'strip', - 'spot', - 'fry', - 'flash', - 'man', - 'visit', - 'squeak', - 'copy', - 'reflect', - 'comb', - 'reign', - 'scream', - 'chew', - 'fetch', - 'rule', - 'label', - 'invite', - 'transport', - 'present', - 'sneeze', - 'provide', - 'mate', - 'paddle', - 'look', - 'haunt', - 'choke', - 'fail', - 'satisfy', - 'push', - 'point', - 'stain', - 'interfere', - 'cheer', - 'afford', - 'blind', - 'flow', - 'shelter', - 'glue', - 'amuse', - 'accept', - 'bruise', - 'post', - 'live', - 'fasten', - 'mark', - 'escape', - 'hum', - 'curve', - 'follow', - 'land', - 'dust', - 'stay', - 'occur', - 'boil', - 'scratch', - 'dislike', - 'pat', - 'stroke', - 'dress', - 'turn', - 'promise', - 'offer', - 'challenge', - 'drown', - 'slip', - 'trap', - 'pop', - 'mess up', - 'force', - 'stuff', - 'roll', - 'care', - 'consist', - 'jump', - 'level', - 'hop', - 'bathe', - 'wobble', - 'consider', - 'murder', - 'excuse', - 'avoid', - 'disagree', - 'back', - 'frame', - 'shave', - 'charge', - 'pump', - 'instruct', - 'tickle', - 'travel', - 'moan', - 'peck', - 'nest', - 'drag', - 'fire', - 'explain', - 'scold', - 'attach', - 'carry', - 'suit', - 'paint', - 'applaud', - 'breathe', - 'saw', - 'report', - 'attack', - 'marry', - 'complain', - 'communicate', - 'own', - 'hunt', - 'retire', - 'spray', - 'complete', - 'admit', - 'store', - 'water', - 'request', - 'extend', - 'grate', - 'drum', - 'call', - 'fill', - 'bore', - 'punish', - 'moor', - 'punch', - 'save', - 'fool', - 'dam', - 'bow', - 'love', - 'increase', - 'start', - 'listen', - 'hammer', - 'mourn', - 'want', - 'appear', - 'smile', - 'suppose', - 'march', - 'continue', - 'buzz', - 'wink', - 'apologise', - 'face', - 'clip', - 'close', - 'flap', - 'owe', - 'rely', - 'supply', - 'dance', - 'attempt', - 'blush', - 'wipe', - 'share', - 'burn', - 'bubble', - 'empty', - 'disarm', - 'cross', - 'search', - 'soak', - 'agree', - 'launch', - 'surround', - 'plant', - 'pour', - 'lighten', - 'destroy', - 'detect', -]; -const genericNoun = [ - 'adjustment', - 'straw', - 'person', - 'pipe', - 'coach', - 'distribution', - 'bite', - 'can', - 'snail', - 'plane', - 'flock', - 'servant', - 'dog', - 'grandfather', - 'achiever', - 'act', - 'beds', - 'trains', - 'wall', - 'school', - 'minute', - 'religion', - 'clam', - 'rat', - 'notebook', - 'sister', - 'power', - 'government', - 'tomatoes', - 'week', - 'river', - 'quiet', - 'move', - 'rose', - 'crate', - 'bubble', - 'loss', - 'laugh', - 'camera', - 'mouth', - 'development', - 'flag', - 'appliance', - 'slave', - 'match', - 'trucks', - 'bead', - 'screw', - 'hot', - 'sidewalk', - 'minister', - 'bell', - 'lamp', - 'coat', - 'queen', - 'cherries', - 'temper', - 'lip', - 'suit', - 'partner', - 'voice', - 'cave', - 'plough', - 'wind', - 'harbor', - 'tub', - 'dock', - 'women', - 'hands', - 'van', - 'calculator', - 'cause', - 'history', - 'plantation', - 'effect', - 'hour', - 'experience', - 'back', - 'bucket', - 'chickens', - 'aunt', - 'death', - 'friction', - 'amount', - 'fuel', - 'stem', - 'sisters', - 'yam', - 'event', - 'tooth', - 'discussion', - 'maid', - 'guitar', - 'bit', - 'chance', - 'time', - 'fairies', - 'key', - 'trail', - 'spot', - 'tank', - 'oranges', - 'attraction', - 'range', - 'ants', - 'boot', - 'education', - 'letters', - 'iron', - 'kitty', - 'belief', - 'noise', - 'acoustics', - 'cheese', - 'fire', - 'foot', - 'chicken', - 'rest', - 'bikes', - 'hope', - 'stop', - 'shade', - 'quiver', - 'sand', - 'farm', - 'zoo', - 'cabbage', - 'oil', - 'deer', - 'throne', - 'look', - 'rainstorm', - 'talk', - 'linen', - 'pigs', - 'wound', - 'liquid', - 'badge', - 'vase', - 'button', - 'order', - 'bath', - 'airport', - 'business', - 'cow', - 'visitor', - 'committee', - 'base', - 'book', - 'cemetery', - 'ice', - 'zinc', - 'afterthought', - 'zipper', - 'size', - 'frogs', - 'wren', - 'chess', - 'sneeze', - 'robin', - 'lake', - 'underwear', - 'bomb', - 'memory', - 'snakes', - 'decision', - 'head', - 'receipt', - 'toothbrush', - 'humor', - 'war', - 'cats', - 'pull', - 'industry', - 'offer', - 'insurance', - 'test', - 'spy', - 'hat', - 'north', - 'behavior', - 'battle', - 'parcel', - 'grade', - 'dinosaurs', - 'substance', - 'window', - 'gate', - 'side', - 'houses', - 'view', - 'cap', - 'agreement', - 'honey', - 'plate', - 'pest', - 'fish', - 'cannon', - 'yarn', - 'bed', - 'mom', - 'writer', - 'interest', - 'record', - 'scissors', - 'rod', - 'guide', - 'furniture', - 'credit', - 'gold', - 'spoon', - 'activity', - 'club', - 'theory', - 'coal', - 'sponge', - 'knot', - 'mass', - 'house', - 'bone', - 'mailbox', - 'drink', - 'burst', - 'water', - 'cherry', - 'flavor', - 'sky', - 'coast', - 'island', - 'son', - 'smoke', - 'birthday', - 'babies', - 'self', - 'planes', - 'impulse', - 'metal', - 'thought', - 'salt', - 'pollution', - 'table', - 'surprise', - 'scene', - 'health', - 'rifle', - 'shock', - 'picture', - 'plastic', - 'arithmetic', - 'border', - 'army', - 'place', - 'oven', - 'marble', - 'skate', - 'voyage', - 'question', - 'cobweb', - 'mark', - 'shoe', - 'beginner', - 'star', - 'porter', - 'magic', - 'collar', - 'team', - 'sofa', - 'moon', - 'chalk', - 'sink', - 'lettuce', - 'turkey', - 'doll', - 'land', - 'brake', - 'existence', - 'smile', - 'thing', - 'car', - 'loaf', - 'jellyfish', - 'play', - 'swing', - 'sign', - 'cook', - 'horses', - 'laborer', - 'company', - 'office', - 'snake', - 'volleyball', - 'fly', - 'thumb', - 'top', - 'division', - 'celery', - 'pie', - 'measure', - 'oatmeal', - 'name', - 'girls', - 'toes', - 'limit', - 'veil', - 'hill', - 'driving', - 'jam', - 'quilt', - 'horse', - 'secretary', - 'pleasure', - 'squirrel', - 'wire', - 'finger', - 'peace', - 'roof', - 'structure', - 'curve', - 'zebra', - 'rings', - 'alarm', - 'cushion', - 'monkey', - 'grip', - 'treatment', - 'balance', - 'flower', - 'mitten', - 'crow', - 'twig', - 'glove', - 'advice', - 'song', - 'weather', - 'bird', - 'governor', - 'science', - 'seashore', - 'pot', - 'sort', - 'berry', - 'zephyr', - 'basket', - 'value', - 'expansion', - 'arm', - 'cub', - 'pump', - 'things', - 'competition', - 'boy', - 'wheel', - 'toy', - 'kick', - 'cloth', - 'step', - 'respect', - 'church', - 'writing', - 'push', - 'milk', - 'jar', - 'low', - 'geese', - 'meat', - 'tree', - 'songs', - 'dress', - 'party', - 'heat', - 'selection', - 'wash', - 'nerve', - 'rain', - 'amusement', - 'mice', - 'error', - 'rock', - 'caption', - 'desire', - 'edge', - 'start', - 'children', - 'wealth', - 'neck', - 'nose', - 'playground', - 'nation', - 'coil', - 'pan', - 'donkey', - 'field', - 'approval', - 'canvas', - 'position', - 'note', - 'rub', - 'ray', - 'cat', - 'library', -]; -const genericAdj = [ - 'tedious', - 'therapeutic', - 'acid', - 'crooked', - 'available', - 'tasty', - 'real', - 'kind', - 'fancy', - 'solid', - 'brash', - 'unaccountable', - 'late', - 'necessary', - 'electric', - 'one', - 'zealous', - 'versed', - 'highfalutin', - 'exciting', - 'keen', - 'tasteful', - 'ugliest', - 'adjoining', - 'questionable', - 'tasteless', - 'productive', - 'worthless', - 'evasive', - 'square', - 'separate', - 'upset', - 'typical', - 'mighty', - 'plant', - 'hushed', - 'helpless', - 'smooth', - 'colossal', - 'infamous', - 'scandalous', - 'pointless', - 'lethal', - 'melodic', - 'terrific', - 'inexpensive', - 'salty', - 'puzzling', - 'seemly', - 'learned', - 'venomous', - 'vagabond', - 'puny', - 'chubby', - 'mere', - 'unkempt', - 'private', - 'breezy', - 'tremendous', - 'exultant', - 'ugly', - 'chunky', - 'teeny-tiny', - 'snobbish', - 'entertaining', - 'friendly', - 'opposite', - 'pumped', - 'fascinated', - 'picayune', - 'wanting', - 'subsequent', - 'abrasive', - 'uttermost', - 'abiding', - 'narrow', - 'holistic', - 'slow', - 'murky', - 'probable', - 'mountainous', - 'bouncy', - 'upbeat', - 'foamy', - 'sophisticated', - 'furry', - 'nonchalant', - 'warlike', - 'rightful', - 'extra-large', - 'calculating', - 'aspiring', - 'volatile', - 'vague', - 'icy', - 'frightening', - 'historical', - 'complete', - 'enormous', - 'swift', - 'grumpy', - 'empty', - 'knowing', - 'adventurous', - 'ruthless', - 'faded', - 'hypnotic', - 'remarkable', - 'understood', - 'feeble', - 'pushy', - 'mature', - 'paltry', - 'next', - 'shivering', - 'flagrant', - 'worried', - 'dead', - 'needless', - 'natural', - 'curly', - 'coherent', - 'abusive', - 'tart', - 'tough', - 'chief', - 'concerned', - 'physical', - 'whimsical', - 'useful', - 'exotic', - 'nimble', - 'hallowed', - 'smelly', - 'internal', - 'meek', - 'aboriginal', - 'tested', - 'hurried', - 'marked', - 'jittery', - 'crowded', - 'gaudy', - 'proud', - 'used', - 'last', - 'incompetent', - 'fumbling', - 'nosy', - 'possessive', - 'puffy', - 'workable', - 'fretful', - 'sweet', - 'disastrous', - 'dramatic', - 'capable', - 'courageous', - 'heady', - 'shrill', - 'vulgar', - 'kindhearted', - 'cagey', - 'parsimonious', - 'abaft', - 'ethereal', - 'talented', - 'noxious', - 'raspy', - 'frantic', - 'doubtful', - 'alcoholic', - 'fantastic', - 'tan', - 'screeching', - 'abnormal', - 'rustic', - 'recondite', - 'cut', - 'annoyed', - 'chemical', - 'ossified', - 'cluttered', - 'stupid', - 'clumsy', - 'clean', - 'exuberant', - 'cumbersome', - 'enchanted', - 'plain', - 'malicious', - 'romantic', - 'itchy', - 'light', - 'scintillating', - 'grouchy', - 'gainful', - 'four', - 'pricey', - 'three', - 'ambitious', - 'brown', - 'healthy', - 'willing', - 'new', - 'jazzy', - 'soggy', - 'oval', - 'madly', - 'nutritious', - 'unused', - 'kaput', - 'straight', - 'defective', - 'phobic', - 'ripe', - 'wide', - 'whole', - 'insidious', - 'foregoing', - 'poised', - 'unusual', - 'smoggy', - 'optimal', - 'voiceless', - 'curved', - 'statuesque', - 'slim', - 'hard', - 'numberless', - 'successful', - 'brawny', - 'ratty', - 'ultra', - 'accurate', - 'rigid', - 'impossible', - 'ajar', - 'elegant', - 'heavy', - 'ablaze', - 'lackadaisical', - 'moldy', - 'lopsided', - 'black', - 'reflective', - 'mushy', - 'wholesale', - 'lewd', - 'quarrelsome', - 'closed', - 'equal', - 'awake', - 'wide-eyed', - 'unwieldy', - 'mellow', - 'squealing', - 'shallow', - 'foolish', - 'measly', - 'poor', - 'cloistered', - 'calm', - 'shy', - 'clammy', - 'damaged', - 'jaded', - 'unable', - 'painstaking', - 'overjoyed', - 'faint', - 'steadfast', - 'brave', - 'receptive', - 'filthy', - 'amuck', - 'tacit', - 'living', - 'normal', - 'useless', - 'beneficial', - 'protective', - 'adaptable', - 'diligent', - 'uncovered', - 'meaty', - 'political', - 'rude', - 'stale', - 'nasty', - 'demonic', - 'perpetual', - 'fragile', - 'right', - 'striped', - 'rare', - 'guarded', - 'decorous', - 'wrathful', - 'strange', - 'daffy', - 'wealthy', - 'humdrum', - 'familiar', - 'animated', - 'aware', - 'silly', - 'oafish', - 'selfish', - 'royal', - 'skillful', - 'excellent', - 'wry', - 'flippant', - 'obeisant', - 'mammoth', - 'psychotic', - 'milky', - 'substantial', - 'modern', - 'huge', - 'bustling', - 'unequaled', - 'adamant', - 'green', - 'confused', - 'hapless', - 'ceaseless', - 'spotty', - 'dangerous', - 'defeated', - 'dull', - 'silky', - 'wet', - 'hurt', - 'efficacious', - 'best', - 'humorous', - 'magnificent', - 'faulty', - 'ruddy', - 'accessible', - 'second', - 'languid', - 'uptight', - 'small', - 'odd', - 'detailed', - 'didactic', - 'cute', - 'steep', - 'mixed', - 'squeamish', - 'truculent', - 'aboard', - 'deadpan', - 'sweltering', - 'stupendous', - 'overwrought', - 'precious', - 'pink', - 'afraid', - 'bitter', - 'husky', - 'wacky', - 'gruesome', - 'plucky', - 'scrawny', - 'famous', - 'old-fashioned', - 'fabulous', - 'obscene', - 'repulsive', - 'boundless', - 'blue-eyed', - 'handy', - 'greasy', - 'irritating', - 'roomy', - 'somber', - 'stormy', - 'two', - 'nippy', - 'half', - 'imperfect', - 'shaky', - 'nifty', - 'succinct', - 'hollow', - 'lonely', - 'sturdy', - 'giant', - 'fierce', - 'lazy', - 'bright', - 'maddening', - 'lamentable', - 'subdued', - 'tawdry', - 'crabby', -]; - -export const planetNameWords = [ - 'abandon', - 'abate', - 'aberrant', - 'blaze', - 'abounding', - 'absorb', - 'acoustic', - 'harmony', - 'act', - 'action', - 'actor', - 'add', - 'addition', - 'adjustment', - 'admit', - 'advice', - 'advise', - 'afraid', - 'aggressive', - 'agonizing', - 'ahead', - 'airplane', - 'airport', - 'alight', - 'alike', - 'aloof', - 'ambitious', - 'amuck', - 'amusement', - 'anger', - 'animated', - 'annoyed', - 'anxious', - 'apparel', - 'applaud', - 'apple', - 'apple', - 'apples', - 'apply', - 'apply', - 'aquatic', - 'argument', - 'aromatic', - 'arrest', - 'assert', - 'assert', - 'attempt', - 'audacious', - 'auspicious', - 'authority', - 'avoid', - 'awake', - 'badge', - 'bait', - 'ball', - 'band', - 'band', - 'banish', - 'barbarous', - 'base', - 'base', - 'baseball', - 'basket', - 'bat', - 'bawdy', - 'bead', - 'bear', - 'beast', - 'beast', - 'beautify', - 'beds', - 'befall', - 'befitting', - 'behold', - 'believe', - 'bell', - 'bells', - 'bend', - 'berserk', - 'beseech', - 'big', - 'birthday', - 'bite', - 'bite', - 'blade', - 'blow', - 'blush', - 'bone', - 'books', - 'books', - 'boot', - 'bottle', - 'bouncy', - 'boundary', - 'bow', - 'brainy', - 'brass', - 'breath', - 'breathe', - 'bridge', - 'bright', - 'bring', - 'broadcast', - 'brother', - 'brothers', - 'brothers', - 'bulb', - 'burly', - 'burly', - 'burst', - 'bury', - 'bushes', - 'busy', - 'button', - 'button', - 'cabbage', - 'cagey', - 'calculating', - 'callous', - 'calm', - 'can', - 'canvas', - 'canvas', - 'capable', - 'careless', - 'carriage', - 'cars', - 'cast', - 'catch', - 'cease', - 'celebrate', - 'cent', - 'chain', - 'chairs', - 'chairs', - 'change', - 'changeable', - 'channel', - 'charge', - 'charming', - 'chat', - 'cheese', - 'cherries', - 'chide', - 'chief', - 'children', - 'chip', - 'choke', - 'clean', - 'cleave', - 'clocks', - 'closed', - 'clutch', - 'cluttered', - 'coast', - 'collapse', - 'collapse', - 'collar', - 'colour', - 'combative', - 'comfortable', - 'competition', - 'complain', - 'complete', - 'complex', - 'condition', - 'confuse', - 'connection', - 'connote', - 'conserve', - 'conspire', - 'constitute', - 'constrain', - 'contribute', - 'convene', - 'converge', - 'convict', - 'convince', - 'coo', - 'cooing', - 'cool', - 'cooperative', - 'copper', - 'cork', - 'corrod', - 'cough', - 'country', - 'cow', - 'cowardly', - 'crabby', - 'cracker', - 'crashing', - 'creep', - 'crib', - 'cry', - 'cub', - 'cumbersome', - 'cup', - 'cure', - 'curly', - 'curve', - 'cut', - 'cute', - 'cute', - 'daffy', - 'daffy', - 'daily', - 'dance', - 'dark', - 'daughter', - 'dazzling', - 'deafening', - 'debonair', - 'decision', - 'declare', - 'decorous', - 'defiant', - 'degree', - 'delay', - 'delicate', - 'delirious', - 'depend', - 'desire', - 'destruction', - 'develop', - 'die', - 'different', - 'digestion', - 'diligent', - 'dim', - 'diminish', - 'dinner', - 'direct', - 'dirty', - 'disgusted', - 'dispensable', - 'display', - 'display', - 'distinct', - 'dive', - 'dive', - 'divide', - 'dock', - 'doctor', - 'dog', - 'doll', - 'drain', - 'draw', - 'dream', - 'dreary', - 'drink', - 'drive', - 'drop', - 'dry', - 'dull', - 'dust', - 'dynamic', - 'dysfunctional', - 'earn', - 'earthy', - 'eatable', - 'edge', - 'education', - 'efficacious', - 'egg', - 'eggnog', - 'elephant', - 'elite', - 'elite', - 'eminent', - 'empower', - 'empty', - 'enchanting', - 'encourage', - 'end', - 'end', - 'endorse', - 'enjoy', - 'enlighten', - 'enormous', - 'enthusiastic', - 'envious', - 'erratic', - 'escape', - 'evasive', - 'event', - 'excited', - 'exclusive', - 'expensive', - 'expert', - 'extend', - 'extra-large', - 'extra-small', - 'eyes', - 'fabulous', - 'fair', - 'fall', - 'fan', - 'far', - 'fascinated', - 'fast', - 'fear', - 'feather', - 'feed', - 'feet', - 'field', - 'fight', - 'finger', - 'flaky', - 'flame', - 'flap', - 'flee', - 'flesh', - 'flock', - 'floor', - 'flop', - 'flower', - 'fly', - 'fly', - 'fog', - 'fold', - 'follow', - 'foregoing', - 'four', - 'freeze', - 'friend', - 'frighten', - 'frightened', - 'fulfil', - 'funny', - 'garrulous', - 'gash', - 'gentle', - 'gentle', - 'giant', - 'giant', - 'gigantic', - 'giraffe', - 'glamorous', - 'glass', - 'glass', - 'glib', - 'glorious', - 'glove', - 'glow', - 'godly', - 'golden', - 'govern', - 'grade', - 'grape', - 'grass', - 'green', - 'green', - 'grind', - 'ground', - 'group', - 'grow', - 'growth', - 'gruesome', - 'grumpy', - 'guarded', - 'guess', - 'guide', - 'gusty', - 'haircut', - 'hallowed', - 'halting', - 'handsome', - 'hang', - 'happy', - 'harbor', - 'harm', - 'harmonious', - 'hat', - 'heal', - 'hearing', - 'heart', - 'heat', - 'hiss', - 'honey', - 'hope', - 'hose', - 'hospitable', - 'humorous', - 'hurt', - 'hurt', - 'hush', - 'hustle', - 'hydrant', - 'hypnotic', - 'hypnotize', - 'ice', - 'idealize', - 'ill-fated', - 'illustrate', - 'imaginary', - 'imagine', - 'imminent', - 'immolate', - 'impart', - 'impartial', - 'impend', - 'impend', - 'imperfect', - 'imperil', - 'imperil', - 'implant', - 'implicate', - 'impolite', - 'imported', - 'income', - 'incompetent', - 'increase', - 'incredible', - 'indicate', - 'induce', - 'indulge', - 'industry', - 'infect', - 'inherit', - 'initiate', - 'innocent', - 'inspire', - 'insult', - 'insurance', - 'invent', - 'invention', - 'iron', - 'jaded', - 'jail', - 'jam', - 'jealous', - 'jeans', - 'jellyfish', - 'jobless', - 'jumbled', - 'kill', - 'kiss', - 'knot', - 'knowing', - 'lade', - 'ladybug', - 'lamentable', - 'lamp', - 'languid', - 'latch', - 'laugh', - 'lavish', - 'lead', - 'leak', - 'lean', - 'leather', - 'lend', - 'let', - 'letters', - 'lick', - 'lift', - 'lip', - 'list', - 'listen', - 'listen', - 'lively', - 'lock', - 'lock', - 'locket', - 'lonely', - 'longing', - 'look', - 'loose', - 'lose', - 'love', - 'low', - 'lowly', - 'ludicrous', - 'lumpy', - 'lunch', - 'lyrical', - 'maddening', - 'magnificent', - 'mailbox', - 'make', - 'manage', - 'manager', - 'marble', - 'mass', - 'materialistic', - 'meal', - 'measly', - 'measure', - 'meat', - 'meek', - 'meet', - 'mellow', - 'mere', - 'mind', - 'mine', - 'miniature', - 'minister', - 'mint', - 'miscreant', - 'motionless', - 'motivate', - 'mountain', - 'multiply', - 'mundane', - 'mushy', - 'music', - 'nappy', - 'need', - 'nerve', - 'nest', - 'news', - 'next', - 'nifty', - 'nimble', - 'noise', - 'noiseless', - 'noisy', - 'nostalgic', - 'notify', - 'notify', - 'null', - 'nut', - 'oatmeal', - 'oatmeal', - 'observation', - 'oceanic', - 'odd', - 'old-fashioned', - 'onerous', - 'open', - 'operation', - 'opinion', - 'oranges', - 'order', - 'ordinary', - 'organization', - 'originate', - 'outgoing', - 'output', - 'outrageous', - 'outstanding', - 'oven', - 'overflow', - 'overrated', - 'owe', - 'own', - 'pacify', - 'pain', - 'pale', - 'pale', - 'paltry', - 'pan', - 'paper', - 'partake', - 'participate', - 'party', - 'passenger', - 'past', - 'patch', - 'pay', - 'peace', - 'peaceful', - 'penitent', - 'permissible', - 'pet', - 'phone', - 'physical', - 'pink', - 'piquant', - 'place', - 'plain', - 'plan', - 'please', - 'pointless', - 'poison', - 'police', - 'ponder', - 'poor', - 'possessive', - 'praise', - 'precious', - 'premium', - 'prescribe', - 'preserve', - 'preset', - 'prickly', - 'probable', - 'proceed', - 'protect', - 'public', - 'pull', - 'pull', - 'punish', - 'puny', - 'purpose', - 'push', - 'puzzling', - 'quack', - 'qualify', - 'quarrel', - 'quilt', - 'quince', - 'quirky', - 'quit', - 'quiver', - 'quixotic', - 'racial', - 'ragged', - 'rain', - 'rapid', - 'rate', - 'ratty', - 'reach', - 'reaction', - 'read', - 'rebel', - 'recall', - 'receipt', - 'receptive', - 'recondite', - 'redo', - 'refer', - 'reflective', - 'refuse', - 'regret', - 'regular', - 'relate', - 'relation', - 'rend', - 'renew', - 'repair', - 'repeat', - 'reply', - 'resell', - 'resolve', - 'resolve', - 'respect', - 'respect', - 'review', - 'rhythm', - 'rifle', - 'ring', - 'ring', - 'river', - 'roar', - 'roasted', - 'rob', - 'rob', - 'rock', - 'rock', - 'roomy', - 'rose', - 'rotten', - 'route', - 'rush', - 'sable', - 'sag', - 'salt', - 'salve', - 'same', - 'sample', - 'sanctify', - 'sash', - 'sassy', - 'satirise', - 'savor', - 'saw', - 'say', - 'scar', - 'scarf', - 'scarify', - 'scary', - 'school', - 'scientific', - 'scold', - 'scorch', - 'scrawl', - 'scrawny', - 'sea', - 'search', - 'seashore', - 'seat', - 'secretive', - 'sedate', - 'seemly', - 'sense', - 'sentence', - 'sever', - 'sew', - 'shake', - 'sharp', - 'shear', - 'shed', - 'sheet', - 'ship', - 'shivering', - 'shock', - 'shun', - 'shy', - 'side', - 'sight', - 'signify', - 'silky', - 'silly', - 'silver', - 'simple', - 'sing', - 'sink', - 'sit', - 'six', - 'skid', - 'skillful', - 'sleep', - 'sleepy', - 'slide', - 'slim', - 'slink', - 'slip', - 'slippery', - 'slow', - 'smell', - 'smooth', - 'snail', - 'snake', - 'snap', - 'sneeze', - 'soap', - 'sob', - 'society', - 'soda', - 'soggy', - 'solicit', - 'sore', - 'sorrow', - 'sound', - 'soup', - 'sour', - 'spade', - 'spark', - 'spectacular', - 'spill', - 'spiteful', - 'splendid', - 'spotted', - 'spotty', - 'spray', - 'spring', - 'square', - 'squeamish', - 'standing', - 'stare', - 'statuesque', - 'steady', - 'step', - 'sticky', - 'stir', - 'stitch', - 'stomach', - 'store', - 'story', - 'straight', - 'strain', - 'straw', - 'stream', - 'street', - 'strew', - 'strive', - 'strong', - 'stupendous', - 'submit', - 'succeed', - 'suck', - 'suggest', - 'summon', - 'sun', - 'superb', - 'superficial', - 'suppose', - 'surround', - 'survive', - 'swallow', - 'sway', - 'sweet', - 'swim', - 'swing', - 'tail', - 'talented', - 'talk', - 'tall', - 'tan', - 'tart', - 'taste', - 'tasteless', - 'tax', - 'teach', - 'tearful', - 'teeth', - 'tense', - 'terminate', - 'terrible', - 'terrific', - 'terrify', - 'testy', - 'thankful', - 'theory', - 'therapeutic', - 'thing', - 'think', - 'thinkable', - 'third', - 'thought', - 'throne', - 'thumb', - 'ticket', - 'tie', - 'tiger', - 'tiger', - 'tightfisted', - 'time', - 'time', - 'time', - 'tired', - 'tongue', - 'toothbrush', - 'toothsome', - 'toss', - 'town', - 'toys', - 'trample', - 'transfer', - 'tray', - 'tree', - 'tremble', - 'tremendous', - 'tricky', - 'triumph', - 'trouble', - 'truculent', - 'trust', - 'try', - 'tub', - 'turn', - 'twig', - 'twist', - 'two', - 'type', - 'ugliest', - 'ugly', - 'ultra', - 'umbrella', - 'undesirable', - 'undo', - 'unequaled', - 'unkempt', - 'unsightly', - 'unsuitable', - 'upset', - 'used', - 'utopian', - 'utter', - 'vacation', - 'vacation', - 'vanish', - 'vengeful', - 'verify', - 'vessel', - 'vigorous', - 'walk', - 'wander', - 'warn', - 'wasteful', - 'watch', - 'water', - 'waylay', - 'weak', - 'weigh', - 'welcome', - 'wheel', - 'whistle', - 'wide-eyed', - 'wing', - 'witty', - 'wool', - 'wrench', - 'write', - 'wry', - 'xenology', - 'yarn', - 'year', - 'yield', - 'yoke', - 'zephyr', - 'zipper', - 'zippy', - 'otter', - 'llama', - 'aardvark', - 'aggravated', - 'luck', - 'luxury', - 'satisfaction', - 'trust', - 'wisdom', - 'worry', - 'pride', - 'sin', - 'sloth', - 'greed', - 'opinion', - 'movement', - 'infancy', - 'envy', - 'evil', - 'failure', - 'success', - 'birth', - 'calm', - 'shallow', - 'insect', - 'fox', - 'panda', - 'penguin', - 'lodge', - 'town', - 'awareness', - 'anxiety', - 'childhood', - 'chaos', -]; - -export const planetTagAdj = [ - 'vast', - 'frigid', - 'boiling', - 'cold', - 'immense', - 'gaseous', - 'alluring', - 'groovy', - 'scattered', - 'frightening', - 'wacky', - 'lush', - 'green', - 'empty', - 'elastic', - 'calm', - 'fragile', - 'guarded', - 'various', - 'nebulous', - 'electronic', - 'heavenly', - 'cheerful', - 'delicious', - 'silky', - 'ritzy', - 'perfect', - 'pristine', - 'damaged', - 'unruly', - 'unsightly', - 'mysterious', - 'shallow', - 'deep', - 'trite', - 'noxious', - 'spectacular', - 'furtive', - 'jittery', - 'pleasant', - 'craggy', - 'overgrown', - 'wonderful', - 'dynamic', - 'harmonious', - 'deafening', -]; - -export const planetTagNoun = [ - 'tundra', - 'desert', - 'oasis', - 'wasteland', - 'garden', - 'ocean', - 'savannah', - 'tropic', - 'shrubland', - 'forest', - 'jungle', - 'biosphere', - 'ecoregion', - 'delta', - 'ruin', - 'abyss', - 'hydrotherm', - 'marsh', - 'benthic', - 'ptuitary', - 'panda', - 'bear', - 'Vitalik', - 'cyrptokitty', - 'bitcoin', -]; - -export const blurbGrammar = { - geography: [ - 'mountains', - 'hills', - 'rivers', - 'oceans', - 'forests', - 'grasslands', - 'plains', - 'alienscapes', - 'tetraspheres', - 'ruins', - 'tropics', - 'crags', - 'cliffs', - 'icebergs', - 'volcanoes', - ...Array(7).fill('#geography# and #geography#'), - ], - populates: ['#stretch# across the #landscape# as far as #eyecansee#'], - landscape: [ - 'landscape', - 'horizon', - 'view', - 'surface', - 'skyline', - 'sky', - 'sea', - 'scenery', - 'topography', - 'topology', - ], - stretch: ['reach', 'stretch', 'extend', 'spread'], - noun: genericNoun, - verb: genericVerb, - adj: genericAdj, - eyecansee: [ - 'the eye can see', - 'a cow can run', - 'a bear can walk', - 'a network request can reach', - ...Array(2).fill('#adj.a# #noun# can #verb#'), - ], - air: ['atmosphere', 'air', 'weather', 'gaseous composition'], - fruit: [ - 'magno', - 'blueberry', - 'raspberry', - 'pomelo', - 'pineapple', - 'apple', - 'orange', - 'watermelon', - ], - colors: [ - 'in many colors', - 'pervasively', - 'sparingly', - 'in full abundance', - 'in small amounts', - 'like #noun.a# might #verb# #noun.a#', - 'across the horizon', - 'over the land', - ], - habitat: [ - 'rainforest', - 'jungles', - 'ocean', - 'icy landscape', - 'deserts', - 'sky', - 'magma pools', - 'acid puddles', - ], - populate: [ - 'populate', - 'pervade', - 'fill', - 'inhabit', - 'reside in', - 'occupy', - 'hunt in', - 'hunt #species# in', - 'gather #flora# in', - ], - species: ['fish', 'mammal', 'bird', 'amphibian', 'quadruped', 'biped'], - many: [ - 'many', - 'a few', - 'a single', - 'two common', - 'an uncannily human-like', - 'a seemingly robotic', - 'a silicon-based', - ], - bloom: [ - 'pervade', - 'bloom', - 'grow', - 'spread', - 'peek out', - 'pepper the landscape', - '#stretch# out', - 'flourish', - 'meekly survive', - 'dot the barren land', - ], - flora: [ - 'flowers', - 'trees', - 'tall grasses', - '#fruit#-like fruit', - 'marsh mallows', - 'deciduous forestry', - 'massive fungi', - 'fields of mold', - 'wheat-like crops', - 'mysterious fruits', - ], - descair: [ - 'hot', - 'cold', - 'heavy', - 'warm', - 'dense', - 'viscous', - 'nitrogen-dense', - 'toxic', - 'nauseating', - 'frigid', - 'icy', - 'humid', - 'saturated', - 'dry', - ...Array(10).fill('#descair# and #descair#'), - ], - - gravity: ['heavy', 'light', 'strong', 'unusual, somehow'], - funfact: [ - 'the gravity seems #gravity#', - 'it smells like #noun.s#', - 'there are fruits on the trees. They look like #noun.s#', - "the soil is #adj#. Perhaps that's why the plants look like #noun.s#", - ], -}; - -const dflaunch = new Date('August 8, 2020 00:00:00'); -export const blurb2grammar = { - learned: [ - 'discovered ways', - 'researched methods', - 'trained in the mountains in order', - 'found ancient texts describing how', - ], - live: [ - 'live', - 'farm', - 'grow', - 'thrive', - 'develop economies', - 'raise bears', - 'trade ETH', - 'buy cryptokitties', - ], - sun: [ - 'sun', - 'mothers', - 'bears', - 'core', - 'oceans', - 'fauna', - 'tectonic plates', - 'volcanos', - 'toxic gases', - ], - flock: ['flock', 'army', 'fleet', 'ensemble', 'barrage', 'array', 'aggregation', 'mixture'], - bads: [ - 'solar flares', - 'polar bears', - 'foxes', - 'in-browser miners', - 'toxic gas', - 'evil ducks', - 'man-eating plants', - 'radioactive minerals', - 'neutrino rays', - 'eigenstates', - 'sidechains', - '51% attacks', - ], - sends: [ - 'sends', - 'generates', - 'publicises', - 'causes', - 'births', - 'spawns', - 'produces', - 'provokes', - 'kindles', - 'fosters', - 'sparks', - 'throws', - 'delivers', - ], - sometimes: [ - 'every day', - 'every minute', - 'periodically', - 'whenever @VitalikButerin tweets', - 'when Jim feels like it', - 'every second', - 'every four seconds', - 'every Planck length', - 'every quantum nanostate', - 'every decade', - `every ${Math.floor(50 + Math.random() * 100)} galactic time-units`, - ], - years: [ - 'years', - 'seconds', - 'days', - `${Date.now() - (dflaunch as unknown as number)}ms since the Dark Forest universe began`, - ], - removed: [ - 'defended against', - 'removed', - 'bribed', - 'nullified', - 'eliminated', - 'exiled', - 'dark realm-ed', - 'destroyed', - ], - throwing: ['throwing', 'tossing', 'firing', 'launching'], - warbears: [ - 'warbears', - 'drones', - 'guided missiles', - 'ICBMs', - 'spiral energy', - 'smaller galaxies', - 'storybooks', - 'laser beams', - ], - lesson: [ - '#friends#', // the real treasure was the friends we made along the way - '#chocolates#', // life is like a box of chocolates, since you never know what you're gonna get - '#willway#', // when there's a will, there's a way - ], - friends: ['the real #treasure# was the #friend.s# we #made# #alongtheway#'], - alongtheway: ['along the way', 'on the way to school', 'in our childhood'], - treasure: [ - 'treasure', - 'gift', - 'joy', - 'lesson', - 'battle', - 'money', - 'decentralized platform', - 'bear', - 'planet', - 'space war', - 'flux capacitor', - 'layer 2 scaling solution', - 'metaverse', - ], - friend: [ - 'friend', - 'bear', - 'books', - 'bird', - 'toy', - 'restaurant', - 'computer', - 'spaceship', - 'asteroid', - 'metaverse', - ], - made: [ - 'made', - 'ate', - 'gained', - 'lost', - 'identified', - 'organized', - 'found', - 'destroyed', - 'educated', - 'confirmed', - ], - chocolates: [ - "#life# is like a #box# of #chocolate.s# - you never #know# what you're gonna #get#", - ], - life: [ - 'ethereum', - 'blockchain', - 'life', - 'dating', - 'college', - 'space warfare', - 'colonizing mars', - 'loving bears', - 'liking yourself', - ], - box: ['box', 'container', 'flock', 'group', 'squabble', 'flamboyance', 'classroom'], - chocolate: ['teacher', 'chocolate', 'candy', 'meat log'], - know: ['know', 'realize', 'anticipate', 'enjoy', 'find'], - get: ['find', 'eat', 'enjoy', 'delete from your browser history'], - willway: [`#when# #theres# #will.a#, #theres# #way.a#`], - when: [ - 'when', - 'if', - 'sometimes when', - 'if Jim says', - 'when', - 'if', - 'when', - 'when', - 'when', - 'if', - 'if', - 'if', - 'where', - ], - theres: [`there's`, 'there is never', `there isn't`], - will: [ - 'will', - 'way', - '$50 ETH gas price', - 'decentralized hair salon', - 'strong desire to minimize self-actualization', - 'bear', - 'bad chance', - 'desire', - 'yearning', - 'determination', - 'sufficiently strong love', - 'wish', - ], - way: [ - 'way', - 'will', - 'bear', - 'good chance', - 'bad chance', - 'book that says "#willway#"', - 'way to make it come true', - 'nothing impossible', - 'someone who will take it away from you', - 'way to lose it', - 'way to gain it', - 'life lesson: "#lesson#"', - ], -}; diff --git a/src/Backend/Procedural/ProcgenUtils.ts b/src/Backend/Procedural/ProcgenUtils.ts deleted file mode 100644 index 4e19d3d9..00000000 --- a/src/Backend/Procedural/ProcgenUtils.ts +++ /dev/null @@ -1,519 +0,0 @@ -import { isLocatable } from '../../_types/global/GlobalTypes'; -import * as bigInt from 'big-integer'; -import { PlanetCosmeticInfo, RuinsInfo } from '../Utils/UtilsTypes'; -import { getPlanetRank, titleCase } from '../Utils/Utils'; -import _ from 'lodash'; -import Noise from './Noise'; -import { - planetNameWords, - planetTagAdj, - planetTagNoun, - blurb2grammar, - blurbGrammar, -} from './ProcgenConsts'; -import { - Planet, - EthAddress, - LocationId, - Biome, - PlanetLevel, - UpgradeBranchName, - ArtifactId, -} from '@darkforest_eth/types'; -import { seededRandom } from '@darkforest_eth/hashing'; -import { HSLVec, RGBAVec, RGBVec } from '../../Frontend/Renderers/GameRenderer/EngineTypes'; -import { HatType, hatTypeFromHash } from '../../Frontend/Utils/Hats'; -import tracery from './tracery'; -import { baseEngModifiers } from './tracery-modifiers'; -import { EMPTY_ADDRESS } from '@darkforest_eth/constants'; -import { HAT_SIZES } from '../../Frontend/Utils/constants'; - -export type PixelCoords = { - x: number; - y: number; -}; - -export type QuoteData = { - quote: string; - author: string; -}; - -export class ProcgenUtils { - private static blurbsById = new Map(); - private static blurbs2ById = new Map(); - private static cosmeticByLocId = new Map(); - private static baseByBiome: Record = [ - [0, 0, 0], // UNKNOWN - [213, 100, 50], // OCEAN - [135, 96, 63], // FOREST - [82, 80, 76], // GRASSLAND - [339, 95, 70], // TUNDRA - [44, 81, 33], // SWAMP - [51, 78, 60], // DESERT - [198, 78, 77], // ICE - [0, 0, 18], // WASTELAND - [19, 100, 50], // LAVA - [280, 100, 54], // CORRUPTED - ]; - private static oceanByBiome: Record = [ - [0, 0, 0], // UNKNOWN - [213, 89, 35], // OCEAN - [193, 96, 43], // FOREST - [185, 78, 70], // GRASSLAND - [201, 95, 70], // TUNDRA - [285, 81, 33], // SWAMP - [27, 78, 60], // DESERT - [198, 90, 85], // ICE - [0, 98, 42], // WASTELAND - [12, 92, 39], // LAVA - [308, 90, 63], // CORRUPTED - ]; - - private static strByBiome = new Map(); - public static getBiomeRgbStr(biome: Biome): string { - if (biome === Biome.WASTELAND) return '#888'; - - const s = this.strByBiome.get(biome); - if (s) return s; - - const str = this.rgbStr(this.hslToRgb(this.baseByBiome[biome])); - this.strByBiome.set(biome, str); - - return str; - } - - public static grayColors: PlanetCosmeticInfo = { - baseHue: 0, - baseStr: '#888', - bgStr: '#888', - baseColor: [120, 120, 120], - baseColor2: [120, 120, 120], - baseColor3: [120, 120, 120], - mtnColor: [120, 120, 120], - mtnColor2: [120, 120, 120], - mtnColor3: [120, 120, 120], - backgroundColor: [120, 120, 120], - previewColor: [120, 120, 120], - landRgb: [0, 0, 0], - oceanRgb: [0, 0, 0], - beachRgb: [0, 0, 0], - asteroidHsl: [0, 0, 0], - seed: 0, - spacetime1: [0, 0, 0], - spacetime2: [0, 0, 0], - spacetime3: [0, 0, 0], - ruins: undefined, - // ultra ultra hacky, but we're doing this since it's cached in the renderer - hatType: HatType.GraduationCap, - }; - private static namesById = new Map(); - private static taglinesById = new Map(); - private static huesByHash = new Map(); - private static rgbsByHash = new Map(); - - /* fixes long strings to be maxLen long as in 0xabc...123 */ - static ellipsisStr(str: string, maxLen: number): string { - if (str.length <= maxLen) return str; - return str.substr(0, maxLen - 6) + '...' + str.substr(str.length - 3, str.length); - } - - /* fixes long strings to be maxLen long as in 0xabc123... */ - static ellipsStrEnd(str: string, maxLen: number): string { - if (str.length <= maxLen) return str; - return str.substr(0, maxLen - 3) + '...'; - } - - static hslStr(h: number, s: number, l: number): string { - return `hsl(${h % 360},${s}%,${l}%)`; - } - - static rgbStr(rgb: RGBVec): string { - const [r, g, b] = rgb; - return `rgb(${r}, ${g}, ${b})`; - } - - // prettier-ignore - static hslToRgb([h, s, l]: HSLVec): RGBVec { - s = Math.max(Math.min(s, 100), 0); - l = Math.max(Math.min(l, 100), 0); - - s /= 100; - l /= 100; - - const c = (1 - Math.abs(2 * l - 1)) * s, - x = c * (1 - Math.abs(((h / 60) % 2) - 1)), - m = l - c / 2; - - let r = 0, g = 0, b = 0; - - if (0 <= h && h < 60) { - r = c; g = x; b = 0; - } else if (60 <= h && h < 120) { - r = x; g = c; b = 0; - } else if (120 <= h && h < 180) { - r = 0; g = c; b = x; - } else if (180 <= h && h < 240) { - r = 0; g = x; b = c; - } else if (240 <= h && h < 300) { - r = x; g = 0; b = c; - } else if (300 <= h && h < 360) { - r = c; g = 0; b = x; - } - - r = Math.round((r + m) * 255); - g = Math.round((g + m) * 255); - b = Math.round((b + m) * 255); - - return [r, g, b]; - } - - public static hashToInt(hash: string): number { - const seed = bigInt(hash, 16).and(0xffffffffff).toString(16); - return parseInt('0x' + seed); - } - - public static hashToHue(hash: string): number { - if (ProcgenUtils.huesByHash.has(hash)) { - return ProcgenUtils.huesByHash.get(hash) || 0; - } - - const baseHue = this.hashToInt(hash) % 360; - ProcgenUtils.huesByHash.set(hash, baseHue); - - return baseHue; - } - - public static getPlayerColor(player: EthAddress): string { - return ProcgenUtils.hslStr(ProcgenUtils.hashToHue(player.slice(2)), 100, 70); // remove 0x - } - - public static getPlayerColorVec(player: EthAddress): RGBAVec { - if (!this.rgbsByHash.has(player)) { - const noAlpha = ProcgenUtils.hslToRgb([ProcgenUtils.hashToHue(player.slice(2)), 100, 70]); - - const withAlpha = [...noAlpha, 1] as RGBAVec; - this.rgbsByHash.set(player, withAlpha); - } - - return this.rgbsByHash.get(player) as RGBAVec; - } - - public static getOwnerColorVec(planet: Planet): RGBAVec { - if (planet.owner === EMPTY_ADDRESS) return [153, 153, 102, 255]; - return ProcgenUtils.getPlayerColorVec(planet.owner); - } - - public static getOwnerColor(planet: Planet): string { - if (planet.owner === EMPTY_ADDRESS) return '#996666'; - return ProcgenUtils.getPlayerColor(planet.owner); - } - - public static getPlanetClass(planet: Planet): UpgradeBranchName { - const upgrade = planet.upgradeState; - let maxIdx = 0; - let maxVal = -1; - for (let i = 0; i < upgrade.length; i++) { - if (upgrade[i] > maxVal) { - maxIdx = i; - maxVal = upgrade[i]; - } - } - - return maxIdx; - } - - // returns a deterministic seeded perlin (-1, 1) for a given planet loc - public static planetPerlin(loc: LocationId) { - const realHash = loc.substring(4, loc.length); - - const noise = Noise.getInstance(); - const offset = parseInt('0x' + realHash.substring(0, 10)); - const t = (num: number): number => num / 100 + offset; - - return (coords: PixelCoords) => { - const ret = noise.simplex2(t(coords.x), t(coords.y)); - return ret; - }; - } - - // returns a deterministic seeded random fn for a given planet loc - // TODO memoize this guy - public static planetRandom(loc: LocationId) { - // shouldn't need to clone since loc is primitive but just to be safe - const realHash = loc.substring(4, loc.length); - - let count = 0; - const countOffset = parseInt('0x' + realHash.substring(0, 10)); - - return () => { - count++; - const ret = seededRandom(count + countOffset); - return ret; - }; - } - - public static planetRandomInt(loc: LocationId) { - const rand = ProcgenUtils.planetRandom(loc); - return () => Math.floor(rand() * 2 ** 24); - } - - public static artifactRandom(loc: ArtifactId) { - // shouldn't need to clone since loc is primitive but just to be safe - const realHash = loc.substring(4, loc.length); - - let count = 0; - const countOffset = parseInt('0x' + realHash.substring(0, 10)); - - return () => { - count++; - const ret = seededRandom(count + countOffset); - return ret; - }; - } - - public static artifactRandomInt(loc: ArtifactId) { - const rand = ProcgenUtils.artifactRandom(loc); - return () => Math.floor(rand() * 2 ** 24); - } - - public static getRuinsInfo(loc: LocationId): RuinsInfo { - const myInfo: Partial = {}; - - const rand = this.planetRandom(loc); - const randInt = this.planetRandomInt(loc); - - for (let i = PlanetLevel.MIN; i <= PlanetLevel.MAX; i++) { - const blooms = (randInt() % 4) + 1; - const reflect = randInt() % 2; - const vel = -1 + rand() * 2; - - const w1 = rand(); - const w2 = rand(); - const w3 = rand(); - const w4 = rand(); - - const sum = w1 + w2 + w3 + w4; - - myInfo[i] = { - weights: [w1 / sum, w2 / sum, w3 / sum, w4 / sum], - props: [blooms, reflect, vel, 0], - }; - } - - return myInfo as RuinsInfo; - } - - public static getPlanetCosmetic(planet: Planet | undefined): PlanetCosmeticInfo { - if (!planet) return ProcgenUtils.grayColors; - if (ProcgenUtils.cosmeticByLocId.has(planet.locationId)) { - return ProcgenUtils.cosmeticByLocId.get(planet.locationId) || ProcgenUtils.grayColors; - } - - // biome-defined - const baseColor = isLocatable(planet) - ? ProcgenUtils.baseByBiome[planet.biome] - : ([0, 0, 50] as HSLVec); - const oceanColor = isLocatable(planet) - ? ProcgenUtils.oceanByBiome[planet.biome] - : ([0, 0, 20] as HSLVec); - - const baseHue = ProcgenUtils.hashToHue(planet.locationId); - const seed = parseInt('0x' + planet.locationId.substring(0, 9)); - - const bL = Math.min(baseColor[2] + 20, 92); - const baseColor2 = [baseColor[0], baseColor[1], bL - 10] as HSLVec; - const baseColor3 = [baseColor[0], baseColor[1], bL] as HSLVec; - - const sL = Math.max(0, baseColor[2] - 30); - const sS = baseColor[1] - 10; - const secondaryColor = [baseColor[0], sS, sL] as HSLVec; - const secondaryColor2 = [baseColor[0], sS, sL + 10] as HSLVec; - const secondaryColor3 = [baseColor[0], sS, sL + 20] as HSLVec; - - const beachColor = [ - baseColor[0] + 10, - baseColor[1] - 30, - Math.min(baseColor[2] + 23, 100), - ] as HSLVec; - - const asteroidHsl = ( - isLocatable(planet) && planet.biome === Biome.WASTELAND ? [0, 0, 40] : baseColor - ) as HSLVec; - - /* calculate spacetime rip colors */ - const spacetime1: HSLVec = [baseHue, 75, 70]; - const spacetime2: HSLVec = [baseHue + 15, 70, 55]; - const spacetime3: HSLVec = [baseHue - 15, 65, 60]; - - const colors: PlanetCosmeticInfo = { - baseStr: ProcgenUtils.hslStr(...baseColor), - bgStr: ProcgenUtils.hslStr(oceanColor[0], Math.min(oceanColor[1] + 30, 100), 80), - - baseHue, - baseColor: ProcgenUtils.hslToRgb(baseColor), - baseColor2: ProcgenUtils.hslToRgb(baseColor2), - baseColor3: ProcgenUtils.hslToRgb(baseColor3), - mtnColor: ProcgenUtils.hslToRgb(secondaryColor), - mtnColor2: ProcgenUtils.hslToRgb(secondaryColor2), - mtnColor3: ProcgenUtils.hslToRgb(secondaryColor3), - backgroundColor: ProcgenUtils.hslToRgb(oceanColor), - previewColor: ProcgenUtils.hslToRgb(baseColor), - - landRgb: ProcgenUtils.hslToRgb(baseColor), - oceanRgb: ProcgenUtils.hslToRgb(oceanColor), - beachRgb: ProcgenUtils.hslToRgb(beachColor), - - spacetime1: ProcgenUtils.hslToRgb(spacetime1), - spacetime2: ProcgenUtils.hslToRgb(spacetime2), - spacetime3: ProcgenUtils.hslToRgb(spacetime3), - - asteroidHsl, - - seed, - - hatType: hatTypeFromHash(planet.locationId), - - ruins: this.getRuinsInfo(planet.locationId), - }; - - ProcgenUtils.cosmeticByLocId.set(planet.locationId, colors); - - return colors; - } - - public static getPlanetTitle(planet: Planet | undefined) { - if (!planet) return 'Unknown'; - - const myRank = getPlanetRank(planet); - - let ret = 'Planet'; - - if (myRank === 1) { - ret = 'Settlement'; - } else if (myRank === 2) { - ret = 'Colony'; - } else if (myRank === 3) { - ret = 'Spaceport'; - } else if (myRank === 4) { - ret = 'Stronghold'; - } else if (myRank === 5) { - ret = 'Galactic Stronghold'; - } - - return ret; - } - - public static getPlanetName(planet: Planet | undefined): string { - if (!planet) return 'Unknown'; - return ProcgenUtils.getPlanetNameHash(planet.locationId); - } - - public static getPlanetNameHash(locId: LocationId): string { - const name = ProcgenUtils.namesById.get(locId); - if (name) return name; - - let planetName = ''; - - const randInt = ProcgenUtils.planetRandomInt(locId); - if (randInt() % 1024 === 0) { - planetName = 'Clown Town'; - } else { - const word1 = planetNameWords[randInt() % planetNameWords.length]; - const word2 = planetNameWords[randInt() % planetNameWords.length]; - planetName = titleCase(`${word1} ${word2}`); - } - - ProcgenUtils.namesById.set(locId, planetName); - - return planetName; - } - - public static getPlanetTagline(planet: Planet | undefined): string { - if (!planet) return 'The empty unknown'; - - const tagline = ProcgenUtils.taglinesById.get(planet.locationId); - if (tagline) return tagline; - - let myTagline = ''; - - if (ProcgenUtils.getPlanetName(planet) === 'Clown Town') { - myTagline = `A town of clowns`; - } else { - const randInt = ProcgenUtils.planetRandomInt(planet.locationId); - const adj1 = planetTagAdj[randInt() % planetTagAdj.length]; - const adj2 = planetTagAdj[randInt() % planetTagAdj.length]; - const noun = planetTagNoun[randInt() % planetTagNoun.length]; - myTagline = `A ${adj1}, ${adj2} ${noun}`; - } - ProcgenUtils.taglinesById.set(planet.locationId, myTagline); - - return myTagline; - } - - // this one doesn't mention the name - public static getPlanetBlurb(planet: Planet | undefined): string { - if (!planet) - return 'The vast, empty unknown of space contains worlds of infinite possibilities. Select a planet to learn more...'; - - const myBlurb = ProcgenUtils.blurbsById.get(planet.locationId); - if (myBlurb) return myBlurb; - - let append = ''; - if (ProcgenUtils.getPlanetName(planet) === 'Clown Town') { - append = `Founded in 1998 by Brian Gu, who remains the CEO of Clown Town to this day. `; - } - - tracery.setRng(ProcgenUtils.planetRandom(planet.locationId)); - const myGrammar = { - // geography, atmosphere, fauna, flora, fun fact - story: [ - `#geography.capitalize# #populates#. ` + - `The #air# is #descair#. ` + - `#myflora.capitalize# #bloom# #colors#. ` + - `#many.capitalize# species of #species# #populate# the #habitat#. ` + - `#funfact.capitalize#\.`, - ], - origin: ['#[myflora:#flora#]story#'], - }; - const grammar = tracery.createGrammar({ ...blurbGrammar, ...myGrammar }); - - grammar.addModifiers(baseEngModifiers); - - const blurb = append + grammar.flatten('#origin#'); - ProcgenUtils.blurbsById.set(planet.locationId, blurb); - return blurb; - } - - // this one mentions the name - public static getPlanetBlurb2(planet: Planet | undefined): string { - if (!planet) return ''; - - const myBlurb = ProcgenUtils.blurbs2ById.get(planet.locationId); - if (myBlurb) return myBlurb; - - const name = ProcgenUtils.getPlanetName(planet); - const tagline = ProcgenUtils.getPlanetTagline(planet); - const myGrammar = { - story: [ - `The people of ${name} have #learned# to #live# in a ${tagline}. ${name}'s #mysun# #sends# an #flock# of #bads# #sometimes#. Over the #years#, they've #removed# the #mysun# by #throwing# #warbears#. In doing so, they've learned that #lesson#\.`, - ], - origin: [`#[mysun:#sun#]story#`], - }; - tracery.setRng(ProcgenUtils.planetRandom(planet.locationId)); - const grammar = tracery.createGrammar({ ...blurb2grammar, ...myGrammar }); - - grammar.addModifiers(baseEngModifiers); - const blurb = grammar.flatten('#origin#'); - - ProcgenUtils.blurbs2ById.set(planet.locationId, blurb); - return blurb; - } - - public static getHatSizeName(planet: Planet) { - const maxHat = HAT_SIZES.length; - const lv = planet.hatLevel; - - if (lv < maxHat) return HAT_SIZES[lv]; - else return 'H' + 'A'.repeat(4 * 2 ** (lv - maxHat + 1)) + 'T'; - } -} diff --git a/src/Backend/Procedural/tracery-modifiers.js b/src/Backend/Procedural/tracery-modifiers.js deleted file mode 100644 index c955a791..00000000 --- a/src/Backend/Procedural/tracery-modifiers.js +++ /dev/null @@ -1,114 +0,0 @@ -/* eslint-disable */ - -/** - * @author Kate - */ - -function isVowel(c) { - var c2 = c.toLowerCase(); - return c2 === 'a' || c2 === 'e' || c2 === 'i' || c2 === 'o' || c2 === 'u'; -} - -function isAlphaNum(c) { - return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'); -} -function escapeRegExp(str) { - return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1'); -} - -export var baseEngModifiers = { - replace: function (s, params) { - //http://stackoverflow.com/questions/1144783/replacing-all-occurrences-of-a-string-in-javascript - return s.replace(new RegExp(escapeRegExp(params[0]), 'g'), params[1]); - }, - - capitalizeAll: function (s) { - var s2 = ''; - var capNext = true; - for (var i = 0; i < s.length; i++) { - if (!isAlphaNum(s.charAt(i))) { - capNext = true; - s2 += s.charAt(i); - } else { - if (!capNext) { - s2 += s.charAt(i); - } else { - s2 += s.charAt(i).toUpperCase(); - capNext = false; - } - } - } - return s2; - }, - - capitalize: function (s) { - return s.charAt(0).toUpperCase() + s.substring(1); - }, - - a: function (s) { - if (s.length > 0) { - if (s.charAt(0).toLowerCase() === 'u') { - if (s.length > 2) { - if (s.charAt(2).toLowerCase() === 'i') return 'a ' + s; - } - } - - if (isVowel(s.charAt(0))) { - return 'an ' + s; - } - } - - return 'a ' + s; - }, - - firstS: function (s) { - console.log(s); - var s2 = s.split(' '); - - var finished = baseEngModifiers.s(s2[0]) + ' ' + s2.slice(1).join(' '); - console.log(finished); - return finished; - }, - - s: function (s) { - switch (s.charAt(s.length - 1)) { - case 's': - return s + 'es'; - break; - case 'h': - return s + 'es'; - break; - case 'x': - return s + 'es'; - break; - case 'y': - if (!isVowel(s.charAt(s.length - 2))) return s.substring(0, s.length - 1) + 'ies'; - else return s + 's'; - break; - default: - return s + 's'; - } - }, - ed: function (s) { - switch (s.charAt(s.length - 1)) { - case 's': - return s + 'ed'; - break; - case 'e': - return s + 'd'; - break; - case 'h': - return s + 'ed'; - break; - case 'x': - return s + 'ed'; - break; - case 'y': - if (!isVowel(s.charAt(s.length - 2))) return s.substring(0, s.length - 1) + 'ied'; - else return s + 'd'; - break; - default: - return s + 'ed'; - } - }, -}; diff --git a/src/Backend/Procedural/tracery.js b/src/Backend/Procedural/tracery.js deleted file mode 100644 index 8a87c52a..00000000 --- a/src/Backend/Procedural/tracery.js +++ /dev/null @@ -1,705 +0,0 @@ -/* eslint-disable */ - -var tracery = (function () { - var rng = Math.random; - - var setRng = function setRng(newRng) { - rng = newRng; - }; - - var TraceryNode = function (parent, childIndex, settings) { - this.errors = []; - - // No input? Add an error, but continue anyways - if (settings.raw === undefined) { - this.errors.push('Empty input for node'); - settings.raw = ''; - } - - // If the root node of an expansion, it will have the grammar passed as the 'parent' - // set the grammar from the 'parent', and set all other values for a root node - if (parent instanceof tracery.Grammar) { - this.grammar = parent; - this.parent = null; - this.depth = 0; - this.childIndex = 0; - } else { - this.grammar = parent.grammar; - this.parent = parent; - this.depth = parent.depth + 1; - this.childIndex = childIndex; - } - - this.raw = settings.raw; - this.type = settings.type; - this.isExpanded = false; - - if (!this.grammar) { - console.warn('No grammar specified for this node', this); - } - }; - - TraceryNode.prototype.toString = function () { - return "Node('" + this.raw + "' " + this.type + ' d:' + this.depth + ')'; - }; - - // Expand the node (with the given child rule) - // Make children if the node has any - TraceryNode.prototype.expandChildren = function (childRule, preventRecursion) { - this.children = []; - this.finishedText = ''; - - // Set the rule for making children, - // and expand it into section - this.childRule = childRule; - if (this.childRule !== undefined) { - var sections = tracery.parse(childRule); - - // Add errors to this - if (sections.errors.length > 0) { - this.errors = this.errors.concat(sections.errors); - } - - for (var i = 0; i < sections.length; i++) { - this.children[i] = new TraceryNode(this, i, sections[i]); - if (!preventRecursion) this.children[i].expand(preventRecursion); - - // Add in the finished text - this.finishedText += this.children[i].finishedText; - } - } else { - // In normal operation, this shouldn't ever happen - this.errors.push("No child rule provided, can't expand children"); - console.warn("No child rule provided, can't expand children"); - } - }; - - // Expand this rule (possibly creating children) - TraceryNode.prototype.expand = function (preventRecursion) { - if (!this.isExpanded) { - this.isExpanded = true; - - this.expansionErrors = []; - - // Types of nodes - // -1: raw, needs parsing - // 0: Plaintext - // 1: Tag ("#symbol.mod.mod2.mod3#" or "#[pushTarget:pushRule]symbol.mod") - // 2: Action ("[pushTarget:pushRule], [pushTarget:POP]", more in the future) - - switch (this.type) { - // Raw rule - case -1: - this.expandChildren(this.raw, preventRecursion); - break; - - // plaintext, do nothing but copy text into finsihed text - case 0: - this.finishedText = this.raw; - break; - - // Tag - case 1: - // Parse to find any actions, and figure out what the symbol is - this.preactions = []; - this.postactions = []; - - var parsed = tracery.parseTag(this.raw); - - // Break into symbol actions and modifiers - this.symbol = parsed.symbol; - this.modifiers = parsed.modifiers; - - // Create all the preactions from the raw syntax - for (var i = 0; i < parsed.preactions.length; i++) { - this.preactions[i] = new NodeAction(this, parsed.preactions[i].raw); - } - for (var i = 0; i < parsed.postactions.length; i++) { - // this.postactions[i] = new NodeAction(this, parsed.postactions[i].raw); - } - - // Make undo actions for all preactions (pops for each push) - for (var i = 0; i < this.preactions.length; i++) { - if (this.preactions[i].type === 0) - this.postactions.push(this.preactions[i].createUndo()); - } - - // Activate all the preactions - for (var i = 0; i < this.preactions.length; i++) { - this.preactions[i].activate(); - } - - this.finishedText = this.raw; - - // Expand (passing the node, this allows tracking of recursion depth) - - var selectedRule = this.grammar.selectRule(this.symbol, this, this.errors); - - this.expandChildren(selectedRule, preventRecursion); - - // Apply modifiers - // TODO: Update parse function to not trigger on hashtags within parenthesis within tags, - // so that modifier parameters can contain tags "#story.replace(#protagonist#, #newCharacter#)#" - for (var i = 0; i < this.modifiers.length; i++) { - var modName = this.modifiers[i]; - var modParams = []; - if (modName.indexOf('(') > 0) { - var regExp = /\(([^)]+)\)/; - - // Todo: ignore any escaped commas. For now, commas always split - var results = regExp.exec(this.modifiers[i]); - if (!results || results.length < 2) { - } else { - var modParams = results[1].split(','); - modName = this.modifiers[i].substring(0, modName.indexOf('(')); - } - } - - var mod = this.grammar.modifiers[modName]; - - // Missing modifier? - if (!mod) { - this.errors.push('Missing modifier ' + modName); - this.finishedText += '((.' + modName + '))'; - } else { - this.finishedText = mod(this.finishedText, modParams); - } - } - - // Perform post-actions - for (var i = 0; i < this.postactions.length; i++) { - this.postactions[i].activate(); - } - break; - case 2: - // Just a bare action? Expand it! - this.action = new NodeAction(this, this.raw); - this.action.activate(); - - // No visible text for an action - // TODO: some visible text for if there is a failure to perform the action? - this.finishedText = ''; - break; - } - } else { - //console.warn("Already expanded " + this); - } - }; - - TraceryNode.prototype.clearEscapeChars = function () { - this.finishedText = this.finishedText - .replace(/\\\\/g, 'DOUBLEBACKSLASH') - .replace(/\\/g, '') - .replace(/DOUBLEBACKSLASH/g, '\\'); - }; - - // An action that occurs when a node is expanded - // Types of actions: - // 0 Push: [key:rule] - // 1 Pop: [key:POP] - // 2 function: [functionName(param0,param1)] (TODO!) - function NodeAction(node, raw) { - /* - if (!node) - console.warn("No node for NodeAction"); - if (!raw) - console.warn("No raw commands for NodeAction"); - */ - - this.node = node; - - var sections = raw.split(':'); - this.target = sections[0]; - - // No colon? A function! - if (sections.length === 1) { - this.type = 2; - } - - // Colon? It's either a push or a pop - else { - this.rule = sections[1]; - if (this.rule === 'POP') { - this.type = 1; - } else { - this.type = 0; - } - } - } - - NodeAction.prototype.createUndo = function () { - if (this.type === 0) { - return new NodeAction(this.node, this.target + ':POP'); - } - // TODO Not sure how to make Undo actions for functions or POPs - return null; - }; - - NodeAction.prototype.activate = function () { - var grammar = this.node.grammar; - switch (this.type) { - case 0: - // split into sections (the way to denote an array of rules) - this.ruleSections = this.rule.split(','); - this.finishedRules = []; - this.ruleNodes = []; - for (var i = 0; i < this.ruleSections.length; i++) { - var n = new TraceryNode(grammar, 0, { - type: -1, - raw: this.ruleSections[i], - }); - - n.expand(); - - this.finishedRules.push(n.finishedText); - } - - // TODO: escape commas properly - grammar.pushRules(this.target, this.finishedRules, this); - break; - case 1: - grammar.popRules(this.target); - break; - case 2: - grammar.flatten(this.target, true); - break; - } - }; - - NodeAction.prototype.toText = function () { - switch (this.type) { - case 0: - return this.target + ':' + this.rule; - case 1: - return this.target + ':POP'; - case 2: - return '((some function))'; - default: - return '((Unknown Action))'; - } - }; - - // Sets of rules - // Can also contain conditional or fallback sets of rulesets) - function RuleSet(grammar, raw) { - this.raw = raw; - this.grammar = grammar; - this.falloff = 1; - - if (Array.isArray(raw)) { - this.defaultRules = raw; - } else if (typeof raw === 'string' || raw instanceof String) { - this.defaultRules = [raw]; - } else if (raw === 'object') { - // TODO: support for conditional and hierarchical rule sets - } - } - - RuleSet.prototype.selectRule = function (errors) { - // console.log("Get rule", this.raw); - // Is there a conditional? - if (this.conditionalRule) { - var value = this.grammar.expand(this.conditionalRule, true); - // does this value match any of the conditionals? - if (this.conditionalValues[value]) { - var v = this.conditionalValues[value].selectRule(errors); - if (v !== null && v !== undefined) return v; - } - // No returned value? - } - - // Is there a ranked order? - if (this.ranking) { - for (var i = 0; i < this.ranking.length; i++) { - var v = this.ranking.selectRule(); - if (v !== null && v !== undefined) return v; - } - - // Still no returned value? - } - - if (this.defaultRules !== undefined) { - var index = 0; - // Select from this basic array of rules - - // Get the distribution from the grammar if there is no other - var distribution = this.distribution; - if (!distribution) distribution = this.grammar.distribution; - - switch (distribution) { - case 'shuffle': - // create a shuffle desk - if (!this.shuffledDeck || this.shuffledDeck.length === 0) { - // make an array - this.shuffledDeck = fyshuffle( - Array.apply(null, { - length: this.defaultRules.length, - }).map(Number.call, Number), - this.falloff - ); - } - - index = this.shuffledDeck.pop(); - - break; - case 'weighted': - errors.push('Weighted distribution not yet implemented'); - break; - case 'falloff': - errors.push('Falloff distribution not yet implemented'); - break; - default: - index = Math.floor(Math.pow(rng(), this.falloff) * this.defaultRules.length); - break; - } - - if (!this.defaultUses) this.defaultUses = []; - this.defaultUses[index] = ++this.defaultUses[index] || 1; - return this.defaultRules[index]; - } - - errors.push('No default rules defined for ' + this); - return null; - }; - - RuleSet.prototype.clearState = function () { - if (this.defaultUses) { - this.defaultUses = []; - } - }; - - function fyshuffle(array, falloff) { - var currentIndex = array.length, - temporaryValue, - randomIndex; - - // While there remain elements to shuffle... - while (0 !== currentIndex) { - // Pick a remaining element... - randomIndex = Math.floor(rng() * currentIndex); - currentIndex -= 1; - - // And swap it with the current element. - temporaryValue = array[currentIndex]; - array[currentIndex] = array[randomIndex]; - array[randomIndex] = temporaryValue; - } - - return array; - } - - var Symbol = function (grammar, key, rawRules) { - // Symbols can be made with a single value, and array, or array of objects of (conditions/values) - this.key = key; - this.grammar = grammar; - this.rawRules = rawRules; - - this.baseRules = new RuleSet(this.grammar, rawRules); - this.clearState(); - }; - - Symbol.prototype.clearState = function () { - // Clear the stack and clear all ruleset usages - this.stack = [this.baseRules]; - - this.uses = []; - this.baseRules.clearState(); - }; - - Symbol.prototype.pushRules = function (rawRules) { - var rules = new RuleSet(this.grammar, rawRules); - this.stack.push(rules); - }; - - Symbol.prototype.popRules = function () { - this.stack.pop(); - }; - - Symbol.prototype.selectRule = function (node, errors) { - this.uses.push({ - node: node, - }); - - if (this.stack.length === 0) { - errors.push("The rule stack for '" + this.key + "' is empty, too many pops?"); - return '((' + this.key + '))'; - } - - return this.stack[this.stack.length - 1].selectRule(); - }; - - Symbol.prototype.getActiveRules = function () { - if (this.stack.length === 0) { - return null; - } - return this.stack[this.stack.length - 1].selectRule(); - }; - - Symbol.prototype.rulesToJSON = function () { - return JSON.stringify(this.rawRules); - }; - - var Grammar = function (raw, settings) { - this.modifiers = {}; - this.loadFromRawObj(raw); - }; - - Grammar.prototype.clearState = function () { - var keys = Object.keys(this.symbols); - for (var i = 0; i < keys.length; i++) { - this.symbols[keys[i]].clearState(); - } - }; - - Grammar.prototype.addModifiers = function (mods) { - // copy over the base modifiers - for (var key in mods) { - if (mods.hasOwnProperty(key)) { - this.modifiers[key] = mods[key]; - } - } - }; - - Grammar.prototype.loadFromRawObj = function (raw) { - this.raw = raw; - this.symbols = {}; - this.subgrammars = []; - - if (this.raw) { - // Add all rules to the grammar - for (var key in this.raw) { - if (this.raw.hasOwnProperty(key)) { - this.symbols[key] = new Symbol(this, key, this.raw[key]); - } - } - } - }; - - Grammar.prototype.createRoot = function (rule) { - // Create a node and subnodes - var root = new TraceryNode(this, 0, { - type: -1, - raw: rule, - }); - - return root; - }; - - Grammar.prototype.expand = function (rule, allowEscapeChars) { - var root = this.createRoot(rule); - root.expand(); - if (!allowEscapeChars) root.clearEscapeChars(); - - return root; - }; - - Grammar.prototype.flatten = function (rule, allowEscapeChars) { - var root = this.expand(rule, allowEscapeChars); - - return root.finishedText; - }; - - Grammar.prototype.toJSON = function () { - var keys = Object.keys(this.symbols); - var symbolJSON = []; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - symbolJSON.push(' "' + key + '" : ' + this.symbols[key].rulesToJSON()); - } - return '{\n' + symbolJSON.join(',\n') + '\n}'; - }; - - // Create or push rules - Grammar.prototype.pushRules = function (key, rawRules, sourceAction) { - if (this.symbols[key] === undefined) { - this.symbols[key] = new Symbol(this, key, rawRules); - if (sourceAction) this.symbols[key].isDynamic = true; - } else { - this.symbols[key].pushRules(rawRules); - } - }; - - Grammar.prototype.popRules = function (key) { - if (!this.symbols[key]) this.errors.push("Can't pop: no symbol for key " + key); - this.symbols[key].popRules(); - }; - - Grammar.prototype.selectRule = function (key, node, errors) { - if (this.symbols[key]) { - var rule = this.symbols[key].selectRule(node, errors); - - return rule; - } - - // Failover to alternative subgrammars - for (var i = 0; i < this.subgrammars.length; i++) { - if (this.subgrammars[i].symbols[key]) return this.subgrammars[i].symbols[key].selectRule(); - } - - // No symbol? - errors.push("No symbol for '" + key + "'"); - return '((' + key + '))'; - }; - - // Parses a plaintext rule in the tracery syntax - tracery = { - createGrammar: function (raw) { - return new Grammar(raw); - }, - - // Parse the contents of a tag - parseTag: function (tagContents) { - var parsed = { - symbol: undefined, - preactions: [], - postactions: [], - modifiers: [], - }; - var sections = tracery.parse(tagContents); - var symbolSection = undefined; - for (var i = 0; i < sections.length; i++) { - if (sections[i].type === 0) { - if (symbolSection === undefined) { - symbolSection = sections[i].raw; - } else { - throw 'multiple main sections in ' + tagContents; - } - } else { - parsed.preactions.push(sections[i]); - } - } - - if (symbolSection === undefined) { - // throw ("no main section in " + tagContents); - } else { - var components = symbolSection.split('.'); - parsed.symbol = components[0]; - parsed.modifiers = components.slice(1); - } - return parsed; - }, - - parse: function (rule) { - var depth = 0; - var inTag = false; - var sections = []; - var escaped = false; - - var errors = []; - var start = 0; - - var escapedSubstring = ''; - var lastEscapedChar = undefined; - - if (rule === null) { - var sections = []; - sections.errors = errors; - - return sections; - } - - function createSection(start, end, type) { - if (end - start < 1) { - if (type === 1) errors.push(start + ': empty tag'); - if (type === 2) errors.push(start + ': empty action'); - } - var rawSubstring; - if (lastEscapedChar !== undefined) { - rawSubstring = escapedSubstring + '\\' + rule.substring(lastEscapedChar + 1, end); - } else { - rawSubstring = rule.substring(start, end); - } - sections.push({ - type: type, - raw: rawSubstring, - }); - lastEscapedChar = undefined; - escapedSubstring = ''; - } - - for (var i = 0; i < rule.length; i++) { - if (!escaped) { - var c = rule.charAt(i); - - switch (c) { - // Enter a deeper bracketed section - case '[': - if (depth === 0 && !inTag) { - if (start < i) createSection(start, i, 0); - start = i + 1; - } - depth++; - break; - - case ']': - depth--; - - // End a bracketed section - if (depth === 0 && !inTag) { - createSection(start, i, 2); - start = i + 1; - } - break; - - // Hashtag - // ignore if not at depth 0, that means we are in a bracket - case '#': - if (depth === 0) { - if (inTag) { - createSection(start, i, 1); - start = i + 1; - } else { - if (start < i) createSection(start, i, 0); - start = i + 1; - } - inTag = !inTag; - } - break; - - case '\\': - escaped = true; - escapedSubstring = escapedSubstring + rule.substring(start, i); - start = i + 1; - lastEscapedChar = i; - break; - } - } else { - escaped = false; - } - } - if (start < rule.length) createSection(start, rule.length, 0); - - if (inTag) { - errors.push('Unclosed tag'); - } - if (depth > 0) { - errors.push('Too many ['); - } - if (depth < 0) { - errors.push('Too many ]'); - } - - // Strip out empty plaintext sections - - sections = sections.filter(function (section) { - if (section.type === 0 && section.raw.length === 0) return false; - return true; - }); - sections.errors = errors; - return sections; - }, - }; - - // Externalize - tracery.TraceryNode = TraceryNode; - - tracery.Grammar = Grammar; - tracery.Symbol = Symbol; - tracery.RuleSet = RuleSet; - - tracery.setRng = setRng; - - return tracery; -})(); - -module.exports = tracery; diff --git a/src/Backend/Storage/PersistentChunkStore.ts b/src/Backend/Storage/PersistentChunkStore.ts index 07e0be8e..2497e0be 100644 --- a/src/Backend/Storage/PersistentChunkStore.ts +++ b/src/Backend/Storage/PersistentChunkStore.ts @@ -1,35 +1,43 @@ -import { CORE_CONTRACT_ADDRESS } from '@darkforest_eth/contracts'; +import { + Chunk, + ClaimedCoords, + DiagnosticUpdater, + EthAddress, + LocationId, + ModalId, + ModalPosition, + PersistedTransaction, + Rectangle, + RevealedCoords, + Transaction, + WorldLocation, +} from '@darkforest_eth/types'; import { IDBPDatabase, openDB } from 'idb'; import stringify from 'json-stable-stringify'; import _ from 'lodash'; import { MAX_CHUNK_SIZE } from '../../Frontend/Utils/constants'; import { ChunkId, ChunkStore, PersistedChunk } from '../../_types/darkforest/api/ChunkStoreTypes'; -import { Chunk, Rectangle } from '../../_types/global/GlobalTypes'; import { - toPersistedChunk, - toExploredChunk, - getChunkOfSideLengthContainingPoint, - getChunkKey, addToChunkMap, + getChunkKey, + getChunkOfSideLengthContainingPoint, + toExploredChunk, + toPersistedChunk, } from '../Miner/ChunkUtils'; import { SerializedPlugin } from '../Plugins/SerializedPlugin'; -import { - EthAddress, - LocationId, - SubmittedTx, - WorldLocation, - RevealedCoords, -} from '@darkforest_eth/types'; -import { DiagnosticUpdater } from '../Interfaces/DiagnosticUpdater'; -enum ObjectStore { +const enum ObjectStore { DEFAULT = 'default', BOARD = 'knownBoard', UNCONFIRMED_ETH_TXS = 'unminedEthTxs', PLUGINS = 'plugins', + /** + * Store modal positions so that we can keep modal panes open across sessions. + */ + MODAL_POS = 'modalPositions', } -enum DBActionType { +const enum DBActionType { UPDATE, DELETE, } @@ -47,6 +55,14 @@ interface DebouncedFunc void> { cancel(): void; } +interface PersistentChunkStoreConfig { + db: IDBPDatabase; + contractAddress: EthAddress; + account: EthAddress; +} + +export const MODAL_POSITIONS_KEY = 'modal_positions'; + class PersistentChunkStore implements ChunkStore { private diagnosticUpdater?: DiagnosticUpdater; private db: IDBPDatabase; @@ -56,8 +72,9 @@ class PersistentChunkStore implements ChunkStore { private chunkMap: Map; private confirmedTxHashes: Set; private account: EthAddress; + private contractAddress: EthAddress; - constructor(db: IDBPDatabase, account: EthAddress) { + constructor({ db, account, contractAddress }: PersistentChunkStoreConfig) { this.db = db; this.queuedChunkWrites = []; this.confirmedTxHashes = new Set(); @@ -67,23 +84,34 @@ class PersistentChunkStore implements ChunkStore { ); this.chunkMap = new Map(); this.account = account; + this.contractAddress = contractAddress; } destroy(): void { // no-op; we don't actually destroy the instance, we leave the db connection open in case we need it in the future } - static async create(account: EthAddress): Promise { - const db = await openDB(`darkforest-${CORE_CONTRACT_ADDRESS}-${account}`, 1, { + /** + * NOTE! if you're creating a new object store, it will not be *added* to existing dark forest + * accounts. This creation code runs once per account. Therefore, if you're adding a new object + * store, and need to test it out, you must either clear the indexed db databse for this account, + * or create a brand new account. + */ + static async create({ + account, + contractAddress, + }: Omit): Promise { + const db = await openDB(`darkforest-${contractAddress}-${account}`, 1, { upgrade(db) { db.createObjectStore(ObjectStore.DEFAULT); db.createObjectStore(ObjectStore.BOARD); db.createObjectStore(ObjectStore.UNCONFIRMED_ETH_TXS); db.createObjectStore(ObjectStore.PLUGINS); + db.createObjectStore(ObjectStore.MODAL_POS); }, }); - const localStorageManager = new PersistentChunkStore(db, account); + const localStorageManager = new PersistentChunkStore({ db, account, contractAddress }); await localStorageManager.loadChunks(); @@ -104,7 +132,7 @@ class PersistentChunkStore implements ChunkStore { key: string, objStore: ObjectStore = ObjectStore.DEFAULT ): Promise { - return await this.db.get(objStore, `${CORE_CONTRACT_ADDRESS}-${this.account}-${key}`); + return await this.db.get(objStore, `${this.contractAddress}-${this.account}-${key}`); } /** @@ -118,11 +146,11 @@ class PersistentChunkStore implements ChunkStore { value: string, objStore: ObjectStore = ObjectStore.DEFAULT ): Promise { - await this.db.put(objStore, value, `${CORE_CONTRACT_ADDRESS}-${this.account}-${key}`); + await this.db.put(objStore, value, `${this.contractAddress}-${this.account}-${key}`); } private async removeKey(key: string, objStore: ObjectStore = ObjectStore.DEFAULT): Promise { - await this.db.delete(objStore, `${CORE_CONTRACT_ADDRESS}-${this.account}-${key}`); + await this.db.delete(objStore, `${this.contractAddress}-${this.account}-${key}`); } private async bulkSetKeyInCollection( @@ -242,6 +270,21 @@ class PersistentChunkStore implements ChunkStore { return []; } + public async getSavedClaimedCoords(): Promise { + const claimedPlanetIds = await this.getKey('claimedPlanetIds'); + + if (claimedPlanetIds) { + const parsed = JSON.parse(claimedPlanetIds); + // changed the type on 6/1/21 to include revealer field + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (parsed.length === 0 || !(parsed[0] as any).revealer) { + return []; + } + return parsed as ClaimedCoords[]; + } + + return []; + } public async saveTouchedPlanetIds(ids: LocationId[]) { await this.setKey('touchedPlanetIds', stringify(ids)); @@ -251,6 +294,10 @@ class PersistentChunkStore implements ChunkStore { await this.setKey('revealedPlanetIds', stringify(revealedCoordTups)); } + public async saveClaimedCoords(claimedCoordTupps: ClaimedCoords[]) { + await this.setKey('claimedPlanetIds', stringify(claimedCoordTupps)); + } + /** * Returns the explored chunk data for the given rectangle if that chunk has been mined. If this * chunk is entirely contained within another bigger chunk that has been mined, return that chunk. @@ -405,21 +452,29 @@ class PersistentChunkStore implements ChunkStore { return this.chunkMap.values(); } - public async onEthTxSubmit(tx: SubmittedTx): Promise { - if (this.confirmedTxHashes.has(tx.txHash)) { - // in case the tx was mined and saved already - return Promise.resolve(); - } - await this.db.put(ObjectStore.UNCONFIRMED_ETH_TXS, tx, tx.txHash); + /** + * Whenever a transaction is submitted, it is persisted. When the transaction either fails or + * succeeds, it is un-persisted. The reason we persist submitted transactions is to be able to + * wait for them upon a fresh start of the game if you close the game before a transaction + * confirms. + */ + public async onEthTxSubmit(tx: Transaction): Promise { + // in case the tx was mined and saved already + if (!tx.hash || this.confirmedTxHashes.has(tx.hash)) return; + const ser: PersistedTransaction = { hash: tx.hash, intent: tx.intent }; + await this.db.put(ObjectStore.UNCONFIRMED_ETH_TXS, JSON.parse(JSON.stringify(ser)), tx.hash); } + /** + * Partner function to {@link PersistentChunkStore#onEthTxSubmit} + */ public async onEthTxComplete(txHash: string): Promise { this.confirmedTxHashes.add(txHash); await this.db.delete(ObjectStore.UNCONFIRMED_ETH_TXS, txHash); } - public async getUnconfirmedSubmittedEthTxs(): Promise { - const ret: SubmittedTx[] = await this.db.getAll(ObjectStore.UNCONFIRMED_ETH_TXS); + public async getUnconfirmedSubmittedEthTxs(): Promise { + const ret: PersistedTransaction[] = await this.db.getAll(ObjectStore.UNCONFIRMED_ETH_TXS); return ret; } @@ -433,8 +488,20 @@ class PersistentChunkStore implements ChunkStore { return JSON.parse(savedPlugins) as SerializedPlugin[]; } - public async savePlugins(plugins: SerializedPlugin[]) { - this.setKey('plugins', JSON.stringify(plugins), ObjectStore.PLUGINS); + public async savePlugins(plugins: SerializedPlugin[]): Promise { + await this.setKey('plugins', JSON.stringify(plugins), ObjectStore.PLUGINS); + } + + public async saveModalPositions(modalPositions: Map): Promise { + if (!this.db.objectStoreNames.contains(ObjectStore.MODAL_POS)) return; + const serialized = JSON.stringify(Array.from(modalPositions.entries())); + await this.setKey(MODAL_POSITIONS_KEY, serialized, ObjectStore.MODAL_POS); + } + + public async loadModalPositions(): Promise> { + if (!this.db.objectStoreNames.contains(ObjectStore.MODAL_POS)) return new Map(); + const winPos = await this.getKey(MODAL_POSITIONS_KEY, ObjectStore.MODAL_POS); + return new Map(winPos ? JSON.parse(winPos) : null); } } diff --git a/src/Backend/Storage/ReaderDataStore.ts b/src/Backend/Storage/ReaderDataStore.ts index faa70cf8..c2c08af7 100644 --- a/src/Backend/Storage/ReaderDataStore.ts +++ b/src/Backend/Storage/ReaderDataStore.ts @@ -1,28 +1,36 @@ +import { isLocatable } from '@darkforest_eth/gamelogic'; +import { EthConnection } from '@darkforest_eth/network'; import { - EthAddress, - SpaceType, + ArtifactId, Biome, - Planet, + EthAddress, LocatablePlanet, - WorldLocation, LocationId, - ArtifactId, + Planet, + SpaceType, + WorldLocation, } from '@darkforest_eth/types'; -import { TerminalHandle } from '../../Frontend/Views/Terminal'; import { ContractConstants } from '../../_types/darkforest/api/ContractsAPITypes'; import { AddressTwitterMap } from '../../_types/darkforest/api/UtilityServerAPITypes'; -import { isLocatable } from '../../_types/global/GlobalTypes'; import { arrive, updatePlanetToTime } from '../GameLogic/ArrivalUtils'; -import ContractsAPI from '../GameLogic/ContractsAPI'; -import EthConnection from '../Network/EthConnection'; +import { ContractsAPI, makeContractsAPI } from '../GameLogic/ContractsAPI'; import { getAllTwitters } from '../Network/UtilityServerAPI'; import PersistentChunkStore from './PersistentChunkStore'; -export enum SinglePlanetDataStoreEvent { +export const enum SinglePlanetDataStoreEvent { REFRESHED_PLANET = 'REFRESHED_PLANET', REFRESHED_ARTIFACT = 'REFRESHED_ARTIFACT', } +interface ReaderDataStoreConfig { + contractAddress: EthAddress; + viewer: EthAddress | undefined; + addressTwitterMap: AddressTwitterMap; + contractConstants: ContractConstants; + contractsAPI: ContractsAPI; + persistentChunkStore: PersistentChunkStore | undefined; +} + /** * A data store that allows you to retrieve data from the contract, * and combine it with data that is stored in this browser about a @@ -35,13 +43,13 @@ class ReaderDataStore { private readonly contractsAPI: ContractsAPI; private readonly persistentChunkStore: PersistentChunkStore | undefined; - private constructor( - viewer: EthAddress | undefined, - addressTwitterMap: AddressTwitterMap, - contractConstants: ContractConstants, - contractsAPI: ContractsAPI, - persistentChunkStore: PersistentChunkStore | undefined - ) { + private constructor({ + viewer, + addressTwitterMap, + contractConstants, + contractsAPI, + persistentChunkStore, + }: ReaderDataStoreConfig) { this.viewer = viewer; this.addressTwitterMap = addressTwitterMap; this.contractConstants = contractConstants; @@ -54,23 +62,29 @@ class ReaderDataStore { this.persistentChunkStore?.destroy(); } - public static async create( - terminal: React.MutableRefObject, - ethConnection: EthConnection, - viewer: EthAddress | undefined - ): Promise { - const contractsAPI = await ContractsAPI.create(ethConnection); + public static async create({ + connection, + viewer, + contractAddress, + }: { + connection: EthConnection; + viewer: EthAddress | undefined; + contractAddress: EthAddress; + }): Promise { + const contractsAPI = await makeContractsAPI({ connection, contractAddress }); const addressTwitterMap = await getAllTwitters(); const contractConstants = await contractsAPI.getConstants(); - const persistentChunkStore = viewer && (await PersistentChunkStore.create(viewer)); + const persistentChunkStore = + viewer && (await PersistentChunkStore.create({ account: viewer, contractAddress })); - const singlePlanetStore = new ReaderDataStore( + const singlePlanetStore = new ReaderDataStore({ + contractAddress, viewer, addressTwitterMap, contractConstants, contractsAPI, - persistentChunkStore - ); + persistentChunkStore, + }); return singlePlanetStore; } @@ -129,7 +143,7 @@ class ReaderDataStore { for (const arrival of arrivals) { if (nowInSeconds < arrival.arrivalTime) break; - arrive(planet, [], arrival, contractConstants); + arrive(planet, [], arrival, undefined, contractConstants); } updatePlanetToTime(planet, [], Date.now(), contractConstants); @@ -173,7 +187,7 @@ class ReaderDataStore { else if (biomebase < this.contractConstants.BIOME_THRESHOLD_2) biome += 2; else biome += 3; - return biome; + return biome as Biome; } } diff --git a/src/Backend/Utils/BlockWaiter.ts b/src/Backend/Utils/BlockWaiter.ts deleted file mode 100644 index 68e2a951..00000000 --- a/src/Backend/Utils/BlockWaiter.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * You can schedule a function to be executed {@code waitThisLong} in the future. If you - * schedule again, the previously scheduled function will not be executed. - */ -export class BlockWaiter { - private timeout?: ReturnType; - private waitThisLong: number; - - public constructor(waitThisLong: number) { - this.waitThisLong = waitThisLong; - } - - public schedule(func: () => void) { - if (this.timeout !== undefined) { - clearTimeout(this.timeout); - this.timeout = undefined; - } - - this.timeout = setTimeout(func, this.waitThisLong); - } -} diff --git a/src/Backend/Utils/Coordinates.ts b/src/Backend/Utils/Coordinates.ts index a17036ab..c726e06c 100644 --- a/src/Backend/Utils/Coordinates.ts +++ b/src/Backend/Utils/Coordinates.ts @@ -1,12 +1,7 @@ -import { WorldCoords } from '@darkforest_eth/types'; +import { CanvasCoords, WorldCoords } from '@darkforest_eth/types'; export const coordsEqual = (a: WorldCoords, b: WorldCoords): boolean => a.x === b.x && a.y === b.y; -export interface CanvasCoords { - x: number; - y: number; -} - export const distL2 = (a: CanvasCoords | WorldCoords, b: CanvasCoords | WorldCoords): number => (a.x - b.x) ** 2 + (a.y - b.y) ** 2; diff --git a/src/Backend/Utils/SnarkArgsHelper.ts b/src/Backend/Utils/SnarkArgsHelper.ts index 5a3a49d3..f7370e80 100644 --- a/src/Backend/Utils/SnarkArgsHelper.ts +++ b/src/Backend/Utils/SnarkArgsHelper.ts @@ -1,39 +1,33 @@ -import FastQueue from 'fastq'; -import { BigInteger } from 'big-integer'; -import * as bigInt from 'big-integer'; -import { - PerlinConfig, - mimcHash, - modPBigInt, - fakeHash, - perlin, - modPBigIntNative, -} from '@darkforest_eth/hashing'; -import { LRUMap } from 'mnemonist'; -import { TerminalTextStyle } from '../../Frontend/Utils/TerminalTypes'; -import { TerminalHandle } from '../../Frontend/Views/Terminal'; -import { HashConfig } from '../../_types/global/GlobalTypes'; +import { fakeHash, mimcHash, modPBigInt, modPBigIntNative, perlin } from '@darkforest_eth/hashing'; import { - SnarkJSProofAndSignals, + BiomebaseSnarkContractCallArgs, + BiomebaseSnarkInput, buildContractCallArgs, fakeProof, - RevealSnarkInput, - RevealSnarkContractCallArgs, - InitSnarkInput, InitSnarkContractCallArgs, - MoveSnarkInput, + InitSnarkInput, MoveSnarkContractCallArgs, - BiomebaseSnarkInput, - BiomebaseSnarkContractCallArgs, + MoveSnarkInput, + RevealSnarkContractCallArgs, + RevealSnarkInput, + SnarkJSProofAndSignals, } from '@darkforest_eth/snarks'; -import revealCircuitPath from '@darkforest_eth/snarks/reveal.wasm'; -import revealZkeyPath from '@darkforest_eth/snarks/reveal.zkey'; +import biomebaseCircuitPath from '@darkforest_eth/snarks/biomebase.wasm'; +import biomebaseZkeyPath from '@darkforest_eth/snarks/biomebase.zkey'; import initCircuitPath from '@darkforest_eth/snarks/init.wasm'; import initZkeyPath from '@darkforest_eth/snarks/init.zkey'; import moveCircuitPath from '@darkforest_eth/snarks/move.wasm'; import moveZkeyPath from '@darkforest_eth/snarks/move.zkey'; -import biomebaseCircuitPath from '@darkforest_eth/snarks/biomebase.wasm'; -import biomebaseZkeyPath from '@darkforest_eth/snarks/biomebase.zkey'; +import revealCircuitPath from '@darkforest_eth/snarks/reveal.wasm'; +import revealZkeyPath from '@darkforest_eth/snarks/reveal.zkey'; +import { PerlinConfig } from '@darkforest_eth/types'; +import * as bigInt from 'big-integer'; +import { BigInteger } from 'big-integer'; +import FastQueue from 'fastq'; +import { LRUMap } from 'mnemonist'; +import { TerminalTextStyle } from '../../Frontend/Utils/TerminalTypes'; +import { TerminalHandle } from '../../Frontend/Views/Terminal'; +import { HashConfig } from '../../_types/global/GlobalTypes'; type ZKPTask = { taskId: number; @@ -120,7 +114,9 @@ class SnarkArgsHelper { this.terminal = terminal; this.snarkProverQueue = new SnarkProverQueue(); this.hashConfig = hashConfig; - this.planetHashMimc = useMockHash ? fakeHash : mimcHash(hashConfig.planetHashKey); + this.planetHashMimc = useMockHash + ? fakeHash(hashConfig.planetRarity) + : mimcHash(hashConfig.planetHashKey); this.spaceTypePerlinOpts = { key: hashConfig.spaceTypeKey, scale: hashConfig.perlinLengthScale, @@ -354,8 +350,8 @@ class SnarkArgsHelper { r: number, distMax: number ) { - const hash1 = this.useMockHash ? fakeHash(x1, y1) : this.planetHashMimc(x1, y1); - const hash2 = this.useMockHash ? fakeHash(x2, y2) : this.planetHashMimc(x2, y2); + const hash1 = this.planetHashMimc(x1, y1); + const hash2 = this.planetHashMimc(x2, y2); const perl2 = perlin({ x: x2, y: y2 }, this.spaceTypePerlinOpts); const publicSignals: BigInteger[] = [ hash1, diff --git a/src/Backend/Utils/TypeAssertions.ts b/src/Backend/Utils/TypeAssertions.ts deleted file mode 100644 index a9376c34..00000000 --- a/src/Backend/Utils/TypeAssertions.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { - TxIntent, - UnconfirmedInit, - EthTxType, - UnconfirmedMove, - UnconfirmedUpgrade, - UnconfirmedBuyHat, - UnconfirmedPlanetTransfer, - UnconfirmedFindArtifact, - UnconfirmedDepositArtifact, - UnconfirmedWithdrawArtifact, - UnconfirmedProspectPlanet, - UnconfirmedActivateArtifact, - UnconfirmedDeactivateArtifact, - UnconfirmedReveal, - UnconfirmedBuyGPTCredits, - UnconfirmedWithdrawSilver, -} from '@darkforest_eth/types'; - -export function isUnconfirmedReveal(txIntent: TxIntent): txIntent is UnconfirmedReveal { - return txIntent.type === EthTxType.REVEAL_LOCATION; -} - -export function isUnconfirmedInit(txIntent: TxIntent): txIntent is UnconfirmedInit { - return txIntent.type === EthTxType.INIT; -} - -export function isUnconfirmedMove(txIntent: TxIntent): txIntent is UnconfirmedMove { - return txIntent.type === EthTxType.MOVE; -} - -export function isUnconfirmedUpgrade(txIntent: TxIntent): txIntent is UnconfirmedUpgrade { - return txIntent.type === EthTxType.UPGRADE; -} - -export function isUnconfirmedBuyHat(txIntent: TxIntent): txIntent is UnconfirmedBuyHat { - return txIntent.type === EthTxType.BUY_HAT; -} - -export function isUnconfirmedTransfer(txIntent: TxIntent): txIntent is UnconfirmedPlanetTransfer { - return txIntent.type === EthTxType.PLANET_TRANSFER; -} - -export function isUnconfirmedFindArtifact(txIntent: TxIntent): txIntent is UnconfirmedFindArtifact { - return txIntent.type === EthTxType.FIND_ARTIFACT; -} - -export function isUnconfirmedDepositArtifact( - txIntent: TxIntent -): txIntent is UnconfirmedDepositArtifact { - return txIntent.type === EthTxType.DEPOSIT_ARTIFACT; -} - -export function isUnconfirmedWithdrawArtifact( - txIntent: TxIntent -): txIntent is UnconfirmedWithdrawArtifact { - return txIntent.type === EthTxType.WITHDRAW_ARTIFACT; -} - -export function isUnconfirmedProspectPlanet( - txIntent: TxIntent -): txIntent is UnconfirmedProspectPlanet { - return txIntent.type === EthTxType.PROSPECT_PLANET; -} - -export function isUnconfirmedActivateArtifact( - txIntent: TxIntent -): txIntent is UnconfirmedActivateArtifact { - return txIntent.type === EthTxType.ACTIVATE_ARTIFACT; -} - -export function isUnconfirmedDeactivateArtifact( - txIntent: TxIntent -): txIntent is UnconfirmedDeactivateArtifact { - return txIntent.type === EthTxType.DEACTIVATE_ARTIFACT; -} - -export function isUnconfirmedWithdrawSilver( - txIntent: TxIntent -): txIntent is UnconfirmedWithdrawSilver { - return txIntent.type === EthTxType.WITHDRAW_SILVER; -} - -export function isUnconfirmedBuyGPTCredits( - txIntent: TxIntent -): txIntent is UnconfirmedBuyGPTCredits { - return txIntent.type === EthTxType.BUY_GPT_CREDITS; -} diff --git a/src/Backend/Utils/Utils.ts b/src/Backend/Utils/Utils.ts index 03710f52..91fa4506 100644 --- a/src/Backend/Utils/Utils.ts +++ b/src/Backend/Utils/Utils.ts @@ -1,9 +1,8 @@ +import { formatNumber } from '@darkforest_eth/gamelogic'; +import { EthAddress, Planet, SpaceType, Upgrade, UpgradeBranchName } from '@darkforest_eth/types'; import * as bigInt from 'big-integer'; import { BigInteger } from 'big-integer'; import { StatIdx } from '../../_types/global/GlobalTypes'; -import { Planet, EthAddress, SpaceType, Upgrade, UpgradeBranchName } from '@darkforest_eth/types'; -import _ from 'lodash'; -import { EMPTY_ADDRESS } from '@darkforest_eth/constants'; export const ONE_DAY = 24 * 60 * 60 * 1000; @@ -59,32 +58,6 @@ export const getOwnerColor: (planet: Planet) => string = (planet) => { return planet.owner ? getPlayerColor(planet.owner) : 'hsl(0,1%,50%)'; }; -// smallDec represents the decimals to show for small numbers -export const formatNumber = (num: number, smallDec = 0): string => { - if (num < 1000) { - if (`${num}` === num.toFixed(0)) { - return `${num.toFixed(0)}`; - } else { - return `${num.toFixed(smallDec)}`; - } - } - - const suffixes = ['', 'K', 'M', 'B', 'T', 'q', 'Q']; - let log000 = 0; - let rem = num; - while (rem / 1000 >= 1) { - rem /= 1000; - log000++; - } - - if (log000 === 0) return `${Math.floor(num)}`; - - if (rem < 10) return `${rem.toFixed(1)}${suffixes[log000]}`; - else if (rem < 100) return `${rem.toFixed(1)}${suffixes[log000]}`; - else if (log000 < suffixes.length) return `${rem.toFixed(0)}${suffixes[log000]}`; - else return `${rem.toFixed(0)}E${log000 * 3}`; -}; - export const getRandomActionId = () => { const hex = '0123456789abcdef'; @@ -146,109 +119,3 @@ export const titleCase = (title: string): string => return `${word.substring(0, 1).toUpperCase()}${word.substring(1)}`; }) .join(' '); - -export const hasOwner = (planet: Planet) => { - return planet.owner !== EMPTY_ADDRESS; -}; - -export function sleep(timeout: number, returns?: T): Promise { - return new Promise((resolve) => setTimeout(() => resolve(returns as T), timeout)); -} - -export async function rejectAfter(ms: number, msg: string): Promise { - await sleep(ms); - throw new Error(msg); -} - -export function neverResolves(): Promise { - return new Promise(() => {}); -} - -export const aggregateBulkGetter = async ( - logTag: string, - total: number, - querySize: number, - getterFn: (startIdx: number, endIdx: number) => Promise, - // the parameter to this function is a value between 0 and 1. We guarantee at least one call to - // `onProgress` if you provide it. The guaranteed call is the one at the end, where the value is 1. - onProgress?: (fractionCompleted: number) => void -) => { - const promises: Promise[] = []; - let loadedSoFar = 0; - - for (let i = 0; i < total / querySize; i += 1) { - const start = i * querySize; - const end = Math.min((i + 1) * querySize, total); - const loadedThisBatch = end - start; - - promises.push( - new Promise(async (resolve) => { - let res: T[] = []; - while (res.length === 0) { - res = await getterFn(start, end); - loadedSoFar += loadedThisBatch; - console.log(`[bulk-fetch] retrieved ${logTag} ${start}-${end}.`); - onProgress && onProgress(loadedSoFar / total); - } - - resolve(res); - }) - ); - } - const unflattenedResults = await Promise.all(promises); - onProgress && onProgress(1); - return _.flatten(unflattenedResults); -}; - -export type RetryErrorHandler = (i: number, e: Error) => void; - -export const callWithRetry = async ( - fn: (...args: unknown[]) => Promise, - args: unknown[] = [], - onError?: RetryErrorHandler, - maxRetries = 10, - retryInterval = 1000 -): Promise => { - return new Promise(async (resolve, reject) => { - let res: T; - for (let i = 0; i < maxRetries; i++) { - try { - res = await fn(...args); - resolve(res); - break; - } catch (e) { - console.error(`error: ${e}`); - console.log(`retrying (${i}/${maxRetries})...`); - - if (onError) { - try { - onError(i, e); - } catch (e) { - console.log(`failed executing callWithRetry error handler`, e); - } - } - - if (i < maxRetries - 1) { - await sleep(Math.min(retryInterval * 2 ** i + Math.random() * 100, 15000)); - } else { - reject(e); - } - } - } - }); -}; - -export const timeoutAfter = async (promise: Promise, ms: number, timeoutMsg: string) => { - return Promise.race([promise, rejectAfter(ms, timeoutMsg)]); -}; - -export function deferred(): [(t: T) => void, (t: Error) => void, Promise] { - let resolve: ((t: T) => void) | null = null; - let reject: ((t: Error) => void) | null = null; - const promise = new Promise((r, rj) => { - resolve = (t: T) => r(t); - reject = (e: Error) => rj(e); - }); - /* eslint-disable @typescript-eslint/no-explicit-any */ - return [resolve as any, reject as any, promise]; -} diff --git a/src/Backend/Utils/UtilsTypes.ts b/src/Backend/Utils/UtilsTypes.ts deleted file mode 100644 index 39520c36..00000000 --- a/src/Backend/Utils/UtilsTypes.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { PlanetLevel } from '@darkforest_eth/types'; -import { RGBVec, HSLVec } from '../../Frontend/Renderers/GameRenderer/EngineTypes'; -import { HatType } from '../../Frontend/Utils/Hats'; - -export type RuinsInfo = Record< - PlanetLevel, - { - weights: [number, number, number, number]; - props: [number, number, number, number]; - } ->; - -export interface PlanetCosmeticInfo { - baseHue: number; - - baseStr: string; - bgStr: string; - - baseColor: RGBVec; - baseColor2: RGBVec; - baseColor3: RGBVec; - - mtnColor: RGBVec; - mtnColor2: RGBVec; - mtnColor3: RGBVec; - - backgroundColor: RGBVec; - previewColor: RGBVec; - - landRgb: RGBVec; - oceanRgb: RGBVec; - beachRgb: RGBVec; - - asteroidHsl: HSLVec; - - seed: number; - - hatType: HatType; - - spacetime1: RGBVec; - spacetime2: RGBVec; - spacetime3: RGBVec; - - ruins?: RuinsInfo; -} diff --git a/src/Backend/Utils/WhitelistSnarkArgsHelper.ts b/src/Backend/Utils/WhitelistSnarkArgsHelper.ts new file mode 100644 index 00000000..01148e1e --- /dev/null +++ b/src/Backend/Utils/WhitelistSnarkArgsHelper.ts @@ -0,0 +1,53 @@ +import { + buildContractCallArgs, + SnarkJSProofAndSignals, + WhitelistSnarkContractCallArgs, + WhitelistSnarkInput, +} from '@darkforest_eth/snarks'; +import whitelistCircuitPath from '@darkforest_eth/snarks/whitelist.wasm'; +import whitelistZkeyPath from '@darkforest_eth/snarks/whitelist.zkey'; +import { EthAddress } from '@darkforest_eth/types'; +import bigInt, { BigInteger } from 'big-integer'; +import { TerminalTextStyle } from '../../Frontend/Utils/TerminalTypes'; +import { TerminalHandle } from '../../Frontend/Views/Terminal'; + +/** + * Helper method for generating whitelist SNARKS. + * This is separate from the existing {@link SnarkArgsHelper} + * because whitelist txs require far less setup compared + * to SNARKS that are sent in context of the game. + */ +export const getWhitelistArgs = async ( + key: BigInteger, + recipient: EthAddress, + terminal?: React.MutableRefObject +): Promise => { + try { + const start = Date.now(); + terminal?.current?.println( + 'WHITELIST REGISTER: calculating witness and proof', + TerminalTextStyle.Sub + ); + const input: WhitelistSnarkInput = { + key: key.toString(), + recipient: bigInt(recipient.substring(2), 16).toString(), + }; + + const fullProveResponse = await window.snarkjs.groth16.fullProve( + input, + whitelistCircuitPath, + whitelistZkeyPath + ); + const { proof, publicSignals }: SnarkJSProofAndSignals = fullProveResponse; + const ret = buildContractCallArgs(proof, publicSignals) as WhitelistSnarkContractCallArgs; + const end = Date.now(); + terminal?.current?.println( + `WHITELIST REGISTER: calculated witness and proof in ${end - start}ms`, + TerminalTextStyle.Sub + ); + + return ret; + } catch (e) { + throw e; + } +}; diff --git a/src/Frontend/Components/AncientLabel.tsx b/src/Frontend/Components/AncientLabel.tsx index 5e5460fc..85d5b38f 100644 --- a/src/Frontend/Components/AncientLabel.tsx +++ b/src/Frontend/Components/AncientLabel.tsx @@ -1,8 +1,6 @@ import React from 'react'; - /* ancient label */ - -import styled, { keyframes, css } from 'styled-components'; +import styled, { css, keyframes } from 'styled-components'; import { ANCIENT_BLUE, ANCIENT_PURPLE } from '../Styles/Colors'; const shakeAndFlash = keyframes` diff --git a/src/Frontend/Components/ArtifactImage.tsx b/src/Frontend/Components/ArtifactImage.tsx index 968d87b3..d5cd9dc7 100644 --- a/src/Frontend/Components/ArtifactImage.tsx +++ b/src/Frontend/Components/ArtifactImage.tsx @@ -1,7 +1,7 @@ +import { ArtifactFileColor, artifactFileName, isSpaceShip } from '@darkforest_eth/gamelogic'; +import { Artifact } from '@darkforest_eth/types'; import React from 'react'; import styled, { css } from 'styled-components'; -import { Artifact } from '@darkforest_eth/types'; -import { ArtifactFileColor, artifactFileName } from '../../Backend/GameLogic/ArtifactUtils'; import dfstyles from '../Styles/dfstyles'; export const ARTIFACT_URL = 'https://d2wspbczt15cqu.cloudfront.net/v0.6.0-artifacts/'; @@ -23,14 +23,18 @@ export function ArtifactImage({ thumb?: boolean; bgColor?: ArtifactFileColor; }) { + const url = getArtifactUrl(thumb || false, artifact, bgColor || ArtifactFileColor.BLUE); + const image = isSpaceShip(artifact.artifactType) ? ( + + ) : ( + + ); + return ( - + {image} ); } diff --git a/src/Frontend/Components/Btn.tsx b/src/Frontend/Components/Btn.tsx index c0ca86b4..89a639f4 100644 --- a/src/Frontend/Components/Btn.tsx +++ b/src/Frontend/Components/Btn.tsx @@ -1,55 +1,33 @@ +import { + DarkForestButton, + DarkForestShortcutButton, + ShortcutPressedEvent, +} from '@darkforest_eth/ui'; +import { createComponent } from '@lit-labs/react'; import React from 'react'; -import styled, { css } from 'styled-components'; -import dfstyles from '../Styles/dfstyles'; -export interface BtnProps { - disabled?: boolean; - noBorder?: boolean; - wide?: boolean; - - color?: string; - - borderColor?: string; - textColor?: string; -} - -export function Btn(props: BtnProps & React.HTMLAttributes) { - return ; -} - -const BtnElement = styled.span` - ${({ disabled, color, borderColor, textColor, noBorder, wide }: BtnProps) => css` - user-select: none; - display: inline-flex; - border-radius: 3px; - padding: 0 0.3em; - border: ${noBorder ? 0 : 1}px solid ${borderColor || color || dfstyles.colors.text}; - transition: background-color 0.2s, color 0.2s; - justify-content: center; - align-items: center; - cursor: pointer; - - ${wide && `width: 100%;`} - ${(textColor || color) && `color: ${textColor || color};`} - - &:hover { - ${!disabled && - css` - color: ${dfstyles.colors.background}; - background: ${color || dfstyles.colors.text}; - `} - } - - &:active { - ${dfstyles.game.styles.active}; - } - - ${disabled && - css` - color: ${dfstyles.colors.subbertext}; - background: none; - border-color: ${dfstyles.colors.subtext}; - filter: none; - `} - `} -`; +customElements.define(DarkForestButton.tagName, DarkForestButton); +customElements.define(DarkForestShortcutButton.tagName, DarkForestShortcutButton); + +export { DarkForestButton, DarkForestShortcutButton, ShortcutPressedEvent }; + +// This wraps the customElement in a React wrapper to make it behave exactly like a React component +export const Btn = createComponent< + DarkForestButton, + { + onClick: (evt: Event & React.MouseEvent) => void; + } +>(React, DarkForestButton.tagName, DarkForestButton, { + onClick: 'click', +}); + +export const ShortcutBtn = createComponent< + DarkForestShortcutButton, + { + onClick: (evt: Event & React.MouseEvent) => void; + onShortcutPressed: (evt: ShortcutPressedEvent) => void; + } +>(React, DarkForestShortcutButton.tagName, DarkForestShortcutButton, { + onClick: 'click', + onShortcutPressed: 'shortcut-pressed', +}); diff --git a/src/Frontend/Components/CapturePlanetButton.tsx b/src/Frontend/Components/CapturePlanetButton.tsx new file mode 100644 index 00000000..c7ab9a2c --- /dev/null +++ b/src/Frontend/Components/CapturePlanetButton.tsx @@ -0,0 +1,184 @@ +import { EMPTY_ADDRESS } from '@darkforest_eth/constants'; +import { isUnconfirmedCapturePlanetTx, isUnconfirmedInvadePlanetTx } from '@darkforest_eth/serde'; +import { Planet, TooltipName } from '@darkforest_eth/types'; +import React, { useCallback, useMemo } from 'react'; +import styled from 'styled-components'; +import { Wrapper } from '../../Backend/Utils/Wrapper'; +import { TooltipTrigger } from '../Panes/Tooltip'; +import { useAccount, useUIManager } from '../Utils/AppHooks'; +import { useEmitterValue } from '../Utils/EmitterHooks'; +import { INVADE } from '../Utils/ShortcutConstants'; +import { ShortcutBtn } from './Btn'; +import { LoadingSpinner } from './LoadingSpinner'; +import { MaybeShortcutButton } from './MaybeShortcutButton'; +import { Row } from './Row'; +import { Green, Red, White } from './Text'; + +const StyledRow = styled(Row)` + .button { + margin-bottom: 4px; + flex-grow: 1; + } +`; + +export function CapturePlanetButton({ + planetWrapper, +}: { + planetWrapper: Wrapper; +}) { + const uiManager = useUIManager(); + const account = useAccount(uiManager); + const gameManager = uiManager.getGameManager(); + const currentBlockNumber = useEmitterValue(uiManager.getEthConnection().blockNumber$, undefined); + const owned = planetWrapper.value?.owner === account; + const captureZoneGenerator = uiManager.getCaptureZoneGenerator(); + + const canGiveScore = useMemo(() => { + if (!planetWrapper.value) return; + const planet = planetWrapper.value; + return uiManager.potentialCaptureScore(planet.planetLevel) > 0; + }, [planetWrapper, uiManager]); + + const shouldShow = useMemo(() => { + if (!planetWrapper.value) return false; + const planet = planetWrapper.value; + return canGiveScore && owned && planet.capturer === EMPTY_ADDRESS; + }, [owned, planetWrapper, canGiveScore]); + + const shouldShowInvade = useMemo(() => { + if (!planetWrapper.value) return false; + const planet = planetWrapper.value; + const inZone = captureZoneGenerator?.isInZone(planet.locationId); + + return owned && inZone && planet.invader === EMPTY_ADDRESS && planet.capturer === EMPTY_ADDRESS; + }, [owned, planetWrapper, captureZoneGenerator]); + + const planetHasEnoughEnergy = useMemo(() => { + if (!planetWrapper.value) return false; + const { energy, energyCap } = planetWrapper.value; + + return energy > energyCap * 0.8; // real percentage is 78. need time for contract to catch up. + }, [planetWrapper]); + + const invadable = useMemo(() => { + if (!planetWrapper.value) return false; + const planet = planetWrapper.value; + return planet.capturer === EMPTY_ADDRESS && planet.invader === EMPTY_ADDRESS; + }, [planetWrapper]); + + const invading = useMemo( + () => planetWrapper.value?.transactions?.hasTransaction(isUnconfirmedInvadePlanetTx), + [planetWrapper] + ); + + const invade = useCallback(() => { + if (!planetWrapper.value) return; + gameManager.invadePlanet(planetWrapper.value.locationId); + }, [gameManager, planetWrapper]); + + const shouldShowCapture = useMemo(() => { + if (!planetWrapper.value) return; + const planet = planetWrapper.value; + + return owned && planet.capturer === EMPTY_ADDRESS && planet.invader !== EMPTY_ADDRESS; + }, [owned, planetWrapper]); + + const blocksLeft = useMemo(() => { + if (!planetWrapper.value || !currentBlockNumber) { + return undefined; + } + const planet = planetWrapper.value; + + if (!planet.invadeStartBlock) return undefined; + const holdBlocksRequired = uiManager + .getGameManager() + .getContractConstants().CAPTURE_ZONE_HOLD_BLOCKS_REQUIRED; + + // it is possible that we have an outdated currentBlockNumber in this calculation + // this would result in an incorrect number of blocks required being shown + // only show a max of holdBlocksRequired instead + return Math.min( + planet.invadeStartBlock + holdBlocksRequired - currentBlockNumber, + holdBlocksRequired + ); + }, [uiManager, planetWrapper, currentBlockNumber]); + + const capturable = useMemo(() => { + return blocksLeft !== undefined && blocksLeft <= 0 && planetHasEnoughEnergy; + }, [planetHasEnoughEnergy, blocksLeft]); + + const capturing = useMemo( + () => planetWrapper.value?.transactions?.hasTransaction(isUnconfirmedCapturePlanetTx), + [planetWrapper] + ); + + const capture = useCallback(() => { + if (!planetWrapper.value) return; + gameManager.capturePlanet(planetWrapper.value.locationId); + }, [gameManager, planetWrapper]); + + return ( + + {shouldShow && ( + <> + {shouldShowInvade && ( + + Invade this planet. } + > + {invading ? : 'Invade'} + + + )} + + {shouldShowCapture && ( + + + + Capture this planet for score!{' '} + {!!blocksLeft && blocksLeft >= 0 && ( + <> + You must wait {blocksLeft} blocks until you can capture + this planet. + + )} + {!planetHasEnoughEnergy && ( + The planet requires above 80% energy before you can capture it. + )} + + + } + > + {capturing ? : 'Capture!'} + + + )} + + )} + + ); +} diff --git a/src/Frontend/Components/CoreUI.tsx b/src/Frontend/Components/CoreUI.tsx index d9a828a2..dd226f50 100644 --- a/src/Frontend/Components/CoreUI.tsx +++ b/src/Frontend/Components/CoreUI.tsx @@ -1,12 +1,229 @@ -import React, { ChangeEvent } from 'react'; -import { useCallback } from 'react'; +import colors from 'color'; +import React, { ChangeEvent, useCallback } from 'react'; import styled, { css } from 'styled-components'; import dfstyles from '../Styles/dfstyles'; +import { DFZIndex } from '../Utils/constants'; + +export const InlineBlock = styled.div` + display: inline-block; +`; + +export const Separator = styled.div` + width: 100%; + box-sizing: border-box; + padding-left: 2px; + padding-right: 2px; + height: 1px; + background-color: ${dfstyles.colors.borderDark}; +`; + +export const FloatRight = styled.div` + float: right; +`; + +export const TextButton = styled.span` + color: ${dfstyles.colors.subtext}; + cursor: pointer; + user-select: none; + text-decoration: underline; + + &:hover { + color: white; + } +`; + +export const Padded = styled.div` + ${({ + left, + top, + right, + bottom, + }: { + left?: string; + top?: string; + right?: string; + bottom?: string; + }) => css` + padding-left: ${left || '8px'}; + padding-top: ${top || '8px'}; + padding-right: ${right || '8px'}; + padding-bottom: ${bottom || '8px'}; + `} +`; + +export const BorderlessPane = styled.div` + transition: 200ms; + display: flex; + flex-direction: column; + z-index: ${DFZIndex.MenuBar}; + margin: 8px; + padding: 8px; + border-radius: ${dfstyles.borderRadius}; + background-color: ${dfstyles.colors.background}; + border-radius: ${dfstyles.borderRadius}; + background-color: ${dfstyles.colors.background}; +`; export const Underline = styled.span` text-decoration: underline; `; +export const Display = styled.div` + ${({ visible }: { visible?: boolean }) => css` + ${!visible && `display: none;`} + `} +`; + +export const Emphasized = styled.span` + font-weight: bold; + color: ${dfstyles.colors.subtext}; +`; + +export const HeaderText = styled.div` + color: ${dfstyles.colors.text}; + text-decoration: underline; + font-weight: bold; + display: inline; +`; + +export const SectionHeader = styled(HeaderText)` + margin-bottom: 16px; + display: block; +`; + +export const Section = styled.div` + padding: 1em 0; + + &:first-child { + margin-top: -8px; + } + + &:last-child { + border-bottom: none; + } +`; + +export const Bottom = styled.div` + position: absolute; + bottom: 0; + left: 0; +`; + +export const VerticalSplit = function ({ + children, +}: { + children: [React.ReactNode, React.ReactNode]; +}) { + return ( + + {children[0]} + {children[1]} + + ); +}; + +const VerticalSplitRow = styled.div` + display: flex; + flex-direction: row; + gap: 8px; +`; + +const VerticalSplitChild = styled.div` + flex: 1 1 50%; + display: flex; + flex-direction: column; + gap: 8px; +`; + +export const FullHeight = styled.div` + height: 100%; +`; + +/** + * Fills parent width, aligns children horizontally in the center. + */ +export const AlignCenterHorizontally = styled.div` + display: inline-flex; + flex-direction: row; + justify-content: center; + align-items: center; +`; + +export const AlignCenterVertically = styled.div` + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +`; + +/** + * Expands to fill space in a flexbox. + */ +export const Expand = styled.div` + display: inline-box; + flex-grow: 1; +`; + +/** + * Don't shrink in a flexbox. + */ +export const DontShrink = styled.div` + display: inline-box; + flex-shrink: 0; +`; + +/** + * This is the link that all core ui in Dark Forest should use. Please! + */ +export function Link( + props: { + to?: string; + color?: string; + openInThisTab?: boolean; + children: React.ReactNode; + } & React.HtmlHTMLAttributes +) { + const { to, color, openInThisTab, children } = props; + + return ( + + {children} + + ); +} + +const LinkImpl = styled.a` + cursor: pointer; + + ${({ color }: { color?: string }) => css` + text-decoration: underline; + color: ${color || dfstyles.colors.dfblue}; + } + + &:hover { + color: ${colors(color || dfstyles.colors.dfblue) + .lighten(0.3) + .hex()}; + } + `} +`; + +/** + * Inline block rectangle, measured in ems, default 1em by 1em. + */ +export const EmSpacer = styled.div` + ${({ width, height }: { width?: number; height?: number }) => css` + width: ${width === undefined ? '1em' : width}; + height: ${height === undefined ? '1em' : height}; + flex-grow: 0; + flex-shrink: 0; + ${width && !height ? 'display: inline-block;' : ''} + ${width ? `width: ${width}em;` : ''} + ${height ? `height: ${height}em;min-height:${height}em;` : ''} + `} +`; + export const Spacer = styled.div` ${({ width, height }: { width?: number; height?: number }) => css` width: 1px; @@ -19,6 +236,7 @@ export const Spacer = styled.div` export const Truncate = styled.div` ${({ maxWidth }: { maxWidth?: string }) => css` + vertical-align: bottom; display: inline-block; white-space: nowrap; overflow: hidden; @@ -27,6 +245,11 @@ export const Truncate = styled.div` `} `; +export const Title = styled(Truncate)` + flex-grow: 1; + text-align: left; +`; + /** * The container element into which a plugin renders its html elements. * Contains styles for child elements so that plugins can use UI @@ -35,7 +258,7 @@ export const Truncate = styled.div` * way to do this. */ export const PluginElements = styled.div` - color: white; + color: ${dfstyles.colors.text}; width: 400px; min-height: 100px; max-height: 600px; @@ -49,7 +272,7 @@ export const PluginElements = styled.div` transition: background-color 0.2s colors 0.2s; &:hover { - background-color: white; + background-color: ${dfstyles.colors.text}; color: black; border: 1px transparent; } @@ -69,19 +292,22 @@ export const Hidden = styled.div` `; export const Select = styled.select` - transition: background-color 0.2s, color 0.2s, width 0.2s !important; - outline: none; - background: ${dfstyles.colors.background}; - color: ${dfstyles.colors.subtext}; - border-radius: 4px; - border: 1px solid ${dfstyles.colors.text}; - width: 12em; - padding: 2px 6px; - - &:focus { - background: ${dfstyles.colors.backgroundlight}; - color: ${dfstyles.colors.text}; - } + ${({ wide }: { wide?: boolean }) => css` + outline: none; + background: ${dfstyles.colors.background}; + color: ${dfstyles.colors.subtext}; + border-radius: 4px; + border: 1px solid ${dfstyles.colors.border}; + width: ${wide ? '100%' : '12em'}; + padding: 2px 6px; + cursor: pointer; + + &:hover { + border: 1px solid ${dfstyles.colors.subtext}; + background: ${dfstyles.colors.subtext}; + color: ${dfstyles.colors.background}; + } + `} `; /** @@ -94,12 +320,14 @@ export function SelectFrom({ setValue, labels, style, + wide, }: { values: string[]; value: string; setValue: (value: string) => void; labels: string[]; style?: React.CSSProperties; + wide?: boolean; }) { const onChange = useCallback( (e: ChangeEvent) => { @@ -117,7 +345,7 @@ export function SelectFrom({ } return ( - {copyOfValues.map((value, i) => { return (