├── .eslintrc.json ├── .github └── workflows │ └── publish.yml ├── .gitignore ├── .gitmodules ├── .luarc_sample.json ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── .vscodeignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── icon.png ├── icon.psd ├── output.json ├── package-lock.json ├── package.json ├── readme ├── readme-image.png ├── readme-image.psd ├── screen2.png └── screen3.png ├── scripts ├── builddocfile.py ├── copyemmy.js └── enums_lua_to_json.py ├── src ├── activationCheck.ts ├── config.ts ├── constants.ts ├── docs │ ├── enums │ │ ├── repentogon.json │ │ └── vanilla.json │ ├── no_repentogon_only │ │ ├── Color.lua │ │ ├── EntityRef.lua │ │ ├── EntityTear.lua │ │ ├── Game.lua │ │ ├── ItemPool.lua │ │ ├── ProjectileParams.lua │ │ ├── RNG.lua │ │ ├── Room.lua │ │ ├── RoomConfigRoom.lua │ │ ├── RoomDescriptor.lua │ │ ├── Sprite.lua │ │ └── entity │ │ │ ├── EntityNPC.lua │ │ │ ├── EntityPickup.lua │ │ │ └── EntityPlayer.lua │ ├── repentogon_changes │ │ ├── CcpContainer.lua │ │ ├── Color.lua │ │ ├── EntityRef.lua │ │ ├── Game.lua │ │ ├── Input.lua │ │ ├── Isaac.lua │ │ ├── ItemPool.lua │ │ ├── Level.lua │ │ ├── MusicManager.lua │ │ ├── Options.lua │ │ ├── ProjectileParams.lua │ │ ├── RNG.lua │ │ ├── Room.lua │ │ ├── RoomConfigRoom.lua │ │ ├── RoomDescriptor.lua │ │ ├── Sprite.lua │ │ ├── entity │ │ │ ├── Entity.lua │ │ │ ├── EntityBomb.lua │ │ │ ├── EntityEffect.lua │ │ │ ├── EntityFamiliar.lua │ │ │ ├── EntityKnife.lua │ │ │ ├── EntityLaser.lua │ │ │ ├── EntityNPC.lua │ │ │ ├── EntityPickup.lua │ │ │ ├── EntityPlayer.lua │ │ │ ├── EntityProjectile.lua │ │ │ └── EntityTear.lua │ │ ├── gridentity │ │ │ ├── GridEntity.lua │ │ │ ├── GridEntityDoor.lua │ │ │ └── GridEntityRock.lua │ │ └── itemconfig │ │ │ ├── ItemConfig.lua │ │ │ ├── ItemConfigCard.lua │ │ │ └── ItemConfigItem.lua │ ├── repentogon_new │ │ ├── Ambush.lua │ │ ├── AnimationData.lua │ │ ├── AnimationFrame.lua │ │ ├── AnimationLayer.lua │ │ ├── Backdrop.lua │ │ ├── BossPool.lua │ │ ├── BossPoolManager.lua │ │ ├── Camera.lua │ │ ├── ChallengeParam.lua │ │ ├── ColorModifier.lua │ │ ├── ColorParams.lua │ │ ├── Console.lua │ │ ├── CostumeSpriteDesc.lua │ │ ├── DailyChallenge.lua │ │ ├── Debug.lua │ │ ├── EntitiesSaveState.lua │ │ ├── EntitiesSaveStateVector.lua │ │ ├── FXParams.lua │ │ ├── GenericPrompt.lua │ │ ├── GridEntitiesSaveStateVector.lua │ │ ├── ImGui.lua │ │ ├── ItemOverlay.lua │ │ ├── LRoomAreaDesc.lua │ │ ├── LRoomTileDesc.lua │ │ ├── LayerState.lua │ │ ├── LootList.lua │ │ ├── LootListEntry.lua │ │ ├── MultiShotParams.lua │ │ ├── NightmareScene.lua │ │ ├── NullFrame.lua │ │ ├── PauseMenu.lua │ │ ├── PersistentGameData.lua │ │ ├── PlayerManager.lua │ │ ├── PocketItem.lua │ │ ├── RailManager.lua │ │ ├── RepentogonGlobal.lua │ │ ├── RoomConfig.lua │ │ ├── RoomConfigStage.lua │ │ ├── RoomTransition.lua │ │ ├── ScoreSheet.lua │ │ ├── StageTransition.lua │ │ ├── Weapon.lua │ │ ├── WeightedOutcomePicker.lua │ │ ├── XMLData.lua │ │ ├── entity │ │ │ ├── EntityDelirium.lua │ │ │ └── EntitySlot.lua │ │ ├── entityconfig │ │ │ ├── EntityConfig.lua │ │ │ ├── EntityConfigBaby.lua │ │ │ ├── EntityConfigEntity.lua │ │ │ └── EntityConfigPlayer.lua │ │ ├── gridentity │ │ │ ├── GridEntityDecoration.lua │ │ │ ├── GridEntityFire.lua │ │ │ ├── GridEntityGravity.lua │ │ │ ├── GridEntityLock.lua │ │ │ ├── GridEntityStairs.lua │ │ │ ├── GridEntityStatue.lua │ │ │ ├── GridEntityTeleporter.lua │ │ │ ├── GridEntityTrapDoor.lua │ │ │ ├── GridEntityWall.lua │ │ │ └── GridEntityWeb.lua │ │ ├── history │ │ │ ├── History.lua │ │ │ └── HistoryItem.lua │ │ ├── hud │ │ │ ├── DebugRenderer.lua │ │ │ ├── HUD.lua │ │ │ ├── Minimap.lua │ │ │ ├── PlayerHUD.lua │ │ │ └── PlayerHUDHeart.lua │ │ ├── levelgenerator │ │ │ ├── LevelGenerator.lua │ │ │ ├── LevelGeneratorEntry.lua │ │ │ └── LevelGeneratorRoom.lua │ │ ├── menus │ │ │ ├── BestiaryMenu.lua │ │ │ ├── ChallengeMenu.lua │ │ │ ├── CharacterMenu.lua │ │ │ ├── CollectionMenu.lua │ │ │ ├── ControllerSelectMenu.lua │ │ │ ├── CustomChallengeMenu.lua │ │ │ ├── CutscenesMenu.lua │ │ │ ├── DailyChallengeMenu.lua │ │ │ ├── KeyConfigMenu.lua │ │ │ ├── MainMenu.lua │ │ │ ├── MenuManager.lua │ │ │ ├── ModsMenu.lua │ │ │ ├── OptionsMenu.lua │ │ │ ├── SaveMenu.lua │ │ │ ├── SpecialSpeedsMenu.lua │ │ │ ├── StatsMenu.lua │ │ │ └── TitleMenu.lua │ │ ├── proceduralitems │ │ │ ├── ProceduralEffect.lua │ │ │ ├── ProceduralItem.lua │ │ │ └── ProceduralItemManager.lua │ │ └── rendering │ │ │ ├── Beam.lua │ │ │ ├── BlendMode.lua │ │ │ ├── Capsule.lua │ │ │ ├── DestinationQuad.lua │ │ │ ├── GLSLValue.lua │ │ │ ├── Image.lua │ │ │ ├── Pipeline.lua │ │ │ ├── Point.lua │ │ │ ├── RenderSet.lua │ │ │ ├── Renderer.lua │ │ │ ├── Shader.lua │ │ │ ├── Shape.lua │ │ │ ├── SourceQuad.lua │ │ │ ├── Transformer.lua │ │ │ ├── Vertex.lua │ │ │ ├── VertexBuffer.lua │ │ │ └── VertexDescriptor.lua │ └── vanilla │ │ ├── ActiveItemDesc.lua │ │ ├── BitSet128.lua │ │ ├── Color.lua │ │ ├── CppContainer.lua │ │ ├── EntityPtr.lua │ │ ├── EntityRef.lua │ │ ├── Font.lua │ │ ├── Game.lua │ │ ├── Globals.lua │ │ ├── GridEntityDesc.lua │ │ ├── HUD.lua │ │ ├── Input.lua │ │ ├── Isaac.lua │ │ ├── ItemPool.lua │ │ ├── KColor.lua │ │ ├── Level.lua │ │ ├── ModReference.lua │ │ ├── MusicManager.lua │ │ ├── Options.lua │ │ ├── PathFinder.lua │ │ ├── PosVel.lua │ │ ├── ProjectileParams.lua │ │ ├── QueuedItemData.lua │ │ ├── RNG.lua │ │ ├── Room.lua │ │ ├── RoomConfigEntry.lua │ │ ├── RoomConfigSpawn.lua │ │ ├── RoomDescriptor.lua │ │ ├── SFXManager.lua │ │ ├── Seeds.lua │ │ ├── Sprite.lua │ │ ├── TEARFLAG.lua │ │ ├── TearParams.lua │ │ ├── TemporaryEffect.lua │ │ ├── TemporaryEffects.lua │ │ ├── Vector.lua │ │ ├── entity │ │ ├── Entity.lua │ │ ├── EntityBomb.lua │ │ ├── EntityEffect.lua │ │ ├── EntityFamiliar.lua │ │ ├── EntityKnife.lua │ │ ├── EntityLaser.lua │ │ ├── EntityNPC.lua │ │ ├── EntityPickup.lua │ │ ├── EntityPlayer.lua │ │ ├── EntityProjectile.lua │ │ └── EntityTear.lua │ │ ├── gridentity │ │ ├── GridEntity.lua │ │ ├── GridEntityDoor.lua │ │ ├── GridEntityPit.lua │ │ ├── GridEntityPoop.lua │ │ ├── GridEntityPressurePlate.lua │ │ ├── GridEntityRock.lua │ │ ├── GridEntitySpikes.lua │ │ └── GridEntityTNT.lua │ │ ├── itemconfig │ │ ├── ItemConfig.lua │ │ ├── ItemConfigCard.lua │ │ ├── ItemConfigCostume.lua │ │ ├── ItemConfigItem.lua │ │ └── ItemConfigPillEffect.lua │ │ └── misc.lua ├── exampleCfg.json ├── extension.ts ├── isaacGlobals.ts ├── luaSettings.ts ├── modifyJson.ts ├── persist.ts └── test │ ├── runTest.ts │ └── suite │ ├── extension.test.ts │ └── index.ts └── tsconfig.json /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "parserOptions": { 5 | "ecmaVersion": 6, 6 | "sourceType": "module" 7 | }, 8 | "plugins": [ 9 | "@typescript-eslint" 10 | ], 11 | "rules": { 12 | "@typescript-eslint/naming-convention": "warn", 13 | "@typescript-eslint/semi": "warn", 14 | "curly": "warn", 15 | "eqeqeq": "warn", 16 | "no-throw-literal": "warn", 17 | "semi": "off" 18 | }, 19 | "ignorePatterns": [ 20 | "out", 21 | "dist", 22 | "**/*.d.ts" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | tags: 4 | - "[0-9]+.*" 5 | 6 | name: Deploy Extension 7 | jobs: 8 | deploy: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v2 12 | with: 13 | submodules: true 14 | - uses: actions/setup-node@v1 15 | with: 16 | node-version: 16 17 | - run: npm ci 18 | - run: npm run esbuild-base -- --minify 19 | - run: npm run buildemmy 20 | - name: Publish to Open VSX Registry 21 | uses: HaaLeo/publish-vscode-extension@v1 22 | with: 23 | pat: ${{ secrets.OPEN_VSX_TOKEN }} 24 | - name: Publish to Visual Studio Marketplace 25 | uses: HaaLeo/publish-vscode-extension@v1 26 | with: 27 | pat: ${{ secrets.VS_MARKETPLACE_TOKEN }} 28 | registryUrl: https://marketplace.visualstudio.com -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | dist 3 | node_modules 4 | .vscode-test/ 5 | *.vsix 6 | merge/** 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "isaac-api-autocomplete-lua"] 2 | path = isaac-api-autocomplete-lua 3 | url = https://github.com/filloax/isaac-api-autocomplete-lua 4 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "dbaeumer.vscode-eslint" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | { 6 | "version": "0.2.0", 7 | "configurations": [ 8 | { 9 | "name": "Run Extension", 10 | "type": "extensionHost", 11 | "request": "launch", 12 | "args": [ 13 | "--extensionDevelopmentPath=${workspaceFolder}" 14 | ], 15 | "outFiles": [ 16 | "${workspaceFolder}/out/**/*.js" 17 | ], 18 | "preLaunchTask": "${defaultBuildTask}" 19 | }, 20 | { 21 | "name": "Extension Tests", 22 | "type": "extensionHost", 23 | "request": "launch", 24 | "args": [ 25 | "--extensionDevelopmentPath=${workspaceFolder}", 26 | "--extensionTestsPath=${workspaceFolder}/out/test/suite/index" 27 | ], 28 | "outFiles": [ 29 | "${workspaceFolder}/out/test/**/*.js" 30 | ], 31 | "preLaunchTask": "${defaultBuildTask}" 32 | } 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "out": false // set this to true to hide the "out" folder with the compiled JS files 5 | }, 6 | "search.exclude": { 7 | "out": true // set this to false to include "out" folder in search results 8 | }, 9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts 10 | "typescript.tsc.autoDetect": "off", 11 | "Lua.diagnostics.globals": [], 12 | "files.associations": { 13 | "*.anm2": "xml" 14 | }, 15 | "Lua.runtime.unicodeName": true, 16 | "Lua.workspace.ignoreDir": [ 17 | ".vscode", 18 | "src/docs", 19 | // "repentanceapi.lua", 20 | ], 21 | "Lua.diagnostics.disable": [ 22 | "missing-return" 23 | ] 24 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // See https://go.microsoft.com/fwlink/?LinkId=733558 2 | // for the documentation about the tasks.json format 3 | { 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "type": "npm", 8 | "script": "watch", 9 | "problemMatcher": "$tsc-watch", 10 | "isBackground": true, 11 | "presentation": { 12 | "reveal": "never" 13 | }, 14 | "group": { 15 | "kind": "build", 16 | "isDefault": true 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | src/** 4 | node_modules/** 5 | .gitignore 6 | .yarnrc 7 | vsc-extension-quickstart.md 8 | **/tsconfig.json 9 | **/.eslintrc.json 10 | **/*.map 11 | **/*.ts 12 | **/*.psd 13 | readme/** 14 | 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Manticore Games, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/a1eefc81c4192dfefddf37d966b92216b596bbbb/icon.png -------------------------------------------------------------------------------- /icon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/a1eefc81c4192dfefddf37d966b92216b596bbbb/icon.psd -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "isaac-lua-api-vscode", 3 | "publisher": "Filloax", 4 | "displayName": "Binding of Isaac Lua API", 5 | "description": "Adds support and autocomplete for the The Binding of Isaac: Repentance modding API", 6 | "version": "1.12.1", 7 | "icon": "icon.png", 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/filloax/isaac-lua-api-vscode" 11 | }, 12 | "bugs": { 13 | "url": "https://github.com/filloax/isaac-lua-api-vscode/issues" 14 | }, 15 | "license": "MIT", 16 | "engines": { 17 | "vscode": "^1.67.0" 18 | }, 19 | "categories": [ 20 | "Linters" 21 | ], 22 | "keywords": [ 23 | "lua", 24 | "isaac", 25 | "repentance", 26 | "modding", 27 | "mod" 28 | ], 29 | "activationEvents": [ 30 | "workspaceContains:**/metadata.xml", 31 | "onLanguage:lua" 32 | ], 33 | "main": "./out/extension.js", 34 | "extensionDependencies": [ 35 | "sumneko.lua" 36 | ], 37 | "scripts": { 38 | "vscode:prepublish": "npm run esbuild-base -- --minify && npm run buildemmy", 39 | "copyemmy": "node scripts/copyemmy.js", 40 | "buildemmy": "python scripts/builddocfile.py && npm run copyemmy", 41 | "esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node", 42 | "esbuild": "npm run esbuild-base -- --sourcemap && npm run buildemmy", 43 | "esbuild-watch": "npm run esbuild-base -- --sourcemap --watch", 44 | "watch": "tsc -watch -p ./", 45 | "pretest": "npm run compile && npm run lint", 46 | "lint": "eslint src --ext ts", 47 | "test": "node ./out/test/runTest.js" 48 | }, 49 | "contributes": { 50 | "configuration": { 51 | "title": "The Binding of Isaac Lua API", 52 | "properties": { 53 | "boi-lua.workspaceSettings": { 54 | "type": "boolean", 55 | "default": true, 56 | "description": "Add some useful settings to the workspace settings.json (anm2 to XML association)." 57 | }, 58 | "boi-lua.repentogonEnabled": { 59 | "type": "boolean", 60 | "default": true, 61 | "description": "Enable Repentogon API support" 62 | } 63 | } 64 | }, 65 | "commands": [ 66 | { 67 | "command": "boi-lua.activate", 68 | "title": "Manually activate Isaac Lua autocompletion for this workspace" 69 | }, 70 | { 71 | "command": "boi-lua.deactivate", 72 | "title": "Manually deactivate Isaac Lua autocompletion for this workspace" 73 | } 74 | ] 75 | }, 76 | "devDependencies": { 77 | "@types/glob": "^7.2.0", 78 | "@types/mocha": "^9.1.1", 79 | "@types/node": "14.x", 80 | "@types/vscode": "^1.67.0", 81 | "@typescript-eslint/eslint-plugin": "^5.21.0", 82 | "@typescript-eslint/parser": "^5.21.0", 83 | "@vscode/test-electron": "^2.1.3", 84 | "esbuild": "^0.14.39", 85 | "eslint": "^8.14.0", 86 | "glob": "^8.0.1", 87 | "mocha": "^9.2.2", 88 | "typescript": "^4.6.4" 89 | }, 90 | "dependencies": { 91 | "golden-fleece": "^1.0.9", 92 | "isaac-lua-api-vscode": "file:" 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /readme/readme-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/a1eefc81c4192dfefddf37d966b92216b596bbbb/readme/readme-image.png -------------------------------------------------------------------------------- /readme/readme-image.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/a1eefc81c4192dfefddf37d966b92216b596bbbb/readme/readme-image.psd -------------------------------------------------------------------------------- /readme/screen2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/a1eefc81c4192dfefddf37d966b92216b596bbbb/readme/screen2.png -------------------------------------------------------------------------------- /readme/screen3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/a1eefc81c4192dfefddf37d966b92216b596bbbb/readme/screen3.png -------------------------------------------------------------------------------- /scripts/copyemmy.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | function copyFileSync( source, target ) { 5 | 6 | var targetFile = target; 7 | 8 | // If target is a directory, a new file with the same name will be created 9 | if ( fs.existsSync( target ) ) { 10 | if ( fs.lstatSync( target ).isDirectory() ) { 11 | targetFile = path.join( target, path.basename( source ) ); 12 | } 13 | } 14 | 15 | fs.writeFileSync(targetFile, fs.readFileSync(source)); 16 | } 17 | 18 | function copyFolderRecursiveSync( source, target ) { 19 | var files = []; 20 | 21 | // Check if folder needs to be created or integrated 22 | var targetFolder = path.join( target, path.basename( source ) ); 23 | if ( !fs.existsSync( targetFolder ) ) { 24 | fs.mkdirSync( targetFolder ); 25 | } 26 | 27 | // Copy 28 | if ( fs.lstatSync( source ).isDirectory() ) { 29 | files = fs.readdirSync( source ); 30 | files.forEach( function ( file ) { 31 | var curSource = path.join( source, file ); 32 | if ( fs.lstatSync( curSource ).isDirectory() ) { 33 | copyFolderRecursiveSync( curSource, targetFolder ); 34 | } else { 35 | copyFileSync( curSource, targetFolder ); 36 | } 37 | } ); 38 | } 39 | } 40 | 41 | copyFolderRecursiveSync(path.join("merge", "emmylua"), "out"); -------------------------------------------------------------------------------- /src/activationCheck.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { getState } from './persist'; 3 | 4 | function checkActivate(context: vscode.ExtensionContext, onActivate: (context: vscode.ExtensionContext) => void) { 5 | // Must be opened in a workspace 6 | if (!vscode.workspace.workspaceFolders) { 7 | return; 8 | } 9 | const state = getState(context); 10 | 11 | if (state.asked || state.enabled) { return; } 12 | 13 | checkIsModEnvironment().then(result => { 14 | if (result) { 15 | askActivation().then(answer => { 16 | console.log("Answered", answer); 17 | state.enabled = answer; 18 | if (answer) { 19 | console.log("User accepted, activating..."); 20 | onActivate(context); 21 | vscode.window.showInformationMessage("Isaac Lua VSCode activated! (You won't need to do this again in this workspace)"); 22 | }; 23 | state.asked = true; 24 | }); 25 | } 26 | }); 27 | } 28 | 29 | async function askActivation() { 30 | const yesItem = { title: 'Yes' }; 31 | const noItem = { title: 'No' }; 32 | const out = await vscode.window.showInformationMessage( 33 | 'Detected files matching an Isaac mod project (metadata.xml and lua files), do you want to activate isaac-vscode-lua?\nYou can do this later with the ', 34 | yesItem, noItem 35 | ); 36 | return out === yesItem; 37 | } 38 | 39 | async function checkIsModEnvironment() { 40 | return (await vscode.workspace.findFiles('**/metadata.xml')).length > 0 41 | && (await vscode.workspace.findFiles('**.lua')).length > 0; 42 | } 43 | 44 | export { checkActivate }; -------------------------------------------------------------------------------- /src/config.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { Constants } from './constants'; 3 | 4 | interface Config { 5 | get workspaceSettings(): boolean; 6 | get repentogonEnabled(): boolean; 7 | } 8 | 9 | class ConfigImpl implements Config { 10 | private _config: vscode.WorkspaceConfiguration; 11 | 12 | constructor() { 13 | this._config = vscode.workspace.getConfiguration(Constants.EXT_ID); 14 | } 15 | 16 | get workspaceSettings(): boolean { 17 | return this._config.get("workspaceSettings") !== undefined; 18 | } 19 | get repentogonEnabled(): boolean { 20 | return this._config.get("repentogonEnabled") === true; 21 | } 22 | } 23 | 24 | export function getConfig() { return new ConfigImpl(); } -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- 1 | export class Constants { 2 | static readonly EXT_ID: string = "boi-lua"; 3 | } -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/Color.lua: -------------------------------------------------------------------------------- 1 | 2 | ---@param R number 3 | ---@param G number 4 | ---@param B number 5 | ---@param A? number @default: `1` 6 | ---@param RO? number @default: `0` 7 | ---@param GO? number @default: `0` 8 | ---@param BO? number @default: `0` 9 | ---@return Color 10 | function _G.Color(R, G, B, A, RO, GO, BO) 11 | end 12 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/EntityRef.lua: -------------------------------------------------------------------------------- 1 | ---@param Entity? Entity 2 | ---@return EntityRef 3 | function EntityRef(Entity) 4 | end -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/EntityTear.lua: -------------------------------------------------------------------------------- 1 | function EntityTear:ResetSpriteScale() 2 | end 3 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/Game.lua: -------------------------------------------------------------------------------- 1 | ---@param SameStage boolean 2 | ---@param Animation integer @StageTransition::Animation 3 | ---@param Player EntityPlayer 4 | function Game:StartStageTransition(SameStage, Animation, Player) 5 | end 6 | 7 | 8 | ---@return userdata @ItemOverlay 9 | function Game:GetItemOverlay() 10 | end 11 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/ItemPool.lua: -------------------------------------------------------------------------------- 1 | ---@param PoolType ItemPoolType 2 | ---@param Decrease? boolean @default: `false` 3 | ---@param Seed? integer @default: `Random()` 4 | ---@param DefaultItem? CollectibleType @default: `CollectibleType.COLLECTIBLE_NULL` 5 | ---@return CollectibleType 6 | function ItemPool:GetCollectible(PoolType, Decrease, Seed, DefaultItem) 7 | end -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/ProjectileParams.lua: -------------------------------------------------------------------------------- 1 | ---@class ProjectileParams 2 | ---@field Acceleration number 3 | ---@field BulletFlags integer 4 | ---@field ChangeFlags integer 5 | ---@field ChangeTimeout integer 6 | ---@field ChangeVelocity number 7 | ---@field CircleAngle number 8 | ---@field Color Color 9 | ---@field CurvingStrength number 10 | ---@field Damage number **Warning:** Enemies that are champions will cap the damage at 2. 11 | ---@field DepthOffset number 12 | ---@field DotProductLimit number 13 | ---@field FallingAccelModifier number 14 | ---@field FallingSpeedModifier number 15 | ---@field FireDirectionLimit Vector 16 | ---@field GridCollision boolean 17 | ---@field HeightModifier number 18 | ---@field HomingStrength number 19 | ---@field PositionOffset Vector 20 | ---@field Scale number 21 | ---@field Spread number 22 | ---@field TargetPosition Vector 23 | ---@field Variant integer 24 | ---@field VelocityMulti number 25 | ---@field WiggleFrameOffset integer 26 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/RNG.lua: -------------------------------------------------------------------------------- 1 | ---@return RNG 2 | function _G.RNG() 3 | end 4 | 5 | ---Returns an integer between `0` (inclusive) and the max value (exclusive). 6 | --- 7 | ---Note that this will automatically call the `RNG.Next` method before retrieving the random number. Since this mutates the RNG object, you should use this method with care. 8 | ---@param Max integer 9 | ---@return integer 10 | function RNG:RandomInt(Max) 11 | end 12 | 13 | ---@param Seed integer 14 | ---@param ShiftIdx integer 15 | function RNG:SetSeed(Seed, ShiftIdx) 16 | end 17 | 18 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/Room.lua: -------------------------------------------------------------------------------- 1 | 2 | ---@class LinecheckMode : integer 3 | 4 | ---GridPath values pseudo-enumeration: 5 | --- 6 | ---`900` : Set by some enemies when they pass through a tile. De-prioritises the tile for pathfinders. Degrades over time in steps of 100. 7 | --- 8 | ---`950` : Set by fire places. De-prioritises the tile for pathfinders. Does not degrade. 9 | --- 10 | ---`1000` : Set by grid entities. Invalidates the tile for pathfinders. Impedes grounded player movement. Does not degrade. 11 | --- 12 | ---`3000` : Set by pits. Invalidates the tile for pathfinders. Impedes grounded player movement. Does not degrade. 13 | --- 14 | ---`3999` : Set by grimaces. Invalidates the tile for pathfinders. Impedes grounded player movement. Drops to 900 and then degrades over time in steps of 100 (Grimaces reset value every frame). 15 | ---@param Pos1 Vector 16 | ---@param Pos2 Vector 17 | ---@param Mode LinecheckMode 18 | ---@param GridPathThreshold? integer @default: `0`. See `GetGridPath` for GridPath values pseudo-enumeration. 19 | ---@param IgnoreWalls? boolean @default: `false` 20 | ---@param IgnoreCrushable? boolean @default: `false` 21 | ---@return boolean, Vector 22 | function Room:CheckLine(Pos1, Pos2, Mode, GridPathThreshold, IgnoreWalls, IgnoreCrushable) 23 | end 24 | 25 | ---@param GridIndex integer 26 | ---@param Type GridEntityType 27 | ---@param Variant integer 28 | ---@param Seed integer 29 | ---@param VarData integer 30 | ---@return boolean 31 | function Room:SpawnGridEntity(GridIndex, Type, Variant, Seed, VarData) 32 | end 33 | 34 | ---@return boolean 35 | function Room:TrySpawnSpecialQuestDoor() 36 | end 37 | 38 | ---@return userdata @LRoomAreaDesc 39 | function Room:GetLRoomAreaDesc() 40 | end 41 | 42 | ---@return userdata @LRoomTileDesc 43 | function Room:GetLRoomTileDesc() 44 | end -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/RoomConfigRoom.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfigRoom 2 | ---@field Difficulty Difficulty @const 3 | ---@field Doors integer @const 4 | ---@field Height integer @const 5 | ---@field InitialWeight number @const 6 | ---@field Name string @const 7 | ---@field Shape RoomShape @const 8 | ---@field OriginalVariant integer @const | Not officially documented but functional 9 | ---@field SpawnCount integer @const 10 | ---@field Spawns CppList_RoomConfigSpawn @const 11 | ---@field StageID integer @const 12 | ---@field Subtype integer @const 13 | ---@field Type RoomType @const 14 | ---@field Variant integer @const 15 | ---@field Weight number @const 16 | ---@field Width integer @const 17 | local RoomConfigRoom = {} 18 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/RoomDescriptor.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomDescriptor 2 | ---@field AllowedDoors userdata @DoorSet 3 | local RoomDescriptor_NoRGON = {} 4 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/Sprite.lua: -------------------------------------------------------------------------------- 1 | 2 | ---@return Sprite 3 | function _G.Sprite() 4 | end 5 | 6 | ---@param LayerId integer 7 | ---@param PngFilename string 8 | function Sprite:ReplaceSpritesheet(LayerId, PngFilename) 9 | end 10 | 11 | ---@param AnimationName string 12 | ---@param FrameNum integer 13 | function Sprite:SetOverlayFrame(AnimationName, FrameNum) 14 | end 15 | 16 | 17 | function Sprite:Stop() 18 | end 19 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/entity/EntityNPC.lua: -------------------------------------------------------------------------------- 1 | ---@param NumProjectiles integer 2 | ---@param TargetPos Vector 3 | ---@param TrajectoryModifier number 4 | ---@param Params ProjectileParams 5 | ---@return EntityProjectile 6 | function EntityNPC:FireBossProjectiles(NumProjectiles, TargetPos, TrajectoryModifier, Params) 7 | end 8 | 9 | ---@param Pos Vector 10 | ---@param Velocity Vector 11 | ---@param Mode integer @ProjectilesMode 12 | ---@param Params ProjectileParams 13 | function EntityNPC:FireProjectiles(Pos, Velocity, Mode, Params) 14 | end 15 | 16 | ---@param ID SoundEffect 17 | ---@param Volume number 18 | ---@param FrameDelay integer 19 | ---@param Loop boolean 20 | ---@param Pitch number 21 | function EntityNPC:PlaySound(ID, Volume, FrameDelay, Loop, Pitch) 22 | end 23 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/entity/EntityPickup.lua: -------------------------------------------------------------------------------- 1 | 2 | ---@return boolean 3 | function EntityPickup:CanReroll() 4 | end 5 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/entity/EntityPlayer.lua: -------------------------------------------------------------------------------- 1 | ---@param CacheFlag CacheFlag 2 | function EntityPlayer:AddCacheFlags(CacheFlag) 3 | end 4 | 5 | ---@param FamiliarVariant integer 6 | ---@param TargetCount integer 7 | ---@param rng RNG 8 | ---@param SourceItemConfigItem? ItemConfigItem @default: `nil` 9 | ---@param FamiliarSubType? integer @default: `-1` 10 | function EntityPlayer:CheckFamiliar(FamiliarVariant, TargetCount, rng, SourceItemConfigItem, FamiliarSubType) 11 | end 12 | 13 | function EntityPlayer:ClearDeadEyeCharge() 14 | end 15 | 16 | ---@param WeaponType? WeaponType @default: `WeaponType.WEAPON_TEARS` 17 | ---@return userdata @MultiShotParams 18 | function EntityPlayer:GetMultiShotParams(WeaponType) 19 | end 20 | 21 | ---@param SlotId integer 22 | ---@return userdata @PocketItem 23 | function EntityPlayer:GetPocketItem(SlotId) 24 | end 25 | 26 | ---@param LoopIndex integer 27 | ---@param Weapon WeaponType 28 | ---@param ShotDirection Vector 29 | ---@param ShotSpeed number 30 | ---@param params userdata @MultiShotParams 31 | ---@return PosVel 32 | function EntityPlayer:GetMultiShotPositionVelocity(LoopIndex, Weapon, ShotDirection, ShotSpeed, params) 33 | end 34 | 35 | ---@param Type CollectibleType 36 | ---@param IgnoreModifiers? boolean @default: `false` 37 | ---@return boolean 38 | function EntityPlayer:HasCollectible(Type, IgnoreModifiers) 39 | end 40 | 41 | ---@param Type CollectibleType 42 | ---@param OnlyCountTrueItems? boolean @default: `false` 43 | ---@return integer 44 | function EntityPlayer:GetCollectibleNum(Type, OnlyCountTrueItems) 45 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/CcpContainer.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfigSet : CppList 2 | local RoomConfigSet = {} 3 | 4 | ---@param idx integer 5 | ---@return RoomConfigRoom 6 | function RoomConfigSet:Get(idx) 7 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/EntityRef.lua: -------------------------------------------------------------------------------- 1 | ---@param Entity Entity? 2 | ---@return EntityRef 3 | function EntityRef(Entity) 4 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/Input.lua: -------------------------------------------------------------------------------- 1 | ---@param idx integer 2 | ---@return string 3 | function Input.GetDeviceNameByIdx(idx) 4 | end 5 | 6 | ---@return Vector 7 | function Input.GetMouseWheel() 8 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/MusicManager.lua: -------------------------------------------------------------------------------- 1 | function MusicManager:GetCurrentPitch() 2 | end 3 | 4 | ---Plays a jingle. 5 | ---@param musicId Music 6 | ---@param duration integer 7 | function MusicManager:PlayJingle(musicId, duration) 8 | end 9 | 10 | ---@param pitch number 11 | function MusicManager:SetCurrentPitch(pitch) 12 | end 13 | 14 | ---Stops the currently playing jingle. 15 | function MusicManager:StopJingle() 16 | end 17 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/Options.lua: -------------------------------------------------------------------------------- 1 | ---@type boolean 2 | Options.BetterVoidGeneration = nil 3 | ---@type boolean 4 | Options.HushPanicStateFix = nil 5 | ---@type boolean 6 | Options.KeyMasterDealChance = nil 7 | ---@type boolean 8 | Options.PreventModUpdates = nil 9 | ---@type boolean 10 | Options.QuickRoomClear = nil 11 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/ProjectileParams.lua: -------------------------------------------------------------------------------- 1 | ---@class ProjectileParams 2 | ---@field Acceleration number 3 | ---@field BulletFlags integer 4 | ---@field ChangeFlags integer 5 | ---@field ChangeTimeout integer 6 | ---@field ChangeVelocity number 7 | ---@field CircleAngle number 8 | ---@field Color Color 9 | ---@field CurvingStrength number 10 | ---@field Damage number **WARNING:** Enemies that are champions will cap the damage at `2.0`. 11 | ---@field DepthOffset number 12 | ---@field DotProductLimit number 13 | ---@field FallingAccelModifier number 14 | ---@field FallingSpeedModifier number 15 | ---@field FireDirectionLimit Vector 16 | ---@field GridCollision boolean 17 | ---@field HeightModifier number 18 | ---@field HomingStrength number 19 | ---@field PositionOffset Vector 20 | ---@field Scale number 21 | ---@field Spread number 22 | ---@field TargetPosition Vector 23 | ---@field Variant integer 24 | ---@field VelocityMulti number 25 | ---@field WiggleFrameOffset integer -------------------------------------------------------------------------------- /src/docs/repentogon_changes/RNG.lua: -------------------------------------------------------------------------------- 1 | ---@param Seed? integer @default: `2853650767` 2 | ---@param ShiftIdx? integer @default: `35` 3 | ---@return RNG 4 | function _G.RNG(Seed, ShiftIdx) 5 | end 6 | 7 | ---@overload fun(self: RNG, Min: integer, Max: integer): integer 8 | ---@return integer 9 | function RNG:RandomInt(Max) 10 | end 11 | 12 | ---@param Seed integer 13 | ---@param ShiftIdx? integer 14 | function RNG:SetSeed(Seed, ShiftIdx) 15 | end 16 | 17 | ---Returns a float between `0` (inclusive) and `1` (exclusive). 18 | --- 19 | ---This does not advance the internal state of the RNG object. 20 | ---@return number 21 | function RNG:PhantomFloat() 22 | end 23 | 24 | ---Returns an integer between `0` (inclusive) and the max value (exclusive). 25 | --- 26 | ---This does not advance the internal state of the RNG object. 27 | ---@param max integer 28 | ---@return integer 29 | function RNG:PhantomInt(max) 30 | end 31 | 32 | ---Returns a random vector with length `1`. 33 | --- 34 | ---This does not advance the internal state of the RNG object. 35 | ---@return Vector 36 | function RNG:PhantomVector() 37 | end 38 | 39 | ---Returns a random vector with length `1`. 40 | ---@return Vector 41 | function RNG:RandomVector() 42 | end 43 | 44 | ---Returns the shift index used by the RNG object. By default, vanilla RNG objects use `35`. 45 | ---@return integer 46 | function RNG:GetShiftIdx() 47 | end 48 | 49 | ---Similar to `:Next()`, except it does not affect the internal state of the RNG object and serves to only return its seed if it did. 50 | ---@return integer 51 | function RNG:PhantomNext() 52 | end 53 | 54 | ---"Iterates" the RNG's seed to the previous random number in the psuedo-random sequence. (The internal PRNG algorithm used is Xorshift.) 55 | ---@return integer --Integer returned is the new seed of the RNG object. 56 | function RNG:Previous() 57 | end 58 | 59 | ---Similar to `:Previous()`, except it does not affect the internal state of the RNG object and serves to only return its seed if it did. 60 | ---@return integer 61 | function RNG:PhantomPrevious() 62 | end 63 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/RoomConfigRoom.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfigRoom 2 | ---@field Difficulty Difficulty @const 3 | ---@field Doors integer @const 4 | ---@field Height integer @const 5 | ---@field InitialWeight number @const 6 | ---@field Mode integer @const 7 | ---@field Name string @const 8 | ---@field Shape RoomShape @const 9 | ---@field OriginalVariant integer @const | Not officially documented but functional 10 | ---@field SpawnCount integer @const 11 | ---@field Spawns CppList_RoomConfigSpawn @const 12 | ---@field StageID integer @const 13 | ---@field Subtype integer @const 14 | ---@field Type RoomType @const 15 | ---@field Variant integer @const 16 | ---@field Weight number @const 17 | ---@field Width integer @const 18 | local RoomConfigRoom = {} 19 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/RoomDescriptor.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomDescriptorDoors 2 | 3 | ---@class RoomDescriptor 4 | ---Allows you to check which level grid index each DoorSlot in the room connects to. 5 | --- 6 | ---For example, roomdesc.Doors[DoorSlot.UP0] provides the level grid index that the upwards door would connect to. 7 | --- 8 | ---The value will be -1 if the RoomShape does not allow a door in that slot. 9 | --- 10 | ---Note that this typically provides a valid index even if there is no door present, and even if the room itself does not allow a door in that slot. 11 | ---@field Doors {[DoorSlot]: RoomDescriptorDoors} 12 | ---Returns a bitmask corresponding to which door slots are currently enabled. 13 | --- 14 | ---Doors are typically only included in this bitmask when there is a door currently present, even if the room would allow a door in that slot. 15 | ---@field AllowedDoors integer 16 | ---@field BossDeathSeed integer 17 | local RoomDescriptor_RGON = {} 18 | 19 | -- Note: in current emmylua, defining class twice to add fields to it is valid, as done above 20 | 21 | ---@param gridIndex integer 22 | function RoomDescriptor_RGON:AddRestrictedGridIndex(gridIndex) end 23 | 24 | ---@return EntitiesSaveStateVector 25 | function RoomDescriptor_RGON:GetGridEntitiesSaveState(gridIndex) end 26 | 27 | ---@return EntitiesSaveStateVector 28 | function RoomDescriptor_RGON:GetEntitiesSaveState() end 29 | 30 | ---@return integer[] 31 | function RoomDescriptor_RGON:GetRestrictedGridIndexes() end 32 | 33 | ---@param rng RNG 34 | function RoomDescriptor_RGON:InitSeeds(rng) 35 | end 36 | 37 | ---@return Dimension 38 | function RoomDescriptor_RGON:GetDimension() 39 | end 40 | 41 | ---@return {[DoorSlot]: RoomDescriptor} 42 | function RoomDescriptor_RGON:GetNeighboringRooms() 43 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityBomb.lua: -------------------------------------------------------------------------------- 1 | ---@param layerID BombCostumeLayer 2 | ---@return Sprite 3 | function EntityBomb:GetCostumeLayerSprite(layerID) 4 | end 5 | 6 | ---@return integer 7 | function EntityBomb:GetExplosionCountdown() 8 | end 9 | 10 | ---@return number 11 | function EntityBomb:GetFallingSpeed() 12 | end 13 | 14 | ---@return number 15 | function EntityBomb:GetHeight() 16 | end 17 | 18 | ---@return integer[] 19 | function EntityBomb:GetHitList() 20 | end 21 | 22 | ---@return number 23 | function EntityBomb:GetScale() 24 | end 25 | 26 | ---@return boolean 27 | function EntityBomb:IsLoadingCostumes() 28 | end 29 | 30 | ---@param speed number 31 | function EntityBomb:SetFallingSpeed(speed) 32 | end 33 | 34 | ---@param height number 35 | function EntityBomb:SetHeight(height) 36 | end 37 | 38 | ---@param load? boolean @default: `true` 39 | function EntityBomb:SetLoadCostumes(load) 40 | end 41 | 42 | ---@param scale number 43 | function EntityBomb:SetScale(scale) 44 | end 45 | 46 | function EntityBomb:UpdateDirtColor() 47 | end 48 | 49 | ---Target angle for rocket bombs. It influences both their movement and the orientation of their sprite. 50 | ---@return number 51 | function EntityBomb:GetRocketAngle() 52 | end 53 | 54 | ---Target angle for rocket bombs. It influences both their movement and the orientation of their sprite. 55 | ---@param angle number 56 | function EntityBomb:SetRocketAngle(angle) 57 | end 58 | 59 | ---Target speed for rocket bombs. Naturally increases by 1 every frame. 60 | ---@return number 61 | function EntityBomb:GetRocketSpeed() 62 | end 63 | 64 | ---Target speed for rocket bombs. Naturally increases by 1 every frame. 65 | ---@param speed number 66 | function EntityBomb:SetRocketSpeed(speed) 67 | end 68 | 69 | ---Returns if the bomb was created through the Angelic Prism effect. 70 | ---@return boolean 71 | function EntityBomb:IsPrismTouched() 72 | end 73 | 74 | ---Sets if the bomb was created through the Angelic Prism effect. 75 | ---@param IsTouched boolean 76 | function EntityBomb:SetPrismTouched(IsTouched) 77 | end 78 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityEffect.lua: -------------------------------------------------------------------------------- 1 | ---@param position Vector 2 | ---@param scale number default: RandomFloat[`0.0`-`0.1`] 3 | ---@param lifespan? integer @default: `1` 4 | ---@param state? integer @default: `6` 5 | ---@param color? Color @default: `Color.Default` 6 | ---@return EntityEffect 7 | function EntityEffect.CreateLight(position, scale, lifespan, state, color) 8 | end 9 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityFamiliar.lua: -------------------------------------------------------------------------------- 1 | 2 | ---@return boolean 3 | function EntityFamiliar:CanBeDamagedByEnemies() 4 | end 5 | 6 | ---@return boolean 7 | function EntityFamiliar:CanBeDamagedByLasers() 8 | end 9 | 10 | ---@return boolean 11 | function EntityFamiliar:CanBeDamagedByProjectiles() 12 | end 13 | 14 | ---@return boolean 15 | function EntityFamiliar:CanBlockProjectiles() 16 | end 17 | 18 | ---@return boolean 19 | function EntityFamiliar:CanCharm() 20 | end 21 | 22 | ---@return Color 23 | function EntityFamiliar:GetDirtColor() 24 | end 25 | 26 | ---@return FollowerPriority 27 | function EntityFamiliar:GetFollowerPriority() 28 | end 29 | 30 | ---@return ItemConfigItem 31 | function EntityFamiliar:GetItemConfig() 32 | end 33 | 34 | ---Returns the amount in frames that the familiar's movements are delayed from the player's. 30 frames = 1 second. 35 | function EntityFamiliar:GetMoveDelayNum() 36 | end 37 | 38 | ---@return number 39 | function EntityFamiliar:GetMultiplier() 40 | end 41 | 42 | ---@return PathFinder 43 | function EntityFamiliar:GetPathFinder() 44 | end 45 | 46 | ---Returns `nil` for familiars that don't mimic the player's attacks 47 | ---(Incubus, etc). 48 | ---@return Weapon? 49 | function EntityFamiliar:GetWeapon() 50 | end 51 | 52 | ---Makes it so that the next time GetMultiplier is called (which doesn't exist yet), `MC_EVALUATE_FAMILIAR_MULTIPLIER` is triggered to recalculate/allow modifying the multiplier. 53 | function EntityFamiliar:InvalidateCachedMultiplier() 54 | end 55 | 56 | ---@return boolean 57 | function EntityFamiliar:IsCharmed() 58 | end 59 | 60 | function EntityFamiliar:RemoveFromPlayer() 61 | end 62 | 63 | ---Sets the amount in frames that the familiar's movements are delayed from the player's. 30 frames = 1 second. 64 | ---@param delay integer 65 | function EntityFamiliar:SetMoveDelayNum(delay) 66 | end 67 | 68 | ---Triggers effects on the familiar as if a room was cleared and incrementing `.RoomClearCount` (i.e. Sack of pennies dropping a coin). 69 | function EntityFamiliar:TriggerRoomClear() 70 | end 71 | 72 | ---@param aimDirection Vector 73 | ---@param direction Direction 74 | ---@return Vector? 75 | function EntityFamiliar:TryAimAtMarkedTarget(aimDirection, direction) 76 | end 77 | 78 | function EntityFamiliar:UpdateDirtColor() 79 | end 80 | 81 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityKnife.lua: -------------------------------------------------------------------------------- 1 | ---@return integer[] 2 | function EntityKnife:GetHitList() 3 | end 4 | 5 | ---Returns `true` if the knife is being swung. 6 | ---@return boolean 7 | function EntityKnife:GetIsSwinging() 8 | end 9 | 10 | ---Sets if the knife is being swung 11 | ---@param bool boolean 12 | function EntityKnife:SetIsSwinging(bool) 13 | end 14 | 15 | ---Returns `true` if the using the Spirit Sword spin attack. 16 | ---@return boolean 17 | function EntityKnife:GetIsSpinAttack() 18 | end 19 | 20 | ---Sets if the Spirit Sword is doing its spin attack. 21 | ---@param bool boolean 22 | function EntityKnife:SetIsSpinAttack(bool) 23 | end 24 | 25 | ---Returns if the knife was created through the Multi Dimensional Baby effect. 26 | ---@return boolean 27 | function EntityKnife:IsMultidimensionalTouched() 28 | end 29 | 30 | ---Returns if the knife was created through the Angelic Prism effect. 31 | ---@return boolean 32 | function EntityKnife:IsPrismTouched() 33 | end 34 | 35 | ---Sets if the knife was created through the Multi Dimensional Baby effect. 36 | ---@param IsTouched boolean 37 | function EntityKnife:SetMultidimensionalTouched(IsTouched) 38 | end 39 | 40 | ---Sets if the knife was created through the Angelic Prism effect. 41 | ---@param IsTouched boolean 42 | function EntityKnife:SetPrismTouched(IsTouched) 43 | end 44 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityLaser.lua: -------------------------------------------------------------------------------- 1 | ---@return boolean 2 | function EntityLaser:GetDisableFollowParent() 3 | end 4 | 5 | ---@return integer[] 6 | function EntityLaser:GetHitList() 7 | end 8 | 9 | ---@return boolean 10 | function EntityLaser:GetOneHit() 11 | end 12 | 13 | ---@return number 14 | function EntityLaser:GetScale() 15 | end 16 | 17 | ---@return boolean 18 | function EntityLaser:GetShrink() 19 | end 20 | 21 | ---@return integer 22 | function EntityLaser:GetTimeout() 23 | end 24 | 25 | function EntityLaser:ResetSpriteScale() 26 | end 27 | 28 | ---@param angle number 29 | ---@param speed? number @default: `8` 30 | function EntityLaser:RotateToAngle(angle, speed) 31 | end 32 | 33 | ---@param isDisabled boolean 34 | function EntityLaser:SetDisableFollowParent(isDisabled) 35 | end 36 | 37 | ---@param scale number 38 | function EntityLaser:SetScale(scale) 39 | end 40 | 41 | ---@param isShrink boolean 42 | function EntityLaser:SetShrink(isShrink) 43 | end 44 | 45 | ---@return number 46 | function EntityLaser:GetDamageMultiplier() 47 | end 48 | 49 | ---@param damageMult number 50 | function EntityLaser:SetDamageMultiplier(damageMult) 51 | end 52 | 53 | ---Requests the laser's shape to be fully recalculated next time it updates. Can be used to force the laser to instantly change its MaxDistance/Radius instead of transitioning to it. No effect for OneHit or non-sample lasers. 54 | function EntityLaser:RecalculateSamplesNextUpdate() 55 | end 56 | 57 | ---Sets if the laser was created through the Multi Dimensional Baby effect. 58 | ---@return boolean 59 | function EntityLaser:IsMultidimensionalTouched() 60 | end 61 | 62 | ---Returns if the laser was created through the Angelic Prism effect. 63 | ---@return boolean 64 | function EntityLaser:IsPrismTouched() 65 | end 66 | 67 | ---Returns if the laser was created through the Angelic Prism effect. 68 | ---@return boolean 69 | function EntityLaser:SetPrismTouched() 70 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityProjectile.lua: -------------------------------------------------------------------------------- 1 | ---Deflects the projectile. 2 | ---@param velocity Vector 3 | function EntityProjectile:Deflect(velocity) 4 | end 5 | 6 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityTear.lua: -------------------------------------------------------------------------------- 1 | ---Returns the intensity value of the tear as a result of the Dead Eye collectible. It is between 0 and 1. 2 | ---@return number 3 | function EntityTear:GetDeadEyeIntensity() 4 | end 5 | 6 | ---Copies the tear and applies a black and white effect to it. This effect is the same one used by the Multidimensional Baby familiar. 7 | ---@return EntityTear newTear The newly created tear. 8 | function EntityTear:MakeMultidimensionalCopy() 9 | end 10 | 11 | ---Returns the tear halo sprite used by Godhead tears. 12 | ---@return Sprite 13 | function EntityTear:GetTearHaloSprite() 14 | end 15 | 16 | ---Returns the tear effect sprite used by tear variants like Fire Mind and Mysterious Liquid. 17 | ---@return Sprite 18 | function EntityTear:GetTearEffectSprite() 19 | end 20 | 21 | ---Returns the red aura sprite used by Dead Eye. 22 | ---@return Sprite 23 | function EntityTear:GetDeadEyeSprite() 24 | end 25 | 26 | ---@param force? boolean @default: `false`. If set to `true`, forces the tear to re-evaluate which scale animation it should be playing. 27 | function EntityTear:ResetSpriteScale(force) 28 | end 29 | 30 | ---Returns if the tear was created through the Multi Dimensional Baby effect. 31 | ---@return boolean 32 | function EntityTear:IsMultidimensionalTouched() 33 | end 34 | 35 | ---Returns if the tear was created through the Angelic Prism effect. 36 | ---@return boolean 37 | function EntityTear:IsPrismTouched() 38 | end 39 | 40 | ---Sets if the tear was created through the Multi Dimensional Baby effect. 41 | ---@param IsTouched boolean 42 | function EntityTear:SetMultidimensionalTouched(IsTouched) 43 | end 44 | 45 | ---Sets if the tear was created through the Angelic Prism effect. 46 | ---@param IsTouched boolean 47 | function EntityTear:SetPrismTouched(IsTouched) 48 | end 49 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/gridentity/GridEntityDoor.lua: -------------------------------------------------------------------------------- 1 | ---Returns the door's ExtraSprite. 2 | ---@return Sprite 3 | function GridEntityDoor:GetExtraSprite() 4 | end 5 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/gridentity/GridEntityRock.lua: -------------------------------------------------------------------------------- 1 | ---Returns the rock's altrock type. 2 | ---@param backdrop? BackdropType @default: `BackdropType.BACKDROP_NULL`. 3 | ---@return integer 4 | function GridEntityRock:GetAltRockType(backdrop) 5 | end 6 | 7 | ---TODO: Document me! 8 | ---@param gridType GridEntityType 9 | ---@param backdrop? BackdropType @default: `BackdropType.BACKDROP_NULL`. 10 | function GridEntityRock:PlayBreakSound(gridType, backdrop) 11 | end 12 | 13 | ---TODO: Document me! 14 | ---@param gridType GridEntityType 15 | function GridEntityRock:RegisterRockDestroyed(gridType) 16 | end 17 | 18 | ---TODO: Document me! 19 | ---@param offset Vector 20 | function GridEntityRock:RenderTop(offset) 21 | end 22 | 23 | ---TODO: Document me! 24 | ---@param gridType GridEntityType 25 | ---@param gridVariant integer 26 | ---@param seed integer 27 | ---@param unknown boolean TODO: Document me! 28 | ---@param backdrop? BackdropType @default: `BackdropType.BACKDROP_NULL`. 29 | function GridEntityRock:SpawnDrops(gridType, gridVariant, seed, unknown, backdrop) 30 | end 31 | 32 | ---TODO: Document me! 33 | function GridEntityRock:TrySpawnLadder() 34 | end 35 | 36 | ---TODO: Document me! 37 | function GridEntityRock:TrySpawnWorms() 38 | end 39 | 40 | ---Updates the rock's collision. 41 | function GridEntityRock:UpdateCollision() 42 | end 43 | 44 | ---Updates the rock's neighbors. 45 | function GridEntityRock:UpdateNeighbors() 46 | end 47 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/itemconfig/ItemConfig.lua: -------------------------------------------------------------------------------- 1 | ---Returns true if the collectible can be rerolled. 2 | ---@param collectible CollectibleType 3 | ---@return boolean 4 | function ItemConfig_Class:CanRerollCollectible(collectible) 5 | end 6 | 7 | ---Returns a table of ItemConfigItem objects with the provided tag. 8 | ---@param tag integer @Uses `ItemConfig.TAG_` enumeration 9 | ---@return ItemConfigItem[] 10 | function ItemConfig_Class:GetTaggedItems(tag) 11 | end 12 | 13 | ---Returns true if the trinket is valid. 14 | ---@param trinketType TrinketType 15 | ---@return boolean 16 | function ItemConfig_Class:IsValidTrinket(trinketType) 17 | end 18 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/itemconfig/ItemConfigCard.lua: -------------------------------------------------------------------------------- 1 | ---@class ItemConfigClass 2 | ---@field ModdedCardFront Sprite 3 | ---@field Hidden boolean 4 | ---@field InitialWeight number 5 | ---@field Weight number @Can be modified 6 | 7 | ---@return function 8 | function ItemConfigCard:GetAvailabilityCondition() 9 | end 10 | 11 | ---@param func function 12 | function ItemConfigCard:SetAvailabilityCondition(func) 13 | end 14 | 15 | function ItemConfigCard:ClearAvailabilityCondition() 16 | end 17 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/itemconfig/ItemConfigItem.lua: -------------------------------------------------------------------------------- 1 | ---Returns `true` if the `ItemConfigItem` has the provided `tagName` as a custom tag, 2 | ---@param tagName string 3 | ---@return boolean 4 | function ItemConfigItem:HasCustomTag(tagName) 5 | end 6 | 7 | ---Returns a table of strings containing the `ItemConfigItem`'s custom tags, 8 | ---@return string[] 9 | function ItemConfigItem:GetCustomTags() 10 | end 11 | 12 | ---Returns `true` if the `ItemConfigItem` has the provided `tagName` as a custom cache tag, 13 | ---@param tagName string 14 | ---@return boolean 15 | function ItemConfigItem:HasCustomCacheTag(tagName) 16 | end 17 | 18 | ---Returns a table of strings containing the `ItemConfigItem`'s custom cache tags, 19 | ---@return string[] 20 | function ItemConfigItem:GetCustomCacheTags() 21 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/Ambush.lua: -------------------------------------------------------------------------------- 1 | ---@class Ambush 2 | _G.Ambush = {} 3 | 4 | ---@return integer 5 | function Ambush.GetCurrentWave() end 6 | 7 | ---Returns the maximum amount of boss rush waves. 8 | ---@return integer numWaves By default, the maximum amount of boss rush waves are `15`. It's important to note that mods can modify the maximum amount of boss rush waves. 9 | function Ambush.GetMaxBossrushWaves() end 10 | 11 | ---Returns the maximum amount of challenge room waves. 12 | ---@return integer numWaves By default, the maximum amount of challenge room waves are `3`. It's important to note that mods can modify the maximum amount of challenge room waves. 13 | function Ambush.GetMaxChallengeWaves() end 14 | 15 | ---@return RoomConfigRoom 16 | function Ambush.GetNextWave() end 17 | 18 | ---@return RoomConfigRoom[] 19 | function Ambush.GetNextWaves() end 20 | 21 | ---Sets the maximum amount of boss rush waves. This caps out at `25`. 22 | ---@param waves integer 23 | function Ambush.SetMaxBossrushWaves(waves) end 24 | 25 | ---**BUG:** Currently, the value returned from this function is not reset on game restart. 26 | ---@param waves integer 27 | function Ambush.SetMaxChallengeWaves(waves) end 28 | 29 | ---**BUG:** Calling this function will do nothing unless a boss rush has been triggered at least once during the current game session. 30 | function Ambush.SpawnBossrushWave() end 31 | 32 | ---**BUG:** Calling this function crashes the game if the current game mode is Greed or Greedier. 33 | --- 34 | ---The game also crashes if the current floor is Blue Womb. 35 | function Ambush.SpawnWave() end 36 | 37 | ---**BUG:** Calling this function outside of the boss rush room or a challenge room will do nothing except permanently close the doors, resulting in a softlock. 38 | function Ambush.StartChallenge() end 39 | 40 | ---Gets the number of waves in a boss challenge room 41 | ---@return integer 42 | function Ambush.GetMaxBossChallengeWaves() end 43 | 44 | ---Sets the number of waves in a boss challenge room 45 | function Ambush.SetMaxBossChallengeWaves() end -------------------------------------------------------------------------------- /src/docs/repentogon_new/AnimationData.lua: -------------------------------------------------------------------------------- 1 | ---@class AnimationData 2 | local AnimationData = {} 3 | 4 | ---Returns a table of all the animation's `AnimationLayer` objects, ordered from bottom to top (NOT ordered by layer ID). 5 | ---@return AnimationLayer[] 6 | function AnimationData:GetAllLayers() end 7 | 8 | ---@param layerId integer 9 | ---@return AnimationLayer 10 | function AnimationData:GetLayer(layerId) end 11 | 12 | ---Returns the amount of frames the animation has. 13 | ---@return integer 14 | function AnimationData:GetLength() end 15 | 16 | ---@return string 17 | function AnimationData:GetName() end 18 | 19 | ---@return boolean 20 | function AnimationData:IsLoopingAnimation() end 21 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/AnimationFrame.lua: -------------------------------------------------------------------------------- 1 | ---@class AnimationFrame 2 | local AnimationFrame = {} 3 | 4 | ---@return Color **READONLY** 5 | function AnimationFrame:GetColor() end 6 | 7 | ---@return Vector crop **READONLY** 8 | function AnimationFrame:GetCrop() end 9 | 10 | ---@return number 11 | function AnimationFrame:GetHeight() end 12 | 13 | ---@return Vector **READONLY** 14 | function AnimationFrame:GetPivot() end 15 | 16 | ---@return Vector **READONLY** 17 | function AnimationFrame:GetPos() end 18 | 19 | ---@return number 20 | function AnimationFrame:GetRotation() end 21 | 22 | ---@return Vector **READONLY** 23 | function AnimationFrame:GetScale() end 24 | 25 | ---@return number 26 | function AnimationFrame:GetWidth() end 27 | 28 | ---@return boolean 29 | function AnimationFrame:IsInterpolated() end 30 | 31 | ---@return boolean 32 | function AnimationFrame:IsVisible() end 33 | 34 | ---@return integer 35 | function AnimationFrame:GetStartFrame() end 36 | 37 | ---@return integer 38 | function AnimationFrame:GetEndFrame() end 39 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/AnimationLayer.lua: -------------------------------------------------------------------------------- 1 | ---@class AnimationLayer 2 | local AnimationLayer = {} 3 | 4 | ---Returns the frame data from the provided frame number. 5 | ---@param frame integer 6 | ---@return AnimationFrame? 7 | function AnimationLayer:GetFrame(frame) end 8 | 9 | ---@return integer 10 | function AnimationLayer:GetLayerID() end 11 | 12 | ---@return boolean 13 | function AnimationLayer:IsVisible() end 14 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/Backdrop.lua: -------------------------------------------------------------------------------- 1 | ---@class Backdrop 2 | local Backdrop = {} 3 | 4 | ---@return Image 5 | function Backdrop:GetFloorImage() end 6 | 7 | ---@return Image 8 | function Backdrop:GetWallImage() end 9 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/BossPool.lua: -------------------------------------------------------------------------------- 1 | ---@class BossPoolEntry 2 | ---@field bossID BossType | integer 3 | ---@field weight number 4 | ---@field weightAlt float 5 | ---@field achievementID Achievement | integer 6 | 7 | ---@class BossPool 8 | local BossPool = {} 9 | 10 | ---Return the start of the double trouble room set. 11 | ---Any boss room that has a variant in the [doubleTroubleRoomID, doubleTroubleRoomID + 50) range is considered a double trouble room for the stage. 12 | ---@return integer 13 | function BossPool:GetDoubleTroubleRoomID() 14 | end 15 | 16 | ---@return BossPoolEntry[] 17 | function BossPool:GetEntries() 18 | end 19 | 20 | ---@return string 21 | function BossPool:GetName() 22 | end 23 | 24 | ---@return RNG 25 | function BossPool:GetRNG() 26 | end 27 | 28 | ---@return number 29 | function BossPool:GetWeight() 30 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/BossPoolManager.lua: -------------------------------------------------------------------------------- 1 | ---@class BossPoolManager 2 | _G.BossPoolManager = {} 3 | 4 | ---@param stageID StbType 5 | ---@return BossPool 6 | function BossPoolManager.GetPool(stageID) 7 | end 8 | 9 | ---Returns the removed status of all bosses 10 | --- 11 | ---BossPoolManager.GetRemovedBosses()[BossType.MONSTRO] to check if Monstro is removed. 12 | ---@return {[BossType | integer]: boolean} 13 | function BossPoolManager.GetRemovedBosses() 14 | end 15 | 16 | ---Returns the current's level boss blacklist 17 | --- 18 | ---BossPoolManager.GetRemovedSpecialBosses()[BossType.MONSTRO] to check if Monstro has been blacklisted. 19 | ---@return {[BossType | integer]: boolean} 20 | function BossPoolManager.GetRemovedSpecialBosses() 21 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/Camera.lua: -------------------------------------------------------------------------------- 1 | ---@class Camera 2 | local Camera = {} 3 | 4 | ---The camera will attempt to focus on the specified position. Currently, this must be called every frame or else the game will stop trying to focus on it. 5 | ---@param pos Vector 6 | function Camera:SetFocusPosition(pos) 7 | end 8 | 9 | ---Immediately moves the camera to the specified position. 10 | --- 11 | ---**BUG:** This function currently does not work with Active Cam enabled as the camera snaps back to its original position in each update. 12 | ---@param pos Vector 13 | function Camera:SnapToPosition(pos) 14 | end 15 | 16 | ---Returns if the provided in-world position is visible to the camera. 17 | ---@param pos Vector 18 | ---@return boolean 19 | function Camera:IsPosVisible(pos) 20 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/ChallengeParam.lua: -------------------------------------------------------------------------------- 1 | ---@class ChallengeParams 2 | _G.ChallengeParam = {} 3 | 4 | ---@return boolean 5 | function ChallengeParam.CanShoot() 6 | end 7 | 8 | ---@return Achievement[] 9 | function ChallengeParam.GetAchievementList() 10 | end 11 | 12 | ---@return number 13 | function ChallengeParam.GetAddDamage() 14 | end 15 | 16 | ---@return integer 17 | function ChallengeParam.GetBlackHearts() 18 | end 19 | 20 | ---@return integer 21 | function ChallengeParam.GetCoins() 22 | end 23 | 24 | ---@return CollectibleType[] 25 | function ChallengeParam.GetCollectibleList() 26 | end 27 | 28 | ---@return CollectibleType[] 29 | function ChallengeParam.GetCollectibleTwinList() 30 | end 31 | 32 | ---@return integer 33 | function ChallengeParam.GetCurse() 34 | end 35 | 36 | ---@return integer 37 | function ChallengeParam.GetCurseFilter() 38 | end 39 | 40 | ---@return Difficulty 41 | function ChallengeParam.GetDifficulty() 42 | end 43 | 44 | ---@return LevelStage 45 | function ChallengeParam.GetEndStage() 46 | end 47 | 48 | ---@return integer 49 | function ChallengeParam.GetHearts() 50 | end 51 | 52 | ---@return integer 53 | function ChallengeParam.GetMaxHearts() 54 | end 55 | 56 | ---@return number 57 | function ChallengeParam.GetMinFireRate() 58 | end 59 | 60 | ---@return string 61 | function ChallengeParam.GetName() 62 | end 63 | 64 | ---@return PlayerType 65 | function ChallengeParam.GetPlayerType() 66 | end 67 | 68 | ---@return RoomType[] 69 | function ChallengeParam.GetRoomFilter() 70 | end 71 | 72 | ---@return integer 73 | function ChallengeParam.GetSoulHearts() 74 | end 75 | 76 | ---@return Card 77 | function ChallengeParam.GetStartingCard() 78 | end 79 | 80 | ---@return PillEffect 81 | function ChallengeParam.GetStartingPill() 82 | end 83 | 84 | ---@return TrinketType[] 85 | function ChallengeParam.GetTrinketList() 86 | end 87 | 88 | ---@return boolean 89 | function ChallengeParam.IsAltPath() 90 | end 91 | 92 | ---@return boolean 93 | function ChallengeParam.IsBigRangeEnabled() 94 | end 95 | 96 | ---@return boolean 97 | function ChallengeParam.IsMaxDamageEnabled() 98 | end 99 | 100 | ---@return boolean 101 | function ChallengeParam.IsMegaSatanRun() 102 | end 103 | 104 | ---@return boolean 105 | function ChallengeParam.IsMinShotspeedEnabled() 106 | end 107 | 108 | ---@return boolean 109 | function ChallengeParam.IsSecretPath() 110 | end 111 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/ColorModifier.lua: -------------------------------------------------------------------------------- 1 | ---@class ColorModifier 2 | ---@field A number 3 | ---@field B number 4 | ---@field Brightness number 5 | ---@field Contrast number 6 | ---@field G number 7 | ---@field R number 8 | local ColorModifier = {} 9 | 10 | ---@param r? number @default: `1` 11 | ---@param g? number @default: `1` 12 | ---@param b? number @default: `1` 13 | ---@param a? number @default: `0` 14 | ---@param brightness? number @default: `0` 15 | ---@param contrast? number @default: `1` 16 | ---@return ColorModifier 17 | function _G.ColorModifier(r, g, b, a, brightness, contrast) 18 | end 19 | 20 | ---@param Right ColorModifier 21 | ---@return ColorModifier 22 | function ColorModifier:__add(Right) 23 | end 24 | 25 | ---@param Right ColorModifier 26 | ---@return ColorModifier 27 | function ColorModifier:__div(Right) 28 | end 29 | 30 | ---@param Right ColorModifier 31 | ---@return ColorModifier 32 | function ColorModifier:__eq(Right) 33 | end 34 | 35 | ---@param Right ColorModifier 36 | ---@return ColorModifier 37 | function ColorModifier:__mul(Right) 38 | end 39 | 40 | ---@param Right ColorModifier 41 | ---@return ColorModifier 42 | function ColorModifier:__sub(Right) 43 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/ColorParams.lua: -------------------------------------------------------------------------------- 1 | ---@class ColorParams 2 | local ColorParams = {} 3 | 4 | ---@param color Color 5 | ---@param priority integer 6 | ---@param duration1 integer 7 | ---@param duration2 integer 8 | ---@param fadeout boolean 9 | ---@param shared boolean 10 | ---@return ColorParams 11 | function _G.ColorParams(color, priority, duration1, duration2, fadeout, shared) 12 | end 13 | 14 | ---@return Color 15 | function ColorParams:GetColor() 16 | end 17 | 18 | ---Defines the time in update frames that these parameters should last. Has no effect on how many frames are left, but does affect fadeout speed (calculated as `lifespan / duration`) if `fadeout` is enabled. 19 | ---@return integer 20 | function ColorParams:GetDuration() 21 | end 22 | 23 | ---@return boolean 24 | function ColorParams:GetFadeout() 25 | end 26 | 27 | ---Defines how many update frames are left before this expires. This is decremented by `1` each non-interpolation update at a rate of `30` per second. Altering this will directly effect how many frames are left before these parameters expire. 28 | 29 | ---@return integer 30 | function ColorParams:GetLifespan() 31 | end 32 | 33 | ---@return integer 34 | function ColorParams:GetPriority() 35 | end 36 | 37 | ---@return boolean 38 | function ColorParams:GetShared() 39 | end 40 | 41 | ---@param color Color 42 | function ColorParams:SetColor(color) 43 | end 44 | 45 | ---@param duration integer 46 | function ColorParams:SetDuration(duration) 47 | end 48 | 49 | ---@param value boolean 50 | function ColorParams:SetFadeout(value) 51 | end 52 | 53 | ---@param duration integer 54 | function ColorParams:SetLifespan(duration) 55 | end 56 | 57 | ---@param priority integer 58 | function ColorParams:SetPriority(priority) 59 | end 60 | 61 | ---@param value boolean 62 | function ColorParams:SetShared(value) 63 | end 64 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/Console.lua: -------------------------------------------------------------------------------- 1 | _G.Console = {} 2 | 3 | ---Returns a table containing current command history. 4 | ---@return string[] 5 | function Console.GetCommandHistory() 6 | end 7 | 8 | ---Returns a table containing every previous entry printed to the console. 9 | --- 10 | ---This is ordered last-to-first- the first entry will be the currently blank line awaiting user input, followed by the previous print, and so on. The last line will always be "Repentance Console". 11 | ---@return string[] 12 | function Console.GetHistory() 13 | end 14 | 15 | ---Removes previous lines from history. 16 | ---@param amount? number @default: `1`. The amount of lines to remove from the history. 17 | function Console.PopHistory(amount) 18 | end 19 | 20 | ---Prints an error to the console, errors display in red text. 21 | ---@param error string 22 | function Console.PrintError(error) 23 | end 24 | 25 | ---Prints a warning to the console, warnings display in yellow text. 26 | ---@param warning string 27 | function Console.PrintWarning(warning) 28 | end 29 | 30 | ---Registers a command in the new console. These will show up in the new console's autocomplete. 31 | ---@param name string The name of the command 32 | ---@param description string The description of the command. It will show when typing the `help` command. 33 | ---@param helpText string Helpful information about the command. It will show up when typing `help (name)`. 34 | ---@param showOnMenu boolean 35 | ---@param autoCompleteType AutocompleteType Has the command inherit the autocomplete type. If the command doesn't fit into any of the standard types, use `AutocompleteType.CUSTOM` combined with the `MC_CONSOLE_AUTOCOMPLETE` callback to create a bespoke one for this command. 36 | function Console.RegisterCommand(name, description, helpText, showOnMenu, autoCompleteType) 37 | end 38 | 39 | ---Registers a macro in the new console. These will show up in the new console's autocomplete for the `macro` command. 40 | ---@param name string The name of the macro 41 | ---@param commands string[] Table of strings containing the commands to be executed in order 42 | function Console.RegisterMacro(name, commands) 43 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/CostumeSpriteDesc.lua: -------------------------------------------------------------------------------- 1 | ---@class CostumeSpriteDesc 2 | local CostumeSpriteDesc = {} 3 | 4 | ---@return boolean 5 | function CostumeSpriteDesc:CanOverwriteColor() end 6 | 7 | ---@return SkinColor 8 | function CostumeSpriteDesc:GetBodyColor() end 9 | 10 | ---@return SkinColor 11 | function CostumeSpriteDesc:GetHeadColor() end 12 | 13 | ---@return ItemConfigItem 14 | function CostumeSpriteDesc:GetItemConfig() end 15 | 16 | ---@return boolean 17 | function CostumeSpriteDesc:GetPlayerType() end 18 | 19 | ---@return boolean 20 | function CostumeSpriteDesc:GetPriority() end 21 | 22 | ---Returns sprite of associated to the costume. 23 | ---@return Sprite 24 | function CostumeSpriteDesc:GetSprite() end 25 | 26 | ---@return boolean 27 | function CostumeSpriteDesc:HasOverlay() end 28 | 29 | ---@return boolean 30 | function CostumeSpriteDesc:HasSkinAlt() end 31 | 32 | ---@return boolean 33 | function CostumeSpriteDesc:IsFlying() end 34 | 35 | ---@return boolean 36 | function CostumeSpriteDesc:IsItemAnimPlaying() end 37 | 38 | ---@return boolean 39 | function CostumeSpriteDesc:IsItemStateOnly() end 40 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/DailyChallenge.lua: -------------------------------------------------------------------------------- 1 | ---@class DailyChallenge 2 | _G.DailyChallenge = {} 3 | 4 | ---@return ChallengeParams 5 | function DailyChallenge.GetChallengeParams() 6 | end 7 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/Debug.lua: -------------------------------------------------------------------------------- 1 | ---@class Debug 2 | Debug = {} 3 | 4 | ---@param moduleName string 5 | function Debug.ForceUnload(moduleName) 6 | end 7 | 8 | ---@param addr integer 9 | ---@return string 10 | function Debug.GetSignature(addr) 11 | end 12 | 13 | --- Returns a list of all files loaded into the LUA environment. 14 | ---@return string[] 15 | function Debug.ListLoadedFiles() 16 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/EntitiesSaveStateVector.lua: -------------------------------------------------------------------------------- 1 | ---@class EntitiesSaveStateVector 2 | local EntitiesSaveStateVector = {} 3 | 4 | ---TODO: Document me! 5 | ---@param index integer 6 | ---@return EntitiesSaveState 7 | function EntitiesSaveStateVector:Get(index) 8 | end 9 | 10 | ---TODO: Document me! 11 | ---@param type EntityType 12 | ---@param variant? integer @default: `0` 13 | ---@param subType? integer @default: `0` 14 | ---@return EntitiesSaveState 15 | function EntitiesSaveStateVector:GetByType(type, variant, subType) 16 | end 17 | 18 | function EntitiesSaveStateVector:Clear() 19 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/FXParams.lua: -------------------------------------------------------------------------------- 1 | ---@class FXParams 2 | ---@field ColorModifier ColorModifier 3 | ---@field LightColor KColor 4 | ---@field ShadowAlpha number 5 | ---@field ShadowColor KColor 6 | ---@field UseWaterV2 boolean If `true`, water will use the reflective shader featured in Downpour and Dross. 7 | ---@field WaterColorMultiplier KColor 8 | ---@field WaterEffectColor Color 9 | local FXParams = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/GenericPrompt.lua: -------------------------------------------------------------------------------- 1 | ---@class GenericPrompt 2 | _G.GenericPrompt = {} 3 | 4 | ---Returns a GenericPrompt object. Allows for rendering a popup paper with the option to include text and tracking input for a yes/no decision. 5 | ---@return GenericPrompt 6 | function GenericPrompt() 7 | end 8 | 9 | ---@param SmallPrompt? boolean @default: `false`. If `true`, the prompt will be with much smaller paper instead 10 | function GenericPrompt:Initialize(SmallPrompt) 11 | end 12 | 13 | ---Starts showing the prompt on-screen. 14 | function GenericPrompt:Show() 15 | end 16 | 17 | ---Returns whether the prompt is active or not. 18 | ---@return boolean 19 | function GenericPrompt:IsActive() 20 | end 21 | 22 | ---Updates the animation of the prompt paper. 23 | ---@param ProcessInput boolean @`true` to track the player's input for selecting yes/no, `false` otherwise. 24 | function GenericPrompt:Update(ProcessInput) 25 | end 26 | 27 | ---Renders the prompt on-screen. Place this in any of the non-entity-specific RENDER callbacks. 28 | function GenericPrompt:Render() 29 | end 30 | 31 | ---Set text that will appear on the paper. 32 | ---@param Text1? string @default: `""`. Top line. Used as header text. Will be bold with a higher font size. 33 | ---@param Text2? string @default: `""`. Top-middle line. Used as header text. Will be bold with a higher font size. 34 | ---@param Text3? string @default: `""`. Middle line. Used as description text. 35 | ---@param Text4? string @default: `""`. Bottom-middle line. Used as description text. 36 | ---@param Text5? string @default: `""`. Bottom line. Used as description text. 37 | function GenericPrompt:SetText(Text1, Text2, Text3, Text4, Text5) 38 | end 39 | 40 | ---Returns the paper sprite of the prompt. 41 | ---@return Sprite 42 | function GenericPrompt:GetSprite() 43 | end 44 | 45 | ---Returns what selection the player is currently hovering over. 46 | ---@return integer 47 | ---|0 # No 48 | ---|1 # Yes 49 | function GenericPrompt:GetCurrentSelection() 50 | end 51 | 52 | ---Returns the chosen selection. Can return as 0 for "None" if the player dismisses the prompt. 53 | ---@return integer 54 | ---|0 # None 55 | ---|1 # Yes 56 | ---|2 # No 57 | function GenericPrompt:GetSubmittedSelection() 58 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/GridEntitiesSaveStateVector.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntitiesSaveStateVector 2 | local GridEntitiesSaveStateVector = {} 3 | 4 | ---TODO: Document me! 5 | ---@param index integer 6 | ---@return GridEntityDesc 7 | function GridEntitiesSaveStateVector:Get(index) 8 | end 9 | 10 | ---TODO: Document me! 11 | ---@param type GridEntityType 12 | ---@return GridEntityDesc 13 | function GridEntitiesSaveStateVector:GetByType(type) 14 | end 15 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/ItemOverlay.lua: -------------------------------------------------------------------------------- 1 | ---@class ItemOverlay 2 | _G.ItemOverlay = {} 3 | 4 | ---Returns the overlay's delay. 5 | ---@return integer 6 | function ItemOverlay.GetDelay() 7 | end 8 | 9 | ---Returns the Mega Mush player sprite. 10 | ---@return Sprite 11 | function ItemOverlay.GetMegaMushPlayerSprite() 12 | end 13 | 14 | 15 | ---@return Giantbook 16 | function ItemOverlay.GetOverlayID() 17 | end 18 | 19 | ---Returns the player. 20 | ---@return EntityPlayer 21 | function ItemOverlay.GetPlayer() 22 | end 23 | 24 | ---Returns the sprite. 25 | ---@return Sprite 26 | function ItemOverlay.GetSprite() 27 | end 28 | 29 | ---Shows the overlay. 30 | ---@param giantbookId Giantbook 31 | ---@param delay? integer @default: `3` 32 | ---@param player? EntityPlayer @default: `nil` 33 | function ItemOverlay.Show(giantbookId, delay, player) 34 | end 35 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/LRoomAreaDesc.lua: -------------------------------------------------------------------------------- 1 | ---@class LRoomAreaDesc 2 | local LRoomAreaDesc = {} 3 | 4 | ---Returns the top left corner of the high half of the L-room. 5 | ---@return Vector 6 | function LRoomAreaDesc:GetHighTopLeft() 7 | end 8 | 9 | ---Returns the top left corner of the low half of the L-room. 10 | ---@return Vector 11 | function LRoomAreaDesc:GetLowTopLeft() 12 | end 13 | 14 | ---Returns the bottom right corner of the high half of the L-room. 15 | ---@return Vector 16 | function LRoomAreaDesc:GetHighBottomRight() 17 | end 18 | 19 | ---Returns the bottom right corner of the low half of the L-room. 20 | ---@return Vector 21 | function LRoomAreaDesc:GetLowBottomRight() 22 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/LRoomTileDesc.lua: -------------------------------------------------------------------------------- 1 | ---@class LRoomTileDesc 2 | local LRoomTileDesc = {} 3 | 4 | ---Returns the grid coordinates of the high half's top left corner. 5 | ---@return {[1]: integer, [2]: integer} 6 | function LRoomTileDesc:GetHighTopLeft() 7 | end 8 | 9 | ---Returns the grid coordinates of the low half's top left corner. 10 | ---@return {[1]: integer, [2]: integer} 11 | function LRoomTileDesc:GetLowTopLeft() 12 | end 13 | 14 | ---Returns the grid coordinates of the high half's bottom right corner. 15 | ---@return {[1]: integer, [2]: integer} 16 | function LRoomTileDesc:GetHighBottomRight() 17 | end 18 | 19 | ---Returns the grid coordinates of the low half's bottom right corner. 20 | ---@return {[1]: integer, [2]: integer} 21 | function LRoomTileDesc:GetLowBottomRight() 22 | end 23 | 24 | ---Returns the grid coordinates of a random tile in this L 25 | ---@param seed integer 26 | ---@return {[1]: integer, [2]: integer} 27 | function LRoomTileDesc:GetRandomTile(seed) 28 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/LootList.lua: -------------------------------------------------------------------------------- 1 | ---@class LootList 2 | local LootList = {} 3 | 4 | ---@return LootList 5 | function _G.LootList() 6 | end 7 | 8 | ---@return LootListEntry[] 9 | function LootList:GetEntries() 10 | end 11 | 12 | ---@param type EntityType 13 | ---@param variant integer 14 | ---@param subtype integer 15 | ---@param seed? integer @default: `Random()` 16 | ---@param rng? RNG @default: `nil` 17 | function LootList:PushEntry(type, variant, subtype, seed, rng) 18 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/LootListEntry.lua: -------------------------------------------------------------------------------- 1 | ---@class LootListEntry 2 | local LootListEntry = {} 3 | 4 | ---@return EntityType 5 | function LootListEntry:GetType() 6 | end 7 | 8 | ---@return integer 9 | function LootListEntry:GetVariant() 10 | end 11 | 12 | ---@return integer 13 | function LootListEntry:GetSubType() 14 | end 15 | 16 | ---@return integer 17 | function LootListEntry:GetSeed() 18 | end 19 | 20 | ---May return `nil`. 21 | ---@return RNG? 22 | function LootListEntry:GetRNG() 23 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/NightmareScene.lua: -------------------------------------------------------------------------------- 1 | ---@class NightmareScene 2 | _G.NightmareScene = {} 3 | 4 | ---@return Sprite 5 | function NightmareScene.GetBackgroundSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function NightmareScene.GetBubbleSprite() 10 | end 11 | 12 | ---@return integer[] 13 | function NightmareScene.GetProgressBarMap() 14 | end 15 | 16 | ---@return Sprite 17 | function NightmareScene.GetProgressBarSprite() 18 | end 19 | 20 | ---Returns true if the Dogma nightmare scene is playing (when interacting with Mom's Bed in Home). 21 | ---@return boolean 22 | function NightmareScene.IsDogmaNightmare() 23 | end 24 | 25 | ---@return Sprite 26 | function NightmareScene.GetPlayerExtraPortraitSprite() 27 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/NullFrame.lua: -------------------------------------------------------------------------------- 1 | ---@class NullFrame 2 | local NullFrame = {} 3 | 4 | ---@return Color 5 | function NullFrame:GetColor() 6 | end 7 | 8 | ---@return Vector 9 | function NullFrame:GetPos() 10 | end 11 | 12 | ---@return number 13 | function NullFrame:GetRotation() 14 | end 15 | 16 | ---@return Vector 17 | function NullFrame:GetScale() 18 | end 19 | 20 | ---@return boolean 21 | function NullFrame:IsVisible() 22 | end 23 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/PauseMenu.lua: -------------------------------------------------------------------------------- 1 | ---**NOTE**: In upcoming release of REPENTOGON v1.0.6 2 | _G.PauseMenu = {} 3 | 4 | ---@return Sprite 5 | function PauseMenu.GetPauseMenuSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function PauseMenu.GetMyStuffSprite() 10 | end 11 | 12 | ---@return Sprite 13 | function PauseMenu.GetCompletionMarksSprite() 14 | end 15 | 16 | ---@return Sprite 17 | function PauseMenu.GetStatsSprite() 18 | end 19 | 20 | ---@return PauseMenuStates 21 | function PauseMenu.GetState() 22 | end 23 | 24 | ---@param pauseMenuState PauseMenuStates 25 | function PauseMenu.SetState(pauseMenuState) 26 | end 27 | 28 | function PauseMenu.GetSelectedElement() 29 | end 30 | 31 | ---@param elementId integer 32 | function PauseMenu.SetSelectedElement(elementId) 33 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/PersistentGameData.lua: -------------------------------------------------------------------------------- 1 | ---@class PersistentGameData 2 | local PersistentGameData = {} 3 | 4 | ---Returns the amount of deaths from an entity that's recorded in the Bestiary. 5 | ---@param entityType EntityType 6 | ---@param entityVariant integer 7 | ---@return integer 8 | function PersistentGameData:GetBestiaryDeathCount(entityType, entityVariant) 9 | end 10 | 11 | ---Returns the amount of times an entity has been countered that's recorded in the Bestiary. 12 | ---@param entityType EntityType 13 | ---@param entityVariant integer 14 | ---@return integer 15 | function PersistentGameData:GetBestiaryEncounterCount(entityType, entityVariant) 16 | end 17 | 18 | ---Returns the amount of times an entity has been killed that's recorded in the Bestiary. 19 | ---@param entityType EntityType 20 | ---@param entityVariant integer 21 | ---@return integer 22 | function PersistentGameData:GetBestiaryKillCount(entityType, entityVariant) 23 | end 24 | 25 | ---Returns an event counter. 26 | ---@param eventCounter EventCounter 27 | ---@return integer 28 | function PersistentGameData:GetEventCounter(eventCounter) 29 | end 30 | 31 | ---Increases the counter towards the provided `EventCounter` by `incrementAmount`. Also accepts negative values to decrease. 32 | ---@param eventCounter EventCounter 33 | ---@param incrementAmount integer 34 | function PersistentGameData:IncreaseEventCounter(eventCounter, incrementAmount) 35 | end 36 | 37 | ---Returns true if the provided challenge has been completed. 38 | --- 39 | ---This function is the same as `Isaac.IsChallengeDone` and is recommended you use that version instead, as it's categorized with the other challenge-related functions. 40 | ---@param challengeId Challenge 41 | ---@return boolean 42 | function PersistentGameData:IsChallengeCompleted(challengeId) 43 | end 44 | 45 | ---Returns true if the collectible is in the collection (at least picked up once in any run) 46 | ---@param collectible CollectibleType 47 | ---@return boolean 48 | function PersistentGameData:IsItemInCollection(collectible) 49 | end 50 | 51 | ---Tries to unlock an achievement. 52 | ---@param achievement Achievement 53 | ---@param blockPaperPopup? boolean @default: `false`. Prevents popping up the achievement paper for modded achievements. 54 | ---@return boolean successful Returns `true` if the achievement was successfully unlocked, `false` if it has already been unlocked or the unlock failed. 55 | function PersistentGameData:TryUnlock(achievement, blockPaperPopup) 56 | end 57 | 58 | ---Returns true if the provided achievement is unlocked. 59 | ---@param achievement Achievement 60 | ---@return boolean 61 | function PersistentGameData:Unlocked(achievement) 62 | end 63 | 64 | ---@param entType EntityType 65 | ---@param variant? integer @default: `0` 66 | function PersistentGameData:AddBestiaryKill(entType, variant) 67 | end 68 | 69 | ---@param bossType BossType 70 | function PersistentGameData:AddBossKilled(bossType) 71 | end 72 | 73 | ---@param bossType BossType 74 | ---@return boolean 75 | function PersistentGameData:IsBossKilled(bossType) 76 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/PocketItem.lua: -------------------------------------------------------------------------------- 1 | ---@class PocketItem 2 | local PocketItem = {} 3 | 4 | ---Returns the ID of the PocketItem. Returns `0` if the slot is empty. 5 | --- 6 | ---For cards, returns `Card`. 7 | --- 8 | ---For pills, returns `PillColor`. 9 | --- 10 | ---For items, returns the corresponding `ActiveSlot` (either `ActiveSlot.SLOT_POCKET` or `ActiveSlot.SLOT_POCKET2`). 11 | ---@return Card | PillColor | ActiveSlot 12 | function PocketItem:GetSlot() 13 | end 14 | 15 | ---Returns the `PocketItemType`. 16 | --- 17 | ---This value is unreliable if the slot is currently empty, as the game sometimes does not clear it. 18 | ---@return PocketItemType 19 | function PocketItem:GetType() 20 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/RailManager.lua: -------------------------------------------------------------------------------- 1 | ---@class RailManager 2 | local RailManager = {} 3 | 4 | ---@return Sprite 5 | function RailManager:GetRailsSprite() 6 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/RepentogonGlobal.lua: -------------------------------------------------------------------------------- 1 | ---@class REPENTOGON 2 | ---@field Version string 3 | ---@field Real true 4 | ---@field Name "REPENTOGON" 5 | ---@field Extras REPENTOGON_Extras 6 | _G.REPENTOGON = {} 7 | 8 | ---Checks if REPENTOGON meets specified version. Always returns `true` on dev builds. 9 | ---@param targetVersion string 10 | ---@return boolean 11 | function REPENTOGON.MeetsVersion(targetVersion) end 12 | 13 | ---@class REPENTOGON_Extras 14 | ---@field Changelog REPENTOGON_Changelog 15 | ---@field StatsMenu REPENTOGON_StatsMenu 16 | ---@field BestiaryMenu REPENTOGON_BestiaryMenu 17 | ---@field Misc {NoRPTGNFldrErr: function} 18 | 19 | ---@class REPENTOGON_Changelog 20 | ---@field AssetsLoaded boolean 21 | ---@field CurrentSheet integer 22 | ---@field CurrentState boolean 23 | ---@field ChangelogSprite Sprite 24 | ---@field Font Font 25 | ---@field FontColor KColor 26 | ---@field LineHeight number 27 | ---@field NoteOffset Vector 28 | ---@field NoteSprite Sprite 29 | ---@field PaperOffset Vector 30 | ---@field Sheets {Text: string, TextArray: string[]}[] 31 | ---@field ScrollSpeed number 32 | ---@field ScrollItertia number 33 | ---@field VersionFont Font 34 | ---@field VersionOffset Vector 35 | ---@field EvaluateText function 36 | ---@field LoadAssets function 37 | ---@field MenuRender function 38 | 39 | ---@class REPENTOGON_StatsMenu 40 | ---@field ArrowSprite Sprite 41 | ---@field CurrentlyDisplayedCategoryID integer 42 | ---@field LeftArrowSpritePos Vector 43 | ---@field RightArrowSpritePos Vector 44 | ---@field ScheduleRefresh boolean 45 | ---@field StatPageAngleOffsetX number 46 | ---@field StatPageNumberOffsetX number 47 | ---@field StatSheetSprite Sprite 48 | ---@field StatSheetSpritePos Vector 49 | ---@field Stats [string,[string, number|string|fun():number|string][]][] 50 | 51 | ---@class REPENTOGON_BestiaryMenu 52 | ---@field ArrowSprite Sprite 53 | ---@field BestiarySheetSprite Sprite 54 | ---@field BestiarySheetSpritePos Vector 55 | ---@field PageTextPos Vector 56 | ---@field PageWidgetPos Vector 57 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/RoomConfig.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfig 2 | _G.RoomConfig = {} 3 | 4 | ---Returns a RoomConfigRoom corresponding to the given arguments. 5 | ---@param seed integer 6 | ---@param reduceWeight boolean If true, the selected room's weight is decreased. 7 | ---@param stage StbType The stage the room belongs to. 8 | ---@param type RoomType 9 | ---@param shape? RoomShape @default: `RoomShape.NUM_ROOMSHAPES`, which allows the function to pick a room regardless of its shape. 10 | ---@param minVariant? integer @default: `-1`. 11 | ---@param maxVariant? integer @default: `-1` 12 | ---@param minDifficulty? integer @default: `0.` 13 | ---@param maxDifficulty? integer @default: `10.` 14 | ---@param requiredDoors? integer @default: `0.` 15 | ---@param subType? integer @default: `-1`. 16 | ---@param mode? integer @default: `-1`. TODO: Document me! 17 | ---@return RoomConfigRoom 18 | function RoomConfig.GetRandomRoom(seed, reduceWeight, stage, type, shape, minVariant, maxVariant, minDifficulty, 19 | maxDifficulty, requiredDoors, subType, mode) 20 | end 21 | 22 | ---Returns a RoomConfigRoom corresponding to the given arguments. 23 | ---@param stage StbType 24 | ---@param type RoomType 25 | ---@param variant integer 26 | ---@param difficulty? integer @default: `-1`, pulling from all difficulties. 27 | ---@return RoomConfigRoom 28 | function RoomConfig.GetRoomByStageTypeAndVariant(stage, type, variant, difficulty) 29 | end 30 | 31 | ---@param StbType StbType 32 | ---@return RoomConfigStage 33 | function RoomConfig.GetStage(StbType) 34 | end 35 | 36 | ---@alias RoomConfigHolder RoomConfig 37 | _G.RoomConfigHolder = RoomConfig -------------------------------------------------------------------------------- /src/docs/repentogon_new/RoomConfigStage.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfigStage 2 | local RoomConfigStage = {} 3 | 4 | ---Returns the `BackdropType` used in default rooms on the stage. 5 | ---@return BackdropType 6 | function RoomConfigStage:GetBackdrop() 7 | end 8 | 9 | ---Returns the png used for the boss portrait on the boss intro. 10 | ---@return string 11 | function RoomConfigStage:GetBossSpot() 12 | end 13 | 14 | ---Returns the name of the stage. 15 | ---@return string 16 | function RoomConfigStage:GetDisplayName() 17 | end 18 | 19 | ---Returns the `Music` used in default rooms on the stage. 20 | ---@return Music 21 | function RoomConfigStage:GetMusic() 22 | end 23 | 24 | ---Returns the png used for the player portrait on the boss intro and nightmare transition. 25 | ---@return string 26 | function RoomConfigStage:GetPlayerSpot() 27 | end 28 | 29 | ---@param mode? integer @default: `0` 30 | ---|0 # Normal Mode rooms 31 | ---|1 # Greed Mode rooms 32 | ---@return RoomConfigSet 33 | function RoomConfigStage:GetRoomSet(mode) 34 | end 35 | 36 | ---Returns the suffix used by the stage for stage-unique sprites, such as the boss/player spot and unique variants for enemies. 37 | ---@return string 38 | function RoomConfigStage:GetSuffix() 39 | end 40 | 41 | ---Returns the `BackdropType` used in default rooms on the stage. 42 | ---@param backdropType BackdropType 43 | function RoomConfigStage:SetBackdrop(backdropType) 44 | end 45 | 46 | ---Sets the png used for the boss portrait on the boss intro. 47 | ---@param spritePath string 48 | function RoomConfigStage:SetBossSpot(spritePath) 49 | end 50 | 51 | ---Sets the name of the stage. 52 | ---@param name string 53 | function RoomConfigStage:SetDisplayName(name) 54 | end 55 | 56 | ---Sets the `Music` used in default rooms on the stage. 57 | ---@param music Music 58 | function RoomConfigStage:SetMusic(music) 59 | end 60 | 61 | ---Sets the png used for the player portrait on the boss intro and nightmare transition. 62 | ---@param spritePath string 63 | function RoomConfigStage:SetPlayerSpot(spritePath) 64 | end 65 | 66 | ---Sets the suffix used by the stage for stage-unique sprites, such as the boss/player spot and unique variants for enemies. 67 | ---@param suffix string 68 | function RoomConfigStage:SetSuffix(suffix) 69 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/RoomTransition.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomTransition 2 | _G.RoomTransition = {} 3 | 4 | ---TODO: Might become an enum. Documenting directly under function for now. 5 | ---@return integer TransitionMode 6 | ---|0 # NONE --When no transition is happening. 7 | ---|1 # EXIT_ROOM --When exiting the room. 8 | ---|2 # PAUSE_EXIT_ROOM --Still within the room you're exiting from, but playing a special non-directional room transition such as when teleporting. 9 | ---|3 # ENTER_ROOM --Entering and loading the room you moved into. 10 | ---|4 # PAUSE_ENTER_ROOM --Still within the room you're entering, but playing a special non-directional room transition such as when teleporting. 11 | function RoomTransition.GetTransitionMode() 12 | end 13 | 14 | ---Returns the versus screen sprite. 15 | ---@return Sprite 16 | function RoomTransition.GetVersusScreenSprite() 17 | end 18 | 19 | ---Returns true if the boss intro is currently rendering. 20 | ---@return boolean 21 | function RoomTransition.IsRenderingBossIntro() 22 | end 23 | 24 | ---Starts a boss intro. 25 | ---@param boss1 BossType 26 | ---@param boss2? BossType @default: `0`. If it is a non-zero value, a second boss will be rendered if the room is a Double Trouble encounter. 27 | function RoomTransition.StartBossIntro(boss1, boss2) 28 | end 29 | 30 | ---@return Sprite 31 | function RoomTransition.GetPlayerExtraPortraitSprite() 32 | end 33 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/StageTransition.lua: -------------------------------------------------------------------------------- 1 | ---@diagnostic disable: duplicate-set-field 2 | ---@class StageTransition 3 | _G.StageTransition = {} 4 | 5 | ---Returns true if the stage transition screen will display Isaac's head moving from one stage to another stage. 6 | ---@return boolean 7 | function StageTransition.GetSameStage() 8 | end 9 | 10 | ---Configure whether the stage transition will display Isaac's head moving from one stage to the other (false) or not (true). 11 | --- 12 | ---This function is useful if you want to move the player to the first stage, or want to repeat the last stage on the progress 13 | ---bar of the transition screen, and have it be less jarring. 14 | --- 15 | ---If transitioning back to the first floor, and `sameStage` is not set to true, Isaac's head will appear outside of the progress 16 | ---bar. Otherwise, Isaac's head will appear on the first floor. 17 | --- 18 | ---If repeating the last floor, and `sameStage` is not set to true, Isaac's head will move from the previous stage to the last one. 19 | ---Otherwise, Isaac's head will appear on the last floor. 20 | --- 21 | ---Calling this function before the current stage transition has called `SetNextStage` will override the transition itself. This 22 | ---means that instead of merely displaying Isaac's head not moving, it will actually change whether the next stage will be a repeat 23 | ---of the current one, or the actual next stage. Ideally, you should use this function in the context of the 24 | ---`ModCallbacks.MC_PRE_LEVEL_SELECT` callback. 25 | ---@param sameStage boolean 26 | function StageTransition.SetSameStage(sameStage) 27 | end 28 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/Weapon.lua: -------------------------------------------------------------------------------- 1 | ---@class Weapon 2 | local Weapon = {} 3 | 4 | ---TODO: Document me! 5 | ---@param collectible CollectibleType 6 | function Weapon:ClearItemAnim(collectible) 7 | end 8 | 9 | ---@return integer 10 | function Weapon:GetCharge() 11 | end 12 | 13 | ---@return Vector 14 | function Weapon:GetDirection() 15 | end 16 | 17 | ---@return integer 18 | function Weapon:GetFireDelay() 19 | end 20 | 21 | ---@return integer 22 | function Weapon:GetMaxFireDelay() 23 | end 24 | 25 | ---Returns the weapon's modifiersin bitmask form. 26 | ---@return WeaponModifier 27 | function Weapon:GetModifiers() 28 | end 29 | 30 | ---Returns the number of times the player has "fired". Not affected by multi-shot or additional shots, such as Mutant Spider and Mom's Eye. Some `WeaponType`s increase this in a different way, such as with Brimstone, which increases it by 1 every 31 | ---@return integer 32 | function Weapon:GetNumFired() 33 | end 34 | 35 | ---Returns the weapon's owner. Returns an `Entity` object, but is expected to be restricted to `EntityPlayer` and `EntityFamiliar`. 36 | ---@return Entity 37 | function Weapon:GetOwner() 38 | end 39 | 40 | ---@return WeaponType 41 | function Weapon:GetWeaponType() 42 | end 43 | 44 | ---Returns `false` for having collectibles like Marked and Analog Stick. Will still return true for `WeaponType`s that naturally allow you to shoot in any direction like Forgotten's Bone, Ludovico Technique, etc. 45 | ---@return boolean 46 | function Weapon:IsAxisAligned() 47 | end 48 | 49 | ---TODO: Document me! 50 | ---@param item CollectibleType 51 | ---@return boolean 52 | function Weapon:IsItemAnimFinished(item) 53 | end 54 | 55 | ---TODO: Document me! 56 | ---@param item CollectibleType 57 | ---@param anim integer 58 | ---@param position Vector 59 | ---@param charge number 60 | function Weapon:PlayItemAnim(item, anim, position, charge) 61 | end 62 | 63 | ---@param charge integer 64 | function Weapon:SetCharge(charge) 65 | end 66 | 67 | ---@param delay number 68 | function Weapon:SetFireDelay(delay) 69 | end 70 | 71 | ---@param time integer 72 | function Weapon:SetHeadLockTime(time) 73 | end 74 | 75 | ---@param modifiers WeaponModifier 76 | function Weapon:SetModifiers(modifiers) 77 | end 78 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/WeightedOutcomePicker.lua: -------------------------------------------------------------------------------- 1 | ---@class WeightedOutcomePicker 2 | local WeightedOutcomePicker = {} 3 | 4 | ---@return WeightedOutcomePicker 5 | function _G.WeightedOutcomePicker() 6 | end 7 | 8 | ---Adds an outcome to the outcome selector with the specified `weight`. The internal weight is still an integer calculated like this: `fWeight * scaleFactor`, where `scaleFactor` is the maximum weight (equivalent to `1.0`). 9 | --- 10 | --**Example Code** 11 | ---local picker = WeightedOutcomePicker() 12 | --- 13 | ---picker:AddOutcomeFloat(1, 1.0) -- ~45% 14 | ---picker:AddOutcomeFloat(2, 1.0) -- ~45% 15 | ---picker:AddOutcomeFloat(3, 0.2) -- ~9% 16 | ---@param value integer 17 | ---@param weight number 18 | ---@param scaleFactor? integer @default: `100` 19 | function WeightedOutcomePicker:AddOutcomeFloat(value, weight, scaleFactor) 20 | end 21 | 22 | ---Adds an outcome to the outcome selector with the specified `weight`. 23 | --- 24 | ---**Example Code** 25 | ---```lua 26 | ---local picker = WeightedOutcomePicker() 27 | --- 28 | ---picker:AddOutcomeWeight(1, 65) -- 65% 29 | ---picker:AddOutcomeWeight(2, 30) -- 30% 30 | ---picker:AddOutcomeWeight(3, 5) -- 5% 31 | ---``` 32 | ---@param value integer 33 | ---@param weight integer 34 | function WeightedOutcomePicker:AddOutcomeWeight(value, weight) 35 | end 36 | 37 | ---Clears all outcomes from the outcome picker. 38 | function WeightedOutcomePicker:ClearOutcomes() 39 | end 40 | 41 | ---Returns the number of outcomes in the outcome picker. 42 | ---@return integer 43 | function WeightedOutcomePicker:GetNumOutcomes() 44 | end 45 | 46 | ---@class WeightedOutcomePickerTable 47 | ---@field Value integer 48 | ---@field Weight number 49 | 50 | ---Returns a table containing a list of all outcomes in the outcome picker. 51 | ---@return WeightedOutcomePickerTable[] 52 | function WeightedOutcomePicker:GetOutcomes() 53 | end 54 | 55 | ---Returns a random outcome from the list in WeightedOutcomePicker. 56 | ---@param rng RNG 57 | ---@return integer 58 | function WeightedOutcomePicker:PickOutcome(rng) 59 | end 60 | 61 | ---Removes an outcome from the outcome picker with the given `value`. 62 | ---@param value integer 63 | function WeightedOutcomePicker:RemoveOutcome(value) 64 | end 65 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/XMLData.lua: -------------------------------------------------------------------------------- 1 | ---@class XMLData 2 | _G.XMLData = {} 3 | 4 | ---@param type EntityType 5 | ---@param variant? integer @default: `0` 6 | ---@param subType? integer @default: `0` 7 | ---Returns a table containing the attributes of the bosscolor on bosscolors.xml that match the given type variant and subtype. 8 | --- 9 | ---**Example Code** 10 | ---```lua 11 | --- print("Red Monstro's suffix:", XMLData.GetBossColorByTypeVarSub(20,0,1).suffix) 12 | --- ``` 13 | function XMLData.GetBossColorByTypeVarSub(type, variant, subType) 14 | end 15 | 16 | ---Returns a table containing the attributes of the entity in `entities2.xml`. 17 | --- 18 | ---Child nodes are returned as tables alongside the rest of the attributes. For example, 19 | ---if you want to access the samples of a sound entry, you can just do soundentry.sample[1]. 20 | ---@param type EntityType 21 | ---@param variant? integer @default: `0` 22 | ---@param subType? integer @default: `0` 23 | ---@param strict? boolean @default: `false`. If `true`, the function will only return a value if the entity node in entities2.xml matches the type, variant, and subType, rather than partial matches. 24 | ---@return table 25 | function XMLData.GetEntityByTypeVarSub(type, variant, subType, strict) 26 | end 27 | 28 | ---Returns a table containing the attributes of the corresponding xml, the matching nodetype 29 | --- 30 | ---(Ex: `XMLNode.TRINKET` returns trinket nodes from pocketitems.xml) and match the given name parameter. 31 | ---@param nodeType XMLNode 32 | ---@param index integer 33 | ---@return table 34 | function XMLData.GetEntryById(nodeType, index) 35 | end 36 | 37 | ---Returns a table containing the attributes of the corresponding xml, the matching NodeType 38 | --- 39 | ---(Ex: XMLNode.TRINKET returns trinket nodes from pocketitems.xml) and match the given name parameter. 40 | ---@param nodeType XMLNode 41 | ---@param name string 42 | ---@return table 43 | function XMLData.GetEntryByName(nodeType, name) 44 | end 45 | 46 | ---@param entity Entity 47 | ---@param autoXMLPick? boolean @default: `true`. If set to `true`, picks the xml that matches the `EntityType`. If `false`, picks the entry from entities2.xml. 48 | ---@param strict boolean If set to `true`, only returns a value when the type, variant and subtype attributes match. If `false`, only matches an entry with the type. 49 | function XMLData.GetEntryFromEntity(entity, autoXMLPick, strict) 50 | end 51 | 52 | ---Returns the number of entries a given xmlnode structure has. 53 | ---@param nodeType XMLNode 54 | ---@return integer 55 | function XMLData.GetNumEntries(nodeType) 56 | end 57 | 58 | ---Returns a table containing the attributes of the metdata xml of the matching mod id. 59 | --- 60 | ---**Example Code** 61 | ---```lua 62 | ---print("Car's mod name:", XMLData.GetModById("2788006730").name) 63 | ---``` 64 | ---@param id integer | string 65 | ---@return table 66 | function XMLData.GetModById(id) 67 | end 68 | 69 | ---Similar to GetByName or GetById, but it returns the node based on the order in which it appears on the xmls (1 will return the first node, 2 the second one and so on). Useful to iterate through xmls in combination with GetNumEntries, specially for redundant xmls like entities.xml. 70 | ---@param nodeType XMLNode 71 | ---@param order integer 72 | function XMLData.GetEntryByOrder(nodeType, order) 73 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/entity/EntityDelirium.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityDelirium : Entity 2 | ---@field Angle integer This variable is an eight bit integers, so the allowed values are the integers from 0 to 255 (inclusive). You can use a linear interpolation between the [0: 255] and the [0: 360[ ranges in order to convert angles in degree to this system. 3 | ---@field AttackID integer Internal `I1` value used by Delirium to identify the bullet hell pattern it is currently executing. 4 | ---@field BossType integer `EntityType` of the boss Delirium is currently transformed as. 5 | ---@field BossVariant integer Variant of the boss Delirium is currently transformed as. 6 | ---@field Cycle integer Internal `I2` value used by Delirium to identify whether red mode is activated and the amount of time before a teleportation. You should not use this variable directly and instead rely on the `GetTeleportationTimer`, `SetTeleportationTimer`, `IsRedMode` and `SetRedMode` functions instead. The only reason to use this variable directly is if you want to freeze it to a certain value that you know will do exactly what you want (for instance disable red mode and prevent teleportation). 7 | ---@field RemainingAttacks integer Number of attacks remaining before Delirium transforms into another boss. 8 | ---@field StateD NpcState Internal `State` of Delirium. 9 | ---@field TransformationTimer integer Get or set the amount of time before Delirium transforms into another boss. 10 | local EntityDelirium = {} 11 | 12 | ---@return integer 13 | function EntityDelirium:GetTeleportationTimer() 14 | end 15 | 16 | ---Returns a boolean indicating if the red mode is activated or not. 17 | ---@return boolean 18 | function EntityDelirium:IsRedMode() 19 | end 20 | 21 | ---Enable or disable red mode according to the parameter on. 22 | ---@param on boolean 23 | function EntityDelirium:SetRedMode(on) 24 | end 25 | 26 | ---Set the number of frames before Delirium teleports. Negative values are not allowed. 27 | ---@param timer integer 28 | function EntityDelirium:SetTeleportationTimer(timer) 29 | end 30 | 31 | ---Transform Delirium into the entity with the specified type and variant. 32 | ---@param type EntityType 33 | ---@param variant? integer @default: `0` 34 | function EntityDelirium:Transform(type, variant) 35 | end 36 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/entityconfig/EntityConfig.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityConfig 2 | _G.EntityConfig = {} 3 | 4 | ---Returns the config of the provided entity. 5 | ---@param type EntityType 6 | ---@param variant? integer @default: `-1` 7 | ---@param subType? integer @default: `-1` 8 | ---@return EntityConfigEntity? 9 | function EntityConfig.GetEntity(type, variant, subType) 10 | end 11 | 12 | ---Returns the highest PlayerType currently assigned to a valid character. 13 | ---@return PlayerType 14 | function EntityConfig.GetMaxPlayerType() 15 | end 16 | 17 | ---Returns the config associated with the character of the specified PlayerType. 18 | ---@param playerType PlayerType 19 | ---@return EntityConfigPlayer? 20 | function EntityConfig.GetPlayer(playerType) 21 | end 22 | 23 | ---Returns nil if there is no co-op baby with the given ID. 24 | ---@param type BabySubType 25 | ---@return EntityConfigBaby? 26 | function EntityConfig.GetBaby(type) 27 | end 28 | 29 | ---Returns the highest ID (corresponds to SubType) currently assigned to a valid co-op baby. 30 | ---@return integer 31 | function EntityConfig.GetMaxBabyID() 32 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/entityconfig/EntityConfigBaby.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityConfigBaby 2 | local EntityConfigBaby = {} 3 | 4 | ---@return Achievement 5 | function EntityConfigBaby:GetAchievementID ( ) 6 | end 7 | 8 | ---@return BabySubType 9 | function EntityConfigBaby:GetID ( ) 10 | end 11 | 12 | ---@return string 13 | function EntityConfigBaby:GetName ( ) 14 | end 15 | 16 | ---@return string 17 | function EntityConfigBaby:GetSpritesheetPath ( ) 18 | end 19 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityDecoration.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityDecoration : GridEntity 2 | local GridEntityDecoration = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityFire.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityFire : GridEntity 2 | local GridEntityFire = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityGravity.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityGravity : GridEntity 2 | local GridEntityGravity = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityLock.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityLock : GridEntity 2 | local GridEntityLock = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityStairs.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityStairs : GridEntity 2 | local GridEntityStairs = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityStatue.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityStatue : GridEntity 2 | local GridEntityStatue = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityTeleporter.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityTeleporter : GridEntity 2 | local GridEntityTeleporter = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityTrapDoor.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityTrapDoor : GridEntity 2 | local GridEntityTrapDoor = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityWall.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityWall : GridEntity 2 | local GridEntityWall = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityWeb.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityWeb : GridEntity 2 | local GridEntityWeb = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/history/History.lua: -------------------------------------------------------------------------------- 1 | ---@class History 2 | local History = {} 3 | 4 | ---Returns a table of collectible `HistoryItem` objects. 5 | ---@return HistoryItem[] 6 | function History:GetCollectiblesHistory() 7 | end 8 | 9 | ---Removes an item from the item history tracker on the right-hand side of the screen. Note that this does not remove the item effect from Isaac. 10 | ---@param index integer 11 | ---@return boolean `true` if an item was removed, `false` if not. 12 | function History:RemoveHistoryItemByIndex(index) 13 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/history/HistoryItem.lua: -------------------------------------------------------------------------------- 1 | ---@class HistoryItem 2 | local HistoryItem = {} 3 | 4 | ---Returns the CollectibleType tied to the history item. 5 | ---@return CollectibleType 6 | function HistoryItem:GetItemID() 7 | end 8 | 9 | ---Returns the ItemPool tied to the history item. 10 | ---@return ItemPool 11 | function HistoryItem:GetItemPoolType() 12 | end 13 | 14 | ---Returns the LevelStage tied to the history item. 15 | ---@return LevelStage 16 | function HistoryItem:GetLevelStage() 17 | end 18 | 19 | ---Returns the RoomType tied to the history item. 20 | ---@return RoomType 21 | function HistoryItem:GetRoomType() 22 | end 23 | 24 | ---Returns the time the history item was added. 25 | ---@return integer 26 | function HistoryItem:GetTime() 27 | end 28 | 29 | ---@return boolean 30 | function HistoryItem:IsTrinket() 31 | end 32 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/hud/DebugRenderer.lua: -------------------------------------------------------------------------------- 1 | ---@class DebugRenderer 2 | _G.DebugRenderer = {} 3 | 4 | ---TODO: Document me! 5 | ---@param index integer 6 | ---@param unknown boolean TODO: Document me! 7 | ---@return Shape 8 | function DebugRenderer.Get(index, unknown) 9 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/hud/HUD.lua: -------------------------------------------------------------------------------- 1 | ---@class HUD 2 | local HUD = {} 3 | 4 | ---Flashes the red hearts on the hud tied to the provided player. 5 | ---@param player EntityPlayer 6 | function HUD:FlashRedHearts(player) 7 | end 8 | 9 | ---Get the fill of the boss hp bar 10 | ---@return number 11 | function HUD:GetBossHPBarFill() 12 | end 13 | 14 | ---Sprite object used to render pills, cards and rune sprites in the hud. 15 | ---@return Sprite 16 | function HUD:GetCardsPillsSprite() 17 | end 18 | 19 | ---@return Sprite 20 | function HUD:GetChargeBarSprite() 21 | end 22 | 23 | ---Sprite object used to render the coop player selection menu. 24 | ---@return Sprite 25 | function HUD:GetCoopMenuSprite() 26 | end 27 | 28 | ---Sprite object used for bag of crafting hud. 29 | ---@return Sprite 30 | function HUD:GetCraftingSprite() 31 | end 32 | 33 | ---Sprite object used for the fortune popup window. 34 | ---@return Sprite 35 | function HUD:GetFortuneSprite() 36 | end 37 | 38 | ---@return Sprite 39 | function HUD:GetHeartsSprite() 40 | end 41 | 42 | ---Sprite object used for Tainted Isaac inventory system. 43 | ---@return Sprite 44 | function HUD:GetInventorySprite() 45 | end 46 | 47 | ---@return Sprite 48 | function HUD:GetPickupsHUDSprite() 49 | end 50 | 51 | ---@param index? integer @default: `0` 52 | ---@return PlayerHUD 53 | function HUD:GetPlayerHUD(index) 54 | end 55 | 56 | ---Tainted blue baby poop spell sprite 57 | ---@return Sprite 58 | function HUD:GetPoopSpellSprite() 59 | end 60 | 61 | ---Sprite object used for text streak popups. For example: picking up items, displaying floor name, etc. 62 | ---@return Sprite 63 | function HUD:GetStreakSprite() 64 | end 65 | 66 | ---Sets the fill of the boss hp bar. 67 | ---@param percent number Accepts values between `0` and `1`. Numbers below `0` cause the boss hp bar to not be rendered. 68 | function HUD:SetBossHPBarFill(percent) 69 | end 70 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/hud/Minimap.lua: -------------------------------------------------------------------------------- 1 | ---@class Minimap 2 | _G.Minimap = {} 3 | 4 | ---Returns the minimap's current display size. 5 | ---@return Vector --When not expanded, always returns `Vector(47,47)`. 6 | function Minimap.GetDisplayedSize() 7 | end 8 | 9 | ---@return MinimapState 10 | function Minimap.GetState() 11 | end 12 | 13 | ---Returns how long the button action for the map has been held down to expand the map 14 | ---@return integer 15 | function Minimap.GetHoldTime() 16 | end 17 | 18 | ---Returns the Sprite object that holds map icons for Curses, Restock, and map-revealing effects 19 | ---@return Sprite 20 | function Minimap.GetItemIconsSprite() 21 | end 22 | 23 | ---Returns the Sprite object that holds all map icons 24 | ---@return Sprite 25 | function Minimap.GetIconsSprite() 26 | end 27 | 28 | ---@return integer 29 | function Minimap.GetShakeDuration() 30 | end 31 | 32 | ---@return Vector 33 | function Minimap.GetShakeOffset() 34 | end 35 | 36 | ---@param duration integer 37 | function Minimap.SetShakeDuration(duration) 38 | end 39 | 40 | ---@param offset Vector 41 | function Minimap.SetShakeOffset(offset) 42 | end 43 | 44 | ---@param state MinimapState 45 | function Minimap.SetState(state) 46 | end 47 | 48 | ---Sets how long the button action for the map has been held down to expand the map 49 | ---@param time integer 50 | function Minimap.SetHoldTime(time) 51 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/hud/PlayerHUD.lua: -------------------------------------------------------------------------------- 1 | ---@class PlayerHUD 2 | local PlayerHUD = {} 3 | 4 | ---Returns the PlayerHUDHeart from the provided index. 5 | ---@param index integer 6 | ---@return PlayerHUDHeart? 7 | function PlayerHUD:GetHeartByIndex(index) 8 | end 9 | 10 | ---Returns a table of `PlayerHUDHeart` objects. 11 | ---@return PlayerHUDHeart[] 12 | function PlayerHUD:GetHearts() 13 | end 14 | 15 | ---@return HUD 16 | function PlayerHUD:GetHUD() 17 | end 18 | 19 | ---@return EntityPlayer 20 | function PlayerHUD:GetPlayer() 21 | end 22 | 23 | ---@param slot ActiveSlot 24 | ---@param position Vector 25 | ---@param alpha? number @default: `1`. 26 | ---@param scale? number @default: `1`. 27 | function PlayerHUD:RenderActiveItem(slot, position, alpha, scale) 28 | end 29 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/hud/PlayerHUDHeart.lua: -------------------------------------------------------------------------------- 1 | ---@class PlayerHUDHeart 2 | local PlayerHUDHeart = {} 3 | 4 | ---TODO: Document me! 5 | ---@return integer 6 | function PlayerHUDHeart:GetFlashType() 7 | end 8 | 9 | ---Returns the name of the heart's animation. 10 | ---@return string 11 | function PlayerHUDHeart:GetHeartAnim() 12 | end 13 | 14 | ---Returns the name of the heart's overlay animation. 15 | ---@return string 16 | function PlayerHUDHeart:GetHeartOverlayAnim() 17 | end 18 | 19 | ---Returns true if the golden heart overlay is visible. 20 | ---@return boolean 21 | function PlayerHUDHeart:IsGoldenHeartOverlayVisible() 22 | end 23 | 24 | ---Returns true if the heart is visible. 25 | ---@return boolean 26 | function PlayerHUDHeart:IsVisible() 27 | end 28 | 29 | ---Returns true if the eternal heart overlay is visible. 30 | ---@return boolean 31 | function PlayerHUDHeart:IsEternalHeartOverlayVisible() 32 | end 33 | 34 | ---Returns true if affected under Tainted Magdeline's fading heart mechanic. 35 | function PlayerHUDHeart:IsFadingHeart() 36 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/levelgenerator/LevelGenerator.lua: -------------------------------------------------------------------------------- 1 | ---@class LevelGenerator 2 | local LevelGenerator = {} 3 | 4 | ---Returns a table of all of the `LevelGeneratorRoom` objects. 5 | ---@return LevelGeneratorRoom[] 6 | function LevelGenerator:GetAllRooms() 7 | end 8 | 9 | ---Returns a table of all of the `LevelGeneratorRoom` objects that are deadends. 10 | ---@return LevelGeneratorRoom[] 11 | function LevelGenerator:GetDeadEnds() 12 | end 13 | 14 | ---Returns a table of all of the `LevelGeneratorRoom` objects that are not deadends. 15 | ---@return LevelGeneratorRoom[] 16 | function LevelGenerator:GetNonDeadEnds() 17 | end 18 | 19 | ---Places a LevelGeneratorRoom object onto the level-grid. 20 | ---@param column integer The column. It must be between `0` and `12`. 21 | ---@param row integer The row. It must be between `0` and `12`. 22 | ---@param shape RoomShape The shape of the room. 23 | ---@param room LevelGeneratorRoom The level generator room. 24 | ---@return integer? generationIndex If the room was placed, the generation index is returned. Otherwise it is `nil`. 25 | function LevelGenerator:PlaceRoom(column, row, shape, room) 26 | end 27 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/levelgenerator/LevelGeneratorEntry.lua: -------------------------------------------------------------------------------- 1 | ---@class LevelGeneratorEntry 2 | local LevelGeneratorEntry = {} 3 | 4 | ---TODO: Document me! 5 | ---@param doors integer 6 | function LevelGeneratorEntry:SetAllowedDoors(doors) 7 | end 8 | 9 | ---TODO: Document me! 10 | ---@param colIdx integer 11 | function LevelGeneratorEntry:SetColIdx(colIdx) 12 | end 13 | 14 | ---TODO: Document me! 15 | ---@param lineIndex integer 16 | function LevelGeneratorEntry:SetLineIdx(lineIndex) 17 | end 18 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/levelgenerator/LevelGeneratorRoom.lua: -------------------------------------------------------------------------------- 1 | ---@class LevelGeneratorRoom 2 | local LevelGeneratorRoom = {} 3 | 4 | ---TODO: Document me! 5 | ---@return integer 6 | function LevelGeneratorRoom:Column() 7 | end 8 | 9 | ---Return a mask of the available doors of the room slot. In order to check if a door at a given slot is available, use the DoorSlot enumeration. 10 | ---@return integer 11 | function LevelGeneratorRoom:DoorMask() 12 | end 13 | 14 | ---Index of the room during generation. 15 | ---@return integer `0` if the room was the first to be generated, `1` if it was the second, etc. 16 | function LevelGeneratorRoom:GenerationIndex() 17 | end 18 | 19 | ---@return boolean 20 | function LevelGeneratorRoom:IsDeadEnd() end 21 | 22 | ---Returns a table of the generation indices of the neighboring rooms. 23 | ---@return integer[] 24 | function LevelGeneratorRoom:Neighbors() 25 | end 26 | 27 | ---Return the row of the room slot on the level grid. 28 | ---@return integer `0` for the first row, `1` for the second, etc. 29 | function LevelGeneratorRoom:Row() 30 | end 31 | 32 | ---Return the shape of the room, as per the `RoomShape` enumeration. 33 | ---@return RoomShape 34 | function LevelGeneratorRoom:Shape() 35 | end 36 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/BestiaryMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class BestiaryMenu 2 | _G.BestiaryMenu = {} 3 | 4 | ---Returns the bestiary menu sprite. 5 | ---@return Sprite 6 | function BestiaryMenu.GetBestiaryMenuSprite() 7 | end 8 | 9 | ---Returns the sprite of the selectable elements that shows the "DeathScreen" enemy sprite. 10 | ---@return Sprite 11 | function BestiaryMenu.GetDeathScreenSprite() 12 | end 13 | 14 | ---Returns the animated enemy preview sprite. 15 | ---@return Sprite 16 | function BestiaryMenu.GetEnemySprite() 17 | end 18 | 19 | ---Returns the current page number. 20 | ---@return integer 21 | function BestiaryMenu.GetSelectedPage() 22 | end 23 | 24 | ---@return integer 25 | function BestiaryMenu.GetLastEnemyPageID() 26 | end 27 | 28 | ---@return integer 29 | function BestiaryMenu.GetNumBossPages() 30 | end 31 | 32 | ---@return integer 33 | function BestiaryMenu.GetNumMonsterPages() 34 | end 35 | 36 | ---@return integer 37 | function BestiaryMenu.GetNumPages() 38 | end 39 | 40 | ---Returns the selected element on the current page. 41 | ---@return integer 42 | function BestiaryMenu.GetSelectedElement() 43 | end 44 | 45 | ---Sets the current page. 46 | ---@param page integer 47 | function BestiaryMenu.SetSelectedPage(page) 48 | end 49 | 50 | ---Sets the selected element on the current page. 51 | ---@param element integer 52 | function BestiaryMenu.SetSelectedElement(element) 53 | end 54 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/ChallengeMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class ChallengeMenu 2 | _G.ChallengeMenu = {} 3 | 4 | ---Returns the challenge menu paper sprite. 5 | ---@return Sprite 6 | function ChallengeMenu.GetSprite() 7 | end 8 | 9 | ---Returns the id of the currently selected challenge. 10 | ---@return Challenge 11 | function ChallengeMenu.GetSelectedChallengeID() 12 | end 13 | 14 | ---Sets the currently selected challenge. 15 | ---@param challenge Challenge 16 | function ChallengeMenu.SetSelectedChallengeID(challenge) 17 | end 18 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/CollectionMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class CollectionMenu 2 | _G.CollectionMenu = {} 3 | 4 | ---Returns the collection menu sprite (Paper sprite and all other decoration). 5 | ---@return Sprite 6 | function CollectionMenu.GetCollectionMenuSprite() 7 | end 8 | 9 | ---Returns the sprite of the selectable elements that shows the "DeathScreen" item sprites. 10 | ---@return Sprite 11 | function CollectionMenu.GetDeathScreenSprite() 12 | end 13 | 14 | ---@return integer 15 | function CollectionMenu.GetSelectedPage() 16 | end 17 | 18 | ---@return integer 19 | function CollectionMenu.GetSelectedElement() 20 | end 21 | 22 | ---Sets the current page. 23 | ---@param page integer 24 | function CollectionMenu.SetSelectedPage(page) 25 | end 26 | 27 | ---@param elementNumber integer 28 | function CollectionMenu.SetSelectedElement(elementNumber) 29 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/ControllerSelectMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class ControllerSelectMenu 2 | _G.ControllerSelectMenu = {} 3 | 4 | ---@return Sprite 5 | function ControllerSelectMenu.GetSprite() 6 | end 7 | 8 | ---@return integer 9 | function ControllerSelectMenu.GetSelectedElement() 10 | end 11 | 12 | ---@param elementNumber integer 13 | function ControllerSelectMenu.SetSelectedElement(elementNumber) 14 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/CustomChallengeMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class CustomChallengeMenu 2 | _G.CustomChallengeMenu = {} 3 | 4 | ---@return Sprite 5 | function CustomChallengeMenu.GetSprite() 6 | end 7 | 8 | ---Returns the currently selected modded challenge. 9 | ---@return Challenge 10 | function CustomChallengeMenu.GetSelectedChallengeID() 11 | end 12 | 13 | ---Sets the current modded challenge. 14 | ---@param challenge Challenge 15 | function CustomChallengeMenu.SetSelectedChallengeID(challenge) 16 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/CutscenesMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class CutscenesMenu 2 | _G.CutscenesMenu = {} 3 | 4 | ---@return Sprite 5 | function CutscenesMenu.GetSprite() 6 | end 7 | 8 | ---@return integer 9 | function CutscenesMenu.GetSelectedElement() 10 | end 11 | 12 | ---@param elementNumber integer 13 | function CutscenesMenu.SetSelectedElement(elementNumber) 14 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/DailyChallengeMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class DailyChallengeMenu 2 | _G.DailyChallengeMenu = {} 3 | 4 | ---Returns the daily challenge menu sprite (background, most of the visible papers). 5 | ---@return Sprite 6 | function DailyChallengeMenu.GetSprite() 7 | end 8 | 9 | ---Returns the leaderboard sprite. 10 | ---@return Sprite 11 | function DailyChallengeMenu.GetLeaderboardSprite() 12 | end 13 | 14 | ---Returns the leaderboard score menu sprite. 15 | ---@return Sprite 16 | function DailyChallengeMenu.GetLeaderboardScoreMenuSprite() 17 | end 18 | 19 | ---@return integer 20 | function DailyChallengeMenu.GetSelectedElement() 21 | end 22 | 23 | ---Returns the hours left until the daily challenge resets. 24 | ---@return integer 25 | function DailyChallengeMenu.GetTimeLeftHours() 26 | end 27 | 28 | ---Returns the minutes left until the daily challenge resets. 29 | ---@return integer 30 | function DailyChallengeMenu.GetTimeLeftMinutes() 31 | end 32 | 33 | ---Returns the seconds left until the daily challenge resets. 34 | ---@return integer 35 | function DailyChallengeMenu.GetTimeLeftSeconds() 36 | end 37 | 38 | ---@return boolean 39 | function DailyChallengeMenu.IsLeaderboardVisible() 40 | end 41 | 42 | ---@param element integer 43 | function DailyChallengeMenu.SetSelectedElement(element) 44 | end 45 | 46 | ---@return integer 47 | function DailyChallengeMenu.GetState() 48 | end 49 | 50 | ---@param state integer 51 | function DailyChallengeMenu.SetState(state) 52 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/KeyConfigMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class KeyConfigMenu 2 | _G.KeyConfigMenu = {} 3 | 4 | ---@return Sprite 5 | function KeyConfigMenu.GetSprite() 6 | end 7 | 8 | ---@return integer 9 | function KeyConfigMenu.GetColumn() 10 | end 11 | 12 | ---@return integer 13 | function KeyConfigMenu.GetSelectedElement() 14 | end 15 | 16 | ---@param column integer 17 | function KeyConfigMenu.SetSelectedColumn(column) 18 | end 19 | 20 | ---@param elementNumber integer 21 | function KeyConfigMenu.SetSelectedElement(elementNumber) 22 | end 23 | 24 | ---Returns true if the player is editing their key config. 25 | ---@return boolean 26 | function KeyConfigMenu.IsEditActive() 27 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/MainMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class MainMenu 2 | _G.MainMenu = {} 3 | 4 | ---@return Sprite 5 | function MainMenu.GetContinueWidgetSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function MainMenu.GetGameMenuSprite() 10 | end 11 | 12 | ---@return integer 13 | function MainMenu.GetSelectedElement() 14 | end 15 | 16 | ---@param elementNumber integer 17 | function MainMenu.SetSelectedElement(elementNumber) 18 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/MenuManager.lua: -------------------------------------------------------------------------------- 1 | ---@class MenuManager 2 | _G.MenuManager = {} 3 | 4 | ---Returns the active menu on the main menu matching `MainMenuType`. 5 | ---@return MainMenuType 6 | function MenuManager.GetActiveMenu() 7 | end 8 | 9 | ---@return Sprite 10 | function MenuManager.GetBackWidgetSprite() 11 | end 12 | 13 | ---Returns the color modifier lerp amount. This is formatted as the absolute rate of change. 14 | ---@return number 15 | function MenuManager.GetColorModifierLerpAmount() 16 | end 17 | 18 | ---@return ColorModifier 19 | function MenuManager.GetCurrentColorModifier() 20 | end 21 | 22 | ---@return Sprite 23 | function MenuManager.GetSelectWidgetSprite() 24 | end 25 | 26 | ---@return Sprite 27 | function MenuManager.GetShadowSprite() 28 | end 29 | 30 | ---@return ColorModifier 31 | function MenuManager.GetTargetColorModifier() 32 | end 33 | 34 | ---@return Vector 35 | function MenuManager.GetViewPosition() 36 | end 37 | 38 | ---Changes the active menu on the main menu to match the given `MainMenuType`. 39 | ---@param menuType MainMenuType 40 | function MenuManager.SetActiveMenu(menuType) 41 | end 42 | 43 | ---@param colorModifier ColorModifier 44 | ---@param lerp? boolean @default: `true` 45 | ---@param rate? number @default: `0.015`. 46 | function MenuManager.SetColorModifier(colorModifier, lerp, rate) 47 | end 48 | 49 | ---@param position Vector 50 | function MenuManager.SetViewPosition(position) 51 | end 52 | 53 | ---Selectively allows/disallows the game's menu to read certain inputs. Useful for custom menus. 54 | ---@param mask ButtonActionBitwise 55 | function MenuManager.SetInputMask(mask) 56 | end 57 | 58 | ---@return ButtonActionBitwise 59 | function MenuManager.GetInputMask() 60 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/ModsMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class ModsMenu 2 | _G.ModsMenu = {} 3 | 4 | ---@return Sprite 5 | function ModsMenu.GetSprite() 6 | end 7 | 8 | ---@return integer 9 | function ModsMenu.GetSelectedElement() 10 | end 11 | 12 | ---@param elementNumber integer 13 | function ModsMenu.SetSelectedElement(elementNumber) 14 | end 15 | 16 | ---Returns true if the mod list was edited. 17 | ---@return boolean 18 | function ModsMenu.WasListEdited() 19 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/OptionsMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class OptionsMenu 2 | _G.OptionsMenu = {} 3 | 4 | ---@return Sprite 5 | function OptionsMenu.GetGammaWidgetSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function OptionsMenu.GetOptionsMenuSprite() 10 | end 11 | 12 | ---@return integer 13 | function OptionsMenu.GetSelectedElement() 14 | end 15 | 16 | ---@param elementNumber integer 17 | function OptionsMenu.SetSelectedElement(elementNumber) 18 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/SaveMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class SaveMenu 2 | _G.SaveMenu = {} 3 | 4 | ---@return Sprite 5 | function SaveMenu.GetSaveSelectionMenuSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function SaveMenu.GetDeleteButtonSprite() 10 | end 11 | 12 | ---@return Sprite 13 | function SaveMenu.GetDeletePopupSprite() 14 | end 15 | 16 | ---@return Sprite 17 | function SaveMenu.GetSave1DrawingSprite() 18 | end 19 | 20 | ---@return Sprite 21 | function SaveMenu.GetSave2DrawingSprite() 22 | end 23 | 24 | ---@return Sprite 25 | function SaveMenu.GetSave3DrawingSprite() 26 | end 27 | 28 | ---@return integer 29 | function SaveMenu.GetSelectedElement() 30 | end 31 | 32 | ---Returns true if the save file deletion mode is active. 33 | ---@return boolean 34 | function SaveMenu.IsDeleteActive() 35 | end 36 | 37 | ---Sets the current element. 38 | ---@param elementNumber integer 39 | function SaveMenu.SetSelectedElement(elementNumber) 40 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/SpecialSpeedsMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class SpecialSpeedsMenu 2 | _G.SpecialSpeedsMenu = {} 3 | 4 | ---@return Sprite 5 | function SpecialSpeedsMenu.GetSprite() 6 | end 7 | 8 | ---@return integer 9 | function SpecialSpeedsMenu.GetSelectedElement() 10 | end 11 | 12 | ---@param elementNumber integer 13 | function SpecialSpeedsMenu.SetSelectedElement(elementNumber) 14 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/StatsMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class StatsMenu 2 | _G.StatsMenu = {} 3 | 4 | ---@return Sprite 5 | function StatsMenu.GetSecretsMenuSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function StatsMenu.GetSecretsMenuCursorLeftSprite() 10 | end 11 | 12 | ---@return Sprite 13 | function StatsMenu.GetSecretsMenuCursorRightSprite() 14 | end 15 | 16 | --Returns the secrets menu mini sprite #1. Used for the left scroll transition animation. 17 | ---@return Sprite 18 | function StatsMenu.GetSecretsMenuMiniSprite1() 19 | end 20 | 21 | ---@return Sprite 22 | function StatsMenu.GetSecretsMenuMiniSprite2() 23 | end 24 | 25 | ---@return Sprite 26 | function StatsMenu.GetSecretsMenuMiniSprite3() 27 | end 28 | 29 | ---@return Sprite 30 | function StatsMenu.GetSecretsMenuMiniSprite4() 31 | end 32 | 33 | ---Returns the secrets menu mini sprite #5. Used to display the currently highlighted achievement. 34 | ---@return Sprite 35 | function StatsMenu.GetSecretsMenuMiniSprite5() 36 | end 37 | 38 | ---@return Sprite 39 | function StatsMenu.GetSecretsMenuMiniSprite6() 40 | end 41 | 42 | ---@return Sprite 43 | function StatsMenu.GetSecretsMenuMiniSprite7() 44 | end 45 | 46 | ---@return Sprite 47 | function StatsMenu.GetSecretsMenuMiniSprite8() 48 | end 49 | 50 | ---Returns the secrets menu mini sprite #9. Used for the right scroll transition animation. 51 | ---@return Sprite 52 | function StatsMenu.GetSecretsMenuMiniSprite9() 53 | end 54 | 55 | ---@return Sprite 56 | function StatsMenu.GetStatsMenuSprite() 57 | end 58 | 59 | ---@return boolean 60 | function StatsMenu.IsSecretsMenuActive() 61 | end 62 | 63 | ---@param element integer 64 | function StatsMenu.SetSelectedElement(element) 65 | end 66 | 67 | ---@return integer 68 | function StatsMenu.GetSelectedElement() 69 | end 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/TitleMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class TitleMenu 2 | _G.TitleMenu = {} 3 | 4 | ---@return Sprite 5 | function TitleMenu.GetSprite() 6 | end 7 | 8 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/proceduralitems/ProceduralEffect.lua: -------------------------------------------------------------------------------- 1 | ---@class ProceduralEffect 2 | local ProceduralEffect = {} 3 | 4 | ---Returns a table that describes the action argument. 5 | --- 6 | ---If `GetActionType` returns `ProceduralEffectActionType.USE_ACTIVE_ITEM`, the returned 7 | ---table has the following fields: 8 | --- 9 | --- - id: integer 10 | --- 11 | ---If `GetActionType` returns `ProceduralEffectActionType.ADD_TEMPRORY_EFFECT`, the returned 12 | ---table has the following fields: 13 | --- 14 | --- - id: integer 15 | --- 16 | ---If `GetActionType` returns `ProceduralEffectActionType.SPAWN_ENTITY`, the returned 17 | ---table has the following fields: 18 | --- 19 | --- - type: integer 20 | --- - variant: integer 21 | --- 22 | ---If `GetActionType` returns `ProceduralEffectActionType.CONVERT_ENTITY`, the returned 23 | ---table has the following fields: 24 | --- 25 | --- - fromType: integer 26 | --- - fromvariant: integer 27 | --- - toType: integer 28 | --- - tovariant: integer 29 | --- 30 | ---If `GetActionType` returns `ProceduralEffectActionType.AREA_DAMAGE`, the returned 31 | ---table has the following fields: 32 | --- 33 | --- - radius: number 34 | --- - damage: number 35 | --- 36 | ---If `GetActionType` returns `ProceduralEffectActionType.FART`, the returned 37 | ---table has the following fields: 38 | --- 39 | --- - fromType: number 40 | --- - radius: number 41 | ---@return table 42 | function ProceduralEffect:GetProceduralEffect() 43 | end 44 | 45 | ---Returns the action type. 46 | ---@return ProceduralEffectActionType 47 | function ProceduralEffect:GetActionType() 48 | end 49 | 50 | ---Returns a table that describes the condition argument. 51 | --- 52 | ---When `ProceduralEffect:GetConditionType` returns `ProceduralEffectConditionType.ENTITY_SPAWN`, the returned 53 | ---table has the following fields: 54 | --- 55 | --- - type: integer 56 | --- - variant: integer 57 | --- 58 | ---@return table 59 | function ProceduralEffect:GetConditionProperty() 60 | end 61 | 62 | ---Returns the condition type. 63 | ---@return ProceduralEffectConditionType 64 | function ProceduralEffect:GetConditionType() 65 | end 66 | 67 | ---Returns the trigger chance. The returned value is between 0 and 1. 68 | ---@return number 69 | function ProceduralEffect:GetTriggerChance() 70 | end 71 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/proceduralitems/ProceduralItem.lua: -------------------------------------------------------------------------------- 1 | ---@class ProceduralItem 2 | local ProceduralItem = {} 3 | 4 | ---@return number 5 | function ProceduralItem:GetDamage() 6 | end 7 | 8 | ---Returns the procedural item's effect by an index. 9 | ---@param index integer The effect's index. 10 | ---@return ProceduralEffect? 11 | function ProceduralItem:GetEffect(index) 12 | end 13 | 14 | ---Returns the amount of effects the procedural item has. 15 | ---@return integer 16 | function ProceduralItem:GetEffectCount() 17 | end 18 | 19 | ---@return number 20 | function ProceduralItem:GetFireDelay() 21 | end 22 | 23 | ---@return integer 24 | function ProceduralItem:GetID() 25 | end 26 | 27 | ---Retuns the item config of the current glitched item. 28 | ---@return ItemConfigItem 29 | function ProceduralItem:GetItem() 30 | end 31 | 32 | ---@return number 33 | function ProceduralItem:GetLuck() 34 | end 35 | 36 | ---@return number 37 | function ProceduralItem:GetRange() 38 | end 39 | 40 | ---@return number 41 | function ProceduralItem:GetShotSpeed() 42 | end 43 | 44 | ---@return number 45 | function ProceduralItem:GetSpeed() 46 | end 47 | 48 | ---Returns the item config that is randomly selected by the current glitched item. 49 | ---@return ItemConfigItem? `nil` if the selected `ItemConfigItem` does not exist 50 | function ProceduralItem:GetTargetItem() 51 | end 52 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/proceduralitems/ProceduralItemManager.lua: -------------------------------------------------------------------------------- 1 | ---@class ProceduralItemManager 2 | _G.ProceduralItemManager = {} 3 | 4 | ---Creates a glitched item based on a given seed. 5 | ---@param seed integer 6 | ---@param unknown integer TODO: Document me 7 | ---@return integer itemId The id of the item 8 | function ProceduralItemManager.CreateProceduralItem(seed, unknown) 9 | end 10 | 11 | ---Returns the glitched item at the given index. 12 | ---@param index integer 13 | ---@return ProceduralItem 14 | function ProceduralItemManager.GetProceduralItem(index) 15 | end 16 | 17 | ---Returns the total amount of procedural items. 18 | ---@return integer 19 | function ProceduralItemManager.GetProceduralItemCount() 20 | end 21 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Beam.lua: -------------------------------------------------------------------------------- 1 | ---@class Beam 2 | local Beam = {} 3 | 4 | ---Constructs a new beam object. 5 | --- 6 | ---**Example** 7 | --- 8 | ---```lua 9 | --- 10 | ---local sprite = Sprite() 11 | ---sprite:Load("gfx/893.000_ball and chain.anm2", true) 12 | ---chain = Beam(sprite, "chain", true, false)--- 13 | --- 14 | ---mod:AddCallback(ModCallbacks.MC_POST_PLAYER_RENDER, function(_, player) 15 | --- chain:GetSprite():PlayOverlay("Chain", false) 16 | --- local center = game:GetLevel():GetCurrentRoom():GetCenterPos() 17 | --- chain:Add(Isaac.WorldToScreen(center)) 18 | --- chain:Add(Isaac.WorldToScreen(player.Position)) 19 | --- chain:Render() 20 | ---end) 21 | ---``` 22 | ---@param sprite Sprite 23 | ---@param layerId integer 24 | ---@param useOverlay boolean 25 | ---@param unknownBool boolean TODO: Document me! 26 | ---@return Beam 27 | ---@overload fun(sprite: Sprite, layerName: string, useOverlay: boolean, unknownBool: boolean) 28 | function _G.Beam(sprite, layerId, useOverlay, unknownBool) 29 | end 30 | 31 | ---Adds a point to the beam. 32 | ---@param position Vector 33 | ---@param spritesheetCoordinate number The Y position of the spritesheet that should be drawn by the time this Point is reached. For example, two points of `0` and `64` SpritesheetCoordinate will render the spritesheet starting from `y 0` to `y 64`, while an additional third point of `0` will draw it in reverse from `y 64` to `y 0`. `width` acts as 34 | ---@param width? number @default: `1.0`. A multiplier for how wide the beam should be. A non-zero value will scale the spritesheet width accordingly. This is interpolated between points. 35 | ---@overload fun(self: Beam, point: Point) 36 | function Beam:Add(position, spritesheetCoordinate, width) 37 | end 38 | 39 | ---@return integer 40 | function Beam:GetLayer() 41 | end 42 | 43 | ---Returns a table of the `Point` objects currently stored. 44 | ---@return Point[] 45 | function Beam:GetPoints() 46 | end 47 | 48 | ---@return Sprite 49 | function Beam:GetSprite() 50 | end 51 | 52 | ---TODO: Document me! 53 | ---@return boolean 54 | function Beam:GetUnkBool() 55 | end 56 | 57 | ---Returns if the beam is currently using the overlay sprite or not. 58 | ---@return boolean 59 | function Beam:GetUseOverlay() 60 | end 61 | 62 | ---Renders the beam. 63 | ---@param clearPoints? boolean @default: `true` 64 | function Beam:Render(clearPoints) 65 | end 66 | 67 | ---Sets the beam's layer. 68 | ---@param layerId integer 69 | ---@overload fun(self: Beam, layerName: string) 70 | function Beam:SetLayer(layerId) 71 | end 72 | 73 | ---Sets the beam's sprite. 74 | ---@param sprite Sprite 75 | ---@overload fun(self: Beam, sprite: Sprite, layerName: string, useOverlay: boolean) 76 | ---@overload fun(self: Beam, sprite: Sprite, layerId: integer, useOverlay: boolean) 77 | function Beam:SetSprite(sprite) 78 | end 79 | 80 | ---TODO: Document me! 81 | ---@param unknownBool boolean 82 | function Beam:SetUnkBool(unknownBool) 83 | end 84 | 85 | ---TODO: Document me! 86 | ---@param useOverlay boolean 87 | function Beam:SetUseOverlay(useOverlay) 88 | end 89 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/BlendMode.lua: -------------------------------------------------------------------------------- 1 | ---@class BlendMode 2 | ---@field AlphaDestinationFactor BlendFactor 3 | ---@field AlphaSourceFactor BlendFactor 4 | ---@field RGBDestinationFactor BlendFactor 5 | ---@field RGBSourceFactor BlendFactor 6 | local BlendMode = {} 7 | 8 | ---@param type BlendType 9 | function BlendMode:SetMode(type) 10 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Capsule.lua: -------------------------------------------------------------------------------- 1 | ---@class Capsule 2 | local Capsule = {} 3 | 4 | ---Causes the capsule to run collision code with `capsule2` 5 | ---@param capsule2 Capsule 6 | ---@param vec Vector 7 | ---@return boolean 8 | function Capsule:Collide(capsule2, vec) 9 | end 10 | 11 | ---TODO: Document me! 12 | ---@return Vector 13 | function Capsule:GetDirection() 14 | end 15 | 16 | ---TODO: Document me! 17 | ---@return number 18 | function Capsule:GetF1() 19 | end 20 | 21 | ---TODO: Document me! 22 | ---@return number 23 | function Capsule:GetF2() 24 | end 25 | 26 | ---TODO: Returns the capsule's position. 27 | ---@return Vector 28 | function Capsule:GetPosition() 29 | end 30 | 31 | ---TODO: Document me! 32 | ---@return Vector 33 | function Capsule:GetV2() 34 | end 35 | 36 | ---TODO: Document me! 37 | ---@return Vector 38 | function Capsule:GetV3() 39 | end 40 | 41 | ---@param position Vector 42 | ---@param sizeMultiplier Vector 43 | ---@param rotation number 44 | ---@param size number 45 | ---@return Capsule 46 | function _G.Capsule(position, sizeMultiplier, rotation, size) 47 | end 48 | 49 | ---@param position Vector 50 | ---@param targetPosition Vector 51 | ---@param size number 52 | ---@return Capsule 53 | function _G.Capsule(position, targetPosition, size) 54 | end 55 | 56 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/DestinationQuad.lua: -------------------------------------------------------------------------------- 1 | ---@class DestinationQuad 2 | local DestinationQuad = {} 3 | 4 | ---Constructs a new destination quad object. 5 | ---@param topLeft Vector 6 | ---@param topRight Vector 7 | ---@param bottomLeft Vector 8 | ---@param bottomRight Vector 9 | ---@return DestinationQuad 10 | function _G.DestinationQuad(topLeft, topRight, bottomLeft, bottomRight) 11 | end 12 | 13 | ---@return Vector 14 | function DestinationQuad:GetBottomLeft() 15 | end 16 | 17 | ---@return Vector 18 | function DestinationQuad:GetBottomRight() 19 | end 20 | 21 | ---@return Vector 22 | function DestinationQuad:GetTopLeft() 23 | end 24 | 25 | ---@return Vector 26 | function DestinationQuad:GetTopRight() 27 | end 28 | 29 | ---@param vector Vector 30 | function DestinationQuad:SetBottomLeft(vector) 31 | end 32 | 33 | ---@param vector Vector 34 | function DestinationQuad:SetBottomRight(vector) 35 | end 36 | 37 | ---@param vector Vector 38 | function DestinationQuad:SetTopLeft(vector) 39 | end 40 | 41 | ---@param vector Vector 42 | function DestinationQuad:SetTopRight(vector) 43 | end 44 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/GLSLValue.lua: -------------------------------------------------------------------------------- 1 | ---@class GLSLValue 2 | local GLSLValue = {} 3 | 4 | ---meta function to access data in a given table key. 5 | function GLSLValue:__index() 6 | end 7 | 8 | ---meta function to write data in a given table key. 9 | ---@param value number 10 | function GLSLValue:__newindex(value) 11 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Image.lua: -------------------------------------------------------------------------------- 1 | ---@class Image -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Pipeline.lua: -------------------------------------------------------------------------------- 1 | ---@class Pipeline 2 | local Pipeline = {} 3 | 4 | ---TODO: Document me! 5 | ---@param nbVertices integer 6 | ---@param shader Shader 7 | ---@param nbElements integer 8 | ---@return VertexBuffer 9 | function Pipeline:NewPass(nbVertices, shader, nbElements) 10 | end 11 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Point.lua: -------------------------------------------------------------------------------- 1 | ---@class Point 2 | local Point = {} 3 | 4 | ---@param position Vector 5 | ---@param spritesheetCoordinate number The Y position of the spritesheet that should be drawn by the time this Point is reached. For example, two points of `0` and `64` SpritesheetCoordinate will render the spritesheet starting from `y 0` to `y 64`, while an additional third point of `0` will draw it in reverse from `y 64` to `y 0`. `width` acts as 6 | ---@param width? number @default: `1.0`. A multiplier for how wide the beam should be. A non-zero value will scale the spritesheet width accordingly. This is interpolated between points. 7 | ---@param color? Color @default: `Color.Default` 8 | ---@param isWorldSpace? boolean @default: `false` 9 | ---@return Point 10 | function _G.Point(position, spritesheetCoordinate, width, color, isWorldSpace) 11 | end 12 | 13 | ---@return number 14 | function Point:GetSpritesheetCoordinate() 15 | end 16 | 17 | ---@return number 18 | function Point:GetWidth() 19 | end 20 | 21 | ---@return Vector 22 | function Point:GetPosition() 23 | end 24 | 25 | ---@param height number 26 | function Point:SetSpritesheetCoordinate(height) 27 | end 28 | 29 | ---@param width number 30 | function Point:SetWidth(width) 31 | end 32 | 33 | ---@param position Vector 34 | function Point:SetPosition(position) 35 | end 36 | 37 | ---@return Color 38 | function Point:GetColor() 39 | end 40 | 41 | ---@param color Color 42 | function Point:SetColor(color) 43 | end 44 | 45 | ---If false, Point is using screenspace when rendering. Otherwise, it's using worldspace. 46 | ---@return boolean 47 | function Point:GetIsWorldSpace() 48 | end 49 | 50 | ---If false, automatically converts this Point's position from worldspace to screenspace when rendering. 51 | ---@param isWorldSpace boolean 52 | function Point:SetIsWorldSpace(isWorldSpace) 53 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/RenderSet.lua: -------------------------------------------------------------------------------- 1 | ---@class RenderSet 2 | local RenderSet = {} 3 | 4 | ---TODO: Document me! 5 | ---@param vertexBuffer VertexBuffer 6 | ---@param shader Shader 7 | ---@param nElements integer 8 | ---@param first integer 9 | ---@param second? integer default: `-1` 10 | function RenderSet:SliceSingle(vertexBuffer, shader, nElements, first, second) 11 | end 12 | 13 | ---TODO: Document me! 14 | ---@param filePath string 15 | function RenderSet:SlicePipeline(filePath) 16 | end 17 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Renderer.lua: -------------------------------------------------------------------------------- 1 | ---@class Renderer 2 | local Renderer = {} 3 | 4 | ---TODO: Document me! 5 | ---@param filePath string The path to the image. 6 | ---@return Image 7 | function Renderer:LoadImage(filePath) 8 | end 9 | 10 | ---TODO: Document me! 11 | ---@return Pipeline 12 | function Renderer:Pipeline() 13 | end 14 | 15 | ---TODO: Document me! 16 | ---@return GLSLValue 17 | function Renderer:ProjectionMatrix() 18 | end 19 | 20 | ---TODO: Document me! 21 | function Renderer:RenderSet() 22 | end 23 | 24 | ---TODO: Document me! 25 | ---@param vertexShader string 26 | ---@param fragmentShader string 27 | ---@param vertexDescriptor VertexDescriptor 28 | ---@return Shader 29 | function Renderer:Shader(vertexShader, fragmentShader, vertexDescriptor) 30 | end 31 | 32 | ---TODO: Document me! 33 | ---@return Transformer 34 | function Renderer:StartTransformation() 35 | end 36 | 37 | ---TODO: Document me! 38 | ---@param x? number @default: `0` 39 | ---@param y? number @default: `0` 40 | ---@return GLSLValue 41 | function Renderer:Vec2(x, y) 42 | end 43 | 44 | ---TODO: Document me! 45 | ---@param x? number @default: `0` 46 | ---@param y? number @default: `0` 47 | ---@param z? number @default: `0` 48 | ---@return GLSLValue 49 | function Renderer:Vec3(x, y, z) 50 | end 51 | 52 | ---TODO: Document me! 53 | ---@param x? number @default: `0` 54 | ---@param y? number @default: `0` 55 | ---@param z? number @default: `0` 56 | ---@param w? number @default: `0` 57 | ---@return GLSLValue 58 | function Renderer:Vec4(x, y, z, w) 59 | end 60 | 61 | ---TODO: Document me! 62 | ---@return VertexDescriptor 63 | function Renderer:VertexDescriptor() 64 | end 65 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Shader.lua: -------------------------------------------------------------------------------- 1 | ---@class Shader 2 | local Shader = {} 3 | 4 | ---TODO: Document me! 5 | ---@param name string 6 | ---@param value GLSLValue 7 | function Shader:BindFloat(name, value) 8 | end 9 | 10 | ---TODO: Document me! 11 | ---@param name string 12 | ---@param value GLSLValue 13 | function Shader:BindVec2(name, value) 14 | end 15 | 16 | ---TODO: Document me! 17 | ---@param name string 18 | ---@param value GLSLValue 19 | function Shader:BindVec4(name, value) 20 | end 21 | 22 | ---TODO: Document me! 23 | ---@param name string 24 | ---@param value GLSLValue 25 | function Shader:BindVec3(name, value) 26 | end 27 | 28 | ---TODO: Document me! 29 | ---@param name string 30 | ---@param value GLSLValue 31 | function Shader:BindMat2(name, value) 32 | end 33 | 34 | ---TODO: Document me! 35 | ---@param name string 36 | ---@param value GLSLValue 37 | function Shader:BindMat3(name, value) 38 | end 39 | 40 | ---TODO: Document me! 41 | ---@param name string 42 | ---@param value GLSLValue 43 | function Shader:BindMat4(name, value) 44 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Shape.lua: -------------------------------------------------------------------------------- 1 | ---@class Shape 2 | local Shape = {} 3 | 4 | ---TODO: Document me! 5 | ---@return integer 6 | function Shape:GetTimeout() 7 | end 8 | 9 | ---TODO: Document me! 10 | ---@param timeout integer 11 | function Shape:SetTimeout(timeout) 12 | end 13 | 14 | ---Assigns a capsule to the shape. 15 | ---@param capsule Capsule 16 | function Shape:Capsule(capsule) 17 | end 18 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/SourceQuad.lua: -------------------------------------------------------------------------------- 1 | ---@class SourceQuad 2 | local SourceQuad = {} 3 | 4 | ---Constructs a new destination quad object. 5 | ---@param topLeft Vector 6 | ---@param topRight Vector 7 | ---@param bottomLeft Vector 8 | ---@param bottomRight Vector 9 | function _G.SourceQuad(topLeft, topRight, bottomLeft, bottomRight) 10 | end 11 | 12 | ---@return Vector 13 | function SourceQuad:GetBottomLeft() 14 | end 15 | 16 | ---@return Vector 17 | function SourceQuad:GetBottomRight() 18 | end 19 | 20 | ---@return Vector 21 | function SourceQuad:GetTopLeft() 22 | end 23 | 24 | ---@return Vector 25 | function SourceQuad:GetTopRight() 26 | end 27 | 28 | ---@param vector Vector 29 | function SourceQuad:SetBottomLeft(vector) 30 | end 31 | 32 | ---@param vector Vector 33 | function SourceQuad:SetBottomRight(vector) 34 | end 35 | 36 | ---@param vector Vector 37 | function SourceQuad:SetTopLeft(vector) 38 | end 39 | 40 | ---@param vector Vector 41 | function SourceQuad:SetTopRight(vector) 42 | end 43 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Transformer.lua: -------------------------------------------------------------------------------- 1 | ---@class Transformer 2 | local Transformer = {} 3 | 4 | ---TODO: Document me! 5 | function Transformer:Apply() 6 | end 7 | 8 | ---TODO: Document me! 9 | ---@return boolean 10 | function Transformer:IsValid() 11 | end 12 | 13 | ---TODO: Document me! 14 | ---@param image Image 15 | ---@param source SourceQuad 16 | ---@param dest DestinationQuad 17 | ---@param modifier Color 18 | function Transformer:Render(image, source, dest, modifier) 19 | end 20 | 21 | ---TODO: Document me! 22 | ---@param image Image 23 | ---@param source SourceQuad 24 | ---@param dest DestinationQuad 25 | ---@param modifier1 Color 26 | ---@param modifier2 Color 27 | ---@param modifier3 Color 28 | ---@param modifier4 Color 29 | function Transformer:RenderEx(image, source, dest, modifier1, modifier2, modifier3, modifier4) 30 | end 31 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Vertex.lua: -------------------------------------------------------------------------------- 1 | ---@class Vertex 2 | local Vertex = {} 3 | 4 | ---TODO: Document me 5 | ---@return table 6 | function Vertex:Dump() 7 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/VertexBuffer.lua: -------------------------------------------------------------------------------- 1 | ---@class VertexBuffer 2 | local VertexBuffer = {} 3 | 4 | ---TODO: Document me 5 | ---@return Vertex[] 6 | function VertexBuffer:GetElements() 7 | end 8 | 9 | ---TODO: Document me! 10 | ---@param vertexId integer 11 | ---@return Vertex? 12 | function VertexBuffer:GetVertex(vertexId) 13 | end 14 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/VertexDescriptor.lua: -------------------------------------------------------------------------------- 1 | ---@class VertexDescriptor 2 | local VertexDescriptor = {} 3 | 4 | ---TODO: Document me! 5 | ---@param type GLSLValue 6 | ---@param name string 7 | function VertexDescriptor:AddAttribute(type, name) 8 | end 9 | -------------------------------------------------------------------------------- /src/docs/vanilla/ActiveItemDesc.lua: -------------------------------------------------------------------------------- 1 | ---@class ActiveItemDesc 2 | ---@field BatteryCharge integer 3 | ---@field Charge integer 4 | ---@field Item CollectibleType 5 | ---@field PartialCharge number 6 | ---@field SubCharge integer 7 | ---@field TimedRechargeCooldown integer 8 | ---@field VarData integer 9 | local ActiveItemDesc = {} 10 | 11 | -------------------------------------------------------------------------------- /src/docs/vanilla/BitSet128.lua: -------------------------------------------------------------------------------- 1 | ---@class BitSet128 2 | ---@field l integer 3 | ---@field h integer 4 | ---@operator bnot: BitSet128 5 | ---@operator bor(BitSet128): BitSet128 6 | ---@operator band(BitSet128): BitSet128 7 | ---@operator bxor(BitSet128): BitSet128 8 | ---@operator shl(BitSet128): BitSet128 9 | ---@operator shr(BitSet128): BitSet128 10 | 11 | ---@param l? integer @default = `0` 12 | ---@param h? integer @default = `0` 13 | ---@return BitSet128 14 | function _G.BitSet128(l, h) 15 | end 16 | -------------------------------------------------------------------------------- /src/docs/vanilla/Color.lua: -------------------------------------------------------------------------------- 1 | ---@class Color 2 | ---@field A number 3 | ---@field B number 4 | ---@field BO number 5 | ---@field G number 6 | ---@field GO number 7 | ---@field R number 8 | ---@field RO number 9 | ---@operator mul(Color): Color 10 | local Color = {} 11 | 12 | ---@param m1 Color 13 | ---@param m2 Color 14 | ---@param t number 15 | ---@return Color 16 | function _G.Color.Lerp(m1, m2, t) 17 | end 18 | 19 | function Color:Reset() 20 | end 21 | 22 | ---@param Red number 23 | ---@param Green number 24 | ---@param Blue number 25 | ---@param Amount number 26 | function Color:SetColorize(Red, Green, Blue, Amount) 27 | end 28 | 29 | ---@param RedOffset number 30 | ---@param GreenOffset number 31 | ---@param BlueOffset number 32 | function Color:SetOffset(RedOffset, GreenOffset, BlueOffset) 33 | end 34 | 35 | ---@param RedTint number 36 | ---@param GreenTint number 37 | ---@param BlueTint number 38 | ---@param AlphaTint number 39 | function Color:SetTint(RedTint, GreenTint, BlueTint, AlphaTint) 40 | end 41 | 42 | _G.Color = { 43 | ---@type Color 44 | Default = Color(1,1,1,1) 45 | } -------------------------------------------------------------------------------- /src/docs/vanilla/CppContainer.lua: -------------------------------------------------------------------------------- 1 | ---@class CppList 2 | ---@field Size integer 3 | local CppList = {} 4 | 5 | -- missing metamethod len as not supported for now 6 | 7 | ---@param idx integer 8 | ---@return any 9 | function CppList:Get(idx) 10 | end 11 | 12 | ---@class CppList_RoomDescriptor : CppList 13 | local CppList_RoomDescriptor = {} 14 | 15 | ---@param idx integer 16 | ---@return RoomDescriptor 17 | function CppList_RoomDescriptor:Get(idx) 18 | end 19 | 20 | ---@class CppList_RoomConfigSpawn : CppList 21 | local CppList_RoomConfigSpawn = {} 22 | 23 | ---@param idx integer 24 | ---@return RoomConfig_Spawn 25 | function CppList_RoomConfigSpawn:Get(idx) 26 | end 27 | 28 | ---@class CppList_RoomConfigEntries : CppList 29 | local CppList_RoomConfigEntries = {} 30 | 31 | ---@param idx integer 32 | ---@return userdata 33 | function CppList_RoomConfigEntries:Get(idx) 34 | end 35 | 36 | ---@class EntityList : CppList 37 | local EntityList = {} 38 | 39 | ---@param idx integer 40 | ---@return Entity 41 | function EntityList:Get(idx) 42 | end 43 | 44 | ---@class CardConfigList : CppList 45 | local CardConfigList = {} 46 | 47 | ---@param idx integer 48 | ---@return ItemConfigCard 49 | function CardConfigList:Get(idx) 50 | end 51 | 52 | ---@class CostumeConfigList : CppList 53 | local CostumeConfigList = {} 54 | 55 | ---@param idx integer 56 | ---@return ItemConfigCostume 57 | function CostumeConfigList:Get(idx) 58 | end 59 | 60 | ---@class EffectList : CppList 61 | local EffectList = {} 62 | 63 | ---@param idx integer 64 | ---@return TemporaryEffect 65 | function EffectList:Get(idx) 66 | end 67 | 68 | ---@class ItemConfigList : CppList 69 | local ItemConfigList = {} 70 | 71 | ---@param idx integer 72 | ---@return ItemConfigItem 73 | function ItemConfigList:Get(idx) 74 | end 75 | 76 | ---@class PillConfigList : CppList 77 | local PillConfigList = {} 78 | 79 | ---@param idx integer 80 | ---@return ItemConfigPillEffect 81 | function PillConfigList:Get(idx) 82 | end 83 | 84 | ---@class VectorList : CppList 85 | local VectorList = {} 86 | 87 | ---@param idx integer 88 | ---@return Vector 89 | function VectorList:Get(idx) 90 | end 91 | 92 | ---@class CppList_intValues : CppList 93 | local CppList_intValues = {} 94 | -------------------------------------------------------------------------------- /src/docs/vanilla/EntityPtr.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityPtr 2 | ---@field Ref Entity 3 | local EntityPtr = {} 4 | 5 | ---@param Entity Entity 6 | ---@return EntityPtr 7 | function _G.EntityPtr(Entity) 8 | end 9 | 10 | ---@param ref Entity 11 | function EntityPtr:SetReference(ref) 12 | end -------------------------------------------------------------------------------- /src/docs/vanilla/EntityRef.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityRef 2 | ---@field Entity Entity 3 | ---@field IsCharmed boolean 4 | ---@field IsFriendly boolean 5 | ---@field Position Vector 6 | ---@field SpawnerType integer @EntityType 7 | ---@field SpawnerVariant integer 8 | ---@field Type integer @EntityType 9 | ---@field Variant integer 10 | 11 | ---@param Entity Entity | nil 12 | ---@return EntityRef 13 | function EntityRef(Entity) 14 | 15 | end -------------------------------------------------------------------------------- /src/docs/vanilla/Font.lua: -------------------------------------------------------------------------------- 1 | ---@class Font 2 | local Font = {} 3 | 4 | ---@return Font 5 | function _G.Font() 6 | end 7 | 8 | ---@param String string 9 | ---@param PositionX number 10 | ---@param PositionY number 11 | ---@param RenderColor KColor 12 | ---@param BoxWidth? integer @default: `0` 13 | ---@param Center? boolean @default: `false` 14 | function Font:DrawString(String, PositionX, PositionY, RenderColor, BoxWidth, Center) 15 | end 16 | 17 | ---@param String string 18 | ---@param PositionX number 19 | ---@param PositionY number 20 | ---@param ScaleX number 21 | ---@param ScaleY number 22 | ---@param RenderColor KColor 23 | ---@param BoxWidth? integer @default: `0` 24 | ---@param Center? boolean @default: `false` 25 | function Font:DrawStringScaled(String, PositionX, PositionY, ScaleX, ScaleY, RenderColor, BoxWidth, Center) 26 | end 27 | 28 | ---@param String string 29 | ---@param PositionX number 30 | ---@param PositionY number 31 | ---@param ScaleX number 32 | ---@param ScaleY number 33 | ---@param RenderColor KColor 34 | ---@param BoxWidth? integer @default: `0` 35 | ---@param Center? boolean @default: `false` 36 | function Font:DrawStringScaledUTF8(String, PositionX, PositionY, ScaleX, ScaleY, RenderColor, BoxWidth, Center) 37 | end 38 | 39 | ---@param String string 40 | ---@param PositionX number 41 | ---@param PositionY number 42 | ---@param RenderColor KColor 43 | ---@param BoxWidth? integer @default: `0` 44 | ---@param Center? boolean @default: `false` 45 | function Font:DrawStringUTF8(String, PositionX, PositionY, RenderColor, BoxWidth, Center) 46 | end 47 | 48 | ---@return integer 49 | function Font:GetBaselineHeight() 50 | end 51 | 52 | ---@param Character string 53 | ---@return integer 54 | function Font:GetCharacterWidth(Character) 55 | end 56 | 57 | ---@return integer 58 | function Font:GetLineHeight() 59 | end 60 | 61 | ---@param String string 62 | ---@return integer 63 | function Font:GetStringWidth(String) 64 | end 65 | 66 | ---@param String string 67 | ---@return integer 68 | function Font:GetStringWidthUTF8(String) 69 | end 70 | 71 | ---@return boolean 72 | function Font:IsLoaded() 73 | end 74 | 75 | ---@param FilePath string 76 | ---@return boolean 77 | function Font:Load(FilePath) 78 | end 79 | 80 | ---@param MissingCharacter string 81 | function Font:SetMissingCharacter(MissingCharacter) 82 | end 83 | 84 | function Font:Unload() 85 | end 86 | -------------------------------------------------------------------------------- /src/docs/vanilla/Globals.lua: -------------------------------------------------------------------------------- 1 | -- Others (mostly constructors) are defined in their own files 2 | 3 | ---@param object any 4 | ---@return integer 5 | function GetPtrHash(object) 6 | end 7 | 8 | ---@return integer 9 | function Random() 10 | end 11 | 12 | ---@return Vector 13 | function RandomVector() 14 | end 15 | 16 | ---This global is `true` in Repentance DLC and `nil` in Afterbirth+ 17 | _G.REPENTANCE = true ---@type true|nil 18 | 19 | ---This global is `true` in Repentance+ DLC and `nil` in Afterbirth+ and Repentance 20 | _G.REPENTANCE_PLUS = true ---@type true|nil 21 | -------------------------------------------------------------------------------- /src/docs/vanilla/GridEntityDesc.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityDesc 2 | ---@field Initialized boolean 3 | ---@field SpawnCount integer 4 | ---@field SpawnSeed integer 5 | ---@field State integer 6 | ---@field Type GridEntityType 7 | ---@field VarData integer 8 | ---@field VariableSeed integer 9 | ---@field Variant integer 10 | local GridEntityDesc = {} 11 | 12 | -------------------------------------------------------------------------------- /src/docs/vanilla/HUD.lua: -------------------------------------------------------------------------------- 1 | ---@class HUD 2 | local HUD = {} 3 | 4 | function HUD:AssignPlayerHUDs() 5 | end 6 | 7 | ---@param Player EntityPlayer 8 | ---@param ActiveSlot ActiveSlot 9 | function HUD:FlashChargeBar(Player, ActiveSlot) 10 | end 11 | 12 | ---@param Player EntityPlayer 13 | ---@param ActiveSlot ActiveSlot 14 | function HUD:InvalidateActiveItem(Player, ActiveSlot) 15 | end 16 | 17 | ---@param Player EntityPlayer 18 | function HUD:InvalidateCraftingItem(Player) 19 | end 20 | 21 | ---@return boolean 22 | function HUD:IsVisible() 23 | end 24 | 25 | ---@param MainString? string 26 | ---@param SecondaryString? string 27 | ---@vararg string 28 | function HUD:ShowFortuneText(MainString, SecondaryString, ...) 29 | end 30 | 31 | ---@param MainString string 32 | ---@param SecondaryString? string 33 | ---@param IsCurseDisplay? boolean @default: `false` 34 | ---@param ClearStack? boolean @default: `false`. Repentance+ Exclusive 35 | ---@diagnostic disable-next-line: duplicate-set-field 36 | function HUD:ShowItemText(MainString, SecondaryString, IsCurseDisplay, ClearStack) 37 | end 38 | 39 | ---@param Player EntityPlayer 40 | ---@param Item ItemConfigItem 41 | ---@param ClearStack? boolean @default: `false`. Repentance+ Exclusive 42 | ---@diagnostic disable-next-line: duplicate-set-field 43 | function HUD:ShowItemText(Player, Item, ClearStack) 44 | end 45 | 46 | ---@param Visible? boolean @default: `false` 47 | function HUD:SetVisible(Visible) 48 | end 49 | 50 | function HUD:Update() 51 | end 52 | 53 | function HUD:PostUpdate() 54 | end 55 | 56 | function HUD:Render() 57 | end 58 | -------------------------------------------------------------------------------- /src/docs/vanilla/Input.lua: -------------------------------------------------------------------------------- 1 | ---@class Input 2 | _G.Input = {} 3 | 4 | ---@param action integer 5 | ---@param controllerId integer 6 | ---@return number 7 | function Input.GetActionValue(action, controllerId) 8 | end 9 | 10 | ---@param button integer 11 | ---@param controllerId integer 12 | ---@return number 13 | function Input.GetButtonValue(button, controllerId) 14 | end 15 | 16 | ---@param gameCoords boolean 17 | ---@return Vector 18 | function Input.GetMousePosition(gameCoords) 19 | end 20 | 21 | ---@param action integer 22 | ---@param controllerId integer 23 | ---@return boolean 24 | function Input.IsActionPressed(action, controllerId) 25 | end 26 | 27 | ---@param action integer 28 | ---@param controllerId integer 29 | ---@return boolean 30 | function Input.IsActionTriggered(action, controllerId) 31 | end 32 | 33 | ---@param button integer 34 | ---@param controllerId integer 35 | ---@return boolean 36 | function Input.IsButtonPressed(button, controllerId) 37 | end 38 | 39 | ---@param button integer 40 | ---@param controllerId integer 41 | ---@return boolean 42 | function Input.IsButtonTriggered(button, controllerId) 43 | end 44 | 45 | ---@param button integer 46 | ---@return boolean 47 | function Input.IsMouseBtnPressed(button) 48 | end -------------------------------------------------------------------------------- /src/docs/vanilla/ItemPool.lua: -------------------------------------------------------------------------------- 1 | ---@class ItemPool 2 | local ItemPool = {} 3 | 4 | ---@param Add integer 5 | ---@param PoolType ItemPoolType 6 | function ItemPool:AddBibleUpgrade(Add, PoolType) 7 | end 8 | 9 | ---@param Item CollectibleType 10 | function ItemPool:AddRoomBlacklist(Item) 11 | end 12 | 13 | ---@param ID PillEffect 14 | ---@return PillColor 15 | function ItemPool:ForceAddPillEffect(ID) 16 | end 17 | 18 | ---@param Seed integer 19 | ---@param Playing boolean 20 | ---@param Rune boolean 21 | ---@param OnlyRunes boolean 22 | ---@return Card 23 | function ItemPool:GetCard(Seed, Playing, Rune, OnlyRunes) 24 | end 25 | 26 | ---@return ItemPoolType 27 | function ItemPool:GetLastPool() 28 | end 29 | 30 | ---@param Seed integer 31 | ---@return PillColor 32 | function ItemPool:GetPill(Seed) 33 | end 34 | 35 | ---@param PillColor PillColor 36 | ---@param Player? EntityPlayer @default: `nil` 37 | ---@return PillEffect 38 | function ItemPool:GetPillEffect(PillColor, Player) 39 | end 40 | 41 | ---@param RoomType RoomType 42 | ---@param Seed integer 43 | ---@return ItemPoolType 44 | function ItemPool:GetPoolForRoom(RoomType, Seed) 45 | end 46 | 47 | ---@param DontAdvanceRNG? boolean @default: `false` 48 | ---@return TrinketType 49 | function ItemPool:GetTrinket(DontAdvanceRNG) 50 | end 51 | 52 | ---@param PillColor PillColor 53 | function ItemPool:IdentifyPill(PillColor) 54 | end 55 | 56 | ---@param PillColor PillColor 57 | ---@return boolean 58 | function ItemPool:IsPillIdentified(PillColor) 59 | end 60 | 61 | ---@param Collectible CollectibleType 62 | ---@return boolean 63 | function ItemPool:RemoveCollectible(Collectible) 64 | end 65 | 66 | ---@param Trinket TrinketType 67 | ---@return boolean 68 | function ItemPool:RemoveTrinket(Trinket) 69 | end 70 | 71 | function ItemPool:ResetRoomBlacklist() 72 | end 73 | 74 | function ItemPool:ResetTrinkets() 75 | end 76 | -------------------------------------------------------------------------------- /src/docs/vanilla/KColor.lua: -------------------------------------------------------------------------------- 1 | ---@class KColor 2 | ---@field Alpha number 3 | ---@field Blue number 4 | ---@field Green number 5 | ---@field Red number 6 | local KColor = {} 7 | 8 | ---@param red number 9 | ---@param green number 10 | ---@param blue number 11 | ---@param alpha number 12 | ---@return KColor 13 | function _G.KColor(red, green, blue, alpha) 14 | end 15 | 16 | _G.KColor = { 17 | ---@type KColor 18 | Black = KColor(0,0,0,1), 19 | ---@type KColor 20 | Red = KColor(1,0,0,1), 21 | ---@type KColor 22 | Green = KColor(0,1,0,1), 23 | ---@type KColor 24 | Blue = KColor(0,0,1,1), 25 | ---@type KColor 26 | Yellow = KColor(1,1,0,1), 27 | ---@type KColor 28 | Cyan = KColor(0,1,1,1), 29 | ---@type KColor 30 | Magenta = KColor(1,0,1,1), 31 | ---@type KColor 32 | White = KColor(1,1,1,1), 33 | ---@type KColor 34 | Transparent = KColor(0,0,0,0), 35 | } -------------------------------------------------------------------------------- /src/docs/vanilla/ModReference.lua: -------------------------------------------------------------------------------- 1 | ---@class ModReference 2 | ---@field Name string 3 | local ModReference = {} 4 | 5 | ---@param callbackID ModCallbacks | string 6 | ---@param callbackFn function 7 | ---@param entityID? integer 8 | function ModReference:AddCallback(callbackID, callbackFn, entityID) 9 | end 10 | 11 | ---@param callbackID ModCallbacks | string 12 | ---@param priority CallbackPriority 13 | ---@param callbackFn function 14 | ---@param entityID? integer 15 | function ModReference:AddPriorityCallback(callbackID, priority, callbackFn, entityID) 16 | end 17 | 18 | ---@return boolean 19 | function ModReference:HasData() 20 | end 21 | 22 | ---@return string 23 | function ModReference:LoadData() 24 | end 25 | 26 | ---@param callbackID integer 27 | ---@param callbackFn function 28 | function ModReference:RemoveCallback(callbackID, callbackFn) 29 | end 30 | 31 | function ModReference:RemoveData() 32 | end 33 | 34 | ---@param data string 35 | function ModReference:SaveData(data) 36 | end 37 | 38 | -- Disabled as it will complain about mod tables with added functions 39 | -- in mods with more files, depending on how they are handled; you can 40 | -- re-enable it and keep it if you don't have that problem 41 | --[[ ---@param modname string 42 | ---@param apiversion number 43 | ---@return ModReference 44 | function RegisterMod(modname, apiversion) 45 | end ]] -------------------------------------------------------------------------------- /src/docs/vanilla/MusicManager.lua: -------------------------------------------------------------------------------- 1 | ---@class MusicManager 2 | local MusicManager = {} 3 | 4 | ---@return MusicManager 5 | function _G.MusicManager() 6 | end 7 | 8 | ---@param ID Music 9 | ---@param FadeRate? number @default: `0.08` 10 | function MusicManager:Crossfade(ID, FadeRate) 11 | end 12 | 13 | function MusicManager:Disable() 14 | end 15 | 16 | ---@param LayerId? integer @default: `0` 17 | function MusicManager:DisableLayer(LayerId) 18 | end 19 | 20 | function MusicManager:Enable() 21 | end 22 | 23 | ---@param LayerId? integer @default: `0` 24 | ---@param Instant? boolean @default: `false` 25 | function MusicManager:EnableLayer(LayerId, Instant) 26 | end 27 | 28 | ---@param ID Music 29 | ---@param Volume? number @default: `1` 30 | ---@param FadeRate? number @default: `0.08` 31 | function MusicManager:Fadein(ID, Volume, FadeRate) 32 | end 33 | 34 | ---@param FadeRate? number @default: `0.08` 35 | function MusicManager:Fadeout(FadeRate) 36 | end 37 | 38 | ---@return Music 39 | function MusicManager:GetCurrentMusicID() 40 | end 41 | 42 | ---@return Music 43 | function MusicManager:GetQueuedMusicID() 44 | end 45 | 46 | ---@return boolean 47 | function MusicManager:IsEnabled() 48 | end 49 | 50 | ---@param LayerId? integer @default: `0` 51 | ---@return boolean 52 | function MusicManager:IsLayerEnabled(LayerId) 53 | end 54 | 55 | function MusicManager:Pause() 56 | end 57 | 58 | ---@param TargetPitch number 59 | function MusicManager:PitchSlide(TargetPitch) 60 | end 61 | 62 | ---@param ID Music 63 | ---@param Volume number 64 | function MusicManager:Play(ID, Volume) 65 | end 66 | 67 | ---@param ID Music 68 | function MusicManager:Queue(ID) 69 | end 70 | 71 | function MusicManager:ResetPitch() 72 | end 73 | 74 | function MusicManager:Resume() 75 | end 76 | 77 | function MusicManager:UpdateVolume() 78 | end 79 | 80 | ---@param TargetVolume number 81 | ---@param FadeRate? number @default: `0.08` 82 | function MusicManager:VolumeSlide(TargetVolume, FadeRate) 83 | end 84 | -------------------------------------------------------------------------------- /src/docs/vanilla/Options.lua: -------------------------------------------------------------------------------- 1 | ---@class Options 2 | ---@field AnnouncerVoiceMode integer 3 | ---@field BulletVisibility boolean 4 | ---@field CameraStyle integer 5 | ---@field ChargeBars boolean 6 | ---@field ConsoleFont integer 7 | ---@field DisplayPopups boolean 8 | ---@field DebugConsoleEnabled boolean 9 | ---@field ExtraHUDStyle integer 10 | ---@field FadedConsoleDisplay boolean 11 | ---@field Filter boolean 12 | ---@field FoundHUD boolean 13 | ---@field Fullscreen boolean 14 | ---@field Gamma number 15 | ---@field HUDOffset number 16 | ---@field Language string 17 | ---@field MapOpacity number 18 | ---@field MaxRenderScale integer 19 | ---@field MaxScale integer 20 | ---@field MouseControl boolean 21 | ---@field MusicVolume number 22 | ---@field PauseOnFocusLost boolean 23 | ---@field RumbleEnabled boolean 24 | ---@field SaveCommandHistory boolean 25 | ---@field SFXVolume number 26 | ---@field UseBorderlessFullscreen boolean 27 | ---@field VSync boolean 28 | ---@field JacobEsauControls integer --Repentance Plus only. 0 for classic controls, 1 for better controls 29 | _G.Options = {} 30 | -------------------------------------------------------------------------------- /src/docs/vanilla/PathFinder.lua: -------------------------------------------------------------------------------- 1 | ---@class PathFinder 2 | local PathFinder = {} 3 | 4 | ---@param TargetPos Vector 5 | function PathFinder:EvadeTarget(TargetPos) 6 | end 7 | 8 | ---@param Pos Vector 9 | ---@param Speed number 10 | ---@param PathMarker integer 11 | ---@param UseDirectPath boolean 12 | function PathFinder:FindGridPath(Pos, Speed, PathMarker, UseDirectPath) 13 | end 14 | 15 | ---@return integer 16 | function PathFinder:GetEvadeMovementCountdown() 17 | end 18 | 19 | ---@return integer 20 | function PathFinder:GetGridIndex() 21 | end 22 | 23 | ---@return boolean 24 | function PathFinder:HasDirectPath() 25 | end 26 | 27 | ---@param Pos Vector 28 | ---@param IgnorePoop boolean 29 | ---@return boolean 30 | function PathFinder:HasPathToPos(Pos, IgnorePoop) 31 | end 32 | 33 | ---@param IgnoreStatusEffects boolean 34 | ---@return boolean 35 | function PathFinder:MoveRandomly(IgnoreStatusEffects) 36 | end 37 | 38 | ---@param Speed number 39 | ---@param IgnoreStatusEffects boolean 40 | function PathFinder:MoveRandomlyAxisAligned(Speed, IgnoreStatusEffects) 41 | end 42 | 43 | ---@param IgnoreStatusEffects boolean 44 | function PathFinder:MoveRandomlyBoss(IgnoreStatusEffects) 45 | end 46 | 47 | function PathFinder:Reset() 48 | end 49 | 50 | function PathFinder:ResetMovementTarget() 51 | end 52 | 53 | ---@param value boolean 54 | function PathFinder:SetCanCrushRocks(value) 55 | end 56 | 57 | function PathFinder:UpdateGridIndex() 58 | end 59 | 60 | -------------------------------------------------------------------------------- /src/docs/vanilla/PosVel.lua: -------------------------------------------------------------------------------- 1 | ---@class PosVel 2 | ---@field Position Vector 3 | ---@field Velocity Vector 4 | local PosVel = {} 5 | 6 | -------------------------------------------------------------------------------- /src/docs/vanilla/ProjectileParams.lua: -------------------------------------------------------------------------------- 1 | ---@return ProjectileParams 2 | function ProjectileParams() 3 | end 4 | -------------------------------------------------------------------------------- /src/docs/vanilla/QueuedItemData.lua: -------------------------------------------------------------------------------- 1 | ---@class QueuedItemData 2 | ---@field Charge integer 3 | ---@field Item ItemConfigItem 4 | ---@field Touched boolean 5 | local QueuedItemData = {} 6 | -------------------------------------------------------------------------------- /src/docs/vanilla/RNG.lua: -------------------------------------------------------------------------------- 1 | ---@class RNG 2 | local RNG = {} 3 | 4 | ---Returns the current seed of the RNG object. 5 | ---@return integer 6 | function RNG:GetSeed() 7 | end 8 | 9 | ---"Iterates" the RNG's seed to the next random number in the psuedo-random sequence. (The internal PRNG algorithm used is Xorshift.) 10 | ---@return integer --Integer returned is the new seed of the RNG object. 11 | function RNG:Next() 12 | end 13 | 14 | ---Returns a float between `0` (inclusive) and `1` (exclusive). 15 | --- 16 | ---Note that this will automatically call the `RNG.Next` method before retrieving the random number. Since this mutates the RNG object, you should use this method with care. 17 | ---@return number 18 | function RNG:RandomFloat() 19 | end 20 | -------------------------------------------------------------------------------- /src/docs/vanilla/RoomConfigEntry.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfig_Entry 2 | ---@field Subtype integer 3 | ---@field Type EntityType 4 | ---@field Variant integer 5 | ---@field Weight number 6 | local RoomConfigEntry = {} 7 | 8 | -------------------------------------------------------------------------------- /src/docs/vanilla/RoomConfigSpawn.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfig_Spawn 2 | ---@field Entries CppList_RoomConfigEntries # Not officially documented but functional 3 | ---@field EntryCount integer 4 | ---@field SumWeights number 5 | ---@field X integer 6 | ---@field Y integer 7 | local RoomConfigSpawn = {} 8 | 9 | ---@param r number 10 | ---@return RoomConfig_Entry 11 | function RoomConfigSpawn:PickEntry(r) 12 | end 13 | 14 | -------------------------------------------------------------------------------- /src/docs/vanilla/RoomDescriptor.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomDescriptor 2 | ---@field AwardSeed integer 3 | ---@field ChallengeDone boolean 4 | ---@field Clear boolean 5 | ---@field ClearCount integer 6 | ---@field Data RoomConfigRoom 7 | ---@field DecorationSeed integer 8 | ---@field DeliriumDistance integer 9 | ---@field DisplayFlags integer 10 | ---@field Flags integer 11 | ---@field GridIndex integer 12 | ---@field HasWater boolean 13 | ---@field ListIndex integer 14 | ---@field NoReward boolean 15 | ---@field OverrideData RoomConfigRoom 16 | ---@field PitsCount integer 17 | ---@field PoopCount integer 18 | ---@field PressurePlatesTriggered boolean 19 | ---@field SacrificeDone boolean 20 | ---@field SafeGridIndex integer 21 | ---@field ShopItemDiscountIdx integer 22 | ---@field ShopItemIdx integer 23 | ---@field SpawnSeed integer 24 | ---@field SurpriseMiniboss boolean 25 | ---@field VisitedCount integer 26 | local RoomDescriptor_Class = {} -------------------------------------------------------------------------------- /src/docs/vanilla/SFXManager.lua: -------------------------------------------------------------------------------- 1 | ---@class SFXManager 2 | local SFXManager = {} 3 | 4 | ---@return SFXManager 5 | function _G.SFXManager() 6 | end 7 | 8 | ---@param ID SoundEffect 9 | ---@param Pitch number 10 | function SFXManager:AdjustPitch(ID, Pitch) 11 | end 12 | 13 | ---@param ID SoundEffect 14 | ---@param Volume number 15 | function SFXManager:AdjustVolume(ID, Volume) 16 | end 17 | 18 | ---@param ID SoundEffect 19 | ---@return number 20 | function SFXManager:GetAmbientSoundVolume(ID) 21 | end 22 | 23 | ---@param ID SoundEffect 24 | ---@return boolean 25 | function SFXManager:IsPlaying(ID) 26 | end 27 | 28 | ---@param ID SoundEffect 29 | ---@param Volume? number @default: `1` 30 | ---@param FrameDelay? integer @default: `2` 31 | ---@param Loop? boolean @default: `false` 32 | ---@param Pitch? number @default: `1` 33 | ---@param Pan? number @default: `0` 34 | function SFXManager:Play(ID, Volume, FrameDelay, Loop, Pitch, Pan) 35 | end 36 | 37 | ---@param ID SoundEffect 38 | function SFXManager:Preload(ID) 39 | end 40 | 41 | ---@param ID SoundEffect 42 | ---@param Volume number 43 | ---@param Pitch number 44 | function SFXManager:SetAmbientSound(ID, Volume, Pitch) 45 | end 46 | 47 | ---@param ID SoundEffect 48 | function SFXManager:Stop(ID) 49 | end 50 | 51 | function SFXManager:StopLoopingSounds() 52 | end 53 | -------------------------------------------------------------------------------- /src/docs/vanilla/Seeds.lua: -------------------------------------------------------------------------------- 1 | ---@class Seeds 2 | _G.Seeds = {} 3 | 4 | ---@param Value SeedEffect 5 | function Seeds:AddSeedEffect(Value) 6 | end 7 | 8 | ---@param Value SeedEffect 9 | ---@return boolean 10 | function Seeds:CanAddSeedEffect(Value) 11 | end 12 | 13 | function Seeds:ClearSeedEffects() 14 | end 15 | 16 | function Seeds:ClearStartSeed() 17 | end 18 | 19 | ---@return integer 20 | function Seeds:CountSeedEffects() 21 | end 22 | 23 | ---@return integer 24 | function Seeds.CountUnlockedSeedEffects() 25 | end 26 | 27 | ---@param Stage LevelStage 28 | function Seeds:ForgetStageSeed(Stage) 29 | end 30 | 31 | ---@return integer 32 | function Seeds:GetNextSeed() 33 | end 34 | 35 | ---@return integer 36 | function Seeds:GetPlayerInitSeed() 37 | end 38 | 39 | ---@param str string 40 | ---@return SeedEffect 41 | function Seeds.GetSeedEffect(str) 42 | end 43 | 44 | ---@param Stage LevelStage 45 | ---@return integer 46 | function Seeds:GetStageSeed(Stage) 47 | end 48 | 49 | ---@return integer 50 | function Seeds:GetStartSeed() 51 | end 52 | 53 | ---@return string 54 | function Seeds:GetStartSeedString() 55 | end 56 | 57 | ---@param Value SeedEffect 58 | ---@return boolean 59 | function Seeds:HasSeedEffect(Value) 60 | end 61 | 62 | function Seeds.InitSeedInfo() 63 | end 64 | 65 | ---@return boolean 66 | function Seeds:IsCustomRun() 67 | end 68 | 69 | ---@return boolean 70 | function Seeds:IsInitialized() 71 | end 72 | 73 | ---@param Seed1 SeedEffect 74 | ---@param Seed2 SeedEffect 75 | ---@return boolean 76 | function Seeds:IsSeedComboBanned(Seed1, Seed2) 77 | end 78 | 79 | ---@param str string 80 | ---@return boolean 81 | function Seeds.IsSpecialSeed(str) 82 | end 83 | 84 | ---@param str string 85 | ---@return boolean 86 | function Seeds.IsStringValidSeed(str) 87 | end 88 | 89 | ---@param Value SeedEffect 90 | function Seeds:RemoveBlockingSeedEffects(Value) 91 | end 92 | 93 | ---@param Value SeedEffect 94 | function Seeds:RemoveSeedEffect(Value) 95 | end 96 | 97 | function Seeds:Reset() 98 | end 99 | 100 | ---@param CurrentChallenge Challenge 101 | function Seeds:Restart(CurrentChallenge) 102 | end 103 | 104 | ---@param seed integer 105 | ---@return string 106 | function Seeds.Seed2String(seed) 107 | end 108 | 109 | ---@param StartSeed string 110 | function Seeds:SetStartSeed(StartSeed) 111 | end 112 | 113 | ---@param str string 114 | ---@return integer 115 | function Seeds.String2Seed(str) 116 | end 117 | 118 | -------------------------------------------------------------------------------- /src/docs/vanilla/TEARFLAG.lua: -------------------------------------------------------------------------------- 1 | ---Since enums were moves to json files and the TearFlags enum still uses the TEARFLAG function as its value, function is placed here. 2 | 3 | local function TEARFLAG(x) 4 | return x >= 64 and BitSet128(0,1<<(x-64)) or BitSet128(1<