diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..7bc8c232 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @DonovanDMC diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..b29ad5fc --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +.idea/ +.idea_modules/ +out/ +*.class +*.log +*.jar +.gradle +build/ +gradle-app.setting +.gradletasknamecache +**/build/ +run/ +!gradle-wrapper.jar +bin/ +src/generated/resources/.cache +scripts/secrets.sh +**/node_modules/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..dcbe6daf --- /dev/null +++ b/.gitmodules @@ -0,0 +1,8 @@ +[submodule "Publishing"] + path = scripts/publish + url = https://github.com/DonovanDMC/ProjectExpansion + branch = publishing +[submodule "Generation"] + path = src/main/generation + url = https://github.com/DonovanDMC/ProjectExpansion + branch = generation diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..0bebc648 --- /dev/null +++ b/build.gradle @@ -0,0 +1,120 @@ +buildscript { + repositories { + maven { url = 'https://maven.minecraftforge.net' } + maven { url = 'https://repo.spongepowered.org/repository/maven-public/' } + maven { url = "https://libraries.minecraft.net" } + + mavenCentral() + } + dependencies { + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true + classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT' + } +} + +apply plugin: 'net.minecraftforge.gradle' +apply plugin: 'org.spongepowered.mixin' + +group = 'furry.cool.mc.forge' +version = getProperty("mcVersion") + "-" + getProperty("localVersion") + +java { + archivesBaseName = 'ProjectExpansion' + toolchain.languageVersion = JavaLanguageVersion.of(17) +} + +minecraft { + mappings channel: getProperty("mappingsChannel"), version: getProperty("mappingsVersion") + + runs { + client { + workingDirectory project.file('run') + + property 'forge.logging.markers', 'REGISTRIES' + property 'forge.logging.console.level', 'debug' + + mods { + projectexpansion { + source sourceSets.main + } + } + } + + server { + workingDirectory project.file('run') + + property 'forge.logging.markers', 'REGISTRIES' + property 'forge.logging.console.level', 'debug' + + mods { + projectexpansion { + source sourceSets.main + } + } + } + + data { + workingDirectory project.file('run') + + property 'forge.logging.markers', 'REGISTRIES' + property 'forge.logging.console.level', 'debug' + + args '--mod', 'projectexpansion', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + + mods { + projectexpansion { + source sourceSets.main + } + } + } + } +} + +mixin { + add sourceSets.main, "projectexpansion.refmap.json" + config "projectexpansion.mixins.json" +} + +sourceSets.main.resources { srcDir 'src/generated/resources' } + +repositories { + maven { + url "https://www.cursemaven.com" + content { + includeGroup "curse.maven" + } + } + maven { + name "curios" + url "https://maven.theillusivec4.top/" + content { + includeGroup 'top.theillusivec4.curios' + } + } +} + +dependencies { + minecraft "net.minecraftforge:forge:${getProperty("mcVersion")}-${getProperty("forgeVersion")}" + implementation fg.deobf("curse.maven:projecte-226410:${getProperty("projecteVersion")}") + implementation "com.mojang:brigadier:1.0.18" + annotationProcessor "org.spongepowered:mixin:0.8.5:processor" + compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:${getProperty("curiosVersion")}:api") + runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:${getProperty("curiosVersion")}") + runtimeOnly fg.deobf("curse.maven:no-chat-reports-634062:3926371") +} + +jar { + manifest { + attributes([ + "Specification-Title" : "Project Expansion", + "Specification-Vendor" : "Donovan_DMC", + "Specification-Version" : "1", // We are version 1 of ourselves + "Implementation-Title" : project.name, + "Implementation-Version" : project.jar.archiveVersion, + "Implementation-Vendor" : "Donovan_DMC", + "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") + ]) + } +} + +jar.finalizedBy('reobfJar') diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..fb9855b0 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,12 @@ +org.gradle.jvmargs=-Xmx3G +org.gradle.daemon=false + +cfProjectID = 579177 +mcVersion = 1.19.2 +localVersion = 1.0.0 +mappingsChannel = official +mappingsVersion = 1.19.2 +forgeVersion = 43.1.25 +# 1.19.2-PE1.0.1 +projecteVersion = 3955047 +curiosVersion = 1.19.2-5.1.1.0 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..73bb918e --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip diff --git a/scripts/generate-assets.sh b/scripts/generate-assets.sh new file mode 100755 index 00000000..6d425f5c --- /dev/null +++ b/scripts/generate-assets.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +DIR=$(realpath "$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )") +cd "$DIR/../src/main/generation" || exit 1 +npm i +node --no-warnings --no-deprecation --experimental-specifier-resolution=node --loader ts-node/esm run diff --git a/scripts/load-properties.sh b/scripts/load-properties.sh new file mode 100755 index 00000000..695881fd --- /dev/null +++ b/scripts/load-properties.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +function getProperty { + cat gradle.properties | grep -w "$1" | cut -d '=' -f 2 | tr -d '\n' | xargs echo -n +} \ No newline at end of file diff --git a/scripts/publish.sh b/scripts/publish.sh new file mode 100755 index 00000000..d3b9b171 --- /dev/null +++ b/scripts/publish.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +DIR=$(realpath "$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )") +cd "$DIR/publish" || exit 1 +npm i +"$DIR/publish/sh/publish.sh" "$(realpath $DIR/..)" \ No newline at end of file diff --git a/scripts/publish/.eslintrc.json b/scripts/publish/.eslintrc.json new file mode 100644 index 00000000..490b0541 --- /dev/null +++ b/scripts/publish/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "@uwu-codes/eslint-config/ts.json", + "rules": {} +} diff --git a/scripts/publish/.gitignore b/scripts/publish/.gitignore new file mode 100644 index 00000000..37e20094 --- /dev/null +++ b/scripts/publish/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +.git/ +config.json diff --git a/scripts/publish/config.example.json b/scripts/publish/config.example.json new file mode 100644 index 00000000..69e1d734 --- /dev/null +++ b/scripts/publish/config.example.json @@ -0,0 +1,5 @@ +{ + "gitName": "0.0", + "auth": "", + "endpoint": "http://localhost/mod" +} diff --git a/scripts/publish/package-lock.json b/scripts/publish/package-lock.json new file mode 100644 index 00000000..c6c746b1 --- /dev/null +++ b/scripts/publish/package-lock.json @@ -0,0 +1,4276 @@ +{ + "name": "publishing", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "publishing", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.41", + "@types/properties-reader": "^2.1.1", + "@uwu-codes/eslint-config": "^1.0.49", + "@uwu-codes/tsconfig": "^1.0.1", + "properties-reader": "^2.2.0", + "simple-git": "^3.7.1", + "ts-node": "^10.8.1", + "tsafe": "^0.10.0", + "typescript": "^4.7.3", + "undici": "^5.4.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz", + "integrity": "sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==", + "dependencies": { + "comment-parser": "1.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~3.1.0" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/node": { + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==" + }, + "node_modules/@types/properties-reader": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/properties-reader/-/properties-reader-2.1.1.tgz", + "integrity": "sha512-IpGxvT1giDlK5VmWXt0l1vCKyD5DtrzFn1x31ho6xHtwADm7W0zzUft8mYMAx4rs6jvlj95DccVjKAvAwQ46PQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.1.tgz", + "integrity": "sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/type-utils": "5.27.1", + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.1.tgz", + "integrity": "sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.1.tgz", + "integrity": "sha512-fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==", + "dependencies": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.1.tgz", + "integrity": "sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==", + "dependencies": { + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.1.tgz", + "integrity": "sha512-LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.1.tgz", + "integrity": "sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==", + "dependencies": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.1.tgz", + "integrity": "sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.1.tgz", + "integrity": "sha512-xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==", + "dependencies": { + "@typescript-eslint/types": "5.27.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@uwu-codes/eslint-config": { + "version": "1.0.49", + "resolved": "https://registry.npmjs.org/@uwu-codes/eslint-config/-/eslint-config-1.0.49.tgz", + "integrity": "sha512-8UCg+G2n3M6U0qzm7ki2Vsh80J6qomNkEOYMZLBGUf1uUhHIEXdW5em9+/41HVx5monyTmYq1L7zRuVYURElaA==", + "dependencies": { + "@typescript-eslint/eslint-plugin": "^5.27.1", + "@typescript-eslint/parser": "^5.27.1", + "@uwu-codes/tsconfig": "^1.0.1", + "eslint": "^8.17.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import-newlines": "^1.2.2", + "eslint-plugin-jsdoc": "^39.3.2", + "eslint-plugin-json": "^3.1.0", + "eslint-plugin-prefer-arrow": "^1.2.3", + "eslint-plugin-unused-imports": "^2.0.0" + }, + "engines": { + "node": ">=15" + } + }, + "node_modules/@uwu-codes/tsconfig": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@uwu-codes/tsconfig/-/tsconfig-1.0.1.tgz", + "integrity": "sha512-JcVNthILR1ZU+SGh54Z/Gxi0mEQCmPrcQHbtCxg23TZ17z/HiGf/Wc3Tkdg4q/VUs9c/pfYx1B1xS0LCnG24MA==", + "engines": { + "node": ">=15" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import-newlines": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.2.2.tgz", + "integrity": "sha512-SoKiFtSW/+dHsla/qzijU/RP+i8CNhYHuzfGelFf4SLpz+bzcshur6Qy7uzMow4sBg5HquAYOf/yGTKZMrbVcg==", + "bin": { + "import-linter": "lib/index.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "39.3.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.2.tgz", + "integrity": "sha512-RSGN94RYzIJS/WfW3l6cXzRLfJWxvJgNQZ4w0WCaxJWDJMigtwTsILEAfKqmmPkT2rwMH/s3C7G5ChDE6cwPJg==", + "dependencies": { + "@es-joy/jsdoccomment": "~0.31.0", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.7", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-json": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz", + "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==", + "dependencies": { + "lodash": "^4.17.21", + "vscode-json-languageservice": "^4.1.6" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "peerDependencies": { + "eslint": ">=2.0.0" + } + }, + "node_modules/eslint-plugin-unused-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz", + "integrity": "sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==", + "dependencies": { + "eslint-rule-composer": "^0.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "engines": { + "node": ">=4" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/properties-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/properties-reader/-/properties-reader-2.2.0.tgz", + "integrity": "sha512-CgVcr8MwGoBKK24r9TwHfZkLLaNFHQ6y4wgT9w/XzdpacOOi5ciH4hcuLechSDAwXsfrGQtI2JTutY2djOx2Ow==", + "dependencies": { + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-git": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.7.1.tgz", + "integrity": "sha512-+Osjtsumbtew2y9to0pOYjNzSIr4NkKGBg7Po5SUtjQhaJf2QBmiTX/9E9cv9rmc7oUiSGFIB9e7ys5ibnT9+A==", + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/steveukx/" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-node": { + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", + "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsafe": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/tsafe/-/tsafe-0.10.0.tgz", + "integrity": "sha512-CFfa1uJKfU0DDRbuB8bf2mfXjkOqiTsrltexzMMLxq5gjd1LttFECNGsO8dYUALJDbShb6+f3CwAppW/wf9BrA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.5.1.tgz", + "integrity": "sha512-MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw==", + "engines": { + "node": ">=12.18" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/vscode-json-languageservice": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", + "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.3", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.5.tgz", + "integrity": "sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg==" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.1.tgz", + "integrity": "sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ==" + }, + "node_modules/vscode-nls": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.1.tgz", + "integrity": "sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==" + }, + "node_modules/vscode-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz", + "integrity": "sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@es-joy/jsdoccomment": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz", + "integrity": "sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==", + "requires": { + "comment-parser": "1.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~3.1.0" + } + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "requires": { + "debug": "^4.1.1" + } + }, + "@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "@types/node": { + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==" + }, + "@types/properties-reader": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/properties-reader/-/properties-reader-2.1.1.tgz", + "integrity": "sha512-IpGxvT1giDlK5VmWXt0l1vCKyD5DtrzFn1x31ho6xHtwADm7W0zzUft8mYMAx4rs6jvlj95DccVjKAvAwQ46PQ==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.1.tgz", + "integrity": "sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==", + "requires": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/type-utils": "5.27.1", + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.1.tgz", + "integrity": "sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==", + "requires": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.1.tgz", + "integrity": "sha512-fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==", + "requires": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.1.tgz", + "integrity": "sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==", + "requires": { + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.1.tgz", + "integrity": "sha512-LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.1.tgz", + "integrity": "sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==", + "requires": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.1.tgz", + "integrity": "sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==", + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.1.tgz", + "integrity": "sha512-xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==", + "requires": { + "@typescript-eslint/types": "5.27.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@uwu-codes/eslint-config": { + "version": "1.0.49", + "resolved": "https://registry.npmjs.org/@uwu-codes/eslint-config/-/eslint-config-1.0.49.tgz", + "integrity": "sha512-8UCg+G2n3M6U0qzm7ki2Vsh80J6qomNkEOYMZLBGUf1uUhHIEXdW5em9+/41HVx5monyTmYq1L7zRuVYURElaA==", + "requires": { + "@typescript-eslint/eslint-plugin": "^5.27.1", + "@typescript-eslint/parser": "^5.27.1", + "@uwu-codes/tsconfig": "^1.0.1", + "eslint": "^8.17.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import-newlines": "^1.2.2", + "eslint-plugin-jsdoc": "^39.3.2", + "eslint-plugin-json": "^3.1.0", + "eslint-plugin-prefer-arrow": "^1.2.3", + "eslint-plugin-unused-imports": "^2.0.0" + } + }, + "@uwu-codes/tsconfig": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@uwu-codes/tsconfig/-/tsconfig-1.0.1.tgz", + "integrity": "sha512-JcVNthILR1ZU+SGh54Z/Gxi0mEQCmPrcQHbtCxg23TZ17z/HiGf/Wc3Tkdg4q/VUs9c/pfYx1B1xS0LCnG24MA==" + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "eslint": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "eslint-plugin-import-newlines": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.2.2.tgz", + "integrity": "sha512-SoKiFtSW/+dHsla/qzijU/RP+i8CNhYHuzfGelFf4SLpz+bzcshur6Qy7uzMow4sBg5HquAYOf/yGTKZMrbVcg==", + "requires": {} + }, + "eslint-plugin-jsdoc": { + "version": "39.3.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.2.tgz", + "integrity": "sha512-RSGN94RYzIJS/WfW3l6cXzRLfJWxvJgNQZ4w0WCaxJWDJMigtwTsILEAfKqmmPkT2rwMH/s3C7G5ChDE6cwPJg==", + "requires": { + "@es-joy/jsdoccomment": "~0.31.0", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.7", + "spdx-expression-parse": "^3.0.1" + } + }, + "eslint-plugin-json": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz", + "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==", + "requires": { + "lodash": "^4.17.21", + "vscode-json-languageservice": "^4.1.6" + } + }, + "eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "requires": {} + }, + "eslint-plugin-unused-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz", + "integrity": "sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==", + "requires": { + "eslint-rule-composer": "^0.3.0" + } + }, + "eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==" + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" + }, + "espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "properties-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/properties-reader/-/properties-reader-2.2.0.tgz", + "integrity": "sha512-CgVcr8MwGoBKK24r9TwHfZkLLaNFHQ6y4wgT9w/XzdpacOOi5ciH4hcuLechSDAwXsfrGQtI2JTutY2djOx2Ow==", + "requires": { + "mkdirp": "^1.0.4" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "simple-git": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.7.1.tgz", + "integrity": "sha512-+Osjtsumbtew2y9to0pOYjNzSIr4NkKGBg7Po5SUtjQhaJf2QBmiTX/9E9cv9rmc7oUiSGFIB9e7ys5ibnT9+A==", + "requires": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.3" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-node": { + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", + "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsafe": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/tsafe/-/tsafe-0.10.0.tgz", + "integrity": "sha512-CFfa1uJKfU0DDRbuB8bf2mfXjkOqiTsrltexzMMLxq5gjd1LttFECNGsO8dYUALJDbShb6+f3CwAppW/wf9BrA==" + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "typescript": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "undici": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.5.1.tgz", + "integrity": "sha512-MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "vscode-json-languageservice": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", + "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", + "requires": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.3", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.5.tgz", + "integrity": "sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg==" + }, + "vscode-languageserver-types": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.1.tgz", + "integrity": "sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ==" + }, + "vscode-nls": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.1.tgz", + "integrity": "sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==" + }, + "vscode-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz", + "integrity": "sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/scripts/publish/package.json b/scripts/publish/package.json new file mode 100644 index 00000000..d57c055b --- /dev/null +++ b/scripts/publish/package.json @@ -0,0 +1,32 @@ +{ + "name": "publishing", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/DonovanDMC/ProjectExpansion.git" + }, + "author": "Donovan Daniels ", + "license": "MIT", + "bugs": { + "url": "https://github.com/DonovanDMC/ProjectExpansion/issues" + }, + "homepage": "https://github.com/DonovanDMC/ProjectExpansion#readme", + "dependencies": { + "@types/node": "^17.0.41", + "@types/properties-reader": "^2.1.1", + "@uwu-codes/eslint-config": "^1.0.49", + "@uwu-codes/tsconfig": "^1.0.1", + "properties-reader": "^2.2.0", + "simple-git": "^3.7.1", + "ts-node": "^10.8.1", + "tsafe": "^0.10.0", + "typescript": "^4.7.3", + "undici": "^5.4.0" + }, + "type": "module" +} diff --git a/scripts/publish/scripts/get-git-log.ts b/scripts/publish/scripts/get-git-log.ts new file mode 100644 index 00000000..c63e3189 --- /dev/null +++ b/scripts/publish/scripts/get-git-log.ts @@ -0,0 +1,25 @@ +import type { SimpleGit, LogResult } from "simple-git"; +import simpleGit from "simple-git"; +import { writeFile } from "fs/promises"; +import { tmpdir } from "os"; + +const gitDir = process.argv[2]; +const id = process.argv[3]; +if (!gitDir) throw new Error("git dir is required"); +if (!id) throw new Error("edit id is required"); + +const git = simpleGit(gitDir); +await git.pull(["--tags", "--force"]); +const latestTag = (await git.raw(["describe", "--tags", "--abbrev=0"])).toString().trim(); +const commits = await git.log([`${latestTag}..HEAD`]) as SimpleGit & LogResult; +const gitLog = [ + "# Log For Github" +]; + +for (const commit of commits.all) { + if (/^\d+\.\d+\.\d+$/.test(commit.message)) continue; + gitLog.push(`* ${commit.message} (${commit.hash})`); +} + +await writeFile(`${tmpdir()}/${id}-gitlog`, gitLog.join("\n")); +process.stdout.write(`${tmpdir()}/${id}-gitlog`); diff --git a/scripts/publish/scripts/get-other-log.ts b/scripts/publish/scripts/get-other-log.ts new file mode 100644 index 00000000..6c4fbe96 --- /dev/null +++ b/scripts/publish/scripts/get-other-log.ts @@ -0,0 +1,36 @@ +import simpleGit from "simple-git"; +import { access, readFile, writeFile } from "fs/promises"; +import { tmpdir } from "os"; + + +const gitDir = process.argv[2]; +const gitlogFile = process.argv[3]; +const id = process.argv[4]; +if (!gitDir) throw new Error("git dir is required"); +if (!gitlogFile) throw new Error("gitlog file is required"); +if (!id) throw new Error("edit id is required"); +const GITLOG_LINE_REGEX = /^(.*) \(((?:([\da-f]{40})|([\da-f]{6,8})(?:,\s?)?)+)\)$/; +if (!(await access(gitlogFile).then(() => true, () => false))) throw new Error(`file "${gitlogFile}" cannot be accessed`); +const gitlog = (await readFile(gitlogFile)).toString(); +const otherlog = [ + "# Log For Other Platforms" +]; +const git = simpleGit(gitDir); + +for (const line of gitlog.split("\n")) { + let m: RegExpMatchArray | null; + if ((m = line.match(GITLOG_LINE_REGEX))) { + const [, message, commits] = m; + let finalMessage = `${message} (`; + for (const commit of commits.split(/,\s?/)) { + if (/([\da-f]{40})|([\da-f]{6,8})/.test(commit)) { + const short = (await git.revparse(["--short", commit])).toString().trim(); + finalMessage += `[${short}](https://github.com/DonovanDMC/ProjectExpansion/commit/${commit}), `; + } + } + otherlog.push(`${finalMessage.slice(0, -2)})`); + } else otherlog.push(line); +} + +await writeFile(`${tmpdir()}/${id}-otherlog`, otherlog.join("\n")); +process.stdout.write(`${tmpdir()}/${id}-otherlog`); diff --git a/scripts/publish/scripts/publish.ts b/scripts/publish/scripts/publish.ts new file mode 100644 index 00000000..decedbce --- /dev/null +++ b/scripts/publish/scripts/publish.ts @@ -0,0 +1,66 @@ +// I use a self signed cert locally +process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; +import config from "../config.json" assert { type: "json" }; +import type { ErrorResponse, SuccessResponse } from "../types"; +import simpleGit from "simple-git"; +import readProperties from "properties-reader"; +import { assert } from "tsafe"; +import { fetch, File, FormData } from "undici"; +import { access, readdir, readFile } from "fs/promises"; + +const exists = (input: string) => access(input).then(() => true, () => false); +const baseDir = process.argv[2]; +const gitlogFile = process.argv[3]; +const otherlogFile = process.argv[4]; +if (!baseDir) throw new Error("base dir is required"); +if (!gitlogFile || !(await exists(gitlogFile))) throw new Error(`invalid gitlog file (${gitlogFile})`); +if (!otherlogFile || !(await exists(otherlogFile))) throw new Error(`invalid otherlog file (${otherlogFile})`); + +const props = readProperties(`${baseDir}/gradle.properties`); + +function getProperty(name: string) { + return props.get(name); +} + +const git = simpleGit(baseDir); +await git.pull(["--tags"]); +const currentCommit = await git.revparse("HEAD"); +const latestTag = (await git.raw(["describe", "--tags", "--abbrev=0"])).toString().trim(); +const mcVersion = getProperty("mcVersion") as string | null; +const version = getProperty("localVersion") as string | null; +assert(mcVersion, "mcVersion isn't present"); +assert(version, "version isn't present"); + +if (latestTag.split("-")[1] === version) throw new Error("Local Version Matches Latest"); +if (!await exists(`${baseDir}/build/libs/signed`)) throw new Error("Signed Jar Is Not Present"); +const files = await readdir(`${baseDir}/build/libs/signed`); +const file = files.find(f => f.includes(version)); +if (files.length === 0 || !file) throw new Error("Signed Jar Is Not Present"); +const gitlog = (await readFile(gitlogFile)).toString(); +const otherlog = (await readFile(otherlogFile)).toString(); +const fileContent = await readFile(`${baseDir}/build/libs/signed/${file}`); + +await git.push(); +await git.tag([`${mcVersion}-${version}`]); +await git.push(["--tags"]); +const data = new FormData(); +data.append("gitlog", gitlog); +data.append("changelog", otherlog); +data.append("version", version); +data.append("expectedLatestCommit", currentCommit); +data.append("file", new File([fileContent], file)); +const req = await fetch(`${config.endpoint}/publish/${config.gitName}`, { + method: "POST", + headers: { + Authorization: config.auth + }, + body: data +}); +if (req.status !== 201) throw new Error(`Unexpected ${req.status} ${req.statusText} "${await req.text()}"`); +const body = await req.json() as SuccessResponse | ErrorResponse; +if (body.success) { + console.log("Successfully Published"); + console.log("Curseforge:", body.data.curseforgeURL); + console.log("Modrinth:", body.data.modrinthURL); + console.log("Github:", body.data.gitURL); +} diff --git a/scripts/publish/scripts/remove-comments.ts b/scripts/publish/scripts/remove-comments.ts new file mode 100644 index 00000000..91cadaf5 --- /dev/null +++ b/scripts/publish/scripts/remove-comments.ts @@ -0,0 +1,6 @@ +import { access, readFile, writeFile } from "fs/promises"; + +const file = process.argv[2]; +if (!file || !(await access(file).then(() => true, () => false))) throw new Error("invalid file provided"); +const contents = (await readFile(file)).toString().split("\n"); +await writeFile(file, contents.filter(l => !l.startsWith("#")).join("\n")); diff --git a/scripts/publish/sh/get-log.sh b/scripts/publish/sh/get-log.sh new file mode 100755 index 00000000..baaf8db5 --- /dev/null +++ b/scripts/publish/sh/get-log.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +DIR=$(realpath "$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )") +if [ $# -eq 0 ]; then + echo "Base Directory Is Required" + exit 1 +fi +EDIT_ID=$(tr -dc A-Za-z0-9 /dev/null && pwd )") +if [ $# -eq 0 ]; then + echo "Base Directory Is Required" + exit 1 +fi + +cd "$DIR" || exit +. "$DIR/get-log.sh" "$1" +node --no-warnings --no-deprecation --experimental-specifier-resolution=node --loader ts-node/esm "$DIR/../scripts/publish.ts" "$1" "$GITLOG_FILE" "$OTHERLOG_FILE" diff --git a/scripts/publish/tsconfig.json b/scripts/publish/tsconfig.json new file mode 100644 index 00000000..b639db2b --- /dev/null +++ b/scripts/publish/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "@uwu-codes/tsconfig", + "compilerOptions": { + "outDir": "./build", + "baseUrl": "./src", + "strictPropertyInitialization": false, + "inlineSourceMap": true, + "moduleResolution": "node", + "esModuleInterop": true, + "module": "esnext" + }, + "include": ["**/*"], + "exclude": ["node_modules"] +} diff --git a/scripts/publish/types.d.ts b/scripts/publish/types.d.ts new file mode 100644 index 00000000..fcbf8262 --- /dev/null +++ b/scripts/publish/types.d.ts @@ -0,0 +1,18 @@ +export interface SuccessResponse { + success: true; + data: { + curseforgeID: number; + curseforgeURL: string; + modrinthID: string; + modrinthURL: string; + gitURL: string; + }; +} +export interface ErrorResponse { + success: false; + error: string | Array; + data: { + gitlogID: string | null; + changelogID: string | null; + }; +} diff --git a/scripts/sign-jar.sh b/scripts/sign-jar.sh new file mode 100755 index 00000000..80515f7c --- /dev/null +++ b/scripts/sign-jar.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +. ./scripts/secrets.sh +cd build/libs +mkdir -p signed +for file in *.jar; do + if [ $file == "*.jar" ]; then + echo "no file" + exit 1 + fi + + jarsigner -keystore "$JAVA_SIGNING_STORE" -signedjar "signed/$file" -storepass "$JAVA_SIGNING_PASS" "$file" "$JAVA_SIGNING_ALIAS" +done \ No newline at end of file diff --git a/scripts/update-submodules.sh b/scripts/update-submodules.sh new file mode 100755 index 00000000..edc9e215 --- /dev/null +++ b/scripts/update-submodules.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +git submodule update --recursive --remote \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..c5ee5e22 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,8 @@ +pluginManagement { + repositories { + gradlePluginPortal() + maven { url = 'https://maven.minecraftforge.net/' } + } +} + +rootProject.name = 'projectexpansion' diff --git a/src/generated/resources/assets/projectexpansion/blockstates/arcane_table.json b/src/generated/resources/assets/projectexpansion/blockstates/arcane_table.json new file mode 100644 index 00000000..6c45cd1e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/arcane_table.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "projectexpansion:block/arcane_table", + "x": 180 + }, + "facing=up": { + "model": "projectexpansion:block/arcane_table" + }, + "facing=north": { + "model": "projectexpansion:block/arcane_table", + "x": 90 + }, + "facing=south": { + "model": "projectexpansion:block/arcane_table", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "projectexpansion:block/arcane_table", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "projectexpansion:block/arcane_table", + "x": 90, + "y": 90 + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/basic_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/basic_collector.json new file mode 100644 index 00000000..992cc6f9 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/basic_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/basic" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/basic_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/basic_emc_link.json new file mode 100644 index 00000000..006a41fc --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/basic_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/basic" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/basic_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/basic_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/basic_power_flower.json new file mode 100644 index 00000000..6ef2c24d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/basic_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/basic" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/basic_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/basic_relay.json new file mode 100644 index 00000000..1b579456 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/basic_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/basic" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/blue_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/blue_collector.json new file mode 100644 index 00000000..72f24ad1 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/blue_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/blue" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/blue_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/blue_emc_link.json new file mode 100644 index 00000000..8aa1c2e8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/blue_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/blue" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/blue_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/blue_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/blue_fuel_block.json new file mode 100644 index 00000000..4ffc3295 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/blue_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/blue" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/blue_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/blue_power_flower.json new file mode 100644 index 00000000..079c2d15 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/blue_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/blue" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/blue_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/blue_relay.json new file mode 100644 index 00000000..9003d1ac --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/blue_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/blue" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/cyan_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/cyan_collector.json new file mode 100644 index 00000000..c472c2fa --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/cyan_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/cyan" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/cyan_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/cyan_emc_link.json new file mode 100644 index 00000000..5f6a1685 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/cyan_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/cyan" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/cyan_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/cyan_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/cyan_fuel_block.json new file mode 100644 index 00000000..f8062703 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/cyan_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/cyan" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/cyan_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/cyan_power_flower.json new file mode 100644 index 00000000..6fba02b9 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/cyan_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/cyan" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/cyan_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/cyan_relay.json new file mode 100644 index 00000000..211292e8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/cyan_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/cyan" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/dark_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/dark_collector.json new file mode 100644 index 00000000..aa47c4f9 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/dark_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/dark" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/dark_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/dark_emc_link.json new file mode 100644 index 00000000..76f7e838 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/dark_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/dark" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/dark_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/dark_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/dark_power_flower.json new file mode 100644 index 00000000..25fc1251 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/dark_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/dark" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/dark_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/dark_relay.json new file mode 100644 index 00000000..d1157668 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/dark_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/dark" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/fading_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/fading_collector.json new file mode 100644 index 00000000..8f2bb048 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/fading_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/fading" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/fading_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/fading_emc_link.json new file mode 100644 index 00000000..05531406 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/fading_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/fading" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/fading_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/fading_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/fading_power_flower.json new file mode 100644 index 00000000..c3ff05ae --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/fading_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/fading" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/fading_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/fading_relay.json new file mode 100644 index 00000000..1575571e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/fading_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/fading" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/final_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/final_collector.json new file mode 100644 index 00000000..8a6806c6 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/final_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/final" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/final_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/final_emc_link.json new file mode 100644 index 00000000..2f62b978 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/final_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/final" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/final_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/final_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/final_power_flower.json new file mode 100644 index 00000000..4ea19f77 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/final_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/final" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/final_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/final_relay.json new file mode 100644 index 00000000..6aef7096 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/final_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/final" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/green_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/green_collector.json new file mode 100644 index 00000000..0210e742 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/green_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/green" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/green_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/green_emc_link.json new file mode 100644 index 00000000..95ad2765 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/green_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/green" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/green_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/green_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/green_fuel_block.json new file mode 100644 index 00000000..2eb6941f --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/green_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/green" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/green_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/green_power_flower.json new file mode 100644 index 00000000..dd16e727 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/green_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/green" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/green_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/green_relay.json new file mode 100644 index 00000000..69a8e0e7 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/green_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/green" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/lime_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/lime_collector.json new file mode 100644 index 00000000..04390ac0 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/lime_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/lime" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/lime_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/lime_emc_link.json new file mode 100644 index 00000000..fd23b82a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/lime_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/lime" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/lime_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/lime_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/lime_fuel_block.json new file mode 100644 index 00000000..58a01a21 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/lime_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/lime" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/lime_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/lime_power_flower.json new file mode 100644 index 00000000..7e84a7fe --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/lime_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/lime" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/lime_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/lime_relay.json new file mode 100644 index 00000000..8012f357 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/lime_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/lime" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/magenta_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/magenta_collector.json new file mode 100644 index 00000000..9035b791 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/magenta_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/magenta" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/magenta_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/magenta_emc_link.json new file mode 100644 index 00000000..99087170 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/magenta_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/magenta" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/magenta_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/magenta_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/magenta_fuel_block.json new file mode 100644 index 00000000..6f029db4 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/magenta_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/magenta" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/magenta_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/magenta_power_flower.json new file mode 100644 index 00000000..50e70451 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/magenta_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/magenta" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/magenta_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/magenta_relay.json new file mode 100644 index 00000000..937ce9dd --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/magenta_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/magenta" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/orange_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/orange_collector.json new file mode 100644 index 00000000..224445aa --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/orange_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/orange" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/orange_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/orange_emc_link.json new file mode 100644 index 00000000..71eea2c4 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/orange_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/orange" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/orange_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/orange_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/orange_fuel_block.json new file mode 100644 index 00000000..a2d88def --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/orange_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/orange" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/orange_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/orange_power_flower.json new file mode 100644 index 00000000..880c188d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/orange_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/orange" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/orange_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/orange_relay.json new file mode 100644 index 00000000..dd8e4d37 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/orange_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/orange" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/pink_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/pink_collector.json new file mode 100644 index 00000000..6c783cb2 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/pink_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/pink" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/pink_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/pink_emc_link.json new file mode 100644 index 00000000..e39c1af1 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/pink_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/pink" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/pink_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/pink_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/pink_fuel_block.json new file mode 100644 index 00000000..3ddfa69a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/pink_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/pink" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/pink_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/pink_power_flower.json new file mode 100644 index 00000000..3a1bd2bd --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/pink_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/pink" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/pink_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/pink_relay.json new file mode 100644 index 00000000..0d76a124 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/pink_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/pink" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/purple_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/purple_collector.json new file mode 100644 index 00000000..221768a3 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/purple_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/purple" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/purple_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/purple_emc_link.json new file mode 100644 index 00000000..0b3c7f14 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/purple_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/purple" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/purple_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/purple_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/purple_fuel_block.json new file mode 100644 index 00000000..cb3c3a54 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/purple_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/purple" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/purple_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/purple_power_flower.json new file mode 100644 index 00000000..3a301314 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/purple_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/purple" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/purple_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/purple_relay.json new file mode 100644 index 00000000..d4ba9732 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/purple_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/purple" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/red_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/red_collector.json new file mode 100644 index 00000000..0c98f3f8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/red_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/red" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/red_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/red_emc_link.json new file mode 100644 index 00000000..03cd9152 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/red_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/red" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/red_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/red_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/red_power_flower.json new file mode 100644 index 00000000..e4d95262 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/red_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/red" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/red_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/red_relay.json new file mode 100644 index 00000000..0a1278c5 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/red_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/red" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/transmutation_interface.json b/src/generated/resources/assets/projectexpansion/blockstates/transmutation_interface.json new file mode 100644 index 00000000..fec61c38 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/transmutation_interface.json @@ -0,0 +1,11 @@ +{ + "forge_marker": 1, + "variants": { + "filter=true": { + "model": "projectexpansion:block/transmutation_interface" + }, + "filter=false": { + "model": "projectexpansion:block/transmutation_interface_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/violet_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/violet_collector.json new file mode 100644 index 00000000..514535e8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/violet_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/violet" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/violet_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/violet_emc_link.json new file mode 100644 index 00000000..cd4b0572 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/violet_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/violet" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/violet_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/violet_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/violet_fuel_block.json new file mode 100644 index 00000000..b22ade18 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/violet_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/violet" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/violet_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/violet_power_flower.json new file mode 100644 index 00000000..5411e584 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/violet_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/violet" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/violet_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/violet_relay.json new file mode 100644 index 00000000..34f0f5ff --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/violet_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/violet" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/white_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/white_collector.json new file mode 100644 index 00000000..bb1176ce --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/white_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/white" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/white_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/white_emc_link.json new file mode 100644 index 00000000..e8db19bc --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/white_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/white" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/white_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/white_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/white_fuel_block.json new file mode 100644 index 00000000..2e993b21 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/white_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/white" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/white_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/white_power_flower.json new file mode 100644 index 00000000..6d863c95 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/white_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/white" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/white_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/white_relay.json new file mode 100644 index 00000000..ff37d832 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/white_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/white" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/yellow_collector.json b/src/generated/resources/assets/projectexpansion/blockstates/yellow_collector.json new file mode 100644 index 00000000..d35bab3b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/yellow_collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/yellow" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/yellow_emc_link.json b/src/generated/resources/assets/projectexpansion/blockstates/yellow_emc_link.json new file mode 100644 index 00000000..b74008b6 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/yellow_emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/yellow" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/yellow_nofilter" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/yellow_fuel_block.json b/src/generated/resources/assets/projectexpansion/blockstates/yellow_fuel_block.json new file mode 100644 index 00000000..950be922 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/yellow_fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/yellow" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/yellow_power_flower.json b/src/generated/resources/assets/projectexpansion/blockstates/yellow_power_flower.json new file mode 100644 index 00000000..a572261e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/yellow_power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/yellow" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/blockstates/yellow_relay.json b/src/generated/resources/assets/projectexpansion/blockstates/yellow_relay.json new file mode 100644 index 00000000..debcb969 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/blockstates/yellow_relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/yellow" + } + } +} diff --git a/src/generated/resources/assets/projectexpansion/lang/en_us.json b/src/generated/resources/assets/projectexpansion/lang/en_us.json new file mode 100644 index 00000000..e5d98b26 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/lang/en_us.json @@ -0,0 +1,269 @@ +{ + "block.projectexpansion.collector.tooltip": "Generates EMC once per second.", + "block.projectexpansion.collector.emc": "Produced EMC: %s/s", + "block.projectexpansion.basic_collector": "Basic Collector [MK 1]", + "block.projectexpansion.dark_collector": "Dark Collector [MK 2]", + "block.projectexpansion.red_collector": "Red Collector [MK 3]", + "block.projectexpansion.magenta_collector": "Magenta Collector [MK 4]", + "block.projectexpansion.pink_collector": "Pink Collector [MK 5]", + "block.projectexpansion.purple_collector": "Purple Collector [MK 6]", + "block.projectexpansion.violet_collector": "Violet Collector [MK 7]", + "block.projectexpansion.blue_collector": "Blue Collector [MK 8]", + "block.projectexpansion.cyan_collector": "Cyan Collector [MK 9]", + "block.projectexpansion.green_collector": "Green Collector [MK 10]", + "block.projectexpansion.lime_collector": "Lime Collector [MK 11]", + "block.projectexpansion.yellow_collector": "Yellow Collector [MK 12]", + "block.projectexpansion.orange_collector": "Orange Collector [MK 13]", + "block.projectexpansion.white_collector": "White Collector [MK 14]", + "block.projectexpansion.fading_collector": "Fading Collector [MK 15]", + "block.projectexpansion.final_collector": "Final Collector [MK 16]", + "block.projectexpansion.emc_link.tooltip": "Can be used to import emc & items, and export items.", + "block.projectexpansion.emc_link.limit_items": "Item Import/Export Limit: %s/s", + "block.projectexpansion.emc_link.limit_fluids": "Fluid Export Limit: %s mB/s", + "block.projectexpansion.emc_link.limit_emc": "EMC Limit: %s/s", + "block.projectexpansion.emc_link.not_set": "An export item has not been set.", + "block.projectexpansion.emc_link.already_set": "An export item has already been set, clear the current export first.", + "block.projectexpansion.emc_link.empty_hand": "Empty your hand to retrieve items.", + "block.projectexpansion.emc_link.cleared": "Export item has been cleared.", + "block.projectexpansion.emc_link.not_enough_emc": "You do not have enough emc to purchase this, you need %s.", + "block.projectexpansion.emc_link.set": "Export item has been set to %s.", + "block.projectexpansion.emc_link.no_emc_value": "%s does not have an emc value.", + "block.projectexpansion.emc_link.no_export_remaining": "Export limit has been reached, please wait a second.", + "block.projectexpansion.basic_emc_link": "Basic EMC Link [MK 1]", + "block.projectexpansion.dark_emc_link": "Dark EMC Link [MK 2]", + "block.projectexpansion.red_emc_link": "Red EMC Link [MK 3]", + "block.projectexpansion.magenta_emc_link": "Magenta EMC Link [MK 4]", + "block.projectexpansion.pink_emc_link": "Pink EMC Link [MK 5]", + "block.projectexpansion.purple_emc_link": "Purple EMC Link [MK 6]", + "block.projectexpansion.violet_emc_link": "Violet EMC Link [MK 7]", + "block.projectexpansion.blue_emc_link": "Blue EMC Link [MK 8]", + "block.projectexpansion.cyan_emc_link": "Cyan EMC Link [MK 9]", + "block.projectexpansion.green_emc_link": "Green EMC Link [MK 10]", + "block.projectexpansion.lime_emc_link": "Lime EMC Link [MK 11]", + "block.projectexpansion.yellow_emc_link": "Yellow EMC Link [MK 12]", + "block.projectexpansion.orange_emc_link": "Orange EMC Link [MK 13]", + "block.projectexpansion.white_emc_link": "White EMC Link [MK 14]", + "block.projectexpansion.fading_emc_link": "Fading EMC Link [MK 15]", + "block.projectexpansion.final_emc_link": "Final EMC Link [MK 16]", + "block.projectexpansion.magenta_fuel_block": "Magenta Fuel Block", + "block.projectexpansion.pink_fuel_block": "Pink Fuel Block", + "block.projectexpansion.purple_fuel_block": "Purple Fuel Block", + "block.projectexpansion.violet_fuel_block": "Violet Fuel Block", + "block.projectexpansion.blue_fuel_block": "Blue Fuel Block", + "block.projectexpansion.cyan_fuel_block": "Cyan Fuel Block", + "block.projectexpansion.green_fuel_block": "Green Fuel Block", + "block.projectexpansion.lime_fuel_block": "Lime Fuel Block", + "block.projectexpansion.yellow_fuel_block": "Yellow Fuel Block", + "block.projectexpansion.orange_fuel_block": "Orange Fuel Block", + "block.projectexpansion.white_fuel_block": "White Fuel Block", + "block.projectexpansion.arcane_table": "Arcane Table", + "block.projectexpansion.transmutation_interface": "Transmutation Interface", + "block.projectexpansion.transmutation_interface.tooltip": "This can be used with compatible mods like Applied Energistics to access your transmutation inventory.", + "block.projectexpansion.power_flower.tooltip": "Generates EMC once per %s tick%s. (20/second)", + "block.projectexpansion.power_flower.emc": "Produced EMC: %s/s", + "block.projectexpansion.basic_power_flower": "Basic Power Flower [MK 1]", + "block.projectexpansion.dark_power_flower": "Dark Power Flower [MK 2]", + "block.projectexpansion.red_power_flower": "Red Power Flower [MK 3]", + "block.projectexpansion.magenta_power_flower": "Magenta Power Flower [MK 4]", + "block.projectexpansion.pink_power_flower": "Pink Power Flower [MK 5]", + "block.projectexpansion.purple_power_flower": "Purple Power Flower [MK 6]", + "block.projectexpansion.violet_power_flower": "Violet Power Flower [MK 7]", + "block.projectexpansion.blue_power_flower": "Blue Power Flower [MK 8]", + "block.projectexpansion.cyan_power_flower": "Cyan Power Flower [MK 9]", + "block.projectexpansion.green_power_flower": "Green Power Flower [MK 10]", + "block.projectexpansion.lime_power_flower": "Lime Power Flower [MK 11]", + "block.projectexpansion.yellow_power_flower": "Yellow Power Flower [MK 12]", + "block.projectexpansion.orange_power_flower": "Orange Power Flower [MK 13]", + "block.projectexpansion.white_power_flower": "White Power Flower [MK 14]", + "block.projectexpansion.fading_power_flower": "Fading Power Flower [MK 15]", + "block.projectexpansion.final_power_flower": "Final Power Flower [MK 16]", + "block.projectexpansion.relay.tooltip": "Transfers EMC once per second.", + "block.projectexpansion.relay.bonus": "Relay Bonus: %s/s", + "block.projectexpansion.relay.transfer": "Max EMC Transfer: %s/s", + "block.projectexpansion.basic_relay": "Basic Relay [MK 1]", + "block.projectexpansion.dark_relay": "Dark Relay [MK 2]", + "block.projectexpansion.red_relay": "Red Relay [MK 3]", + "block.projectexpansion.magenta_relay": "Magenta Relay [MK 4]", + "block.projectexpansion.pink_relay": "Pink Relay [MK 5]", + "block.projectexpansion.purple_relay": "Purple Relay [MK 6]", + "block.projectexpansion.violet_relay": "Violet Relay [MK 7]", + "block.projectexpansion.blue_relay": "Blue Relay [MK 8]", + "block.projectexpansion.cyan_relay": "Cyan Relay [MK 9]", + "block.projectexpansion.green_relay": "Green Relay [MK 10]", + "block.projectexpansion.lime_relay": "Lime Relay [MK 11]", + "block.projectexpansion.yellow_relay": "Yellow Relay [MK 12]", + "block.projectexpansion.orange_relay": "Orange Relay [MK 13]", + "block.projectexpansion.white_relay": "White Relay [MK 14]", + "block.projectexpansion.fading_relay": "Fading Relay [MK 15]", + "block.projectexpansion.final_relay": "Final Relay [MK 16]", + "command.projectexpansion.emc.invalid": "The value you provided (\"%s\") is invalid, it must be a positive integer.", + "command.projectexpansion.emc.add.success": "Successfully added %s emc to %s, they now have %s", + "command.projectexpansion.emc.add.successSelf": "Successfully added %s to your emc, you now have %s", + "command.projectexpansion.emc.add.notification": "You were given %s emc by %s, you now have %s", + "command.projectexpansion.emc.remove.success": "Successfully removed %s emc from %s, they now have %s", + "command.projectexpansion.emc.remove.successSelf": "Successfully removed %s fro your emc, you now have %s", + "command.projectexpansion.emc.remove.notification": "%s emc was removed from you by %s, you now have %s", + "command.projectexpansion.emc.remove.negative": "Cannot remove %s emc from %s as this would make their emc negative.", + "command.projectexpansion.emc.set.success": "Successfully set the emc of %s to %s", + "command.projectexpansion.emc.set.successSelf": "Successfully set your emc to %s", + "command.projectexpansion.emc.set.notification": "Your emc was set to %s by %s", + "command.projectexpansion.emc.get.successSelf": "You have %s emc", + "command.projectexpansion.emc.get.success": "%s has %s emc", + "command.projectexpansion.emc.test.success": "%s does have enough emc to remove %s.", + "command.projectexpansion.emc.test.successSelf": "You do have enough emc to remove %s.", + "command.projectexpansion.emc.test.fail": "%s does not have enough emc to remove %s.", + "command.projectexpansion.emc.test.failSelf": "You do not have enough emc to remove %s.", + "command.projectexpansion.knowledge.invalid": "That item does not have an emc value, and cannot be learned.", + "command.projectexpansion.knowledge.clear.success": "Successfully cleared the knowledge of %s", + "command.projectexpansion.knowledge.clear.successSelf": "Successfully cleared your knowledge", + "command.projectexpansion.knowledge.clear.fail": "%s does not have any knowledge to clear.", + "command.projectexpansion.knowledge.clear.failSelf": "You do not have any knowledge to clear.", + "command.projectexpansion.knowledge.clear.notification": "Your knowledge was cleared by %s", + "command.projectexpansion.knowledge.learn.success": "%s has successfully learned %s.", + "command.projectexpansion.knowledge.learn.successSelf": "You have successfully learned %s.", + "command.projectexpansion.knowledge.learn.fail": "%s already has knowledge of %s.", + "command.projectexpansion.knowledge.learn.failSelf": "You already have knowledge of %s.", + "command.projectexpansion.knowledge.learn.notification": "You gained knowledge of %s from %s.", + "command.projectexpansion.knowledge.unlearn.success": "%s has successfully unlearned %s.", + "command.projectexpansion.knowledge.unlearn.successSelf": "You have successfully unlearned %s.", + "command.projectexpansion.knowledge.unlearn.fail": "%s does not have knowledge of %s.", + "command.projectexpansion.knowledge.unlearn.failSelf": "You do not have knowledge of %s.", + "command.projectexpansion.knowledge.unlearn.notification": "You lost knowledge of %s from %s.", + "command.projectexpansion.knowledge.test.success": "%s does knowledge of %s.", + "command.projectexpansion.knowledge.test.successSelf": "You do have knowledge of %s.", + "command.projectexpansion.knowledge.test.fail": "%s does not have knowledge of %s.", + "command.projectexpansion.knowledge.test.failSelf": "You do not have knowledge of %s.", + "command.projectexpansion.console": "Console", + "gui.projectexpansion.config.title": "Project Expansion Config", + "gui.projectexpansion.config.tick_delay": "Tick Delay", + "gui.projectexpansion.config.tick_delay.desc": "The delay between mod operations (in ticks, default 20) - this will slightly effect the amount of emc generated via rounding - increase if you're noticing lag", + "gui.projectexpansion.config.format_emc": "Format EMC", + "gui.projectexpansion.config.format_emc.desc": "If EMC should be formatted as M/B/T/etc", + "gui.projectexpansion.config.full_number_names": "Full Number Names", + "gui.projectexpansion.config.full_number_names.desc": "If full number names (Million/Billion/Trillion) should be used instead of abbreviations", + "gui.projectexpansion.config.emc_display": "EMC Display", + "gui.projectexpansion.config.emc_display.desc": "Displays your current emc and gained emc per second in the top left corner.", + "gui.projectexpansion.config.notify_command_changes": "Notify Command Changes", + "gui.projectexpansion.config.notify_command_changes.desc": "Notify users something is changed about them via /emc.", + "gui.projectexpansion.config.limit_emc_link_vendor": "Limit EMC Link Vendor Output", + "gui.projectexpansion.config.limit_emc_link_vendor.desc": "If EMC Link Right-Click functionality should be Limited by Tier or Not.", + "gui.projectexpansion.config.transmutation_interface_item_count": "Transmutation Interface Item Count", + "gui.projectexpansion.config.transmutation_interface_item_count.desc": "The amount of items that the transmutation interface will report to have. You likely want this to be at least 64.", + "gui.projectexpansion.config.use_old_values": "Use Old Values", + "gui.projectexpansion.config.use_old_values.desc": "Use the previous emc generation values (much more unbalanced)", + "gui.projectexpansion.config.collector_multiplier": "Collector Multiplier", + "gui.projectexpansion.config.collector_multiplier.desc": "Multiplies the output of Collectors.", + "gui.projectexpansion.config.emc_link_item_limit_multiplier": "EMC Link Item Limit Multiplier", + "gui.projectexpansion.config.emc_link_item_limit_multiplier.desc": "Multiplies the item limit of EMC Links.", + "gui.projectexpansion.config.emc_link_fluid_limit_multiplier": "EMC Link Fluid Limit Multiplier", + "gui.projectexpansion.config.emc_link_fluid_limit_multiplier.desc": "Multiplies the fluid limit of EMC Links.", + "gui.projectexpansion.config.emc_link_emc_limit_multiplier": "EMC Link EMC Limit Multiplier", + "gui.projectexpansion.config.emc_link_emc_limit_multiplier.desc": "Multiplies the emc limit of EMC Links.", + "gui.projectexpansion.config.powerflower_multiplier": "Power Flower Multiplier", + "gui.projectexpansion.config.powerflower_multiplier.desc": "Multiplies the output of Power Flowers.", + "gui.projectexpansion.config.relay_bonus_multiplier": "Relay Bonus Multiplier", + "gui.projectexpansion.config.relay_bonus_multiplier.desc": "Multiplies the bonus of Relays.", + "gui.projectexpansion.config.relay_transfer_multiplier": "Relay Transfer Multiplier", + "gui.projectexpansion.config.relay_transfer_multiplier.desc": "Multiplies the transfer limit of Relays.", + "gui.projectexpansion.config.infinite_fuel_cost": "Infinite Fuel Cost", + "gui.projectexpansion.config.infinite_fuel_cost.desc": "The cost of using the infinite fuel item.", + "gui.projectexpansion.config.infinite_fuel_burn_time": "Infinite Fuel Burn Time", + "gui.projectexpansion.config.infinite_fuel_burn_time.desc": "The ticks each usage of the infinite fuel item will give.", + "gui.projectexpansion.config.infinite_steak_cost": "Infinite Steak Cost", + "gui.projectexpansion.config.infinite_steak_cost.desc": "The cost of using the infinite steak item.", + "item.projectexpansion.compressed_collector.tooltip": "Crafting Ingredient", + "item.projectexpansion.basic_compressed_collector": "Basic Compressed Collector [MK 1]", + "item.projectexpansion.dark_compressed_collector": "Dark Compressed Collector [MK 2]", + "item.projectexpansion.red_compressed_collector": "Red Compressed Collector [MK 3]", + "item.projectexpansion.magenta_compressed_collector": "Magenta Compressed Collector [MK 4]", + "item.projectexpansion.pink_compressed_collector": "Pink Compressed Collector [MK 5]", + "item.projectexpansion.purple_compressed_collector": "Purple Compressed Collector [MK 6]", + "item.projectexpansion.violet_compressed_collector": "Violet Compressed Collector [MK 7]", + "item.projectexpansion.blue_compressed_collector": "Blue Compressed Collector [MK 8]", + "item.projectexpansion.cyan_compressed_collector": "Cyan Compressed Collector [MK 9]", + "item.projectexpansion.green_compressed_collector": "Green Compressed Collector [MK 10]", + "item.projectexpansion.lime_compressed_collector": "Lime Compressed Collector [MK 11]", + "item.projectexpansion.yellow_compressed_collector": "Yellow Compressed Collector [MK 12]", + "item.projectexpansion.orange_compressed_collector": "Orange Compressed Collector [MK 13]", + "item.projectexpansion.white_compressed_collector": "White Compressed Collector [MK 14]", + "item.projectexpansion.fading_compressed_collector": "Fading Compressed Collector [MK 15]", + "item.projectexpansion.final_compressed_collector": "Final Compressed Collector [MK 16]", + "item.projectexpansion.magenta_fuel": "Magenta Fuel", + "item.projectexpansion.pink_fuel": "Pink Fuel", + "item.projectexpansion.purple_fuel": "Purple Fuel", + "item.projectexpansion.violet_fuel": "Violet Fuel", + "item.projectexpansion.blue_fuel": "Blue Fuel", + "item.projectexpansion.cyan_fuel": "Cyan Fuel", + "item.projectexpansion.green_fuel": "Green Fuel", + "item.projectexpansion.lime_fuel": "Lime Fuel", + "item.projectexpansion.yellow_fuel": "Yellow Fuel", + "item.projectexpansion.orange_fuel": "Orange Fuel", + "item.projectexpansion.white_fuel": "White Fuel", + "item.projectexpansion.magenta_matter": "Magenta Matter", + "item.projectexpansion.pink_matter": "Pink Matter", + "item.projectexpansion.purple_matter": "Purple Matter", + "item.projectexpansion.violet_matter": "Violet Matter", + "item.projectexpansion.blue_matter": "Blue Matter", + "item.projectexpansion.cyan_matter": "Cyan Matter", + "item.projectexpansion.green_matter": "Green Matter", + "item.projectexpansion.lime_matter": "Lime Matter", + "item.projectexpansion.yellow_matter": "Yellow Matter", + "item.projectexpansion.orange_matter": "Orange Matter", + "item.projectexpansion.white_matter": "White Matter", + "item.projectexpansion.fading_matter": "Fading Matter", + "item.projectexpansion.matter_upgrader.tooltip": "Upgrades collectors, power flowers, and relays in-place.", + "item.projectexpansion.matter_upgrader.tooltip2": "You must have learned the next tier, and have the difference in emc available to upgrade.", + "item.projectexpansion.matter_upgrader.tooltip_creative": "The above restriction does not apply if you are in creative.", + "item.projectexpansion.matter_upgrader": "Matter Upgrader", + "item.projectexpansion.matter_upgrader.not_owner": "You do not own this.", + "item.projectexpansion.matter_upgrader.max_upgrade": "This block has been maxed out.", + "item.projectexpansion.matter_upgrader.not_learned": "You must learn \"%s\" before upgrading to it.", + "item.projectexpansion.matter_upgrader.not_enough_emc": "You do not have enough emc, you need %s.", + "item.projectexpansion.matter_upgrader.done": "Upgrade done, %s emc has been used.", + "item.projectexpansion.matter_upgrader.done_creative": "Upgrade done, no emc has been used.", + "item.projectexpansion.arcane_tablet": "Arcane Tablet", + "item.projectexpansion.final_star_shard": "Final Star Shard", + "item.projectexpansion.final_star_shard.tooltip": "Crafting ingredient.", + "item.projectexpansion.final_star": "Final Star", + "item.projectexpansion.final_star.tooltip": "Currently exists only to show off, future usages are planned.", + "item.projectexpansion.infinite_fuel": "Infinite Fuel", + "item.projectexpansion.infinite_fuel.tooltip": "This item will not be consumed, fuel will be provided via your emc.", + "item.projectexpansion.infinite_fuel.not_enough_emc": "You do not have enough emc to use this, you need %s.", + "item.projectexpansion.infinite_steak": "Infinite Steak", + "item.projectexpansion.infinite_steak.tooltip": "Infinite food via your emc.", + "item.projectexpansion.infinite_steak.not_enough_emc": "You do not have enough emc to use this, you need %s.", + "item.projectexpansion.knowledge_sharing_book": "Knowledge Sharing Book", + "item.projectexpansion.knowledge_sharing_book.selected": "Selected Player: %s", + "item.projectexpansion.knowledge_sharing_book.stored": "Knowledge stored.", + "item.projectexpansion.knowledge_sharing_book.self": "You cannot gain your own knowledge.", + "item.projectexpansion.knowledge_sharing_book.learned": "You learned %s.", + "item.projectexpansion.knowledge_sharing_book.learned_over_100": "%s item(s) were learned, but not shown.", + "item.projectexpansion.knowledge_sharing_book.learned_total": "You have learned %s item(s) from %s.", + "item.projectexpansion.knowledge_sharing_book.no_new_knowledge": "You learned nothing new.", + "item.projectexpansion.knowledge_sharing_book.no_owner": "You cannot gain knowledge from an unowned book.", + "item.projectexpansion.magnum_star_ein": "Magnum Star Ein", + "item.projectexpansion.magnum_star_zwei": "Magnum Star Zwei", + "item.projectexpansion.magnum_star_drei": "Magnum Star Drei", + "item.projectexpansion.magnum_star_vier": "Magnum Star Vier", + "item.projectexpansion.magnum_star_sphere": "Magnum Star Sphere", + "item.projectexpansion.magnum_star_omega": "Magnum Star Omega", + "item.projectexpansion.colossal_star_ein": "Colossal Star Ein", + "item.projectexpansion.colossal_star_zwei": "Colossal Star Zwei", + "item.projectexpansion.colossal_star_drei": "Colossal Star Drei", + "item.projectexpansion.colossal_star_vier": "Colossal Star Vier", + "item.projectexpansion.colossal_star_sphere": "Colossal Star Sphere", + "item.projectexpansion.colossal_star_omega": "Colossal Star Omega", + "itemGroup.projectexpansion": "Project Expansion", + "text.projectexpansion.wip": "WIP!", + "text.projectexpansion.provider_error": "Failed to fetch ProjectE provider.", + "text.projectexpansion.see_wiki": "See the wiki on github for more information.", + "text.projectexpansion.cost": "Cost: %s", + "text.projectexpansion.not_owner": "You do not own this, %s does.", + "text.projectexpansion.nbt_filter.disable": "NBT Filter Disabled", + "text.projectexpansion.nbt_filter.enable": "NBT Filter Enabled", + "enchantment.projectexpansion.alchemical_collection": "Alchemical Collection", + "enchantment.projectexpansion.alchemical_collection.desc": "Converts any mined items with an emc value directly into emc.", + "sounds.projectexpansion.knowledge_sharing_book.store": "Knowledge Stored", + "sounds.projectexpansion.knowledge_sharing_book.use": "Knowledge Gained", + "sounds.projectexpansion.knowledge_sharing_book.use_none": "No Knowledge Gained" +} \ No newline at end of file diff --git a/src/generated/resources/assets/projectexpansion/models/block/arcane_table.json b/src/generated/resources/assets/projectexpansion/models/block/arcane_table.json new file mode 100644 index 00000000..ddc4703a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/arcane_table.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:block/block", + "textures": { + "bottom": "projectexpansion:block/arcane_table/bottom", + "top": "projectexpansion:block/arcane_table/top", + "side": "projectexpansion:block/arcane_table/side", + "particle": "projectexpansion:block/arcane_table/top" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 4, + 16 + ], + "faces": { + "down": { + "texture": "#bottom", + "cullface": "down" + }, + "up": { + "texture": "#top" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "south" + }, + "west": { + "texture": "#side", + "cullface": "west" + }, + "east": { + "texture": "#side", + "cullface": "east" + } + } + } + ] +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/basic.json b/src/generated/resources/assets/projectexpansion/models/block/collector/basic.json new file mode 100644 index 00000000..9a968d95 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/basic.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/basic" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/blue.json b/src/generated/resources/assets/projectexpansion/models/block/collector/blue.json new file mode 100644 index 00000000..522521e8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/blue.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/blue" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/cyan.json b/src/generated/resources/assets/projectexpansion/models/block/collector/cyan.json new file mode 100644 index 00000000..f14b663d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/cyan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/cyan" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/dark.json b/src/generated/resources/assets/projectexpansion/models/block/collector/dark.json new file mode 100644 index 00000000..c9baa965 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/dark.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/dark" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/fading.json b/src/generated/resources/assets/projectexpansion/models/block/collector/fading.json new file mode 100644 index 00000000..5a762918 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/fading.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/fading" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/final.json b/src/generated/resources/assets/projectexpansion/models/block/collector/final.json new file mode 100644 index 00000000..697eb423 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/final.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/final" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/green.json b/src/generated/resources/assets/projectexpansion/models/block/collector/green.json new file mode 100644 index 00000000..8fd3101f --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/green.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/green" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/lime.json b/src/generated/resources/assets/projectexpansion/models/block/collector/lime.json new file mode 100644 index 00000000..31d4fb30 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/lime.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/lime" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/magenta.json b/src/generated/resources/assets/projectexpansion/models/block/collector/magenta.json new file mode 100644 index 00000000..bb2b98d9 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/magenta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/magenta" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/orange.json b/src/generated/resources/assets/projectexpansion/models/block/collector/orange.json new file mode 100644 index 00000000..042b16fe --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/orange.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/orange" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/pink.json b/src/generated/resources/assets/projectexpansion/models/block/collector/pink.json new file mode 100644 index 00000000..6cc79be9 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/pink.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/pink" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/purple.json b/src/generated/resources/assets/projectexpansion/models/block/collector/purple.json new file mode 100644 index 00000000..d01d9932 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/purple.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/purple" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/red.json b/src/generated/resources/assets/projectexpansion/models/block/collector/red.json new file mode 100644 index 00000000..69ef61ef --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/red.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/red" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/violet.json b/src/generated/resources/assets/projectexpansion/models/block/collector/violet.json new file mode 100644 index 00000000..6dfec1b2 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/violet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/violet" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/white.json b/src/generated/resources/assets/projectexpansion/models/block/collector/white.json new file mode 100644 index 00000000..00e54c08 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/white.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/white" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/collector/yellow.json b/src/generated/resources/assets/projectexpansion/models/block/collector/yellow.json new file mode 100644 index 00000000..945c9319 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/collector/yellow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/yellow" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/basic.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/basic.json new file mode 100644 index 00000000..5f7f0291 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/basic.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/basic" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/basic_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/basic_nofilter.json new file mode 100644 index 00000000..40eb30e6 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/basic_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/basic_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/blue.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/blue.json new file mode 100644 index 00000000..95a7e2f2 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/blue.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/blue" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/blue_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/blue_nofilter.json new file mode 100644 index 00000000..1c92bfa5 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/blue_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/blue_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/cyan.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/cyan.json new file mode 100644 index 00000000..b5d99643 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/cyan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/cyan" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/cyan_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/cyan_nofilter.json new file mode 100644 index 00000000..43e1091b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/cyan_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/cyan_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/dark.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/dark.json new file mode 100644 index 00000000..dba42cf6 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/dark.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/dark" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/dark_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/dark_nofilter.json new file mode 100644 index 00000000..01fcabde --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/dark_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/dark_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/fading.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/fading.json new file mode 100644 index 00000000..3bfeb818 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/fading.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/fading" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/fading_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/fading_nofilter.json new file mode 100644 index 00000000..c53f9562 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/fading_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/fading_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/final.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/final.json new file mode 100644 index 00000000..8cb9fc5f --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/final.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/final" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/final_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/final_nofilter.json new file mode 100644 index 00000000..89451d99 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/final_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/final_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/green.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/green.json new file mode 100644 index 00000000..bf0450a3 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/green.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/green" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/green_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/green_nofilter.json new file mode 100644 index 00000000..c527e381 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/green_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/green_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/lime.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/lime.json new file mode 100644 index 00000000..6b6e3057 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/lime.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/lime" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/lime_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/lime_nofilter.json new file mode 100644 index 00000000..9725f475 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/lime_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/lime_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/magenta.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/magenta.json new file mode 100644 index 00000000..6f0e1546 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/magenta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/magenta" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/magenta_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/magenta_nofilter.json new file mode 100644 index 00000000..2878df74 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/magenta_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/magenta_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/orange.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/orange.json new file mode 100644 index 00000000..4f9dd73d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/orange.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/orange" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/orange_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/orange_nofilter.json new file mode 100644 index 00000000..8be3b4ec --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/orange_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/orange_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/pink.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/pink.json new file mode 100644 index 00000000..69bc9c08 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/pink.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/pink" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/pink_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/pink_nofilter.json new file mode 100644 index 00000000..02be95fa --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/pink_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/pink_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/purple.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/purple.json new file mode 100644 index 00000000..75609ee9 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/purple.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/purple" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/purple_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/purple_nofilter.json new file mode 100644 index 00000000..d88f5e12 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/purple_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/purple_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/red.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/red.json new file mode 100644 index 00000000..25153446 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/red.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/red" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/red_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/red_nofilter.json new file mode 100644 index 00000000..45ba8b01 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/red_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/red_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/violet.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/violet.json new file mode 100644 index 00000000..b079935c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/violet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/violet" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/violet_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/violet_nofilter.json new file mode 100644 index 00000000..1f8c95a3 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/violet_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/violet_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/white.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/white.json new file mode 100644 index 00000000..835de8b1 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/white.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/white" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/white_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/white_nofilter.json new file mode 100644 index 00000000..3de73596 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/white_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/white_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/yellow.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/yellow.json new file mode 100644 index 00000000..75377485 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/yellow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/yellow" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/emc_link/yellow_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/emc_link/yellow_nofilter.json new file mode 100644 index 00000000..bff6488a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/emc_link/yellow_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/yellow_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/blue.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/blue.json new file mode 100644 index 00000000..a29336c5 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/blue.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/blue" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/cyan.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/cyan.json new file mode 100644 index 00000000..dfe5e43a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/cyan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/cyan" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/green.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/green.json new file mode 100644 index 00000000..5864f14d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/green.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/green" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/lime.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/lime.json new file mode 100644 index 00000000..49f8db1c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/lime.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/lime" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/magenta.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/magenta.json new file mode 100644 index 00000000..a235f36b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/magenta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/magenta" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/orange.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/orange.json new file mode 100644 index 00000000..9cf8a540 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/orange.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/orange" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/pink.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/pink.json new file mode 100644 index 00000000..93e3e88e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/pink.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/pink" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/purple.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/purple.json new file mode 100644 index 00000000..dc57a393 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/purple.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/purple" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/violet.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/violet.json new file mode 100644 index 00000000..a443b9bb --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/violet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/violet" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/white.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/white.json new file mode 100644 index 00000000..15cd4bf7 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/white.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/white" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/fuel/yellow.json b/src/generated/resources/assets/projectexpansion/models/block/fuel/yellow.json new file mode 100644 index 00000000..034d3468 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/fuel/yellow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/yellow" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/base.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/base.json new file mode 100644 index 00000000..bc1f0562 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/base.json @@ -0,0 +1,1240 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#collector" + }, + "elements": [ + { + "name": "base", + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 1, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 15, + 16, + 16 + ], + "texture": "#relay", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 15, + 16, + 16 + ], + "texture": "#relay", + "cullface": "east" + }, + "south": { + "uv": [ + 0, + 15, + 16, + 16 + ], + "texture": "#relay", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 15, + 16, + 16 + ], + "texture": "#relay", + "cullface": "west" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#relay" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#relay", + "cullface": "down" + } + } + }, + { + "name": "base", + "from": [ + 0, + 1, + 0 + ], + "to": [ + 1, + 2, + 16 + ], + "faces": { + "north": { + "uv": [ + 15, + 14, + 16, + 15 + ], + "texture": "#relay", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 14, + 16, + 15 + ], + "texture": "#relay" + }, + "south": { + "uv": [ + 0, + 14, + 1, + 15 + ], + "texture": "#relay", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 14, + 16, + 15 + ], + "texture": "#relay", + "cullface": "west" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 16 + ], + "texture": "#relay" + } + } + }, + { + "name": "base", + "from": [ + 15, + 1, + 0 + ], + "to": [ + 16, + 2, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 14, + 1, + 15 + ], + "texture": "#relay", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 14, + 16, + 15 + ], + "texture": "#relay", + "cullface": "east" + }, + "south": { + "uv": [ + 15, + 14, + 16, + 15 + ], + "texture": "#relay", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 14, + 16, + 15 + ], + "texture": "#relay" + }, + "up": { + "uv": [ + 15, + 0, + 16, + 16 + ], + "texture": "#relay" + } + } + }, + { + "name": "base", + "from": [ + 1, + 1, + 0 + ], + "to": [ + 15, + 2, + 1 + ], + "faces": { + "north": { + "uv": [ + 1, + 14, + 15, + 15 + ], + "texture": "#relay", + "cullface": "north" + }, + "south": { + "uv": [ + 1, + 14, + 15, + 15 + ], + "texture": "#relay" + }, + "up": { + "uv": [ + 1, + 0, + 15, + 1 + ], + "texture": "#relay" + } + } + }, + { + "name": "base", + "from": [ + 1, + 1, + 15 + ], + "to": [ + 15, + 2, + 16 + ], + "faces": { + "north": { + "uv": [ + 1, + 14, + 15, + 15 + ], + "texture": "#relay" + }, + "south": { + "uv": [ + 1, + 14, + 15, + 15 + ], + "texture": "#relay", + "cullface": "south" + }, + "up": { + "uv": [ + 1, + 15, + 15, + 16 + ], + "texture": "#relay" + } + } + }, + { + "from": [ + 6.5, + 1, + 6.5 + ], + "to": [ + 9.5, + 4, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 3.5, + 4, + 6.5 + ], + "to": [ + 6.5, + 7, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 4, + 9.5 + ], + "to": [ + 9.5, + 7, + 12.5 + ], + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 9.5, + 4, + 6.5 + ], + "to": [ + 12.5, + 7, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 4, + 3.5 + ], + "to": [ + 9.5, + 7, + 6.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 7, + 0.5 + ], + "to": [ + 9.5, + 10, + 3.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 3.5, + 7, + 3.5 + ], + "to": [ + 6.5, + 10, + 6.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 3.5, + 7, + 9.5 + ], + "to": [ + 6.5, + 10, + 12.5 + ], + "faces": { + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 9.5, + 7, + 9.5 + ], + "to": [ + 12.5, + 10, + 12.5 + ], + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 9.5, + 7, + 3.5 + ], + "to": [ + 12.5, + 10, + 6.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 12.5, + 7, + 6.5 + ], + "to": [ + 15.5, + 10, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 0.5, + 7, + 6.5 + ], + "to": [ + 3.5, + 10, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 7, + 12.5 + ], + "to": [ + 9.5, + 10, + 15.5 + ], + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 10, + 9.5 + ], + "to": [ + 9.5, + 13, + 12.5 + ], + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 10, + 3.5 + ], + "to": [ + 9.5, + 13, + 6.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 9.5, + 10, + 6.5 + ], + "to": [ + 12.5, + 13, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 3.5, + 10, + 6.5 + ], + "to": [ + 6.5, + 13, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 13, + 6.5 + ], + "to": [ + 9.5, + 16, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector", + "cullface": "up" + } + } + } + ] +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/basic.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/basic.json new file mode 100644 index 00000000..2a1cd810 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/basic.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/basic", + "relay": "projectexpansion:block/relay/basic" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/blue.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/blue.json new file mode 100644 index 00000000..2898fe72 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/blue.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/blue", + "relay": "projectexpansion:block/relay/blue" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/cyan.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/cyan.json new file mode 100644 index 00000000..6c43a141 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/cyan.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/cyan", + "relay": "projectexpansion:block/relay/cyan" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/dark.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/dark.json new file mode 100644 index 00000000..2bc30d48 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/dark.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/dark", + "relay": "projectexpansion:block/relay/dark" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/fading.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/fading.json new file mode 100644 index 00000000..3b74609c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/fading.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/fading", + "relay": "projectexpansion:block/relay/fading" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/final.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/final.json new file mode 100644 index 00000000..eec0a000 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/final.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/final", + "relay": "projectexpansion:block/relay/final" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/green.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/green.json new file mode 100644 index 00000000..50370445 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/green.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/green", + "relay": "projectexpansion:block/relay/green" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/lime.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/lime.json new file mode 100644 index 00000000..4a76dd8a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/lime.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/lime", + "relay": "projectexpansion:block/relay/lime" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/magenta.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/magenta.json new file mode 100644 index 00000000..c4edd9fa --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/magenta.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/magenta", + "relay": "projectexpansion:block/relay/magenta" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/orange.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/orange.json new file mode 100644 index 00000000..b14efcf3 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/orange.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/orange", + "relay": "projectexpansion:block/relay/orange" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/pink.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/pink.json new file mode 100644 index 00000000..88be1ea5 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/pink.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/pink", + "relay": "projectexpansion:block/relay/pink" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/purple.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/purple.json new file mode 100644 index 00000000..13600215 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/purple.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/purple", + "relay": "projectexpansion:block/relay/purple" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/red.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/red.json new file mode 100644 index 00000000..0708cd28 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/red.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/red", + "relay": "projectexpansion:block/relay/red" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/violet.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/violet.json new file mode 100644 index 00000000..232421fd --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/violet.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/violet", + "relay": "projectexpansion:block/relay/violet" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/white.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/white.json new file mode 100644 index 00000000..230006aa --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/white.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/white", + "relay": "projectexpansion:block/relay/white" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/power_flower/yellow.json b/src/generated/resources/assets/projectexpansion/models/block/power_flower/yellow.json new file mode 100644 index 00000000..bdd3ee73 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/power_flower/yellow.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/yellow", + "relay": "projectexpansion:block/relay/yellow" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/basic.json b/src/generated/resources/assets/projectexpansion/models/block/relay/basic.json new file mode 100644 index 00000000..1fea70ac --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/basic.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/basic" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/blue.json b/src/generated/resources/assets/projectexpansion/models/block/relay/blue.json new file mode 100644 index 00000000..7bc0641b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/blue.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/blue" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/cyan.json b/src/generated/resources/assets/projectexpansion/models/block/relay/cyan.json new file mode 100644 index 00000000..a4ba921d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/cyan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/cyan" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/dark.json b/src/generated/resources/assets/projectexpansion/models/block/relay/dark.json new file mode 100644 index 00000000..384b2217 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/dark.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/dark" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/fading.json b/src/generated/resources/assets/projectexpansion/models/block/relay/fading.json new file mode 100644 index 00000000..b6be03da --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/fading.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/fading" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/final.json b/src/generated/resources/assets/projectexpansion/models/block/relay/final.json new file mode 100644 index 00000000..ee9e9c31 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/final.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/final" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/green.json b/src/generated/resources/assets/projectexpansion/models/block/relay/green.json new file mode 100644 index 00000000..5637c59c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/green.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/green" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/lime.json b/src/generated/resources/assets/projectexpansion/models/block/relay/lime.json new file mode 100644 index 00000000..56c6a645 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/lime.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/lime" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/magenta.json b/src/generated/resources/assets/projectexpansion/models/block/relay/magenta.json new file mode 100644 index 00000000..581ecb25 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/magenta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/magenta" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/orange.json b/src/generated/resources/assets/projectexpansion/models/block/relay/orange.json new file mode 100644 index 00000000..221f4f35 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/orange.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/orange" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/pink.json b/src/generated/resources/assets/projectexpansion/models/block/relay/pink.json new file mode 100644 index 00000000..c928bc20 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/pink.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/pink" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/purple.json b/src/generated/resources/assets/projectexpansion/models/block/relay/purple.json new file mode 100644 index 00000000..96951030 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/purple.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/purple" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/red.json b/src/generated/resources/assets/projectexpansion/models/block/relay/red.json new file mode 100644 index 00000000..7edbee24 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/red.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/red" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/violet.json b/src/generated/resources/assets/projectexpansion/models/block/relay/violet.json new file mode 100644 index 00000000..5d081eae --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/violet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/violet" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/white.json b/src/generated/resources/assets/projectexpansion/models/block/relay/white.json new file mode 100644 index 00000000..ef4f3841 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/white.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/white" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/relay/yellow.json b/src/generated/resources/assets/projectexpansion/models/block/relay/yellow.json new file mode 100644 index 00000000..7a1126e7 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/relay/yellow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/yellow" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/transmutation_interface.json b/src/generated/resources/assets/projectexpansion/models/block/transmutation_interface.json new file mode 100644 index 00000000..9f601102 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/transmutation_interface.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/transmutation_interface" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/block/transmutation_interface_nofilter.json b/src/generated/resources/assets/projectexpansion/models/block/transmutation_interface_nofilter.json new file mode 100644 index 00000000..918a93ba --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/block/transmutation_interface_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/transmutation_interface_nofilter" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/arcane_table.json b/src/generated/resources/assets/projectexpansion/models/item/arcane_table.json new file mode 100644 index 00000000..eacb0701 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/arcane_table.json @@ -0,0 +1,84 @@ +{ + "parent": "block/block", + "textures": { + "0": "projectexpansion:block/arcane_table/top", + "1": "projectexpansion:block/arcane_table/bottom", + "2": "projectexpansion:block/arcane_table/side", + "particle": "projectexpansion:block/arcane_table/top" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 4, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "texture": "#2", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "texture": "#2", + "cullface": "east" + }, + "south": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "texture": "#2", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "texture": "#2", + "cullface": "west" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#1", + "cullface": "down" + } + } + } + ] +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/arcane_tablet.json b/src/generated/resources/assets/projectexpansion/models/item/arcane_tablet.json new file mode 100644 index 00000000..3b622ed1 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/arcane_tablet.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/arcane_tablet" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/basic_collector.json b/src/generated/resources/assets/projectexpansion/models/item/basic_collector.json new file mode 100644 index 00000000..6d39cb43 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/basic_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/basic" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/basic_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/basic_compressed_collector.json new file mode 100644 index 00000000..6d39cb43 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/basic_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/basic" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/basic_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/basic_emc_link.json new file mode 100644 index 00000000..bef47f5e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/basic_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/basic" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/basic_matter.json b/src/generated/resources/assets/projectexpansion/models/item/basic_matter.json new file mode 100644 index 00000000..66ea20f5 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/basic_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/basic" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/basic_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/basic_power_flower.json new file mode 100644 index 00000000..11ab1d5d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/basic_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/basic" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/basic_relay.json b/src/generated/resources/assets/projectexpansion/models/item/basic_relay.json new file mode 100644 index 00000000..b8e40d31 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/basic_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/basic" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/blue_collector.json b/src/generated/resources/assets/projectexpansion/models/item/blue_collector.json new file mode 100644 index 00000000..74e796cc --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/blue_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/blue" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/blue_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/blue_compressed_collector.json new file mode 100644 index 00000000..74e796cc --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/blue_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/blue" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/blue_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/blue_emc_link.json new file mode 100644 index 00000000..24a551b3 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/blue_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/blue" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/blue_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/blue_fuel.json new file mode 100644 index 00000000..53cfddd9 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/blue_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/blue" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/blue_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/blue_fuel_block.json new file mode 100644 index 00000000..b382881d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/blue_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/blue" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/blue_matter.json b/src/generated/resources/assets/projectexpansion/models/item/blue_matter.json new file mode 100644 index 00000000..0794e9ca --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/blue_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/blue" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/blue_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/blue_power_flower.json new file mode 100644 index 00000000..73064c25 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/blue_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/blue" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/blue_relay.json b/src/generated/resources/assets/projectexpansion/models/item/blue_relay.json new file mode 100644 index 00000000..38adec9b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/blue_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/blue" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/colossal_star_drei.json b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_drei.json new file mode 100644 index 00000000..2c06abde --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_drei.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/colossal/drei" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/colossal_star_ein.json b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_ein.json new file mode 100644 index 00000000..4542955e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_ein.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/colossal/ein" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/colossal_star_omega.json b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_omega.json new file mode 100644 index 00000000..aed35a9a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_omega.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/colossal/omega" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/colossal_star_sphere.json b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_sphere.json new file mode 100644 index 00000000..fb754b04 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_sphere.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/colossal/sphere" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/colossal_star_vier.json b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_vier.json new file mode 100644 index 00000000..5827438e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_vier.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/colossal/vier" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/colossal_star_zwei.json b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_zwei.json new file mode 100644 index 00000000..2ef233b5 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/colossal_star_zwei.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/colossal/zwei" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/cyan_collector.json b/src/generated/resources/assets/projectexpansion/models/item/cyan_collector.json new file mode 100644 index 00000000..e8453e24 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/cyan_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/cyan" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/cyan_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/cyan_compressed_collector.json new file mode 100644 index 00000000..e8453e24 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/cyan_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/cyan" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/cyan_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/cyan_emc_link.json new file mode 100644 index 00000000..cc7224d7 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/cyan_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/cyan" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/cyan_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/cyan_fuel.json new file mode 100644 index 00000000..0d331fb0 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/cyan_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/cyan" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/cyan_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/cyan_fuel_block.json new file mode 100644 index 00000000..0b3689ec --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/cyan_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/cyan" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/cyan_matter.json b/src/generated/resources/assets/projectexpansion/models/item/cyan_matter.json new file mode 100644 index 00000000..de16b51e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/cyan_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/cyan" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/cyan_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/cyan_power_flower.json new file mode 100644 index 00000000..584bb7f0 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/cyan_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/cyan" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/cyan_relay.json b/src/generated/resources/assets/projectexpansion/models/item/cyan_relay.json new file mode 100644 index 00000000..0b11be2a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/cyan_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/cyan" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/dark_collector.json b/src/generated/resources/assets/projectexpansion/models/item/dark_collector.json new file mode 100644 index 00000000..6f3dab28 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/dark_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/dark" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/dark_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/dark_compressed_collector.json new file mode 100644 index 00000000..6f3dab28 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/dark_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/dark" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/dark_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/dark_emc_link.json new file mode 100644 index 00000000..3ebe2ce8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/dark_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/dark" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/dark_matter.json b/src/generated/resources/assets/projectexpansion/models/item/dark_matter.json new file mode 100644 index 00000000..952aa7bf --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/dark_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/dark" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/dark_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/dark_power_flower.json new file mode 100644 index 00000000..b5cc25d4 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/dark_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/dark" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/dark_relay.json b/src/generated/resources/assets/projectexpansion/models/item/dark_relay.json new file mode 100644 index 00000000..d01bd538 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/dark_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/dark" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/fading_collector.json b/src/generated/resources/assets/projectexpansion/models/item/fading_collector.json new file mode 100644 index 00000000..5989c123 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/fading_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/fading" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/fading_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/fading_compressed_collector.json new file mode 100644 index 00000000..5989c123 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/fading_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/fading" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/fading_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/fading_emc_link.json new file mode 100644 index 00000000..1e9853b1 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/fading_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/fading" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/fading_matter.json b/src/generated/resources/assets/projectexpansion/models/item/fading_matter.json new file mode 100644 index 00000000..e437fbea --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/fading_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/fading" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/fading_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/fading_power_flower.json new file mode 100644 index 00000000..0d6cb797 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/fading_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/fading" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/fading_relay.json b/src/generated/resources/assets/projectexpansion/models/item/fading_relay.json new file mode 100644 index 00000000..61a95f2b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/fading_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/fading" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/final_collector.json b/src/generated/resources/assets/projectexpansion/models/item/final_collector.json new file mode 100644 index 00000000..1f4e8022 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/final_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/final" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/final_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/final_compressed_collector.json new file mode 100644 index 00000000..1f4e8022 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/final_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/final" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/final_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/final_emc_link.json new file mode 100644 index 00000000..7459ac70 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/final_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/final" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/final_matter.json b/src/generated/resources/assets/projectexpansion/models/item/final_matter.json new file mode 100644 index 00000000..bb6e4bf7 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/final_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/final" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/final_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/final_power_flower.json new file mode 100644 index 00000000..75a15bfb --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/final_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/final" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/final_relay.json b/src/generated/resources/assets/projectexpansion/models/item/final_relay.json new file mode 100644 index 00000000..a8135169 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/final_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/final" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/final_star.json b/src/generated/resources/assets/projectexpansion/models/item/final_star.json new file mode 100644 index 00000000..bf2a2164 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/final_star.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/final" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/final_star_shard.json b/src/generated/resources/assets/projectexpansion/models/item/final_star_shard.json new file mode 100644 index 00000000..9e681f63 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/final_star_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/final_shard" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/green_collector.json b/src/generated/resources/assets/projectexpansion/models/item/green_collector.json new file mode 100644 index 00000000..44dbb1e8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/green_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/green" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/green_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/green_compressed_collector.json new file mode 100644 index 00000000..44dbb1e8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/green_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/green" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/green_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/green_emc_link.json new file mode 100644 index 00000000..a1fff537 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/green_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/green" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/green_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/green_fuel.json new file mode 100644 index 00000000..c743b111 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/green_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/green" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/green_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/green_fuel_block.json new file mode 100644 index 00000000..b5d0808c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/green_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/green" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/green_matter.json b/src/generated/resources/assets/projectexpansion/models/item/green_matter.json new file mode 100644 index 00000000..3955aba2 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/green_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/green" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/green_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/green_power_flower.json new file mode 100644 index 00000000..4dc8ac39 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/green_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/green" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/green_relay.json b/src/generated/resources/assets/projectexpansion/models/item/green_relay.json new file mode 100644 index 00000000..c56cb57e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/green_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/green" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/infinite_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/infinite_fuel.json new file mode 100644 index 00000000..0c7c98d1 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/infinite_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/infinite_fuel" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/infinite_steak.json b/src/generated/resources/assets/projectexpansion/models/item/infinite_steak.json new file mode 100644 index 00000000..21b2e775 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/infinite_steak.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/infinite_steak" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/knowledge_sharing_book.json b/src/generated/resources/assets/projectexpansion/models/item/knowledge_sharing_book.json new file mode 100644 index 00000000..9e793841 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/knowledge_sharing_book.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/knowledge_sharing_book" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/lime_collector.json b/src/generated/resources/assets/projectexpansion/models/item/lime_collector.json new file mode 100644 index 00000000..d7d4401e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/lime_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/lime" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/lime_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/lime_compressed_collector.json new file mode 100644 index 00000000..d7d4401e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/lime_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/lime" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/lime_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/lime_emc_link.json new file mode 100644 index 00000000..773927c1 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/lime_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/lime" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/lime_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/lime_fuel.json new file mode 100644 index 00000000..e4bfdb70 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/lime_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/lime" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/lime_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/lime_fuel_block.json new file mode 100644 index 00000000..efbbc094 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/lime_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/lime" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/lime_matter.json b/src/generated/resources/assets/projectexpansion/models/item/lime_matter.json new file mode 100644 index 00000000..9b9021a2 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/lime_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/lime" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/lime_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/lime_power_flower.json new file mode 100644 index 00000000..e18d562b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/lime_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/lime" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/lime_relay.json b/src/generated/resources/assets/projectexpansion/models/item/lime_relay.json new file mode 100644 index 00000000..0dca0edd --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/lime_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/lime" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magenta_collector.json b/src/generated/resources/assets/projectexpansion/models/item/magenta_collector.json new file mode 100644 index 00000000..e62f8704 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magenta_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/magenta" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magenta_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/magenta_compressed_collector.json new file mode 100644 index 00000000..e62f8704 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magenta_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/magenta" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magenta_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/magenta_emc_link.json new file mode 100644 index 00000000..af1af29b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magenta_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/magenta" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magenta_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/magenta_fuel.json new file mode 100644 index 00000000..4bfe3503 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magenta_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/magenta" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magenta_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/magenta_fuel_block.json new file mode 100644 index 00000000..ad5a9c5b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magenta_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/magenta" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magenta_matter.json b/src/generated/resources/assets/projectexpansion/models/item/magenta_matter.json new file mode 100644 index 00000000..073e3884 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magenta_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/magenta" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magenta_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/magenta_power_flower.json new file mode 100644 index 00000000..79889288 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magenta_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/magenta" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magenta_relay.json b/src/generated/resources/assets/projectexpansion/models/item/magenta_relay.json new file mode 100644 index 00000000..c2d21ec2 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magenta_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/magenta" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magnum_star_drei.json b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_drei.json new file mode 100644 index 00000000..704ebde3 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_drei.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/magnum/drei" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magnum_star_ein.json b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_ein.json new file mode 100644 index 00000000..291838ec --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_ein.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/magnum/ein" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magnum_star_omega.json b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_omega.json new file mode 100644 index 00000000..1d0d7e6b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_omega.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/magnum/omega" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magnum_star_sphere.json b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_sphere.json new file mode 100644 index 00000000..4e67a54b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_sphere.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/magnum/sphere" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magnum_star_vier.json b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_vier.json new file mode 100644 index 00000000..d9720f9d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_vier.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/magnum/vier" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/magnum_star_zwei.json b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_zwei.json new file mode 100644 index 00000000..8d7c5c88 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/magnum_star_zwei.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/magnum/zwei" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/matter_upgrader.json b/src/generated/resources/assets/projectexpansion/models/item/matter_upgrader.json new file mode 100644 index 00000000..3b0b9ef3 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/matter_upgrader.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter_upgrader" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/orange_collector.json b/src/generated/resources/assets/projectexpansion/models/item/orange_collector.json new file mode 100644 index 00000000..ab64e382 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/orange_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/orange" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/orange_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/orange_compressed_collector.json new file mode 100644 index 00000000..ab64e382 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/orange_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/orange" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/orange_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/orange_emc_link.json new file mode 100644 index 00000000..5f5fa39c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/orange_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/orange" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/orange_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/orange_fuel.json new file mode 100644 index 00000000..99e6396a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/orange_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/orange" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/orange_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/orange_fuel_block.json new file mode 100644 index 00000000..541601ae --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/orange_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/orange" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/orange_matter.json b/src/generated/resources/assets/projectexpansion/models/item/orange_matter.json new file mode 100644 index 00000000..713a942c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/orange_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/orange" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/orange_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/orange_power_flower.json new file mode 100644 index 00000000..50b19775 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/orange_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/orange" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/orange_relay.json b/src/generated/resources/assets/projectexpansion/models/item/orange_relay.json new file mode 100644 index 00000000..1e257b2a --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/orange_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/orange" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/pink_collector.json b/src/generated/resources/assets/projectexpansion/models/item/pink_collector.json new file mode 100644 index 00000000..b7c4da18 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/pink_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/pink" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/pink_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/pink_compressed_collector.json new file mode 100644 index 00000000..b7c4da18 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/pink_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/pink" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/pink_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/pink_emc_link.json new file mode 100644 index 00000000..0b0b9586 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/pink_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/pink" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/pink_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/pink_fuel.json new file mode 100644 index 00000000..97226ea1 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/pink_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/pink" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/pink_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/pink_fuel_block.json new file mode 100644 index 00000000..9e86ed13 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/pink_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/pink" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/pink_matter.json b/src/generated/resources/assets/projectexpansion/models/item/pink_matter.json new file mode 100644 index 00000000..d04f5eeb --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/pink_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/pink" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/pink_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/pink_power_flower.json new file mode 100644 index 00000000..ce3bc50c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/pink_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/pink" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/pink_relay.json b/src/generated/resources/assets/projectexpansion/models/item/pink_relay.json new file mode 100644 index 00000000..9ef14aa3 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/pink_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/pink" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/purple_collector.json b/src/generated/resources/assets/projectexpansion/models/item/purple_collector.json new file mode 100644 index 00000000..85047ce8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/purple_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/purple" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/purple_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/purple_compressed_collector.json new file mode 100644 index 00000000..85047ce8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/purple_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/purple" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/purple_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/purple_emc_link.json new file mode 100644 index 00000000..b0299d91 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/purple_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/purple" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/purple_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/purple_fuel.json new file mode 100644 index 00000000..50e6e52b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/purple_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/purple" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/purple_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/purple_fuel_block.json new file mode 100644 index 00000000..8a2acf97 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/purple_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/purple" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/purple_matter.json b/src/generated/resources/assets/projectexpansion/models/item/purple_matter.json new file mode 100644 index 00000000..5f59585c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/purple_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/purple" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/purple_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/purple_power_flower.json new file mode 100644 index 00000000..2f39c6a3 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/purple_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/purple" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/purple_relay.json b/src/generated/resources/assets/projectexpansion/models/item/purple_relay.json new file mode 100644 index 00000000..4b31c3af --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/purple_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/purple" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/red_collector.json b/src/generated/resources/assets/projectexpansion/models/item/red_collector.json new file mode 100644 index 00000000..a5c5aad6 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/red_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/red" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/red_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/red_compressed_collector.json new file mode 100644 index 00000000..a5c5aad6 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/red_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/red" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/red_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/red_emc_link.json new file mode 100644 index 00000000..1e17a7e4 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/red_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/red" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/red_matter.json b/src/generated/resources/assets/projectexpansion/models/item/red_matter.json new file mode 100644 index 00000000..a4d22e12 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/red_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/red" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/red_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/red_power_flower.json new file mode 100644 index 00000000..6b8a9e7c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/red_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/red" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/red_relay.json b/src/generated/resources/assets/projectexpansion/models/item/red_relay.json new file mode 100644 index 00000000..d6bb7549 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/red_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/red" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/transmutation_interface.json b/src/generated/resources/assets/projectexpansion/models/item/transmutation_interface.json new file mode 100644 index 00000000..0241045e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/transmutation_interface.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/transmutation_interface" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/violet_collector.json b/src/generated/resources/assets/projectexpansion/models/item/violet_collector.json new file mode 100644 index 00000000..e5ad3b01 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/violet_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/violet" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/violet_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/violet_compressed_collector.json new file mode 100644 index 00000000..e5ad3b01 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/violet_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/violet" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/violet_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/violet_emc_link.json new file mode 100644 index 00000000..928fa84e --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/violet_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/violet" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/violet_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/violet_fuel.json new file mode 100644 index 00000000..74f0885c --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/violet_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/violet" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/violet_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/violet_fuel_block.json new file mode 100644 index 00000000..8de15234 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/violet_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/violet" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/violet_matter.json b/src/generated/resources/assets/projectexpansion/models/item/violet_matter.json new file mode 100644 index 00000000..3f035c44 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/violet_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/violet" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/violet_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/violet_power_flower.json new file mode 100644 index 00000000..85c894da --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/violet_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/violet" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/violet_relay.json b/src/generated/resources/assets/projectexpansion/models/item/violet_relay.json new file mode 100644 index 00000000..a5781821 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/violet_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/violet" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/white_collector.json b/src/generated/resources/assets/projectexpansion/models/item/white_collector.json new file mode 100644 index 00000000..171b40e5 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/white_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/white" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/white_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/white_compressed_collector.json new file mode 100644 index 00000000..171b40e5 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/white_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/white" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/white_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/white_emc_link.json new file mode 100644 index 00000000..427d633d --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/white_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/white" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/white_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/white_fuel.json new file mode 100644 index 00000000..d4ef4b4f --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/white_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/white" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/white_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/white_fuel_block.json new file mode 100644 index 00000000..520f8a55 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/white_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/white" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/white_matter.json b/src/generated/resources/assets/projectexpansion/models/item/white_matter.json new file mode 100644 index 00000000..462459d7 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/white_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/white" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/white_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/white_power_flower.json new file mode 100644 index 00000000..c3a559dd --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/white_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/white" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/white_relay.json b/src/generated/resources/assets/projectexpansion/models/item/white_relay.json new file mode 100644 index 00000000..1493ebb2 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/white_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/white" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/yellow_collector.json b/src/generated/resources/assets/projectexpansion/models/item/yellow_collector.json new file mode 100644 index 00000000..4ef24a44 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/yellow_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/yellow" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/yellow_compressed_collector.json b/src/generated/resources/assets/projectexpansion/models/item/yellow_compressed_collector.json new file mode 100644 index 00000000..4ef24a44 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/yellow_compressed_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/yellow" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/yellow_emc_link.json b/src/generated/resources/assets/projectexpansion/models/item/yellow_emc_link.json new file mode 100644 index 00000000..48a1aee4 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/yellow_emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/yellow" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/yellow_fuel.json b/src/generated/resources/assets/projectexpansion/models/item/yellow_fuel.json new file mode 100644 index 00000000..3e9b68d8 --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/yellow_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/yellow" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/yellow_fuel_block.json b/src/generated/resources/assets/projectexpansion/models/item/yellow_fuel_block.json new file mode 100644 index 00000000..35bb98ff --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/yellow_fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/yellow" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/yellow_matter.json b/src/generated/resources/assets/projectexpansion/models/item/yellow_matter.json new file mode 100644 index 00000000..6a537cfd --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/yellow_matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/yellow" + } +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/yellow_power_flower.json b/src/generated/resources/assets/projectexpansion/models/item/yellow_power_flower.json new file mode 100644 index 00000000..96e3c8eb --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/yellow_power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/yellow" +} diff --git a/src/generated/resources/assets/projectexpansion/models/item/yellow_relay.json b/src/generated/resources/assets/projectexpansion/models/item/yellow_relay.json new file mode 100644 index 00000000..65fd9c1b --- /dev/null +++ b/src/generated/resources/assets/projectexpansion/models/item/yellow_relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/yellow" +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_collector.json new file mode 100644 index 00000000..84ab076a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:basic_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_emc_link.json new file mode 100644 index 00000000..1e63efa0 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:basic_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_power_flower.json new file mode 100644 index 00000000..aea35e4c --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:basic_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_relay.json new file mode 100644 index 00000000..6d47ba09 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/basic_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:basic_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_collector.json new file mode 100644 index 00000000..76926833 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:blue_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_emc_link.json new file mode 100644 index 00000000..ce4da8d4 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:blue_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_fuel_block.json new file mode 100644 index 00000000..8cd11c77 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:blue_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_power_flower.json new file mode 100644 index 00000000..da71fbd0 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:blue_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_relay.json new file mode 100644 index 00000000..0606d5e1 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/blue_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:blue_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_collector.json new file mode 100644 index 00000000..3c3e0de5 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:cyan_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_emc_link.json new file mode 100644 index 00000000..d8b458cd --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:cyan_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_fuel_block.json new file mode 100644 index 00000000..033d95fc --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:cyan_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_power_flower.json new file mode 100644 index 00000000..02948ceb --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:cyan_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_relay.json new file mode 100644 index 00000000..4464cc28 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/cyan_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:cyan_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_collector.json new file mode 100644 index 00000000..18898564 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:dark_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_emc_link.json new file mode 100644 index 00000000..6de102aa --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:dark_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_power_flower.json new file mode 100644 index 00000000..d13da6bd --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:dark_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_relay.json new file mode 100644 index 00000000..8582c320 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/dark_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:dark_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_collector.json new file mode 100644 index 00000000..a91bf613 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:fading_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_emc_link.json new file mode 100644 index 00000000..35d684f3 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:fading_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_power_flower.json new file mode 100644 index 00000000..5fea037f --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:fading_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_relay.json new file mode 100644 index 00000000..66ccd3d4 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/fading_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:fading_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_collector.json new file mode 100644 index 00000000..df89cfdb --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:final_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_emc_link.json new file mode 100644 index 00000000..1f9cb5b9 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:final_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_power_flower.json new file mode 100644 index 00000000..d07b0406 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:final_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_relay.json new file mode 100644 index 00000000..b5ff6836 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/final_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:final_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_collector.json new file mode 100644 index 00000000..f961c8d2 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:green_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_emc_link.json new file mode 100644 index 00000000..5aab0995 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:green_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_fuel_block.json new file mode 100644 index 00000000..9dda163f --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:green_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_power_flower.json new file mode 100644 index 00000000..29bbb7cc --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:green_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_relay.json new file mode 100644 index 00000000..6f6dd50e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/green_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:green_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_collector.json new file mode 100644 index 00000000..1d172b66 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:lime_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_emc_link.json new file mode 100644 index 00000000..134bb195 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:lime_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_fuel_block.json new file mode 100644 index 00000000..c2f13452 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:lime_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_power_flower.json new file mode 100644 index 00000000..7d203dcb --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:lime_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_relay.json new file mode 100644 index 00000000..d0e23103 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/lime_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:lime_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_collector.json new file mode 100644 index 00000000..87f9fb99 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:magenta_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_emc_link.json new file mode 100644 index 00000000..93974467 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:magenta_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_fuel_block.json new file mode 100644 index 00000000..c56bcf5e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:magenta_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_power_flower.json new file mode 100644 index 00000000..8f56274d --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:magenta_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_relay.json new file mode 100644 index 00000000..f7be0ed2 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/magenta_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:magenta_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_collector.json new file mode 100644 index 00000000..92930df5 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:orange_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_emc_link.json new file mode 100644 index 00000000..84f9ce98 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:orange_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_fuel_block.json new file mode 100644 index 00000000..91d252b5 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:orange_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_power_flower.json new file mode 100644 index 00000000..f74ae38a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:orange_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_relay.json new file mode 100644 index 00000000..9aa0d177 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/orange_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:orange_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_collector.json new file mode 100644 index 00000000..e7e9d5d3 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:pink_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_emc_link.json new file mode 100644 index 00000000..51429804 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:pink_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_fuel_block.json new file mode 100644 index 00000000..ebff26cd --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:pink_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_power_flower.json new file mode 100644 index 00000000..aa9c07ab --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:pink_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_relay.json new file mode 100644 index 00000000..fbad1d67 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/pink_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:pink_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_collector.json new file mode 100644 index 00000000..6982f643 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:purple_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_emc_link.json new file mode 100644 index 00000000..9b8d74be --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:purple_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_fuel_block.json new file mode 100644 index 00000000..c85df70c --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:purple_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_power_flower.json new file mode 100644 index 00000000..cf43c740 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:purple_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_relay.json new file mode 100644 index 00000000..2a53b8a6 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/purple_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:purple_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_collector.json new file mode 100644 index 00000000..0cd83b8b --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:red_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_emc_link.json new file mode 100644 index 00000000..3430f2a2 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:red_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_power_flower.json new file mode 100644 index 00000000..f053824e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:red_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_relay.json new file mode 100644 index 00000000..1a807f79 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/red_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:red_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/transmutation_interface.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/transmutation_interface.json new file mode 100644 index 00000000..d9c407f4 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/transmutation_interface.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:transmutation_interface" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_collector.json new file mode 100644 index 00000000..3038ec85 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:violet_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_emc_link.json new file mode 100644 index 00000000..fc65257f --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:violet_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_fuel_block.json new file mode 100644 index 00000000..33f332db --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:violet_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_power_flower.json new file mode 100644 index 00000000..78ad8150 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:violet_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_relay.json new file mode 100644 index 00000000..9751bdf1 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/violet_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:violet_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_collector.json new file mode 100644 index 00000000..65d5fd8e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:white_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_emc_link.json new file mode 100644 index 00000000..83f3582e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:white_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_fuel_block.json new file mode 100644 index 00000000..e43b5479 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:white_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_power_flower.json new file mode 100644 index 00000000..9414118f --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:white_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_relay.json new file mode 100644 index 00000000..263731ea --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/white_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:white_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_collector.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_collector.json new file mode 100644 index 00000000..1307def2 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:yellow_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_emc_link.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_emc_link.json new file mode 100644 index 00000000..689810ef --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:yellow_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_fuel_block.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_fuel_block.json new file mode 100644 index 00000000..3bd16ba5 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:yellow_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_power_flower.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_power_flower.json new file mode 100644 index 00000000..69191ea7 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:yellow_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_relay.json b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_relay.json new file mode 100644 index 00000000..aa6b69ec --- /dev/null +++ b/src/generated/resources/data/projectexpansion/loot_tables/blocks/yellow_relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:yellow_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/basic.json b/src/generated/resources/data/projectexpansion/recipes/collector/basic.json new file mode 100644 index 00000000..2050faaa --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/basic.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/basic", + "result": { + "item": "projectexpansion:basic_collector" + }, + "pattern": [ + "GSG", + "GAG", + "GFG" + ], + "key": { + "G": { + "item": "minecraft:glowstone" + }, + "A": { + "item": "projecte:aeternalis_fuel_block" + }, + "S": { + "tag": "forge:glass" + }, + "F": { + "item": "minecraft:furnace" + } + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/blue.json b/src/generated/resources/data/projectexpansion/recipes/collector/blue.json new file mode 100644 index 00000000..3cb71401 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/blue.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/blue", + "ingredients": [ + { + "item": "projectexpansion:violet_collector" + }, + { + "item": "projectexpansion:blue_matter" + } + ], + "result": { + "item": "projectexpansion:blue_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/basic.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/basic.json new file mode 100644 index 00000000..00874070 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/basic.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/basic", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:basic_collector" + } + }, + "result": { + "item": "projectexpansion:basic_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/blue.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/blue.json new file mode 100644 index 00000000..e70ffd89 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/blue.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/blue", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:blue_collector" + } + }, + "result": { + "item": "projectexpansion:blue_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/cyan.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/cyan.json new file mode 100644 index 00000000..1a8e332f --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/cyan.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/cyan", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:cyan_collector" + } + }, + "result": { + "item": "projectexpansion:cyan_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/dark.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/dark.json new file mode 100644 index 00000000..9f4f9444 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/dark.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/dark", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:dark_collector" + } + }, + "result": { + "item": "projectexpansion:dark_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/fading.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/fading.json new file mode 100644 index 00000000..116bfa27 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/fading.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/fading", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:fading_collector" + } + }, + "result": { + "item": "projectexpansion:fading_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/final.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/final.json new file mode 100644 index 00000000..f2eca008 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/final.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/final", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:final_collector" + } + }, + "result": { + "item": "projectexpansion:final_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/green.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/green.json new file mode 100644 index 00000000..100de942 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/green.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/green", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:green_collector" + } + }, + "result": { + "item": "projectexpansion:green_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/lime.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/lime.json new file mode 100644 index 00000000..480d28ce --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/lime.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/lime", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:lime_collector" + } + }, + "result": { + "item": "projectexpansion:lime_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/magenta.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/magenta.json new file mode 100644 index 00000000..d28f3787 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/magenta.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/magenta", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:magenta_collector" + } + }, + "result": { + "item": "projectexpansion:magenta_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/orange.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/orange.json new file mode 100644 index 00000000..44f2a803 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/orange.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/orange", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:orange_collector" + } + }, + "result": { + "item": "projectexpansion:orange_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/pink.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/pink.json new file mode 100644 index 00000000..71605e66 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/pink.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/pink", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:pink_collector" + } + }, + "result": { + "item": "projectexpansion:pink_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/purple.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/purple.json new file mode 100644 index 00000000..ab9b61b0 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/purple.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/purple", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:purple_collector" + } + }, + "result": { + "item": "projectexpansion:purple_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/red.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/red.json new file mode 100644 index 00000000..7839a258 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/red.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/red", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:red_collector" + } + }, + "result": { + "item": "projectexpansion:red_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/violet.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/violet.json new file mode 100644 index 00000000..6fa827fe --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/violet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/violet", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:violet_collector" + } + }, + "result": { + "item": "projectexpansion:violet_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/white.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/white.json new file mode 100644 index 00000000..3ae46342 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/white.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/white", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:white_collector" + } + }, + "result": { + "item": "projectexpansion:white_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/compressed/yellow.json b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/yellow.json new file mode 100644 index 00000000..76b07e5d --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/compressed/yellow.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/yellow", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:yellow_collector" + } + }, + "result": { + "item": "projectexpansion:yellow_compressed_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/cyan.json b/src/generated/resources/data/projectexpansion/recipes/collector/cyan.json new file mode 100644 index 00000000..db06e1be --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/cyan.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/cyan", + "ingredients": [ + { + "item": "projectexpansion:blue_collector" + }, + { + "item": "projectexpansion:cyan_matter" + } + ], + "result": { + "item": "projectexpansion:cyan_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/dark.json b/src/generated/resources/data/projectexpansion/recipes/collector/dark.json new file mode 100644 index 00000000..e6185cec --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/dark.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/dark", + "ingredients": [ + { + "item": "projectexpansion:basic_collector" + }, + { + "item": "projecte:dark_matter" + } + ], + "result": { + "item": "projectexpansion:dark_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/fading.json b/src/generated/resources/data/projectexpansion/recipes/collector/fading.json new file mode 100644 index 00000000..c9e763e4 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/fading.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/fading", + "ingredients": [ + { + "item": "projectexpansion:white_collector" + }, + { + "item": "projectexpansion:fading_matter" + } + ], + "result": { + "item": "projectexpansion:fading_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/final.json b/src/generated/resources/data/projectexpansion/recipes/collector/final.json new file mode 100644 index 00000000..7f50d80b --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/final.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/final", + "ingredients": [ + { + "item": "projectexpansion:fading_collector" + }, + { + "item": "projectexpansion:final_star_shard" + } + ], + "result": { + "item": "projectexpansion:final_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/green.json b/src/generated/resources/data/projectexpansion/recipes/collector/green.json new file mode 100644 index 00000000..b50f4c65 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/green.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/green", + "ingredients": [ + { + "item": "projectexpansion:cyan_collector" + }, + { + "item": "projectexpansion:green_matter" + } + ], + "result": { + "item": "projectexpansion:green_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/lime.json b/src/generated/resources/data/projectexpansion/recipes/collector/lime.json new file mode 100644 index 00000000..7d82cf12 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/lime.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/lime", + "ingredients": [ + { + "item": "projectexpansion:green_collector" + }, + { + "item": "projectexpansion:lime_matter" + } + ], + "result": { + "item": "projectexpansion:lime_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/magenta.json b/src/generated/resources/data/projectexpansion/recipes/collector/magenta.json new file mode 100644 index 00000000..11a009b3 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/magenta.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/magenta", + "ingredients": [ + { + "item": "projectexpansion:red_collector" + }, + { + "item": "projectexpansion:magenta_matter" + } + ], + "result": { + "item": "projectexpansion:magenta_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/mk1_conversion.json b/src/generated/resources/data/projectexpansion/recipes/collector/mk1_conversion.json new file mode 100644 index 00000000..1ca4afd3 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/mk1_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/basic", + "result": { + "item": "projectexpansion:basic_collector" + }, + "ingredients": [ + { + "item": "projecte:collector_mk1" + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/mk2_conversion.json b/src/generated/resources/data/projectexpansion/recipes/collector/mk2_conversion.json new file mode 100644 index 00000000..824c7630 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/mk2_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/dark", + "result": { + "item": "projectexpansion:dark_collector" + }, + "ingredients": [ + { + "item": "projecte:collector_mk2" + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/mk3_conversion.json b/src/generated/resources/data/projectexpansion/recipes/collector/mk3_conversion.json new file mode 100644 index 00000000..70cd4395 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/mk3_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/red", + "result": { + "item": "projectexpansion:red_collector" + }, + "ingredients": [ + { + "item": "projecte:collector_mk3" + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/orange.json b/src/generated/resources/data/projectexpansion/recipes/collector/orange.json new file mode 100644 index 00000000..e90ff2ca --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/orange.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/orange", + "ingredients": [ + { + "item": "projectexpansion:yellow_collector" + }, + { + "item": "projectexpansion:orange_matter" + } + ], + "result": { + "item": "projectexpansion:orange_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/pink.json b/src/generated/resources/data/projectexpansion/recipes/collector/pink.json new file mode 100644 index 00000000..beadd94c --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/pink.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/pink", + "ingredients": [ + { + "item": "projectexpansion:magenta_collector" + }, + { + "item": "projectexpansion:pink_matter" + } + ], + "result": { + "item": "projectexpansion:pink_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/purple.json b/src/generated/resources/data/projectexpansion/recipes/collector/purple.json new file mode 100644 index 00000000..1f722a1a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/purple.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/purple", + "ingredients": [ + { + "item": "projectexpansion:pink_collector" + }, + { + "item": "projectexpansion:purple_matter" + } + ], + "result": { + "item": "projectexpansion:purple_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/red.json b/src/generated/resources/data/projectexpansion/recipes/collector/red.json new file mode 100644 index 00000000..b3c61c93 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/red.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/red", + "ingredients": [ + { + "item": "projectexpansion:dark_collector" + }, + { + "item": "projecte:red_matter" + } + ], + "result": { + "item": "projectexpansion:red_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/violet.json b/src/generated/resources/data/projectexpansion/recipes/collector/violet.json new file mode 100644 index 00000000..6c42372a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/violet.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/violet", + "ingredients": [ + { + "item": "projectexpansion:purple_collector" + }, + { + "item": "projectexpansion:violet_matter" + } + ], + "result": { + "item": "projectexpansion:violet_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/white.json b/src/generated/resources/data/projectexpansion/recipes/collector/white.json new file mode 100644 index 00000000..d1222e76 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/white.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/white", + "ingredients": [ + { + "item": "projectexpansion:orange_collector" + }, + { + "item": "projectexpansion:white_matter" + } + ], + "result": { + "item": "projectexpansion:white_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/collector/yellow.json b/src/generated/resources/data/projectexpansion/recipes/collector/yellow.json new file mode 100644 index 00000000..cca326b0 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/collector/yellow.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/yellow", + "ingredients": [ + { + "item": "projectexpansion:lime_collector" + }, + { + "item": "projectexpansion:yellow_matter" + } + ], + "result": { + "item": "projectexpansion:yellow_collector" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/basic.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/basic.json new file mode 100644 index 00000000..d28d8ed2 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/basic.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/basic", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projecte:transmutation_tablet" + }, + "C": { + "item": "projecte:condenser_mk1" + } + }, + "result": { + "item": "projectexpansion:basic_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/blue.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/blue.json new file mode 100644 index 00000000..379b8e74 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/blue.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/blue", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:blue_matter" + }, + "C": { + "item": "projectexpansion:violet_emc_link" + } + }, + "result": { + "item": "projectexpansion:blue_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/cyan.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/cyan.json new file mode 100644 index 00000000..060a9304 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/cyan.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/cyan", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:cyan_matter" + }, + "C": { + "item": "projectexpansion:blue_emc_link" + } + }, + "result": { + "item": "projectexpansion:cyan_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/dark.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/dark.json new file mode 100644 index 00000000..83856577 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/dark.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/dark", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projecte:dark_matter" + }, + "C": { + "item": "projectexpansion:basic_emc_link" + } + }, + "result": { + "item": "projectexpansion:dark_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/fading.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/fading.json new file mode 100644 index 00000000..52440c91 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/fading.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/fading", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:fading_matter" + }, + "C": { + "item": "projectexpansion:white_emc_link" + } + }, + "result": { + "item": "projectexpansion:fading_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/final.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/final.json new file mode 100644 index 00000000..55e3594d --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/final.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/final", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:final_star_shard" + }, + "C": { + "item": "projectexpansion:fading_emc_link" + } + }, + "result": { + "item": "projectexpansion:final_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/green.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/green.json new file mode 100644 index 00000000..1bce060e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/green.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/green", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:green_matter" + }, + "C": { + "item": "projectexpansion:cyan_emc_link" + } + }, + "result": { + "item": "projectexpansion:green_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/lime.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/lime.json new file mode 100644 index 00000000..83581040 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/lime.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/lime", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:lime_matter" + }, + "C": { + "item": "projectexpansion:green_emc_link" + } + }, + "result": { + "item": "projectexpansion:lime_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/magenta.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/magenta.json new file mode 100644 index 00000000..336d2672 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/magenta.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/magenta", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:magenta_matter" + }, + "C": { + "item": "projectexpansion:red_emc_link" + } + }, + "result": { + "item": "projectexpansion:magenta_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/orange.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/orange.json new file mode 100644 index 00000000..0d519712 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/orange.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/orange", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:orange_matter" + }, + "C": { + "item": "projectexpansion:yellow_emc_link" + } + }, + "result": { + "item": "projectexpansion:orange_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/pink.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/pink.json new file mode 100644 index 00000000..e17f833d --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/pink.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/pink", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:pink_matter" + }, + "C": { + "item": "projectexpansion:magenta_emc_link" + } + }, + "result": { + "item": "projectexpansion:pink_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/purple.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/purple.json new file mode 100644 index 00000000..d6a6b304 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/purple.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/purple", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:purple_matter" + }, + "C": { + "item": "projectexpansion:pink_emc_link" + } + }, + "result": { + "item": "projectexpansion:purple_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/red.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/red.json new file mode 100644 index 00000000..82585598 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/red.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/red", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projecte:red_matter" + }, + "C": { + "item": "projectexpansion:dark_emc_link" + } + }, + "result": { + "item": "projectexpansion:red_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/violet.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/violet.json new file mode 100644 index 00000000..afc9b318 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/violet.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/violet", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:violet_matter" + }, + "C": { + "item": "projectexpansion:purple_emc_link" + } + }, + "result": { + "item": "projectexpansion:violet_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/white.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/white.json new file mode 100644 index 00000000..aa7ebe6e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/white.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/white", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:white_matter" + }, + "C": { + "item": "projectexpansion:orange_emc_link" + } + }, + "result": { + "item": "projectexpansion:white_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/emc_link/yellow.json b/src/generated/resources/data/projectexpansion/recipes/emc_link/yellow.json new file mode 100644 index 00000000..709faf22 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/emc_link/yellow.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/yellow", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "projectexpansion:yellow_matter" + }, + "C": { + "item": "projectexpansion:lime_emc_link" + } + }, + "result": { + "item": "projectexpansion:yellow_emc_link" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/blue.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/blue.json new file mode 100644 index 00000000..d8603f8a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/blue.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/blue", + "ingredients": [ + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + } + ], + "result": { + "item": "projectexpansion:blue_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/blue_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/blue_reverse.json new file mode 100644 index 00000000..22741791 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/blue_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/blue", + "ingredients": [ + { + "item": "projectexpansion:blue_fuel_block" + } + ], + "result": { + "item": "projectexpansion:blue_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/cyan.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/cyan.json new file mode 100644 index 00000000..7211f57f --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/cyan.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/cyan", + "ingredients": [ + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + } + ], + "result": { + "item": "projectexpansion:cyan_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/cyan_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/cyan_reverse.json new file mode 100644 index 00000000..0e77547a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/cyan_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/cyan", + "ingredients": [ + { + "item": "projectexpansion:cyan_fuel_block" + } + ], + "result": { + "item": "projectexpansion:cyan_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/green.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/green.json new file mode 100644 index 00000000..53a500b8 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/green.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/green", + "ingredients": [ + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + } + ], + "result": { + "item": "projectexpansion:green_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/green_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/green_reverse.json new file mode 100644 index 00000000..6871477b --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/green_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/green", + "ingredients": [ + { + "item": "projectexpansion:green_fuel_block" + } + ], + "result": { + "item": "projectexpansion:green_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/lime.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/lime.json new file mode 100644 index 00000000..c9969463 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/lime.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/lime", + "ingredients": [ + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + } + ], + "result": { + "item": "projectexpansion:lime_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/lime_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/lime_reverse.json new file mode 100644 index 00000000..08917423 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/lime_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/lime", + "ingredients": [ + { + "item": "projectexpansion:lime_fuel_block" + } + ], + "result": { + "item": "projectexpansion:lime_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/magenta.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/magenta.json new file mode 100644 index 00000000..61adc0f2 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/magenta.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/magenta", + "ingredients": [ + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + } + ], + "result": { + "item": "projectexpansion:magenta_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/magenta_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/magenta_reverse.json new file mode 100644 index 00000000..f97d62b2 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/magenta_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/magenta", + "ingredients": [ + { + "item": "projectexpansion:magenta_fuel_block" + } + ], + "result": { + "item": "projectexpansion:magenta_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/orange.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/orange.json new file mode 100644 index 00000000..b53a2619 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/orange.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/orange", + "ingredients": [ + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + } + ], + "result": { + "item": "projectexpansion:orange_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/orange_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/orange_reverse.json new file mode 100644 index 00000000..37e77b03 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/orange_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/orange", + "ingredients": [ + { + "item": "projectexpansion:orange_fuel_block" + } + ], + "result": { + "item": "projectexpansion:orange_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/pink.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/pink.json new file mode 100644 index 00000000..216438a7 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/pink.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/pink", + "ingredients": [ + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + } + ], + "result": { + "item": "projectexpansion:pink_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/pink_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/pink_reverse.json new file mode 100644 index 00000000..28c9d02a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/pink_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/pink", + "ingredients": [ + { + "item": "projectexpansion:pink_fuel_block" + } + ], + "result": { + "item": "projectexpansion:pink_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/purple.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/purple.json new file mode 100644 index 00000000..61186583 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/purple.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/purple", + "ingredients": [ + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + } + ], + "result": { + "item": "projectexpansion:purple_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/purple_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/purple_reverse.json new file mode 100644 index 00000000..526fb247 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/purple_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/purple", + "ingredients": [ + { + "item": "projectexpansion:purple_fuel_block" + } + ], + "result": { + "item": "projectexpansion:purple_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/violet.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/violet.json new file mode 100644 index 00000000..8e5861cd --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/violet.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/violet", + "ingredients": [ + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + } + ], + "result": { + "item": "projectexpansion:violet_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/violet_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/violet_reverse.json new file mode 100644 index 00000000..984c9fa4 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/violet_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/violet", + "ingredients": [ + { + "item": "projectexpansion:violet_fuel_block" + } + ], + "result": { + "item": "projectexpansion:violet_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/white.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/white.json new file mode 100644 index 00000000..ebd1c499 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/white.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/white", + "ingredients": [ + { + "item": "projectexpansion:white_fuel" + }, + { + "item": "projectexpansion:white_fuel" + }, + { + "item": "projectexpansion:white_fuel" + }, + { + "item": "projectexpansion:white_fuel" + }, + { + "item": "projectexpansion:white_fuel" + }, + { + "item": "projectexpansion:white_fuel" + }, + { + "item": "projectexpansion:white_fuel" + }, + { + "item": "projectexpansion:white_fuel" + }, + { + "item": "projectexpansion:white_fuel" + } + ], + "result": { + "item": "projectexpansion:white_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/white_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/white_reverse.json new file mode 100644 index 00000000..8f015289 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/white_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/white", + "ingredients": [ + { + "item": "projectexpansion:white_fuel_block" + } + ], + "result": { + "item": "projectexpansion:white_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/yellow.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/yellow.json new file mode 100644 index 00000000..542f0ced --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/yellow.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/yellow", + "ingredients": [ + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + } + ], + "result": { + "item": "projectexpansion:yellow_fuel_block" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/block/yellow_reverse.json b/src/generated/resources/data/projectexpansion/recipes/fuel/block/yellow_reverse.json new file mode 100644 index 00000000..9fb758bb --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/block/yellow_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/yellow", + "ingredients": [ + { + "item": "projectexpansion:yellow_fuel_block" + } + ], + "result": { + "item": "projectexpansion:yellow_fuel", + "count": 9 + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/blue.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/blue.json new file mode 100644 index 00000000..ec05a8e0 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/blue.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/blue", + "ingredients": [ + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + }, + { + "item": "projectexpansion:violet_fuel" + } + ], + "result": { + "item": "projectexpansion:blue_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/cyan.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/cyan.json new file mode 100644 index 00000000..8247f130 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/cyan.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/cyan", + "ingredients": [ + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + }, + { + "item": "projectexpansion:blue_fuel" + } + ], + "result": { + "item": "projectexpansion:cyan_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/green.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/green.json new file mode 100644 index 00000000..acc53ae0 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/green.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/green", + "ingredients": [ + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + }, + { + "item": "projectexpansion:cyan_fuel" + } + ], + "result": { + "item": "projectexpansion:green_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/lime.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/lime.json new file mode 100644 index 00000000..89d388b6 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/lime.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/lime", + "ingredients": [ + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + }, + { + "item": "projectexpansion:green_fuel" + } + ], + "result": { + "item": "projectexpansion:lime_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/magenta.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/magenta.json new file mode 100644 index 00000000..1cc854f7 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/magenta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/magenta", + "ingredients": [ + { + "item": "projecte:aeternalis_fuel" + }, + { + "item": "projecte:aeternalis_fuel" + }, + { + "item": "projecte:aeternalis_fuel" + }, + { + "item": "projecte:aeternalis_fuel" + } + ], + "result": { + "item": "projectexpansion:magenta_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/orange.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/orange.json new file mode 100644 index 00000000..db921641 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/orange.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/orange", + "ingredients": [ + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + }, + { + "item": "projectexpansion:yellow_fuel" + } + ], + "result": { + "item": "projectexpansion:orange_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/pink.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/pink.json new file mode 100644 index 00000000..b3d1f7b8 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/pink.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/pink", + "ingredients": [ + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + }, + { + "item": "projectexpansion:magenta_fuel" + } + ], + "result": { + "item": "projectexpansion:pink_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/purple.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/purple.json new file mode 100644 index 00000000..1c9b71e9 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/purple.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/purple", + "ingredients": [ + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + }, + { + "item": "projectexpansion:pink_fuel" + } + ], + "result": { + "item": "projectexpansion:purple_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/violet.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/violet.json new file mode 100644 index 00000000..f482de64 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/violet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/violet", + "ingredients": [ + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + }, + { + "item": "projectexpansion:purple_fuel" + } + ], + "result": { + "item": "projectexpansion:violet_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/white.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/white.json new file mode 100644 index 00000000..64d53ce5 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/white.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/white", + "ingredients": [ + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + }, + { + "item": "projectexpansion:orange_fuel" + } + ], + "result": { + "item": "projectexpansion:white_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/fuel/item/yellow.json b/src/generated/resources/data/projectexpansion/recipes/fuel/item/yellow.json new file mode 100644 index 00000000..ac7c8b40 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/fuel/item/yellow.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/yellow", + "ingredients": [ + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + }, + { + "item": "projectexpansion:lime_fuel" + } + ], + "result": { + "item": "projectexpansion:yellow_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/infinite_fuel.json b/src/generated/resources/data/projectexpansion/recipes/infinite_fuel.json new file mode 100644 index 00000000..76abf76d --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/infinite_fuel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "CCC", + "CTC", + "CCC" + ], + "key": { + "C": { + "item": "minecraft:coal" + }, + "T": { + "item": "projecte:transmutation_tablet" + } + }, + "result": { + "item": "projectexpansion:infinite_fuel" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/infinite_steak.json b/src/generated/resources/data/projectexpansion/recipes/infinite_steak.json new file mode 100644 index 00000000..5ab8565a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/infinite_steak.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "SSS", + "STS", + "SSS" + ], + "key": { + "S": { + "item": "minecraft:cooked_beef" + }, + "T": { + "item": "projecte:transmutation_tablet" + } + }, + "result": { + "item": "projectexpansion:infinite_steak" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/knowledge_sharing_book.json b/src/generated/resources/data/projectexpansion/recipes/knowledge_sharing_book.json new file mode 100644 index 00000000..f64ca1a6 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/knowledge_sharing_book.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "VNV", + "VBV", + "VNV" + ], + "key": { + "V": { + "item": "projectexpansion:violet_matter" + }, + "N": { + "item": "minecraft:nether_star" + }, + "B": { + "item": "minecraft:book" + } + }, + "result": { + "item": "projectexpansion:knowledge_sharing_book" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/blue.json b/src/generated/resources/data/projectexpansion/recipes/matter/blue.json new file mode 100644 index 00000000..1c92c915 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/blue.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/blue", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:violet_fuel" + }, + "M": { + "item": "projectexpansion:violet_matter" + } + }, + "result": { + "item": "projectexpansion:blue_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/blue_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/blue_alt.json new file mode 100644 index 00000000..76546b92 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/blue_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:violet_fuel" + }, + "M": { + "item": "projectexpansion:violet_matter" + } + }, + "result": { + "item": "projectexpansion:blue_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/cyan.json b/src/generated/resources/data/projectexpansion/recipes/matter/cyan.json new file mode 100644 index 00000000..f08e6164 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/cyan.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/cyan", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:blue_fuel" + }, + "M": { + "item": "projectexpansion:blue_matter" + } + }, + "result": { + "item": "projectexpansion:cyan_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/cyan_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/cyan_alt.json new file mode 100644 index 00000000..085ba42b --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/cyan_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:blue_fuel" + }, + "M": { + "item": "projectexpansion:blue_matter" + } + }, + "result": { + "item": "projectexpansion:cyan_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/fading.json b/src/generated/resources/data/projectexpansion/recipes/matter/fading.json new file mode 100644 index 00000000..8cda409e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/fading.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/fading", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:white_fuel" + }, + "M": { + "item": "projectexpansion:white_matter" + } + }, + "result": { + "item": "projectexpansion:fading_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/fading_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/fading_alt.json new file mode 100644 index 00000000..7ccd561b --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/fading_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:white_fuel" + }, + "M": { + "item": "projectexpansion:white_matter" + } + }, + "result": { + "item": "projectexpansion:fading_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/green.json b/src/generated/resources/data/projectexpansion/recipes/matter/green.json new file mode 100644 index 00000000..1857defd --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/green.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/green", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:cyan_fuel" + }, + "M": { + "item": "projectexpansion:cyan_matter" + } + }, + "result": { + "item": "projectexpansion:green_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/green_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/green_alt.json new file mode 100644 index 00000000..abe4649c --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/green_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:cyan_fuel" + }, + "M": { + "item": "projectexpansion:cyan_matter" + } + }, + "result": { + "item": "projectexpansion:green_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/lime.json b/src/generated/resources/data/projectexpansion/recipes/matter/lime.json new file mode 100644 index 00000000..59d20588 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/lime.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/lime", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:green_fuel" + }, + "M": { + "item": "projectexpansion:green_matter" + } + }, + "result": { + "item": "projectexpansion:lime_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/lime_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/lime_alt.json new file mode 100644 index 00000000..66731d51 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/lime_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:green_fuel" + }, + "M": { + "item": "projectexpansion:green_matter" + } + }, + "result": { + "item": "projectexpansion:lime_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/magenta.json b/src/generated/resources/data/projectexpansion/recipes/matter/magenta.json new file mode 100644 index 00000000..b20b2214 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/magenta.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/magenta", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projecte:aeternalis_fuel" + }, + "M": { + "item": "projecte:red_matter" + } + }, + "result": { + "item": "projectexpansion:magenta_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/magenta_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/magenta_alt.json new file mode 100644 index 00000000..780e3d6e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/magenta_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/magenta", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projecte:aeternalis_fuel" + }, + "M": { + "item": "projecte:red_matter" + } + }, + "result": { + "item": "projectexpansion:magenta_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/orange.json b/src/generated/resources/data/projectexpansion/recipes/matter/orange.json new file mode 100644 index 00000000..8e377f6c --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/orange.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/orange", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:yellow_fuel" + }, + "M": { + "item": "projectexpansion:yellow_matter" + } + }, + "result": { + "item": "projectexpansion:orange_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/orange_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/orange_alt.json new file mode 100644 index 00000000..a9d0dcce --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/orange_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:yellow_fuel" + }, + "M": { + "item": "projectexpansion:yellow_matter" + } + }, + "result": { + "item": "projectexpansion:orange_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/pink.json b/src/generated/resources/data/projectexpansion/recipes/matter/pink.json new file mode 100644 index 00000000..b40c9bc4 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/pink.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/pink", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:magenta_fuel" + }, + "M": { + "item": "projectexpansion:magenta_matter" + } + }, + "result": { + "item": "projectexpansion:pink_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/pink_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/pink_alt.json new file mode 100644 index 00000000..d143308a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/pink_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:magenta_fuel" + }, + "M": { + "item": "projectexpansion:magenta_matter" + } + }, + "result": { + "item": "projectexpansion:pink_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/purple.json b/src/generated/resources/data/projectexpansion/recipes/matter/purple.json new file mode 100644 index 00000000..097c630c --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/purple.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/purple", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:pink_fuel" + }, + "M": { + "item": "projectexpansion:pink_matter" + } + }, + "result": { + "item": "projectexpansion:purple_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/purple_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/purple_alt.json new file mode 100644 index 00000000..60aba472 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/purple_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:pink_fuel" + }, + "M": { + "item": "projectexpansion:pink_matter" + } + }, + "result": { + "item": "projectexpansion:purple_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/violet.json b/src/generated/resources/data/projectexpansion/recipes/matter/violet.json new file mode 100644 index 00000000..f890e1bc --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/violet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/violet", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:purple_fuel" + }, + "M": { + "item": "projectexpansion:purple_matter" + } + }, + "result": { + "item": "projectexpansion:violet_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/violet_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/violet_alt.json new file mode 100644 index 00000000..3fc85d22 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/violet_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:purple_fuel" + }, + "M": { + "item": "projectexpansion:purple_matter" + } + }, + "result": { + "item": "projectexpansion:violet_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/white.json b/src/generated/resources/data/projectexpansion/recipes/matter/white.json new file mode 100644 index 00000000..3365f8fe --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/white.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/white", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:orange_fuel" + }, + "M": { + "item": "projectexpansion:orange_matter" + } + }, + "result": { + "item": "projectexpansion:white_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/white_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/white_alt.json new file mode 100644 index 00000000..773979a9 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/white_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:orange_fuel" + }, + "M": { + "item": "projectexpansion:orange_matter" + } + }, + "result": { + "item": "projectexpansion:white_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/yellow.json b/src/generated/resources/data/projectexpansion/recipes/matter/yellow.json new file mode 100644 index 00000000..144cf792 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/yellow.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/yellow", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:lime_fuel" + }, + "M": { + "item": "projectexpansion:lime_matter" + } + }, + "result": { + "item": "projectexpansion:yellow_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter/yellow_alt.json b/src/generated/resources/data/projectexpansion/recipes/matter/yellow_alt.json new file mode 100644 index 00000000..ca3213d6 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter/yellow_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:lime_fuel" + }, + "M": { + "item": "projectexpansion:lime_matter" + } + }, + "result": { + "item": "projectexpansion:yellow_matter" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter_upgrader_1.json b/src/generated/resources/data/projectexpansion/recipes/matter_upgrader_1.json new file mode 100644 index 00000000..06e6bc1e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter_upgrader_1.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "LCL", + "PMR", + "LDL" + ], + "key": { + "L": { + "item": "projectexpansion:basic_emc_link" + }, + "C": { + "item": "projectexpansion:basic_collector" + }, + "P": { + "item": "projectexpansion:basic_power_flower" + }, + "M": { + "item": "minecraft:lime_dye" + }, + "R": { + "item": "projectexpansion:basic_relay" + }, + "D": { + "item": "projecte:dark_matter" + } + }, + "result": { + "item": "projectexpansion:matter_upgrader" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/matter_upgrader_2.json b/src/generated/resources/data/projectexpansion/recipes/matter_upgrader_2.json new file mode 100644 index 00000000..77f025cb --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/matter_upgrader_2.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "LCL", + "PMR", + "LDL" + ], + "key": { + "L": { + "item": "projectexpansion:basic_emc_link" + }, + "C": { + "item": "projectexpansion:basic_collector" + }, + "P": { + "item": "projectexpansion:basic_power_flower" + }, + "M": { + "item": "minecraft:lime_dye" + }, + "R": { + "item": "projecte:relay_mk1" + }, + "D": { + "item": "projecte:dark_matter" + } + }, + "result": { + "item": "projectexpansion:matter_upgrader" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/basic.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/basic.json new file mode 100644 index 00000000..241b557f --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/basic.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/basic", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:basic_emc_link" + }, + "C": { + "item": "projectexpansion:basic_compressed_collector" + }, + "R": { + "item": "projectexpansion:basic_relay" + } + }, + "result": { + "item": "projectexpansion:basic_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/blue.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/blue.json new file mode 100644 index 00000000..93d0a7a3 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/blue.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/blue", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:blue_emc_link" + }, + "C": { + "item": "projectexpansion:blue_compressed_collector" + }, + "R": { + "item": "projectexpansion:blue_relay" + } + }, + "result": { + "item": "projectexpansion:blue_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/cyan.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/cyan.json new file mode 100644 index 00000000..a4958137 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/cyan.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/cyan", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:cyan_emc_link" + }, + "C": { + "item": "projectexpansion:cyan_compressed_collector" + }, + "R": { + "item": "projectexpansion:cyan_relay" + } + }, + "result": { + "item": "projectexpansion:cyan_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/dark.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/dark.json new file mode 100644 index 00000000..db18f0a5 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/dark.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/dark", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:dark_emc_link" + }, + "C": { + "item": "projectexpansion:dark_compressed_collector" + }, + "R": { + "item": "projectexpansion:dark_relay" + } + }, + "result": { + "item": "projectexpansion:dark_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/fading.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/fading.json new file mode 100644 index 00000000..216a7e8d --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/fading.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/fading", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:fading_emc_link" + }, + "C": { + "item": "projectexpansion:fading_compressed_collector" + }, + "R": { + "item": "projectexpansion:fading_relay" + } + }, + "result": { + "item": "projectexpansion:fading_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/final.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/final.json new file mode 100644 index 00000000..1f5eb8c2 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/final.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/final", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:final_emc_link" + }, + "C": { + "item": "projectexpansion:final_compressed_collector" + }, + "R": { + "item": "projectexpansion:final_relay" + } + }, + "result": { + "item": "projectexpansion:final_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/green.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/green.json new file mode 100644 index 00000000..1fa97f6b --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/green.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/green", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:green_emc_link" + }, + "C": { + "item": "projectexpansion:green_compressed_collector" + }, + "R": { + "item": "projectexpansion:green_relay" + } + }, + "result": { + "item": "projectexpansion:green_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/lime.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/lime.json new file mode 100644 index 00000000..b2be68b8 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/lime.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/lime", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:lime_emc_link" + }, + "C": { + "item": "projectexpansion:lime_compressed_collector" + }, + "R": { + "item": "projectexpansion:lime_relay" + } + }, + "result": { + "item": "projectexpansion:lime_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/magenta.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/magenta.json new file mode 100644 index 00000000..758c88df --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/magenta.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/magenta", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:magenta_emc_link" + }, + "C": { + "item": "projectexpansion:magenta_compressed_collector" + }, + "R": { + "item": "projectexpansion:magenta_relay" + } + }, + "result": { + "item": "projectexpansion:magenta_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/orange.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/orange.json new file mode 100644 index 00000000..58f8e9f3 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/orange.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/orange", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:orange_emc_link" + }, + "C": { + "item": "projectexpansion:orange_compressed_collector" + }, + "R": { + "item": "projectexpansion:orange_relay" + } + }, + "result": { + "item": "projectexpansion:orange_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/pink.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/pink.json new file mode 100644 index 00000000..e1125d67 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/pink.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/pink", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:pink_emc_link" + }, + "C": { + "item": "projectexpansion:pink_compressed_collector" + }, + "R": { + "item": "projectexpansion:pink_relay" + } + }, + "result": { + "item": "projectexpansion:pink_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/purple.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/purple.json new file mode 100644 index 00000000..626e206e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/purple.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/purple", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:purple_emc_link" + }, + "C": { + "item": "projectexpansion:purple_compressed_collector" + }, + "R": { + "item": "projectexpansion:purple_relay" + } + }, + "result": { + "item": "projectexpansion:purple_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/red.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/red.json new file mode 100644 index 00000000..40684c31 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/red.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/red", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:red_emc_link" + }, + "C": { + "item": "projectexpansion:red_compressed_collector" + }, + "R": { + "item": "projectexpansion:red_relay" + } + }, + "result": { + "item": "projectexpansion:red_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/violet.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/violet.json new file mode 100644 index 00000000..93a23b28 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/violet.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/violet", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:violet_emc_link" + }, + "C": { + "item": "projectexpansion:violet_compressed_collector" + }, + "R": { + "item": "projectexpansion:violet_relay" + } + }, + "result": { + "item": "projectexpansion:violet_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/white.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/white.json new file mode 100644 index 00000000..4d34557b --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/white.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/white", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:white_emc_link" + }, + "C": { + "item": "projectexpansion:white_compressed_collector" + }, + "R": { + "item": "projectexpansion:white_relay" + } + }, + "result": { + "item": "projectexpansion:white_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/power_flower/yellow.json b/src/generated/resources/data/projectexpansion/recipes/power_flower/yellow.json new file mode 100644 index 00000000..172214a9 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/power_flower/yellow.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/yellow", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:yellow_emc_link" + }, + "C": { + "item": "projectexpansion:yellow_compressed_collector" + }, + "R": { + "item": "projectexpansion:yellow_relay" + } + }, + "result": { + "item": "projectexpansion:yellow_power_flower" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/basic.json b/src/generated/resources/data/projectexpansion/recipes/relay/basic.json new file mode 100644 index 00000000..e7a48857 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/basic.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/basic", + "result": { + "item": "projectexpansion:basic_relay" + }, + "pattern": [ + "OSO", + "OAO", + "OOO" + ], + "key": { + "O": { + "tag": "forge:obsidian" + }, + "A": { + "item": "projecte:aeternalis_fuel_block" + }, + "S": { + "tag": "forge:glass" + } + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/blue.json b/src/generated/resources/data/projectexpansion/recipes/relay/blue.json new file mode 100644 index 00000000..9c0c00c3 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/blue.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/blue", + "ingredients": [ + { + "item": "projectexpansion:violet_relay" + }, + { + "item": "projectexpansion:blue_matter" + } + ], + "result": { + "item": "projectexpansion:blue_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/cyan.json b/src/generated/resources/data/projectexpansion/recipes/relay/cyan.json new file mode 100644 index 00000000..57e835c9 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/cyan.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/cyan", + "ingredients": [ + { + "item": "projectexpansion:blue_relay" + }, + { + "item": "projectexpansion:cyan_matter" + } + ], + "result": { + "item": "projectexpansion:cyan_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/dark.json b/src/generated/resources/data/projectexpansion/recipes/relay/dark.json new file mode 100644 index 00000000..6156fa8f --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/dark.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/dark", + "ingredients": [ + { + "item": "projectexpansion:basic_relay" + }, + { + "item": "projecte:dark_matter" + } + ], + "result": { + "item": "projectexpansion:dark_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/fading.json b/src/generated/resources/data/projectexpansion/recipes/relay/fading.json new file mode 100644 index 00000000..05c28b4a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/fading.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/fading", + "ingredients": [ + { + "item": "projectexpansion:white_relay" + }, + { + "item": "projectexpansion:fading_matter" + } + ], + "result": { + "item": "projectexpansion:fading_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/final.json b/src/generated/resources/data/projectexpansion/recipes/relay/final.json new file mode 100644 index 00000000..6deab871 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/final.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/final", + "ingredients": [ + { + "item": "projectexpansion:fading_relay" + }, + { + "item": "projectexpansion:final_star_shard" + } + ], + "result": { + "item": "projectexpansion:final_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/green.json b/src/generated/resources/data/projectexpansion/recipes/relay/green.json new file mode 100644 index 00000000..c8761c1a --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/green.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/green", + "ingredients": [ + { + "item": "projectexpansion:cyan_relay" + }, + { + "item": "projectexpansion:green_matter" + } + ], + "result": { + "item": "projectexpansion:green_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/lime.json b/src/generated/resources/data/projectexpansion/recipes/relay/lime.json new file mode 100644 index 00000000..fb040f92 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/lime.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/lime", + "ingredients": [ + { + "item": "projectexpansion:green_relay" + }, + { + "item": "projectexpansion:lime_matter" + } + ], + "result": { + "item": "projectexpansion:lime_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/magenta.json b/src/generated/resources/data/projectexpansion/recipes/relay/magenta.json new file mode 100644 index 00000000..1200d3eb --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/magenta.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/magenta", + "ingredients": [ + { + "item": "projectexpansion:red_relay" + }, + { + "item": "projectexpansion:magenta_matter" + } + ], + "result": { + "item": "projectexpansion:magenta_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/mk1_conversion.json b/src/generated/resources/data/projectexpansion/recipes/relay/mk1_conversion.json new file mode 100644 index 00000000..5117c580 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/mk1_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/basic", + "result": { + "item": "projectexpansion:basic_relay" + }, + "ingredients": [ + { + "item": "projecte:relay_mk1" + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/mk2_conversion.json b/src/generated/resources/data/projectexpansion/recipes/relay/mk2_conversion.json new file mode 100644 index 00000000..5f349cf9 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/mk2_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/dark", + "result": { + "item": "projectexpansion:dark_relay" + }, + "ingredients": [ + { + "item": "projecte:relay_mk2" + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/mk3_conversion.json b/src/generated/resources/data/projectexpansion/recipes/relay/mk3_conversion.json new file mode 100644 index 00000000..fdbf02d3 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/mk3_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/red", + "result": { + "item": "projectexpansion:red_relay" + }, + "ingredients": [ + { + "item": "projecte:relay_mk3" + } + ] +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/orange.json b/src/generated/resources/data/projectexpansion/recipes/relay/orange.json new file mode 100644 index 00000000..d4aebfad --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/orange.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/orange", + "ingredients": [ + { + "item": "projectexpansion:yellow_relay" + }, + { + "item": "projectexpansion:orange_matter" + } + ], + "result": { + "item": "projectexpansion:orange_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/pink.json b/src/generated/resources/data/projectexpansion/recipes/relay/pink.json new file mode 100644 index 00000000..38c7358f --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/pink.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/pink", + "ingredients": [ + { + "item": "projectexpansion:magenta_relay" + }, + { + "item": "projectexpansion:pink_matter" + } + ], + "result": { + "item": "projectexpansion:pink_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/purple.json b/src/generated/resources/data/projectexpansion/recipes/relay/purple.json new file mode 100644 index 00000000..adbb8d75 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/purple.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/purple", + "ingredients": [ + { + "item": "projectexpansion:pink_relay" + }, + { + "item": "projectexpansion:purple_matter" + } + ], + "result": { + "item": "projectexpansion:purple_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/red.json b/src/generated/resources/data/projectexpansion/recipes/relay/red.json new file mode 100644 index 00000000..096ac22e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/red.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/red", + "ingredients": [ + { + "item": "projectexpansion:dark_relay" + }, + { + "item": "projecte:red_matter" + } + ], + "result": { + "item": "projectexpansion:red_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/violet.json b/src/generated/resources/data/projectexpansion/recipes/relay/violet.json new file mode 100644 index 00000000..df28b231 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/violet.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/violet", + "ingredients": [ + { + "item": "projectexpansion:purple_relay" + }, + { + "item": "projectexpansion:violet_matter" + } + ], + "result": { + "item": "projectexpansion:violet_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/white.json b/src/generated/resources/data/projectexpansion/recipes/relay/white.json new file mode 100644 index 00000000..c10e971e --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/white.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/white", + "ingredients": [ + { + "item": "projectexpansion:orange_relay" + }, + { + "item": "projectexpansion:white_matter" + } + ], + "result": { + "item": "projectexpansion:white_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/relay/yellow.json b/src/generated/resources/data/projectexpansion/recipes/relay/yellow.json new file mode 100644 index 00000000..5dc7f802 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/relay/yellow.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/yellow", + "ingredients": [ + { + "item": "projectexpansion:lime_relay" + }, + { + "item": "projectexpansion:yellow_matter" + } + ], + "result": { + "item": "projectexpansion:yellow_relay" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/colossal/drei.json b/src/generated/resources/data/projectexpansion/recipes/star/colossal/drei.json new file mode 100644 index 00000000..27299ad4 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/colossal/drei.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_zwei" + }, + { + "item": "projectexpansion:colossal_star_zwei" + }, + { + "item": "projectexpansion:colossal_star_zwei" + }, + { + "item": "projectexpansion:colossal_star_zwei" + } + ], + "result": { + "item": "projectexpansion:colossal_star_drei" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/colossal/ein.json b/src/generated/resources/data/projectexpansion/recipes/star/colossal/ein.json new file mode 100644 index 00000000..b3830747 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/colossal/ein.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_omega" + }, + { + "item": "projectexpansion:magnum_star_omega" + }, + { + "item": "projectexpansion:magnum_star_omega" + }, + { + "item": "projectexpansion:magnum_star_omega" + } + ], + "result": { + "item": "projectexpansion:colossal_star_ein" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/colossal/omega.json b/src/generated/resources/data/projectexpansion/recipes/star/colossal/omega.json new file mode 100644 index 00000000..5815606c --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/colossal/omega.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_sphere" + }, + { + "item": "projectexpansion:colossal_star_sphere" + }, + { + "item": "projectexpansion:colossal_star_sphere" + }, + { + "item": "projectexpansion:colossal_star_sphere" + } + ], + "result": { + "item": "projectexpansion:colossal_star_omega" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/colossal/sphere.json b/src/generated/resources/data/projectexpansion/recipes/star/colossal/sphere.json new file mode 100644 index 00000000..265bc013 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/colossal/sphere.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_vier" + }, + { + "item": "projectexpansion:colossal_star_vier" + }, + { + "item": "projectexpansion:colossal_star_vier" + }, + { + "item": "projectexpansion:colossal_star_vier" + } + ], + "result": { + "item": "projectexpansion:colossal_star_sphere" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/colossal/vier.json b/src/generated/resources/data/projectexpansion/recipes/star/colossal/vier.json new file mode 100644 index 00000000..9f38fb42 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/colossal/vier.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_drei" + }, + { + "item": "projectexpansion:colossal_star_drei" + }, + { + "item": "projectexpansion:colossal_star_drei" + }, + { + "item": "projectexpansion:colossal_star_drei" + } + ], + "result": { + "item": "projectexpansion:colossal_star_vier" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/colossal/zwei.json b/src/generated/resources/data/projectexpansion/recipes/star/colossal/zwei.json new file mode 100644 index 00000000..a51f1ac6 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/colossal/zwei.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_ein" + }, + { + "item": "projectexpansion:colossal_star_ein" + }, + { + "item": "projectexpansion:colossal_star_ein" + }, + { + "item": "projectexpansion:colossal_star_ein" + } + ], + "result": { + "item": "projectexpansion:colossal_star_zwei" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/final_star.json b/src/generated/resources/data/projectexpansion/recipes/star/final_star.json new file mode 100644 index 00000000..206fdeed --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/final_star.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:star", + "result": { + "item": "projectexpansion:final_star" + }, + "pattern": [ + "SSS", + "SES", + "SSS" + ], + "key": { + "S": { + "item": "projectexpansion:final_power_flower" + }, + "E": { + "item": "minecraft:dragon_egg" + } + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/final_star_shard.json b/src/generated/resources/data/projectexpansion/recipes/star/final_star_shard.json new file mode 100644 index 00000000..0d9b4465 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/final_star_shard.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:star", + "result": { + "item": "projectexpansion:final_star_shard" + }, + "pattern": [ + "SSS", + "SNS", + "SSS" + ], + "key": { + "S": { + "item": "projectexpansion:colossal_star_omega" + }, + "N": { + "item": "minecraft:nether_star" + } + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/magnum/drei.json b/src/generated/resources/data/projectexpansion/recipes/star/magnum/drei.json new file mode 100644 index 00000000..91e44aa0 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/magnum/drei.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_zwei" + }, + { + "item": "projectexpansion:magnum_star_zwei" + }, + { + "item": "projectexpansion:magnum_star_zwei" + }, + { + "item": "projectexpansion:magnum_star_zwei" + } + ], + "result": { + "item": "projectexpansion:magnum_star_drei" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/magnum/ein.json b/src/generated/resources/data/projectexpansion/recipes/star/magnum/ein.json new file mode 100644 index 00000000..547717dc --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/magnum/ein.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projecte:klein_star_omega" + }, + { + "item": "projecte:klein_star_omega" + }, + { + "item": "projecte:klein_star_omega" + }, + { + "item": "projecte:klein_star_omega" + } + ], + "result": { + "item": "projectexpansion:magnum_star_ein" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/magnum/omega.json b/src/generated/resources/data/projectexpansion/recipes/star/magnum/omega.json new file mode 100644 index 00000000..2772017b --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/magnum/omega.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_sphere" + }, + { + "item": "projectexpansion:magnum_star_sphere" + }, + { + "item": "projectexpansion:magnum_star_sphere" + }, + { + "item": "projectexpansion:magnum_star_sphere" + } + ], + "result": { + "item": "projectexpansion:magnum_star_omega" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/magnum/sphere.json b/src/generated/resources/data/projectexpansion/recipes/star/magnum/sphere.json new file mode 100644 index 00000000..0ff5b276 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/magnum/sphere.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_vier" + }, + { + "item": "projectexpansion:magnum_star_vier" + }, + { + "item": "projectexpansion:magnum_star_vier" + }, + { + "item": "projectexpansion:magnum_star_vier" + } + ], + "result": { + "item": "projectexpansion:magnum_star_sphere" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/magnum/vier.json b/src/generated/resources/data/projectexpansion/recipes/star/magnum/vier.json new file mode 100644 index 00000000..7161cd22 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/magnum/vier.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_drei" + }, + { + "item": "projectexpansion:magnum_star_drei" + }, + { + "item": "projectexpansion:magnum_star_drei" + }, + { + "item": "projectexpansion:magnum_star_drei" + } + ], + "result": { + "item": "projectexpansion:magnum_star_vier" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/star/magnum/zwei.json b/src/generated/resources/data/projectexpansion/recipes/star/magnum/zwei.json new file mode 100644 index 00000000..7151d161 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/star/magnum/zwei.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_ein" + }, + { + "item": "projectexpansion:magnum_star_ein" + }, + { + "item": "projectexpansion:magnum_star_ein" + }, + { + "item": "projectexpansion:magnum_star_ein" + } + ], + "result": { + "item": "projectexpansion:magnum_star_zwei" + } +} diff --git a/src/generated/resources/data/projectexpansion/recipes/transmutation_interface.json b/src/generated/resources/data/projectexpansion/recipes/transmutation_interface.json new file mode 100644 index 00000000..88793692 --- /dev/null +++ b/src/generated/resources/data/projectexpansion/recipes/transmutation_interface.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "LCL", + "CSC", + "LCL" + ], + "key": { + "L": { + "item": "projectexpansion:final_emc_link" + }, + "C": { + "item": "projecte:condenser_mk2" + }, + "S": { + "item": "projectexpansion:final_star_shard" + } + }, + "result": { + "item": "projectexpansion:transmutation_interface" + } +} diff --git a/src/main/generation/.eslintrc.json b/src/main/generation/.eslintrc.json new file mode 100644 index 00000000..490b0541 --- /dev/null +++ b/src/main/generation/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "@uwu-codes/eslint-config/ts.json", + "rules": {} +} diff --git a/src/main/generation/.gitignore b/src/main/generation/.gitignore new file mode 100644 index 00000000..db86db79 --- /dev/null +++ b/src/main/generation/.gitignore @@ -0,0 +1,3 @@ +.git/ +node_modules/ +data/ diff --git a/src/main/generation/.node-version b/src/main/generation/.node-version new file mode 100644 index 00000000..08e3ca9b --- /dev/null +++ b/src/main/generation/.node-version @@ -0,0 +1 @@ +18.2.0 diff --git a/src/main/generation/constants.ts b/src/main/generation/constants.ts new file mode 100644 index 00000000..584250e8 --- /dev/null +++ b/src/main/generation/constants.ts @@ -0,0 +1,32 @@ +export const MATTER_TIERS = [ + "basic", "dark", "red", "magenta", + "pink", "purple", "violet", "blue", + "cyan", "green", "lime", "yellow", + "orange", "white", "fading", "final" +]; + +export const STAR_TYPES = [ + "colossal", + "magnum" +]; + +export const STAR_TIERS = [ + "ein", + "zwei", + "drei", + "vier", + "sphere", + "omega" +]; + +export const UPGRADE_TYPES = [ + "collector", + "power_flower", + "relay" +]; + +export const FUEL_DISABLED = [ + "basic", "dark", "red", "fading", "final" +]; +export const assetsDir = new URL("../../generated/resources/assets/projectexpansion/", import.meta.url); +export const dataDir = new URL("../../generated/resources/data/projectexpansion/", import.meta.url); diff --git a/src/main/generation/generators/block/collector.json b/src/main/generation/generators/block/collector.json new file mode 100644 index 00000000..deb19315 --- /dev/null +++ b/src/main/generation/generators/block/collector.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/collector/$TIER$" + } +} diff --git a/src/main/generation/generators/block/collector.ts b/src/main/generation/generators/block/collector.ts new file mode 100644 index 00000000..ba58c88c --- /dev/null +++ b/src/main/generation/generators/block/collector.ts @@ -0,0 +1,4 @@ +import { genericBlock } from "../../util"; + +const BASE = new URL("collector.json", import.meta.url).pathname; +export default genericBlock.bind(null, "collector", BASE, [], undefined); diff --git a/src/main/generation/generators/block/emc_link.json b/src/main/generation/generators/block/emc_link.json new file mode 100644 index 00000000..ece80183 --- /dev/null +++ b/src/main/generation/generators/block/emc_link.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/$TIER$" + } +} diff --git a/src/main/generation/generators/block/emc_link.ts b/src/main/generation/generators/block/emc_link.ts new file mode 100644 index 00000000..5e5eaa16 --- /dev/null +++ b/src/main/generation/generators/block/emc_link.ts @@ -0,0 +1,4 @@ +import { genericBlock } from "../../util"; + +const BASE = new URL("emc_link.json", import.meta.url).pathname; +export default genericBlock.bind(null, "emc_link", BASE, [], undefined); diff --git a/src/main/generation/generators/block/emc_link_nofilter.json b/src/main/generation/generators/block/emc_link_nofilter.json new file mode 100644 index 00000000..212fda5b --- /dev/null +++ b/src/main/generation/generators/block/emc_link_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/emc_link/$TIER$_nofilter" + } +} diff --git a/src/main/generation/generators/block/emc_link_nofilter.ts b/src/main/generation/generators/block/emc_link_nofilter.ts new file mode 100644 index 00000000..0266cd3d --- /dev/null +++ b/src/main/generation/generators/block/emc_link_nofilter.ts @@ -0,0 +1,4 @@ +import { genericBlock } from "../../util"; + +const BASE = new URL("emc_link_nofilter.json", import.meta.url).pathname; +export default genericBlock.bind(null, "emc_link", BASE, [], "_nofilter"); diff --git a/src/main/generation/generators/block/fuel.json b/src/main/generation/generators/block/fuel.json new file mode 100644 index 00000000..63d136c9 --- /dev/null +++ b/src/main/generation/generators/block/fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/fuel/$TIER$" + } +} diff --git a/src/main/generation/generators/block/fuel.ts b/src/main/generation/generators/block/fuel.ts new file mode 100644 index 00000000..a7293f86 --- /dev/null +++ b/src/main/generation/generators/block/fuel.ts @@ -0,0 +1,5 @@ +import { FUEL_DISABLED } from "../../constants"; +import { genericBlock } from "../../util"; + +const BASE = new URL("fuel.json", import.meta.url).pathname; +export default genericBlock.bind(null, "fuel", BASE, FUEL_DISABLED, undefined); diff --git a/src/main/generation/generators/block/index.ts b/src/main/generation/generators/block/index.ts new file mode 100644 index 00000000..cf719465 --- /dev/null +++ b/src/main/generation/generators/block/index.ts @@ -0,0 +1,4 @@ +import { assetsDir } from "../../constants"; + +export const format = "Using base \"%s\" with generator \"%s\" to provide block model for \"%s\"."; +export const outDir = new URL("models/block/", assetsDir); diff --git a/src/main/generation/generators/block/power_flower.json b/src/main/generation/generators/block/power_flower.json new file mode 100644 index 00000000..9a318d1d --- /dev/null +++ b/src/main/generation/generators/block/power_flower.json @@ -0,0 +1,7 @@ +{ + "parent": "projectexpansion:block/power_flower/base", + "textures": { + "collector": "projectexpansion:block/collector/$TIER$", + "relay": "projectexpansion:block/relay/$TIER$" + } +} diff --git a/src/main/generation/generators/block/power_flower.ts b/src/main/generation/generators/block/power_flower.ts new file mode 100644 index 00000000..d84d65d9 --- /dev/null +++ b/src/main/generation/generators/block/power_flower.ts @@ -0,0 +1,9 @@ +import { exists, genericBlock } from "../../util"; +import { copyFile, mkdir } from "fs/promises"; + +const BASE = new URL("power_flower.json", import.meta.url).pathname; +export default async function run(outDir: URL) { + if (!await exists(new URL("power_flower/", outDir))) await mkdir(new URL("power_flower/", outDir), { recursive: true }); + await copyFile(new URL("single/power_flower_base.json", import.meta.url), new URL("power_flower/base.json", outDir)); + return genericBlock("power_flower", BASE, [], undefined, outDir); +} diff --git a/src/main/generation/generators/block/relay.json b/src/main/generation/generators/block/relay.json new file mode 100644 index 00000000..1726f912 --- /dev/null +++ b/src/main/generation/generators/block/relay.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/relay/$TIER$" + } +} diff --git a/src/main/generation/generators/block/relay.ts b/src/main/generation/generators/block/relay.ts new file mode 100644 index 00000000..c5f56c28 --- /dev/null +++ b/src/main/generation/generators/block/relay.ts @@ -0,0 +1,4 @@ +import { genericBlock } from "../../util"; + +const BASE = new URL("relay.json", import.meta.url).pathname; +export default genericBlock.bind(null, "relay", BASE, [], undefined); diff --git a/src/main/generation/generators/block/single.ts b/src/main/generation/generators/block/single.ts new file mode 100644 index 00000000..84eafdae --- /dev/null +++ b/src/main/generation/generators/block/single.ts @@ -0,0 +1,2 @@ +import { single } from "../../util"; +export default single.bind(null, import.meta.url); diff --git a/src/main/generation/generators/block/single/arcane_table.json b/src/main/generation/generators/block/single/arcane_table.json new file mode 100644 index 00000000..ddc4703a --- /dev/null +++ b/src/main/generation/generators/block/single/arcane_table.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:block/block", + "textures": { + "bottom": "projectexpansion:block/arcane_table/bottom", + "top": "projectexpansion:block/arcane_table/top", + "side": "projectexpansion:block/arcane_table/side", + "particle": "projectexpansion:block/arcane_table/top" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 4, + 16 + ], + "faces": { + "down": { + "texture": "#bottom", + "cullface": "down" + }, + "up": { + "texture": "#top" + }, + "north": { + "texture": "#side", + "cullface": "north" + }, + "south": { + "texture": "#side", + "cullface": "south" + }, + "west": { + "texture": "#side", + "cullface": "west" + }, + "east": { + "texture": "#side", + "cullface": "east" + } + } + } + ] +} diff --git a/src/main/generation/generators/block/single/power_flower_base.json b/src/main/generation/generators/block/single/power_flower_base.json new file mode 100644 index 00000000..bc1f0562 --- /dev/null +++ b/src/main/generation/generators/block/single/power_flower_base.json @@ -0,0 +1,1240 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#collector" + }, + "elements": [ + { + "name": "base", + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 1, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 15, + 16, + 16 + ], + "texture": "#relay", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 15, + 16, + 16 + ], + "texture": "#relay", + "cullface": "east" + }, + "south": { + "uv": [ + 0, + 15, + 16, + 16 + ], + "texture": "#relay", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 15, + 16, + 16 + ], + "texture": "#relay", + "cullface": "west" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#relay" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#relay", + "cullface": "down" + } + } + }, + { + "name": "base", + "from": [ + 0, + 1, + 0 + ], + "to": [ + 1, + 2, + 16 + ], + "faces": { + "north": { + "uv": [ + 15, + 14, + 16, + 15 + ], + "texture": "#relay", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 14, + 16, + 15 + ], + "texture": "#relay" + }, + "south": { + "uv": [ + 0, + 14, + 1, + 15 + ], + "texture": "#relay", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 14, + 16, + 15 + ], + "texture": "#relay", + "cullface": "west" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 16 + ], + "texture": "#relay" + } + } + }, + { + "name": "base", + "from": [ + 15, + 1, + 0 + ], + "to": [ + 16, + 2, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 14, + 1, + 15 + ], + "texture": "#relay", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 14, + 16, + 15 + ], + "texture": "#relay", + "cullface": "east" + }, + "south": { + "uv": [ + 15, + 14, + 16, + 15 + ], + "texture": "#relay", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 14, + 16, + 15 + ], + "texture": "#relay" + }, + "up": { + "uv": [ + 15, + 0, + 16, + 16 + ], + "texture": "#relay" + } + } + }, + { + "name": "base", + "from": [ + 1, + 1, + 0 + ], + "to": [ + 15, + 2, + 1 + ], + "faces": { + "north": { + "uv": [ + 1, + 14, + 15, + 15 + ], + "texture": "#relay", + "cullface": "north" + }, + "south": { + "uv": [ + 1, + 14, + 15, + 15 + ], + "texture": "#relay" + }, + "up": { + "uv": [ + 1, + 0, + 15, + 1 + ], + "texture": "#relay" + } + } + }, + { + "name": "base", + "from": [ + 1, + 1, + 15 + ], + "to": [ + 15, + 2, + 16 + ], + "faces": { + "north": { + "uv": [ + 1, + 14, + 15, + 15 + ], + "texture": "#relay" + }, + "south": { + "uv": [ + 1, + 14, + 15, + 15 + ], + "texture": "#relay", + "cullface": "south" + }, + "up": { + "uv": [ + 1, + 15, + 15, + 16 + ], + "texture": "#relay" + } + } + }, + { + "from": [ + 6.5, + 1, + 6.5 + ], + "to": [ + 9.5, + 4, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 3.5, + 4, + 6.5 + ], + "to": [ + 6.5, + 7, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 4, + 9.5 + ], + "to": [ + 9.5, + 7, + 12.5 + ], + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 9.5, + 4, + 6.5 + ], + "to": [ + 12.5, + 7, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 4, + 3.5 + ], + "to": [ + 9.5, + 7, + 6.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 7, + 0.5 + ], + "to": [ + 9.5, + 10, + 3.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 3.5, + 7, + 3.5 + ], + "to": [ + 6.5, + 10, + 6.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 3.5, + 7, + 9.5 + ], + "to": [ + 6.5, + 10, + 12.5 + ], + "faces": { + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 9.5, + 7, + 9.5 + ], + "to": [ + 12.5, + 10, + 12.5 + ], + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 9.5, + 7, + 3.5 + ], + "to": [ + 12.5, + 10, + 6.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 12.5, + 7, + 6.5 + ], + "to": [ + 15.5, + 10, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 0.5, + 7, + 6.5 + ], + "to": [ + 3.5, + 10, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 7, + 12.5 + ], + "to": [ + 9.5, + 10, + 15.5 + ], + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 10, + 9.5 + ], + "to": [ + 9.5, + 13, + 12.5 + ], + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 10, + 3.5 + ], + "to": [ + 9.5, + 13, + 6.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 9.5, + 10, + 6.5 + ], + "to": [ + 12.5, + 13, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 3.5, + 10, + 6.5 + ], + "to": [ + 6.5, + 13, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + } + } + }, + { + "from": [ + 6.5, + 13, + 6.5 + ], + "to": [ + 9.5, + 16, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#collector", + "cullface": "up" + } + } + } + ] +} diff --git a/src/main/generation/generators/block/single/transmutation_interface.json b/src/main/generation/generators/block/single/transmutation_interface.json new file mode 100644 index 00000000..9f601102 --- /dev/null +++ b/src/main/generation/generators/block/single/transmutation_interface.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/transmutation_interface" + } +} diff --git a/src/main/generation/generators/block/single/transmutation_interface_nofilter.json b/src/main/generation/generators/block/single/transmutation_interface_nofilter.json new file mode 100644 index 00000000..918a93ba --- /dev/null +++ b/src/main/generation/generators/block/single/transmutation_interface_nofilter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "projectexpansion:block/transmutation_interface_nofilter" + } +} diff --git a/src/main/generation/generators/blockstate/collector.json b/src/main/generation/generators/blockstate/collector.json new file mode 100644 index 00000000..c7049f96 --- /dev/null +++ b/src/main/generation/generators/blockstate/collector.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/collector/$TIER$" + } + } +} diff --git a/src/main/generation/generators/blockstate/collector.ts b/src/main/generation/generators/blockstate/collector.ts new file mode 100644 index 00000000..a1ab8a1a --- /dev/null +++ b/src/main/generation/generators/blockstate/collector.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("collector.json", import.meta.url).pathname; +export default generic.bind(null, "collector", BASE, []); diff --git a/src/main/generation/generators/blockstate/emc_link.json b/src/main/generation/generators/blockstate/emc_link.json new file mode 100644 index 00000000..32d61c8d --- /dev/null +++ b/src/main/generation/generators/blockstate/emc_link.json @@ -0,0 +1,10 @@ +{ + "variants": { + "filter=true": { + "model": "projectexpansion:block/emc_link/$TIER$" + }, + "filter=false": { + "model": "projectexpansion:block/emc_link/$TIER$_nofilter" + } + } +} diff --git a/src/main/generation/generators/blockstate/emc_link.ts b/src/main/generation/generators/blockstate/emc_link.ts new file mode 100644 index 00000000..ceb50983 --- /dev/null +++ b/src/main/generation/generators/blockstate/emc_link.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("emc_link.json", import.meta.url).pathname; +export default generic.bind(null, "emc_link", BASE, []); diff --git a/src/main/generation/generators/blockstate/fuel_block.json b/src/main/generation/generators/blockstate/fuel_block.json new file mode 100644 index 00000000..4e6c7d32 --- /dev/null +++ b/src/main/generation/generators/blockstate/fuel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/fuel/$TIER$" + } + } +} diff --git a/src/main/generation/generators/blockstate/fuel_block.ts b/src/main/generation/generators/blockstate/fuel_block.ts new file mode 100644 index 00000000..e04d37bd --- /dev/null +++ b/src/main/generation/generators/blockstate/fuel_block.ts @@ -0,0 +1,5 @@ +import { FUEL_DISABLED } from "../../constants"; +import { generic } from "../../util"; + +const BASE = new URL("fuel_block.json", import.meta.url).pathname; +export default generic.bind(null, "fuel_block", BASE, FUEL_DISABLED); diff --git a/src/main/generation/generators/blockstate/index.ts b/src/main/generation/generators/blockstate/index.ts new file mode 100644 index 00000000..92dc22a7 --- /dev/null +++ b/src/main/generation/generators/blockstate/index.ts @@ -0,0 +1,4 @@ +import { assetsDir } from "../../constants"; + +export const format = "Using base \"%s\" with generator \"%s\" to provide blockstate for \"%s\"."; +export const outDir = new URL("blockstates/", assetsDir); diff --git a/src/main/generation/generators/blockstate/power_flower.json b/src/main/generation/generators/blockstate/power_flower.json new file mode 100644 index 00000000..33ed17b7 --- /dev/null +++ b/src/main/generation/generators/blockstate/power_flower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/power_flower/$TIER$" + } + } +} diff --git a/src/main/generation/generators/blockstate/power_flower.ts b/src/main/generation/generators/blockstate/power_flower.ts new file mode 100644 index 00000000..7807816d --- /dev/null +++ b/src/main/generation/generators/blockstate/power_flower.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("power_flower.json", import.meta.url).pathname; +export default generic.bind(null, "power_flower", BASE, []); diff --git a/src/main/generation/generators/blockstate/relay.json b/src/main/generation/generators/blockstate/relay.json new file mode 100644 index 00000000..2d789a4b --- /dev/null +++ b/src/main/generation/generators/blockstate/relay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "projectexpansion:block/relay/$TIER$" + } + } +} diff --git a/src/main/generation/generators/blockstate/relay.ts b/src/main/generation/generators/blockstate/relay.ts new file mode 100644 index 00000000..c4f4559b --- /dev/null +++ b/src/main/generation/generators/blockstate/relay.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("relay.json", import.meta.url).pathname; +export default generic.bind(null, "relay", BASE, []); diff --git a/src/main/generation/generators/blockstate/single.ts b/src/main/generation/generators/blockstate/single.ts new file mode 100644 index 00000000..84eafdae --- /dev/null +++ b/src/main/generation/generators/blockstate/single.ts @@ -0,0 +1,2 @@ +import { single } from "../../util"; +export default single.bind(null, import.meta.url); diff --git a/src/main/generation/generators/blockstate/single/arcane_table.json b/src/main/generation/generators/blockstate/single/arcane_table.json new file mode 100644 index 00000000..6c45cd1e --- /dev/null +++ b/src/main/generation/generators/blockstate/single/arcane_table.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "projectexpansion:block/arcane_table", + "x": 180 + }, + "facing=up": { + "model": "projectexpansion:block/arcane_table" + }, + "facing=north": { + "model": "projectexpansion:block/arcane_table", + "x": 90 + }, + "facing=south": { + "model": "projectexpansion:block/arcane_table", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "projectexpansion:block/arcane_table", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "projectexpansion:block/arcane_table", + "x": 90, + "y": 90 + } + } +} diff --git a/src/main/generation/generators/blockstate/single/transmutation_interface.json b/src/main/generation/generators/blockstate/single/transmutation_interface.json new file mode 100644 index 00000000..fec61c38 --- /dev/null +++ b/src/main/generation/generators/blockstate/single/transmutation_interface.json @@ -0,0 +1,11 @@ +{ + "forge_marker": 1, + "variants": { + "filter=true": { + "model": "projectexpansion:block/transmutation_interface" + }, + "filter=false": { + "model": "projectexpansion:block/transmutation_interface_nofilter" + } + } +} diff --git a/src/main/generation/generators/item/collector.json b/src/main/generation/generators/item/collector.json new file mode 100644 index 00000000..f4b552b9 --- /dev/null +++ b/src/main/generation/generators/item/collector.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/collector/$TIER$" +} diff --git a/src/main/generation/generators/item/collector.ts b/src/main/generation/generators/item/collector.ts new file mode 100644 index 00000000..a1ab8a1a --- /dev/null +++ b/src/main/generation/generators/item/collector.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("collector.json", import.meta.url).pathname; +export default generic.bind(null, "collector", BASE, []); diff --git a/src/main/generation/generators/item/compressed_collector.ts b/src/main/generation/generators/item/compressed_collector.ts new file mode 100644 index 00000000..c5ad2296 --- /dev/null +++ b/src/main/generation/generators/item/compressed_collector.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("collector.json", import.meta.url).pathname; +export default generic.bind(null, "compressed_collector", BASE, []); diff --git a/src/main/generation/generators/item/emc_link.json b/src/main/generation/generators/item/emc_link.json new file mode 100644 index 00000000..c76df2c6 --- /dev/null +++ b/src/main/generation/generators/item/emc_link.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/emc_link/$TIER$" +} diff --git a/src/main/generation/generators/item/emc_link.ts b/src/main/generation/generators/item/emc_link.ts new file mode 100644 index 00000000..ceb50983 --- /dev/null +++ b/src/main/generation/generators/item/emc_link.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("emc_link.json", import.meta.url).pathname; +export default generic.bind(null, "emc_link", BASE, []); diff --git a/src/main/generation/generators/item/fuel.json b/src/main/generation/generators/item/fuel.json new file mode 100644 index 00000000..f4f99f21 --- /dev/null +++ b/src/main/generation/generators/item/fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/fuel/$TIER$" + } +} diff --git a/src/main/generation/generators/item/fuel.ts b/src/main/generation/generators/item/fuel.ts new file mode 100644 index 00000000..5cbd3b36 --- /dev/null +++ b/src/main/generation/generators/item/fuel.ts @@ -0,0 +1,5 @@ +import { FUEL_DISABLED } from "../../constants"; +import { generic } from "../../util"; + +const BASE = new URL("fuel.json", import.meta.url).pathname; +export default generic.bind(null, "fuel", BASE, FUEL_DISABLED); diff --git a/src/main/generation/generators/item/fuel_block.json b/src/main/generation/generators/item/fuel_block.json new file mode 100644 index 00000000..41693d7a --- /dev/null +++ b/src/main/generation/generators/item/fuel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/fuel/$TIER$" +} diff --git a/src/main/generation/generators/item/fuel_block.ts b/src/main/generation/generators/item/fuel_block.ts new file mode 100644 index 00000000..e04d37bd --- /dev/null +++ b/src/main/generation/generators/item/fuel_block.ts @@ -0,0 +1,5 @@ +import { FUEL_DISABLED } from "../../constants"; +import { generic } from "../../util"; + +const BASE = new URL("fuel_block.json", import.meta.url).pathname; +export default generic.bind(null, "fuel_block", BASE, FUEL_DISABLED); diff --git a/src/main/generation/generators/item/index.ts b/src/main/generation/generators/item/index.ts new file mode 100644 index 00000000..49e773ef --- /dev/null +++ b/src/main/generation/generators/item/index.ts @@ -0,0 +1,4 @@ +import { assetsDir } from "../../constants"; + +export const format = "Using base \"%s\" with generator \"%s\" to provide item model for \"%s\"."; +export const outDir = new URL("models/item/", assetsDir); diff --git a/src/main/generation/generators/item/matter.json b/src/main/generation/generators/item/matter.json new file mode 100644 index 00000000..883fe74f --- /dev/null +++ b/src/main/generation/generators/item/matter.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter/$TIER$" + } +} diff --git a/src/main/generation/generators/item/matter.ts b/src/main/generation/generators/item/matter.ts new file mode 100644 index 00000000..513a3490 --- /dev/null +++ b/src/main/generation/generators/item/matter.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("matter.json", import.meta.url).pathname; +export default generic.bind(null, "matter", BASE, []); diff --git a/src/main/generation/generators/item/power_flower.json b/src/main/generation/generators/item/power_flower.json new file mode 100644 index 00000000..4d7478e2 --- /dev/null +++ b/src/main/generation/generators/item/power_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/power_flower/$TIER$" +} diff --git a/src/main/generation/generators/item/power_flower.ts b/src/main/generation/generators/item/power_flower.ts new file mode 100644 index 00000000..7807816d --- /dev/null +++ b/src/main/generation/generators/item/power_flower.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("power_flower.json", import.meta.url).pathname; +export default generic.bind(null, "power_flower", BASE, []); diff --git a/src/main/generation/generators/item/relay.json b/src/main/generation/generators/item/relay.json new file mode 100644 index 00000000..1cd89676 --- /dev/null +++ b/src/main/generation/generators/item/relay.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/relay/$TIER$" +} diff --git a/src/main/generation/generators/item/relay.ts b/src/main/generation/generators/item/relay.ts new file mode 100644 index 00000000..c4f4559b --- /dev/null +++ b/src/main/generation/generators/item/relay.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("relay.json", import.meta.url).pathname; +export default generic.bind(null, "relay", BASE, []); diff --git a/src/main/generation/generators/item/single.ts b/src/main/generation/generators/item/single.ts new file mode 100644 index 00000000..84eafdae --- /dev/null +++ b/src/main/generation/generators/item/single.ts @@ -0,0 +1,2 @@ +import { single } from "../../util"; +export default single.bind(null, import.meta.url); diff --git a/src/main/generation/generators/item/single/arcane_table.json b/src/main/generation/generators/item/single/arcane_table.json new file mode 100644 index 00000000..eacb0701 --- /dev/null +++ b/src/main/generation/generators/item/single/arcane_table.json @@ -0,0 +1,84 @@ +{ + "parent": "block/block", + "textures": { + "0": "projectexpansion:block/arcane_table/top", + "1": "projectexpansion:block/arcane_table/bottom", + "2": "projectexpansion:block/arcane_table/side", + "particle": "projectexpansion:block/arcane_table/top" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 4, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "texture": "#2", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "texture": "#2", + "cullface": "east" + }, + "south": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "texture": "#2", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "texture": "#2", + "cullface": "west" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#1", + "cullface": "down" + } + } + } + ] +} diff --git a/src/main/generation/generators/item/single/arcane_tablet.json b/src/main/generation/generators/item/single/arcane_tablet.json new file mode 100644 index 00000000..3b622ed1 --- /dev/null +++ b/src/main/generation/generators/item/single/arcane_tablet.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/arcane_tablet" + } +} diff --git a/src/main/generation/generators/item/single/final_star.json b/src/main/generation/generators/item/single/final_star.json new file mode 100644 index 00000000..bf2a2164 --- /dev/null +++ b/src/main/generation/generators/item/single/final_star.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/final" + } +} diff --git a/src/main/generation/generators/item/single/final_star_shard.json b/src/main/generation/generators/item/single/final_star_shard.json new file mode 100644 index 00000000..9e681f63 --- /dev/null +++ b/src/main/generation/generators/item/single/final_star_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/final_shard" + } +} diff --git a/src/main/generation/generators/item/single/infinite_fuel.json b/src/main/generation/generators/item/single/infinite_fuel.json new file mode 100644 index 00000000..0c7c98d1 --- /dev/null +++ b/src/main/generation/generators/item/single/infinite_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/infinite_fuel" + } +} diff --git a/src/main/generation/generators/item/single/infinite_steak.json b/src/main/generation/generators/item/single/infinite_steak.json new file mode 100644 index 00000000..21b2e775 --- /dev/null +++ b/src/main/generation/generators/item/single/infinite_steak.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/infinite_steak" + } +} diff --git a/src/main/generation/generators/item/single/knowledge_sharing_book.json b/src/main/generation/generators/item/single/knowledge_sharing_book.json new file mode 100644 index 00000000..9e793841 --- /dev/null +++ b/src/main/generation/generators/item/single/knowledge_sharing_book.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/knowledge_sharing_book" + } +} diff --git a/src/main/generation/generators/item/single/matter_upgrader.json b/src/main/generation/generators/item/single/matter_upgrader.json new file mode 100644 index 00000000..3b0b9ef3 --- /dev/null +++ b/src/main/generation/generators/item/single/matter_upgrader.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/matter_upgrader" + } +} diff --git a/src/main/generation/generators/item/single/transmutation_interface.json b/src/main/generation/generators/item/single/transmutation_interface.json new file mode 100644 index 00000000..0241045e --- /dev/null +++ b/src/main/generation/generators/item/single/transmutation_interface.json @@ -0,0 +1,3 @@ +{ + "parent": "projectexpansion:block/transmutation_interface" +} diff --git a/src/main/generation/generators/item/star.json b/src/main/generation/generators/item/star.json new file mode 100644 index 00000000..6698872f --- /dev/null +++ b/src/main/generation/generators/item/star.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "projectexpansion:item/star/$TYPE$/$TIER$" + } +} diff --git a/src/main/generation/generators/item/star.ts b/src/main/generation/generators/item/star.ts new file mode 100644 index 00000000..935e54ef --- /dev/null +++ b/src/main/generation/generators/item/star.ts @@ -0,0 +1,11 @@ +import { STAR_TIERS, STAR_TYPES } from "../../constants"; +import { readFile, writeFile } from "fs/promises"; + +const BASE = new URL("star.json", import.meta.url).pathname; +export default async function run(outDir: URL) { + const base = (await readFile(BASE)).toString(); + return (await Promise.all(STAR_TYPES.map(type => Promise.all(STAR_TIERS.map(async(tier) => { + await writeFile(new URL(`${type}_star_${tier}.json`, outDir), base.replace(/\$TYPE\$/g, type).replace(/\$TIER\$/g, tier)); + return [BASE, new URL(`${type}_star_${tier}.json`, outDir).pathname]; + }))))).reduce((a, b) => a.concat(b), []); +} diff --git a/src/main/generation/generators/lang/en_US.ts b/src/main/generation/generators/lang/en_US.ts new file mode 100644 index 00000000..3df86a84 --- /dev/null +++ b/src/main/generation/generators/lang/en_US.ts @@ -0,0 +1,3 @@ +import { genericLanguage } from "../../util"; + +export default genericLanguage.bind(null, "en_us", new URL("en_US/", import.meta.url).pathname); diff --git a/src/main/generation/generators/lang/en_US/block/collector.json b/src/main/generation/generators/lang/en_US/block/collector.json new file mode 100644 index 00000000..63fda993 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/block/collector.json @@ -0,0 +1,20 @@ +{ + "block.projectexpansion.collector.tooltip": "Generates EMC once per second.", + "block.projectexpansion.collector.emc": "Produced EMC: %s/s", + "block.projectexpansion.basic_collector": "Basic Collector [MK 1]", + "block.projectexpansion.dark_collector": "Dark Collector [MK 2]", + "block.projectexpansion.red_collector": "Red Collector [MK 3]", + "block.projectexpansion.magenta_collector": "Magenta Collector [MK 4]", + "block.projectexpansion.pink_collector": "Pink Collector [MK 5]", + "block.projectexpansion.purple_collector": "Purple Collector [MK 6]", + "block.projectexpansion.violet_collector": "Violet Collector [MK 7]", + "block.projectexpansion.blue_collector": "Blue Collector [MK 8]", + "block.projectexpansion.cyan_collector": "Cyan Collector [MK 9]", + "block.projectexpansion.green_collector": "Green Collector [MK 10]", + "block.projectexpansion.lime_collector": "Lime Collector [MK 11]", + "block.projectexpansion.yellow_collector": "Yellow Collector [MK 12]", + "block.projectexpansion.orange_collector": "Orange Collector [MK 13]", + "block.projectexpansion.white_collector": "White Collector [MK 14]", + "block.projectexpansion.fading_collector": "Fading Collector [MK 15]", + "block.projectexpansion.final_collector": "Final Collector [MK 16]" +} diff --git a/src/main/generation/generators/lang/en_US/block/emc_link.json b/src/main/generation/generators/lang/en_US/block/emc_link.json new file mode 100644 index 00000000..021a56ac --- /dev/null +++ b/src/main/generation/generators/lang/en_US/block/emc_link.json @@ -0,0 +1,30 @@ +{ + "block.projectexpansion.emc_link.tooltip": "Can be used to import emc & items, and export items.", + "block.projectexpansion.emc_link.limit_items": "Item Import/Export Limit: %s/s", + "block.projectexpansion.emc_link.limit_fluids": "Fluid Export Limit: %s mB/s", + "block.projectexpansion.emc_link.limit_emc": "EMC Limit: %s/s", + "block.projectexpansion.emc_link.not_set": "An export item has not been set.", + "block.projectexpansion.emc_link.already_set": "An export item has already been set, clear the current export first.", + "block.projectexpansion.emc_link.empty_hand": "Empty your hand to retrieve items.", + "block.projectexpansion.emc_link.cleared": "Export item has been cleared.", + "block.projectexpansion.emc_link.not_enough_emc": "You do not have enough emc to purchase this, you need %s.", + "block.projectexpansion.emc_link.set": "Export item has been set to %s.", + "block.projectexpansion.emc_link.no_emc_value": "%s does not have an emc value.", + "block.projectexpansion.emc_link.no_export_remaining": "Export limit has been reached, please wait a second.", + "block.projectexpansion.basic_emc_link": "Basic EMC Link [MK 1]", + "block.projectexpansion.dark_emc_link": "Dark EMC Link [MK 2]", + "block.projectexpansion.red_emc_link": "Red EMC Link [MK 3]", + "block.projectexpansion.magenta_emc_link": "Magenta EMC Link [MK 4]", + "block.projectexpansion.pink_emc_link": "Pink EMC Link [MK 5]", + "block.projectexpansion.purple_emc_link": "Purple EMC Link [MK 6]", + "block.projectexpansion.violet_emc_link": "Violet EMC Link [MK 7]", + "block.projectexpansion.blue_emc_link": "Blue EMC Link [MK 8]", + "block.projectexpansion.cyan_emc_link": "Cyan EMC Link [MK 9]", + "block.projectexpansion.green_emc_link": "Green EMC Link [MK 10]", + "block.projectexpansion.lime_emc_link": "Lime EMC Link [MK 11]", + "block.projectexpansion.yellow_emc_link": "Yellow EMC Link [MK 12]", + "block.projectexpansion.orange_emc_link": "Orange EMC Link [MK 13]", + "block.projectexpansion.white_emc_link": "White EMC Link [MK 14]", + "block.projectexpansion.fading_emc_link": "Fading EMC Link [MK 15]", + "block.projectexpansion.final_emc_link": "Final EMC Link [MK 16]" +} diff --git a/src/main/generation/generators/lang/en_US/block/fuel_block.json b/src/main/generation/generators/lang/en_US/block/fuel_block.json new file mode 100644 index 00000000..2a134809 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/block/fuel_block.json @@ -0,0 +1,13 @@ +{ + "block.projectexpansion.magenta_fuel_block": "Magenta Fuel Block", + "block.projectexpansion.pink_fuel_block": "Pink Fuel Block", + "block.projectexpansion.purple_fuel_block": "Purple Fuel Block", + "block.projectexpansion.violet_fuel_block": "Violet Fuel Block", + "block.projectexpansion.blue_fuel_block": "Blue Fuel Block", + "block.projectexpansion.cyan_fuel_block": "Cyan Fuel Block", + "block.projectexpansion.green_fuel_block": "Green Fuel Block", + "block.projectexpansion.lime_fuel_block": "Lime Fuel Block", + "block.projectexpansion.yellow_fuel_block": "Yellow Fuel Block", + "block.projectexpansion.orange_fuel_block": "Orange Fuel Block", + "block.projectexpansion.white_fuel_block": "White Fuel Block" +} diff --git a/src/main/generation/generators/lang/en_US/block/misc.json b/src/main/generation/generators/lang/en_US/block/misc.json new file mode 100644 index 00000000..29f3918e --- /dev/null +++ b/src/main/generation/generators/lang/en_US/block/misc.json @@ -0,0 +1,5 @@ +{ + "block.projectexpansion.arcane_table": "Arcane Table", + "block.projectexpansion.transmutation_interface": "Transmutation Interface", + "block.projectexpansion.transmutation_interface.tooltip": "This can be used with compatible mods like Applied Energistics to access your transmutation inventory." +} diff --git a/src/main/generation/generators/lang/en_US/block/power_flower.json b/src/main/generation/generators/lang/en_US/block/power_flower.json new file mode 100644 index 00000000..27ca00b2 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/block/power_flower.json @@ -0,0 +1,20 @@ +{ + "block.projectexpansion.power_flower.tooltip": "Generates EMC once per %s tick%s. (20/second)", + "block.projectexpansion.power_flower.emc": "Produced EMC: %s/s", + "block.projectexpansion.basic_power_flower": "Basic Power Flower [MK 1]", + "block.projectexpansion.dark_power_flower": "Dark Power Flower [MK 2]", + "block.projectexpansion.red_power_flower": "Red Power Flower [MK 3]", + "block.projectexpansion.magenta_power_flower": "Magenta Power Flower [MK 4]", + "block.projectexpansion.pink_power_flower": "Pink Power Flower [MK 5]", + "block.projectexpansion.purple_power_flower": "Purple Power Flower [MK 6]", + "block.projectexpansion.violet_power_flower": "Violet Power Flower [MK 7]", + "block.projectexpansion.blue_power_flower": "Blue Power Flower [MK 8]", + "block.projectexpansion.cyan_power_flower": "Cyan Power Flower [MK 9]", + "block.projectexpansion.green_power_flower": "Green Power Flower [MK 10]", + "block.projectexpansion.lime_power_flower": "Lime Power Flower [MK 11]", + "block.projectexpansion.yellow_power_flower": "Yellow Power Flower [MK 12]", + "block.projectexpansion.orange_power_flower": "Orange Power Flower [MK 13]", + "block.projectexpansion.white_power_flower": "White Power Flower [MK 14]", + "block.projectexpansion.fading_power_flower": "Fading Power Flower [MK 15]", + "block.projectexpansion.final_power_flower": "Final Power Flower [MK 16]" +} diff --git a/src/main/generation/generators/lang/en_US/block/relay.json b/src/main/generation/generators/lang/en_US/block/relay.json new file mode 100644 index 00000000..7e1d4132 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/block/relay.json @@ -0,0 +1,21 @@ +{ + "block.projectexpansion.relay.tooltip": "Transfers EMC once per second.", + "block.projectexpansion.relay.bonus": "Relay Bonus: %s/s", + "block.projectexpansion.relay.transfer": "Max EMC Transfer: %s/s", + "block.projectexpansion.basic_relay": "Basic Relay [MK 1]", + "block.projectexpansion.dark_relay": "Dark Relay [MK 2]", + "block.projectexpansion.red_relay": "Red Relay [MK 3]", + "block.projectexpansion.magenta_relay": "Magenta Relay [MK 4]", + "block.projectexpansion.pink_relay": "Pink Relay [MK 5]", + "block.projectexpansion.purple_relay": "Purple Relay [MK 6]", + "block.projectexpansion.violet_relay": "Violet Relay [MK 7]", + "block.projectexpansion.blue_relay": "Blue Relay [MK 8]", + "block.projectexpansion.cyan_relay": "Cyan Relay [MK 9]", + "block.projectexpansion.green_relay": "Green Relay [MK 10]", + "block.projectexpansion.lime_relay": "Lime Relay [MK 11]", + "block.projectexpansion.yellow_relay": "Yellow Relay [MK 12]", + "block.projectexpansion.orange_relay": "Orange Relay [MK 13]", + "block.projectexpansion.white_relay": "White Relay [MK 14]", + "block.projectexpansion.fading_relay": "Fading Relay [MK 15]", + "block.projectexpansion.final_relay": "Final Relay [MK 16]" +} diff --git a/src/main/generation/generators/lang/en_US/command/emc.json b/src/main/generation/generators/lang/en_US/command/emc.json new file mode 100644 index 00000000..e49dae05 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/command/emc.json @@ -0,0 +1,19 @@ +{ + "command.projectexpansion.emc.invalid": "The value you provided (\"%s\") is invalid, it must be a positive integer.", + "command.projectexpansion.emc.add.success": "Successfully added %s emc to %s, they now have %s", + "command.projectexpansion.emc.add.successSelf": "Successfully added %s to your emc, you now have %s", + "command.projectexpansion.emc.add.notification": "You were given %s emc by %s, you now have %s", + "command.projectexpansion.emc.remove.success": "Successfully removed %s emc from %s, they now have %s", + "command.projectexpansion.emc.remove.successSelf": "Successfully removed %s fro your emc, you now have %s", + "command.projectexpansion.emc.remove.notification": "%s emc was removed from you by %s, you now have %s", + "command.projectexpansion.emc.remove.negative": "Cannot remove %s emc from %s as this would make their emc negative.", + "command.projectexpansion.emc.set.success": "Successfully set the emc of %s to %s", + "command.projectexpansion.emc.set.successSelf": "Successfully set your emc to %s", + "command.projectexpansion.emc.set.notification": "Your emc was set to %s by %s", + "command.projectexpansion.emc.get.successSelf": "You have %s emc", + "command.projectexpansion.emc.get.success": "%s has %s emc", + "command.projectexpansion.emc.test.success": "%s does have enough emc to remove %s.", + "command.projectexpansion.emc.test.successSelf": "You do have enough emc to remove %s.", + "command.projectexpansion.emc.test.fail": "%s does not have enough emc to remove %s.", + "command.projectexpansion.emc.test.failSelf": "You do not have enough emc to remove %s." +} diff --git a/src/main/generation/generators/lang/en_US/command/knowledge.json b/src/main/generation/generators/lang/en_US/command/knowledge.json new file mode 100644 index 00000000..4865646d --- /dev/null +++ b/src/main/generation/generators/lang/en_US/command/knowledge.json @@ -0,0 +1,22 @@ +{ + "command.projectexpansion.knowledge.invalid": "That item does not have an emc value, and cannot be learned.", + "command.projectexpansion.knowledge.clear.success": "Successfully cleared the knowledge of %s", + "command.projectexpansion.knowledge.clear.successSelf": "Successfully cleared your knowledge", + "command.projectexpansion.knowledge.clear.fail": "%s does not have any knowledge to clear.", + "command.projectexpansion.knowledge.clear.failSelf": "You do not have any knowledge to clear.", + "command.projectexpansion.knowledge.clear.notification": "Your knowledge was cleared by %s", + "command.projectexpansion.knowledge.learn.success": "%s has successfully learned %s.", + "command.projectexpansion.knowledge.learn.successSelf": "You have successfully learned %s.", + "command.projectexpansion.knowledge.learn.fail": "%s already has knowledge of %s.", + "command.projectexpansion.knowledge.learn.failSelf": "You already have knowledge of %s.", + "command.projectexpansion.knowledge.learn.notification": "You gained knowledge of %s from %s.", + "command.projectexpansion.knowledge.unlearn.success": "%s has successfully unlearned %s.", + "command.projectexpansion.knowledge.unlearn.successSelf": "You have successfully unlearned %s.", + "command.projectexpansion.knowledge.unlearn.fail": "%s does not have knowledge of %s.", + "command.projectexpansion.knowledge.unlearn.failSelf": "You do not have knowledge of %s.", + "command.projectexpansion.knowledge.unlearn.notification": "You lost knowledge of %s from %s.", + "command.projectexpansion.knowledge.test.success": "%s does knowledge of %s.", + "command.projectexpansion.knowledge.test.successSelf": "You do have knowledge of %s.", + "command.projectexpansion.knowledge.test.fail": "%s does not have knowledge of %s.", + "command.projectexpansion.knowledge.test.failSelf": "You do not have knowledge of %s." +} diff --git a/src/main/generation/generators/lang/en_US/command/misc.json b/src/main/generation/generators/lang/en_US/command/misc.json new file mode 100644 index 00000000..0cf3787f --- /dev/null +++ b/src/main/generation/generators/lang/en_US/command/misc.json @@ -0,0 +1,3 @@ +{ + "command.projectexpansion.console": "Console" +} \ No newline at end of file diff --git a/src/main/generation/generators/lang/en_US/gui/config.json b/src/main/generation/generators/lang/en_US/gui/config.json new file mode 100644 index 00000000..54b17d3b --- /dev/null +++ b/src/main/generation/generators/lang/en_US/gui/config.json @@ -0,0 +1,39 @@ +{ + "gui.projectexpansion.config.title": "Project Expansion Config", + "gui.projectexpansion.config.tick_delay": "Tick Delay", + "gui.projectexpansion.config.tick_delay.desc": "The delay between mod operations (in ticks, default 20) - this will slightly effect the amount of emc generated via rounding - increase if you're noticing lag", + "gui.projectexpansion.config.format_emc": "Format EMC", + "gui.projectexpansion.config.format_emc.desc": "If EMC should be formatted as M/B/T/etc", + "gui.projectexpansion.config.full_number_names": "Full Number Names", + "gui.projectexpansion.config.full_number_names.desc": "If full number names (Million/Billion/Trillion) should be used instead of abbreviations", + "gui.projectexpansion.config.emc_display": "EMC Display", + "gui.projectexpansion.config.emc_display.desc": "Displays your current emc and gained emc per second in the top left corner.", + "gui.projectexpansion.config.notify_command_changes": "Notify Command Changes", + "gui.projectexpansion.config.notify_command_changes.desc": "Notify users something is changed about them via /emc.", + "gui.projectexpansion.config.limit_emc_link_vendor": "Limit EMC Link Vendor Output", + "gui.projectexpansion.config.limit_emc_link_vendor.desc": "If EMC Link Right-Click functionality should be Limited by Tier or Not.", + "gui.projectexpansion.config.transmutation_interface_item_count": "Transmutation Interface Item Count", + "gui.projectexpansion.config.transmutation_interface_item_count.desc": "The amount of items that the transmutation interface will report to have. You likely want this to be at least 64.", + "gui.projectexpansion.config.use_old_values": "Use Old Values", + "gui.projectexpansion.config.use_old_values.desc": "Use the previous emc generation values (much more unbalanced)", + "gui.projectexpansion.config.collector_multiplier": "Collector Multiplier", + "gui.projectexpansion.config.collector_multiplier.desc": "Multiplies the output of Collectors.", + "gui.projectexpansion.config.emc_link_item_limit_multiplier": "EMC Link Item Limit Multiplier", + "gui.projectexpansion.config.emc_link_item_limit_multiplier.desc": "Multiplies the item limit of EMC Links.", + "gui.projectexpansion.config.emc_link_fluid_limit_multiplier": "EMC Link Fluid Limit Multiplier", + "gui.projectexpansion.config.emc_link_fluid_limit_multiplier.desc": "Multiplies the fluid limit of EMC Links.", + "gui.projectexpansion.config.emc_link_emc_limit_multiplier": "EMC Link EMC Limit Multiplier", + "gui.projectexpansion.config.emc_link_emc_limit_multiplier.desc": "Multiplies the emc limit of EMC Links.", + "gui.projectexpansion.config.powerflower_multiplier": "Power Flower Multiplier", + "gui.projectexpansion.config.powerflower_multiplier.desc": "Multiplies the output of Power Flowers.", + "gui.projectexpansion.config.relay_bonus_multiplier": "Relay Bonus Multiplier", + "gui.projectexpansion.config.relay_bonus_multiplier.desc": "Multiplies the bonus of Relays.", + "gui.projectexpansion.config.relay_transfer_multiplier": "Relay Transfer Multiplier", + "gui.projectexpansion.config.relay_transfer_multiplier.desc": "Multiplies the transfer limit of Relays.", + "gui.projectexpansion.config.infinite_fuel_cost": "Infinite Fuel Cost", + "gui.projectexpansion.config.infinite_fuel_cost.desc": "The cost of using the infinite fuel item.", + "gui.projectexpansion.config.infinite_fuel_burn_time": "Infinite Fuel Burn Time", + "gui.projectexpansion.config.infinite_fuel_burn_time.desc": "The ticks each usage of the infinite fuel item will give.", + "gui.projectexpansion.config.infinite_steak_cost": "Infinite Steak Cost", + "gui.projectexpansion.config.infinite_steak_cost.desc": "The cost of using the infinite steak item." +} diff --git a/src/main/generation/generators/lang/en_US/gui/misc.json b/src/main/generation/generators/lang/en_US/gui/misc.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/src/main/generation/generators/lang/en_US/gui/misc.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/main/generation/generators/lang/en_US/item/compressed_collector.json b/src/main/generation/generators/lang/en_US/item/compressed_collector.json new file mode 100644 index 00000000..7a456e24 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/item/compressed_collector.json @@ -0,0 +1,19 @@ +{ + "item.projectexpansion.compressed_collector.tooltip": "Crafting Ingredient", + "item.projectexpansion.basic_compressed_collector": "Basic Compressed Collector [MK 1]", + "item.projectexpansion.dark_compressed_collector": "Dark Compressed Collector [MK 2]", + "item.projectexpansion.red_compressed_collector": "Red Compressed Collector [MK 3]", + "item.projectexpansion.magenta_compressed_collector": "Magenta Compressed Collector [MK 4]", + "item.projectexpansion.pink_compressed_collector": "Pink Compressed Collector [MK 5]", + "item.projectexpansion.purple_compressed_collector": "Purple Compressed Collector [MK 6]", + "item.projectexpansion.violet_compressed_collector": "Violet Compressed Collector [MK 7]", + "item.projectexpansion.blue_compressed_collector": "Blue Compressed Collector [MK 8]", + "item.projectexpansion.cyan_compressed_collector": "Cyan Compressed Collector [MK 9]", + "item.projectexpansion.green_compressed_collector": "Green Compressed Collector [MK 10]", + "item.projectexpansion.lime_compressed_collector": "Lime Compressed Collector [MK 11]", + "item.projectexpansion.yellow_compressed_collector": "Yellow Compressed Collector [MK 12]", + "item.projectexpansion.orange_compressed_collector": "Orange Compressed Collector [MK 13]", + "item.projectexpansion.white_compressed_collector": "White Compressed Collector [MK 14]", + "item.projectexpansion.fading_compressed_collector": "Fading Compressed Collector [MK 15]", + "item.projectexpansion.final_compressed_collector": "Final Compressed Collector [MK 16]" +} diff --git a/src/main/generation/generators/lang/en_US/item/fuel.json b/src/main/generation/generators/lang/en_US/item/fuel.json new file mode 100644 index 00000000..2d8792cc --- /dev/null +++ b/src/main/generation/generators/lang/en_US/item/fuel.json @@ -0,0 +1,13 @@ +{ + "item.projectexpansion.magenta_fuel": "Magenta Fuel", + "item.projectexpansion.pink_fuel": "Pink Fuel", + "item.projectexpansion.purple_fuel": "Purple Fuel", + "item.projectexpansion.violet_fuel": "Violet Fuel", + "item.projectexpansion.blue_fuel": "Blue Fuel", + "item.projectexpansion.cyan_fuel": "Cyan Fuel", + "item.projectexpansion.green_fuel": "Green Fuel", + "item.projectexpansion.lime_fuel": "Lime Fuel", + "item.projectexpansion.yellow_fuel": "Yellow Fuel", + "item.projectexpansion.orange_fuel": "Orange Fuel", + "item.projectexpansion.white_fuel": "White Fuel" +} diff --git a/src/main/generation/generators/lang/en_US/item/matter.json b/src/main/generation/generators/lang/en_US/item/matter.json new file mode 100644 index 00000000..d44f830c --- /dev/null +++ b/src/main/generation/generators/lang/en_US/item/matter.json @@ -0,0 +1,14 @@ +{ + "item.projectexpansion.magenta_matter": "Magenta Matter", + "item.projectexpansion.pink_matter": "Pink Matter", + "item.projectexpansion.purple_matter": "Purple Matter", + "item.projectexpansion.violet_matter": "Violet Matter", + "item.projectexpansion.blue_matter": "Blue Matter", + "item.projectexpansion.cyan_matter": "Cyan Matter", + "item.projectexpansion.green_matter": "Green Matter", + "item.projectexpansion.lime_matter": "Lime Matter", + "item.projectexpansion.yellow_matter": "Yellow Matter", + "item.projectexpansion.orange_matter": "Orange Matter", + "item.projectexpansion.white_matter": "White Matter", + "item.projectexpansion.fading_matter": "Fading Matter" +} diff --git a/src/main/generation/generators/lang/en_US/item/matter_upgrader.json b/src/main/generation/generators/lang/en_US/item/matter_upgrader.json new file mode 100644 index 00000000..c6728ca6 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/item/matter_upgrader.json @@ -0,0 +1,12 @@ +{ + "item.projectexpansion.matter_upgrader.tooltip": "Upgrades collectors, power flowers, and relays in-place.", + "item.projectexpansion.matter_upgrader.tooltip2": "You must have learned the next tier, and have the difference in emc available to upgrade.", + "item.projectexpansion.matter_upgrader.tooltip_creative": "The above restriction does not apply if you are in creative.", + "item.projectexpansion.matter_upgrader": "Matter Upgrader", + "item.projectexpansion.matter_upgrader.not_owner": "You do not own this.", + "item.projectexpansion.matter_upgrader.max_upgrade": "This block has been maxed out.", + "item.projectexpansion.matter_upgrader.not_learned": "You must learn \"%s\" before upgrading to it.", + "item.projectexpansion.matter_upgrader.not_enough_emc": "You do not have enough emc, you need %s.", + "item.projectexpansion.matter_upgrader.done": "Upgrade done, %s emc has been used.", + "item.projectexpansion.matter_upgrader.done_creative": "Upgrade done, no emc has been used." +} diff --git a/src/main/generation/generators/lang/en_US/item/misc.json b/src/main/generation/generators/lang/en_US/item/misc.json new file mode 100644 index 00000000..acc32fe9 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/item/misc.json @@ -0,0 +1,22 @@ +{ + "item.projectexpansion.arcane_tablet": "Arcane Tablet", + "item.projectexpansion.final_star_shard": "Final Star Shard", + "item.projectexpansion.final_star_shard.tooltip": "Crafting ingredient.", + "item.projectexpansion.final_star": "Final Star", + "item.projectexpansion.final_star.tooltip": "Currently exists only to show off, future usages are planned.", + "item.projectexpansion.infinite_fuel": "Infinite Fuel", + "item.projectexpansion.infinite_fuel.tooltip": "This item will not be consumed, fuel will be provided via your emc.", + "item.projectexpansion.infinite_fuel.not_enough_emc": "You do not have enough emc to use this, you need %s.", + "item.projectexpansion.infinite_steak": "Infinite Steak", + "item.projectexpansion.infinite_steak.tooltip": "Infinite food via your emc.", + "item.projectexpansion.infinite_steak.not_enough_emc": "You do not have enough emc to use this, you need %s.", + "item.projectexpansion.knowledge_sharing_book": "Knowledge Sharing Book", + "item.projectexpansion.knowledge_sharing_book.selected": "Selected Player: %s", + "item.projectexpansion.knowledge_sharing_book.stored": "Knowledge stored.", + "item.projectexpansion.knowledge_sharing_book.self": "You cannot gain your own knowledge.", + "item.projectexpansion.knowledge_sharing_book.learned": "You learned %s.", + "item.projectexpansion.knowledge_sharing_book.learned_over_100": "%s item(s) were learned, but not shown.", + "item.projectexpansion.knowledge_sharing_book.learned_total": "You have learned %s item(s) from %s.", + "item.projectexpansion.knowledge_sharing_book.no_new_knowledge": "You learned nothing new.", + "item.projectexpansion.knowledge_sharing_book.no_owner": "You cannot gain knowledge from an unowned book." +} diff --git a/src/main/generation/generators/lang/en_US/item/star.json b/src/main/generation/generators/lang/en_US/item/star.json new file mode 100644 index 00000000..6beeb4b0 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/item/star.json @@ -0,0 +1,14 @@ +{ + "item.projectexpansion.magnum_star_ein": "Magnum Star Ein", + "item.projectexpansion.magnum_star_zwei": "Magnum Star Zwei", + "item.projectexpansion.magnum_star_drei": "Magnum Star Drei", + "item.projectexpansion.magnum_star_vier": "Magnum Star Vier", + "item.projectexpansion.magnum_star_sphere": "Magnum Star Sphere", + "item.projectexpansion.magnum_star_omega": "Magnum Star Omega", + "item.projectexpansion.colossal_star_ein": "Colossal Star Ein", + "item.projectexpansion.colossal_star_zwei": "Colossal Star Zwei", + "item.projectexpansion.colossal_star_drei": "Colossal Star Drei", + "item.projectexpansion.colossal_star_vier": "Colossal Star Vier", + "item.projectexpansion.colossal_star_sphere": "Colossal Star Sphere", + "item.projectexpansion.colossal_star_omega": "Colossal Star Omega" +} diff --git a/src/main/generation/generators/lang/en_US/misc.json b/src/main/generation/generators/lang/en_US/misc.json new file mode 100644 index 00000000..d1c38682 --- /dev/null +++ b/src/main/generation/generators/lang/en_US/misc.json @@ -0,0 +1,12 @@ +{ + "itemGroup.projectexpansion": "Project Expansion", + "text.projectexpansion.wip": "WIP!", + "text.projectexpansion.provider_error": "Failed to fetch ProjectE provider.", + "text.projectexpansion.see_wiki": "See the wiki on github for more information.", + "text.projectexpansion.cost": "Cost: %s", + "text.projectexpansion.not_owner": "You do not own this, %s does.", + "text.projectexpansion.nbt_filter.disable": "NBT Filter Disabled", + "text.projectexpansion.nbt_filter.enable": "NBT Filter Enabled", + "enchantment.projectexpansion.alchemical_collection": "Alchemical Collection", + "enchantment.projectexpansion.alchemical_collection.desc": "Converts any mined items with an emc value directly into emc." +} diff --git a/src/main/generation/generators/lang/en_US/sounds/misc.json b/src/main/generation/generators/lang/en_US/sounds/misc.json new file mode 100644 index 00000000..472ede2c --- /dev/null +++ b/src/main/generation/generators/lang/en_US/sounds/misc.json @@ -0,0 +1,5 @@ +{ + "sounds.projectexpansion.knowledge_sharing_book.store": "Knowledge Stored", + "sounds.projectexpansion.knowledge_sharing_book.use": "Knowledge Gained", + "sounds.projectexpansion.knowledge_sharing_book.use_none": "No Knowledge Gained" +} \ No newline at end of file diff --git a/src/main/generation/generators/lang/index.ts b/src/main/generation/generators/lang/index.ts new file mode 100644 index 00000000..27bd3c12 --- /dev/null +++ b/src/main/generation/generators/lang/index.ts @@ -0,0 +1,4 @@ +import { assetsDir } from "../../constants"; + +export const format = "Using generator \"%s\" to create language \"%s\"."; +export const outDir = new URL("lang/", assetsDir); diff --git a/src/main/generation/generators/loot_tables/collector.json b/src/main/generation/generators/loot_tables/collector.json new file mode 100644 index 00000000..eb88e151 --- /dev/null +++ b/src/main/generation/generators/loot_tables/collector.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:$TIER$_collector" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/generation/generators/loot_tables/collector.ts b/src/main/generation/generators/loot_tables/collector.ts new file mode 100644 index 00000000..a1ab8a1a --- /dev/null +++ b/src/main/generation/generators/loot_tables/collector.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("collector.json", import.meta.url).pathname; +export default generic.bind(null, "collector", BASE, []); diff --git a/src/main/generation/generators/loot_tables/emc_link.json b/src/main/generation/generators/loot_tables/emc_link.json new file mode 100644 index 00000000..16e07cfb --- /dev/null +++ b/src/main/generation/generators/loot_tables/emc_link.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:$TIER$_emc_link" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/generation/generators/loot_tables/emc_link.ts b/src/main/generation/generators/loot_tables/emc_link.ts new file mode 100644 index 00000000..ceb50983 --- /dev/null +++ b/src/main/generation/generators/loot_tables/emc_link.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("emc_link.json", import.meta.url).pathname; +export default generic.bind(null, "emc_link", BASE, []); diff --git a/src/main/generation/generators/loot_tables/fuel_block.json b/src/main/generation/generators/loot_tables/fuel_block.json new file mode 100644 index 00000000..e9badbb9 --- /dev/null +++ b/src/main/generation/generators/loot_tables/fuel_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:$TIER$_fuel_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/generation/generators/loot_tables/fuel_block.ts b/src/main/generation/generators/loot_tables/fuel_block.ts new file mode 100644 index 00000000..e04d37bd --- /dev/null +++ b/src/main/generation/generators/loot_tables/fuel_block.ts @@ -0,0 +1,5 @@ +import { FUEL_DISABLED } from "../../constants"; +import { generic } from "../../util"; + +const BASE = new URL("fuel_block.json", import.meta.url).pathname; +export default generic.bind(null, "fuel_block", BASE, FUEL_DISABLED); diff --git a/src/main/generation/generators/loot_tables/index.ts b/src/main/generation/generators/loot_tables/index.ts new file mode 100644 index 00000000..0e92439b --- /dev/null +++ b/src/main/generation/generators/loot_tables/index.ts @@ -0,0 +1,4 @@ +import { dataDir } from "../../constants"; + +export const format = "Using base \"%s\" with generator \"%s\" to provide loot table for \"%s\"."; +export const outDir = new URL("loot_tables/blocks/", dataDir); diff --git a/src/main/generation/generators/loot_tables/power_flower.json b/src/main/generation/generators/loot_tables/power_flower.json new file mode 100644 index 00000000..f94353b2 --- /dev/null +++ b/src/main/generation/generators/loot_tables/power_flower.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:$TIER$_power_flower" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/generation/generators/loot_tables/power_flower.ts b/src/main/generation/generators/loot_tables/power_flower.ts new file mode 100644 index 00000000..7807816d --- /dev/null +++ b/src/main/generation/generators/loot_tables/power_flower.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("power_flower.json", import.meta.url).pathname; +export default generic.bind(null, "power_flower", BASE, []); diff --git a/src/main/generation/generators/loot_tables/relay.json b/src/main/generation/generators/loot_tables/relay.json new file mode 100644 index 00000000..3aea010d --- /dev/null +++ b/src/main/generation/generators/loot_tables/relay.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:$TIER$_relay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/generation/generators/loot_tables/relay.ts b/src/main/generation/generators/loot_tables/relay.ts new file mode 100644 index 00000000..c4f4559b --- /dev/null +++ b/src/main/generation/generators/loot_tables/relay.ts @@ -0,0 +1,4 @@ +import { generic } from "../../util"; + +const BASE = new URL("relay.json", import.meta.url).pathname; +export default generic.bind(null, "relay", BASE, []); diff --git a/src/main/generation/generators/loot_tables/single.ts b/src/main/generation/generators/loot_tables/single.ts new file mode 100644 index 00000000..84eafdae --- /dev/null +++ b/src/main/generation/generators/loot_tables/single.ts @@ -0,0 +1,2 @@ +import { single } from "../../util"; +export default single.bind(null, import.meta.url); diff --git a/src/main/generation/generators/loot_tables/single/transmutation_interface.json b/src/main/generation/generators/loot_tables/single/transmutation_interface.json new file mode 100644 index 00000000..d9c407f4 --- /dev/null +++ b/src/main/generation/generators/loot_tables/single/transmutation_interface.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "projectexpansion:transmutation_interface" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/generation/generators/recipes/collector.json b/src/main/generation/generators/recipes/collector.json new file mode 100644 index 00000000..fca39694 --- /dev/null +++ b/src/main/generation/generators/recipes/collector.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/$TIER$", + "ingredients": [ + { + "item": "projectexpansion:$PREV$_collector" + }, + { + "item": "projectexpansion:$TIER$_matter" + } + ], + "result": { + "item": "projectexpansion:$TIER$_collector" + } +} diff --git a/src/main/generation/generators/recipes/collector.ts b/src/main/generation/generators/recipes/collector.ts new file mode 100644 index 00000000..f0224f33 --- /dev/null +++ b/src/main/generation/generators/recipes/collector.ts @@ -0,0 +1,24 @@ +import { exists } from "../../util"; +import { MATTER_TIERS } from "../../constants"; +import { mkdir, readFile, writeFile } from "fs/promises"; + +const BASE = new URL("collector.json", import.meta.url).pathname; +const BASE_COMPRESSED = new URL("compressed_collector.json", import.meta.url).pathname; +export default async function run(outDir: URL) { + if (!await exists(new URL("collector/compressed/", outDir))) await mkdir(new URL("collector/compressed/", outDir), { recursive: true }); + const base = (await readFile(BASE)).toString(); + const baseCompressed = (await readFile(BASE_COMPRESSED)).toString(); + return (await Promise.all(MATTER_TIERS.map(async(tier, index, arr) => { + let res: Array = []; + if (!["basic", "dark", "red", "magenta", "final"].includes(tier)) { + await writeFile(new URL(`collector/${tier}.json`, outDir), base.replace(/\$TIER\$/g, tier).replace(/\$PREV\$/g, arr[index - 1])); + res = [BASE, new URL(`collector/${tier}.json`, outDir).pathname]; + } + + await writeFile(new URL(`collector/compressed/${tier}.json`, outDir), baseCompressed.replace(/\$TIER\$/g, tier).replace(/\$PREV\$/g, arr[index - 1])); + return [ + res, + [BASE_COMPRESSED, new URL(`collector/compressed/${tier}.json`, outDir).pathname] + ]; + }))).reduce((a, b) => a.concat(b), []); +} diff --git a/src/main/generation/generators/recipes/compressed_collector.json b/src/main/generation/generators/recipes/compressed_collector.json new file mode 100644 index 00000000..38674d83 --- /dev/null +++ b/src/main/generation/generators/recipes/compressed_collector.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER$", + "pattern": [ + "CCC", + "CCC", + "CCC" + ], + "key": { + "C": { + "item": "projectexpansion:$TIER$_collector" + } + }, + "result": { + "item": "projectexpansion:$TIER$_compressed_collector" + } +} diff --git a/src/main/generation/generators/recipes/emc_link.json b/src/main/generation/generators/recipes/emc_link.json new file mode 100644 index 00000000..3685316f --- /dev/null +++ b/src/main/generation/generators/recipes/emc_link.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER$", + "pattern": [ + "LMH", + "TCT", + "HML" + ], + "key": { + "L": { + "item": "projecte:low_covalence_dust" + }, + "M": { + "item": "projecte:medium_covalence_dust" + }, + "H": { + "item": "projecte:high_covalence_dust" + }, + "T": { + "item": "$TARGET$" + }, + "C": { + "item": "$CORE$" + } + }, + "result": { + "item": "projectexpansion:$TIER$_emc_link" + } +} diff --git a/src/main/generation/generators/recipes/emc_link.ts b/src/main/generation/generators/recipes/emc_link.ts new file mode 100644 index 00000000..366d5aaf --- /dev/null +++ b/src/main/generation/generators/recipes/emc_link.ts @@ -0,0 +1,36 @@ +import { exists } from "../../util"; +import { MATTER_TIERS } from "../../constants"; +import { mkdir, readFile, writeFile } from "fs/promises"; + +const BASE = new URL("emc_link.json", import.meta.url).pathname; +export default async function run(outDir: URL) { + if (!await exists(new URL("emc_link/", outDir))) await mkdir(new URL("emc_link/", outDir), { recursive: true }); + const base = (await readFile(BASE)).toString(); + return MATTER_TIERS.map(async(tier, index, arr) => { + await writeFile(new URL(`emc_link/${tier}.json`, outDir), base.replace(/\$TARGET\$/g, getMatter(tier)).replace(/\$CORE\$/g, getCore(tier)).replace(/\$TIER\$/g, tier).replace(/\$PREV\$/g, arr[index - 1])); + return [BASE, new URL(`emc_link/${tier}.json`, outDir).pathname]; + }).filter(Boolean); +} + +function getCore(tier: string) { + switch (tier) { + case MATTER_TIERS[0]: + return "projecte:condenser_mk1"; + default: + return "projectexpansion:$PREV$_emc_link"; + } +} + +function getMatter(tier: string) { + switch (tier) { + case MATTER_TIERS[0]: + return "projecte:transmutation_tablet"; + case MATTER_TIERS[1]: + case MATTER_TIERS[2]: + return "projecte:$TIER$_matter"; + case MATTER_TIERS[15]: + return "projectexpansion:final_star_shard"; + default: + return "projectexpansion:$TIER$_matter"; + } +} diff --git a/src/main/generation/generators/recipes/fuel.json b/src/main/generation/generators/recipes/fuel.json new file mode 100644 index 00000000..e94d53b7 --- /dev/null +++ b/src/main/generation/generators/recipes/fuel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/$TIER$", + "ingredients": [ + { + "item": "projectexpansion:$PREV$_fuel" + }, + { + "item": "projectexpansion:$PREV$_fuel" + }, + { + "item": "projectexpansion:$PREV$_fuel" + }, + { + "item": "projectexpansion:$PREV$_fuel" + } + ], + "result": { + "item": "projectexpansion:$TIER$_fuel" + } +} diff --git a/src/main/generation/generators/recipes/fuel.ts b/src/main/generation/generators/recipes/fuel.ts new file mode 100644 index 00000000..b911ac8c --- /dev/null +++ b/src/main/generation/generators/recipes/fuel.ts @@ -0,0 +1,28 @@ +import { FUEL_DISABLED, MATTER_TIERS } from "../../constants"; +import { exists } from "../../util"; +import { mkdir, readFile, writeFile } from "fs/promises"; + +const BASE = new URL("fuel.json", import.meta.url).pathname; +const BASE_BLOCK = new URL("fuel_block.json", import.meta.url).pathname; +const BASE_BLOCK_REVERSE = new URL("fuel_block_reverse.json", import.meta.url).pathname; +export default async function run(outDir: URL) { + if (!await exists(new URL("fuel/item/", outDir))) await mkdir(new URL("fuel/item/", outDir), { recursive: true }); + if (!await exists(new URL("fuel/block/", outDir))) await mkdir(new URL("fuel/block/", outDir), { recursive: true }); + const base = (await readFile(BASE)).toString(); + const baseBlock = (await readFile(BASE_BLOCK)).toString(); + const baseBlockReverse = (await readFile(BASE_BLOCK_REVERSE)).toString(); + return (await Promise.all(MATTER_TIERS.filter(tier => !FUEL_DISABLED.includes(tier)).map(async(tier, index, arr) => { + let res: Array = []; + if (tier !== "magenta") { + await writeFile(new URL(`fuel/item/${tier}.json`, outDir), base.replace(/\$TIER\$/g, tier).replace(/\$PREV\$/g, arr[index - 1] || "magenta")); + res = [BASE, new URL(`fuel/item/${tier}.json`, outDir).pathname]; + } + await writeFile(new URL(`fuel/block/${tier}.json`, outDir), baseBlock.replace(/\$TIER\$/g, tier)); + await writeFile(new URL(`fuel/block/${tier}_reverse.json`, outDir), baseBlockReverse.replace(/\$TIER\$/g, tier)); + return [ + res, + [BASE_BLOCK, new URL(`fuel/block/${tier}.json`, outDir).pathname], + [BASE_BLOCK_REVERSE, new URL(`fuel/block/${tier}_reverse.json`, outDir).pathname] + ]; + }))).reduce((a, b) => a.concat(b), []); +} diff --git a/src/main/generation/generators/recipes/fuel_block.json b/src/main/generation/generators/recipes/fuel_block.json new file mode 100644 index 00000000..07b4d50f --- /dev/null +++ b/src/main/generation/generators/recipes/fuel_block.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/$TIER$", + "ingredients": [ + { + "item": "projectexpansion:$TIER$_fuel" + }, + { + "item": "projectexpansion:$TIER$_fuel" + }, + { + "item": "projectexpansion:$TIER$_fuel" + }, + { + "item": "projectexpansion:$TIER$_fuel" + }, + { + "item": "projectexpansion:$TIER$_fuel" + }, + { + "item": "projectexpansion:$TIER$_fuel" + }, + { + "item": "projectexpansion:$TIER$_fuel" + }, + { + "item": "projectexpansion:$TIER$_fuel" + }, + { + "item": "projectexpansion:$TIER$_fuel" + } + ], + "result": { + "item": "projectexpansion:$TIER$_fuel_block" + } +} diff --git a/src/main/generation/generators/recipes/fuel_block_reverse.json b/src/main/generation/generators/recipes/fuel_block_reverse.json new file mode 100644 index 00000000..6ebe4cce --- /dev/null +++ b/src/main/generation/generators/recipes/fuel_block_reverse.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/$TIER$", + "ingredients": [ + { + "item": "projectexpansion:$TIER$_fuel_block" + } + ], + "result": { + "item": "projectexpansion:$TIER$_fuel", + "count": 9 + } +} diff --git a/src/main/generation/generators/recipes/index.ts b/src/main/generation/generators/recipes/index.ts new file mode 100644 index 00000000..5599cff2 --- /dev/null +++ b/src/main/generation/generators/recipes/index.ts @@ -0,0 +1,4 @@ +import { dataDir } from "../../constants"; + +export const format = "Using base \"%s\" with generator \"%s\" to provide the recipe \"%s\"."; +export const outDir = new URL("recipes/", dataDir); diff --git a/src/main/generation/generators/recipes/matter.json b/src/main/generation/generators/recipes/matter.json new file mode 100644 index 00000000..2e4e7ed5 --- /dev/null +++ b/src/main/generation/generators/recipes/matter.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER$", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projectexpansion:$PREV$_fuel" + }, + "M": { + "item": "projectexpansion:$PREV$_matter" + } + }, + "result": { + "item": "projectexpansion:$TIER$_matter" + } +} diff --git a/src/main/generation/generators/recipes/matter.ts b/src/main/generation/generators/recipes/matter.ts new file mode 100644 index 00000000..6e39de0a --- /dev/null +++ b/src/main/generation/generators/recipes/matter.ts @@ -0,0 +1,19 @@ +import { exists } from "../../util"; +import { MATTER_TIERS } from "../../constants"; +import { mkdir, readFile, writeFile } from "fs/promises"; + +const BASE = new URL("matter.json", import.meta.url).pathname; +const BASE_ALT = new URL("matter_alt.json", import.meta.url).pathname; +export default async function run(outDir: URL) { + if (!await exists(new URL("matter/", outDir))) await mkdir(new URL("matter/", outDir), { recursive: true }); + const base = (await readFile(BASE)).toString(); + const baseAlt = (await readFile(BASE_ALT)).toString(); + return (await Promise.all(MATTER_TIERS.filter(tier => !["basic", "dark", "red", "magenta", "final"].includes(tier)).map(async(tier, index, arr) => { + await writeFile(new URL(`matter/${tier}.json`, outDir), base.replace(/\$TIER\$/g, tier).replace(/\$PREV\$/g, arr[index - 1] || MATTER_TIERS[3])); + await writeFile(new URL(`matter/${tier}_alt.json`, outDir), baseAlt.replace(/\$TIER\$/g, tier).replace(/\$PREV\$/g, arr[index - 1] || MATTER_TIERS[3])); + return [ + [BASE, new URL(`matter/${tier}.json`, outDir).pathname], + [BASE_ALT, new URL(`matter/${tier}_alt.json`, outDir).pathname] + ]; + }))).reduce((a, b) => a.concat(b), []); +} diff --git a/src/main/generation/generators/recipes/matter_alt.json b/src/main/generation/generators/recipes/matter_alt.json new file mode 100644 index 00000000..ce79b03c --- /dev/null +++ b/src/main/generation/generators/recipes/matter_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projectexpansion:$PREV$_fuel" + }, + "M": { + "item": "projectexpansion:$PREV$_matter" + } + }, + "result": { + "item": "projectexpansion:$TIER$_matter" + } +} diff --git a/src/main/generation/generators/recipes/power_flower.json b/src/main/generation/generators/recipes/power_flower.json new file mode 100644 index 00000000..b45d7474 --- /dev/null +++ b/src/main/generation/generators/recipes/power_flower.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/$TIER$", + "pattern": [ + "CLC", + "RRR", + "RRR" + ], + "key": { + "L": { + "item": "projectexpansion:$TIER$_emc_link" + }, + "C": { + "item": "projectexpansion:$TIER$_compressed_collector" + }, + "R": { + "item": "projectexpansion:$TIER$_relay" + } + }, + "result": { + "item": "projectexpansion:$TIER$_power_flower" + } +} diff --git a/src/main/generation/generators/recipes/power_flower.ts b/src/main/generation/generators/recipes/power_flower.ts new file mode 100644 index 00000000..2a86166b --- /dev/null +++ b/src/main/generation/generators/recipes/power_flower.ts @@ -0,0 +1,13 @@ +import { exists } from "../../util"; +import { MATTER_TIERS } from "../../constants"; +import { mkdir, readFile, writeFile } from "fs/promises"; + +const BASE = new URL("power_flower.json", import.meta.url).pathname; +export default async function run(outDir: URL) { + if (!await exists(new URL("power_flower/", outDir))) await mkdir(new URL("power_flower/", outDir), { recursive: true }); + const base = (await readFile(BASE)).toString(); + return Promise.all(MATTER_TIERS.map(async(tier) => { + await writeFile(new URL(`power_flower/${tier}.json`, outDir), base.replace(/\$TIER\$/g, tier)); + return [BASE, new URL(`power_flower/${tier}.json`, outDir).pathname]; + })); +} diff --git a/src/main/generation/generators/recipes/relay.json b/src/main/generation/generators/recipes/relay.json new file mode 100644 index 00000000..c5fc33d2 --- /dev/null +++ b/src/main/generation/generators/recipes/relay.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/$TIER$", + "ingredients": [ + { + "item": "projectexpansion:$PREV$_relay" + }, + { + "item": "projectexpansion:$TIER$_matter" + } + ], + "result": { + "item": "projectexpansion:$TIER$_relay" + } +} diff --git a/src/main/generation/generators/recipes/relay.ts b/src/main/generation/generators/recipes/relay.ts new file mode 100644 index 00000000..fcea7525 --- /dev/null +++ b/src/main/generation/generators/recipes/relay.ts @@ -0,0 +1,14 @@ +import { exists } from "../../util"; +import { MATTER_TIERS } from "../../constants"; +import { mkdir, readFile, writeFile } from "fs/promises"; + +const BASE = new URL("relay.json", import.meta.url).pathname; +export default async function run(outDir: URL) { + if (!await exists(new URL("relay/", outDir))) await mkdir(new URL("relay/", outDir), { recursive: true }); + const base = (await readFile(BASE)).toString(); + return (await Promise.all(MATTER_TIERS.filter(tier => !["basic", "dark", "red", "final"].includes(tier)).map(async(tier, index, arr) => { + if (tier === "magenta") return; // we still need it for pink + await writeFile(new URL(`relay/${tier}.json`, outDir), base.replace(/\$TIER\$/g, tier).replace(/\$PREV\$/g, arr[index - 1])); + return [BASE, new URL(`relay/${tier}.json`, outDir).pathname]; + }))).filter(Boolean); +} diff --git a/src/main/generation/generators/recipes/single.ts b/src/main/generation/generators/recipes/single.ts new file mode 100644 index 00000000..84eafdae --- /dev/null +++ b/src/main/generation/generators/recipes/single.ts @@ -0,0 +1,2 @@ +import { single } from "../../util"; +export default single.bind(null, import.meta.url); diff --git a/src/main/generation/generators/recipes/single/collector/basic.json b/src/main/generation/generators/recipes/single/collector/basic.json new file mode 100644 index 00000000..2050faaa --- /dev/null +++ b/src/main/generation/generators/recipes/single/collector/basic.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/basic", + "result": { + "item": "projectexpansion:basic_collector" + }, + "pattern": [ + "GSG", + "GAG", + "GFG" + ], + "key": { + "G": { + "item": "minecraft:glowstone" + }, + "A": { + "item": "projecte:aeternalis_fuel_block" + }, + "S": { + "tag": "forge:glass" + }, + "F": { + "item": "minecraft:furnace" + } + } +} diff --git a/src/main/generation/generators/recipes/single/collector/dark.json b/src/main/generation/generators/recipes/single/collector/dark.json new file mode 100644 index 00000000..e6185cec --- /dev/null +++ b/src/main/generation/generators/recipes/single/collector/dark.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/dark", + "ingredients": [ + { + "item": "projectexpansion:basic_collector" + }, + { + "item": "projecte:dark_matter" + } + ], + "result": { + "item": "projectexpansion:dark_collector" + } +} diff --git a/src/main/generation/generators/recipes/single/collector/final.json b/src/main/generation/generators/recipes/single/collector/final.json new file mode 100644 index 00000000..7f50d80b --- /dev/null +++ b/src/main/generation/generators/recipes/single/collector/final.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/final", + "ingredients": [ + { + "item": "projectexpansion:fading_collector" + }, + { + "item": "projectexpansion:final_star_shard" + } + ], + "result": { + "item": "projectexpansion:final_collector" + } +} diff --git a/src/main/generation/generators/recipes/single/collector/magenta.json b/src/main/generation/generators/recipes/single/collector/magenta.json new file mode 100644 index 00000000..11a009b3 --- /dev/null +++ b/src/main/generation/generators/recipes/single/collector/magenta.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/magenta", + "ingredients": [ + { + "item": "projectexpansion:red_collector" + }, + { + "item": "projectexpansion:magenta_matter" + } + ], + "result": { + "item": "projectexpansion:magenta_collector" + } +} diff --git a/src/main/generation/generators/recipes/single/collector/mk1_conversion.json b/src/main/generation/generators/recipes/single/collector/mk1_conversion.json new file mode 100644 index 00000000..1ca4afd3 --- /dev/null +++ b/src/main/generation/generators/recipes/single/collector/mk1_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/basic", + "result": { + "item": "projectexpansion:basic_collector" + }, + "ingredients": [ + { + "item": "projecte:collector_mk1" + } + ] +} diff --git a/src/main/generation/generators/recipes/single/collector/mk2_conversion.json b/src/main/generation/generators/recipes/single/collector/mk2_conversion.json new file mode 100644 index 00000000..824c7630 --- /dev/null +++ b/src/main/generation/generators/recipes/single/collector/mk2_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/dark", + "result": { + "item": "projectexpansion:dark_collector" + }, + "ingredients": [ + { + "item": "projecte:collector_mk2" + } + ] +} diff --git a/src/main/generation/generators/recipes/single/collector/mk3_conversion.json b/src/main/generation/generators/recipes/single/collector/mk3_conversion.json new file mode 100644 index 00000000..70cd4395 --- /dev/null +++ b/src/main/generation/generators/recipes/single/collector/mk3_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/red", + "result": { + "item": "projectexpansion:red_collector" + }, + "ingredients": [ + { + "item": "projecte:collector_mk3" + } + ] +} diff --git a/src/main/generation/generators/recipes/single/collector/red.json b/src/main/generation/generators/recipes/single/collector/red.json new file mode 100644 index 00000000..b3c61c93 --- /dev/null +++ b/src/main/generation/generators/recipes/single/collector/red.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/red", + "ingredients": [ + { + "item": "projectexpansion:dark_collector" + }, + { + "item": "projecte:red_matter" + } + ], + "result": { + "item": "projectexpansion:red_collector" + } +} diff --git a/src/main/generation/generators/recipes/single/fuel/item/magenta.json b/src/main/generation/generators/recipes/single/fuel/item/magenta.json new file mode 100644 index 00000000..1cc854f7 --- /dev/null +++ b/src/main/generation/generators/recipes/single/fuel/item/magenta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:fuel/magenta", + "ingredients": [ + { + "item": "projecte:aeternalis_fuel" + }, + { + "item": "projecte:aeternalis_fuel" + }, + { + "item": "projecte:aeternalis_fuel" + }, + { + "item": "projecte:aeternalis_fuel" + } + ], + "result": { + "item": "projectexpansion:magenta_fuel" + } +} diff --git a/src/main/generation/generators/recipes/single/infinite_fuel.json b/src/main/generation/generators/recipes/single/infinite_fuel.json new file mode 100644 index 00000000..76abf76d --- /dev/null +++ b/src/main/generation/generators/recipes/single/infinite_fuel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "CCC", + "CTC", + "CCC" + ], + "key": { + "C": { + "item": "minecraft:coal" + }, + "T": { + "item": "projecte:transmutation_tablet" + } + }, + "result": { + "item": "projectexpansion:infinite_fuel" + } +} diff --git a/src/main/generation/generators/recipes/single/infinite_steak.json b/src/main/generation/generators/recipes/single/infinite_steak.json new file mode 100644 index 00000000..5ab8565a --- /dev/null +++ b/src/main/generation/generators/recipes/single/infinite_steak.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "SSS", + "STS", + "SSS" + ], + "key": { + "S": { + "item": "minecraft:cooked_beef" + }, + "T": { + "item": "projecte:transmutation_tablet" + } + }, + "result": { + "item": "projectexpansion:infinite_steak" + } +} diff --git a/src/main/generation/generators/recipes/single/knowledge_sharing_book.json b/src/main/generation/generators/recipes/single/knowledge_sharing_book.json new file mode 100644 index 00000000..f64ca1a6 --- /dev/null +++ b/src/main/generation/generators/recipes/single/knowledge_sharing_book.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "VNV", + "VBV", + "VNV" + ], + "key": { + "V": { + "item": "projectexpansion:violet_matter" + }, + "N": { + "item": "minecraft:nether_star" + }, + "B": { + "item": "minecraft:book" + } + }, + "result": { + "item": "projectexpansion:knowledge_sharing_book" + } +} diff --git a/src/main/generation/generators/recipes/single/matter/magenta.json b/src/main/generation/generators/recipes/single/matter/magenta.json new file mode 100644 index 00000000..b20b2214 --- /dev/null +++ b/src/main/generation/generators/recipes/single/matter/magenta.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/magenta", + "pattern": [ + "FMF", + "FMF", + "FMF" + ], + "key": { + "F": { + "item": "projecte:aeternalis_fuel" + }, + "M": { + "item": "projecte:red_matter" + } + }, + "result": { + "item": "projectexpansion:magenta_matter" + } +} diff --git a/src/main/generation/generators/recipes/single/matter/magenta_alt.json b/src/main/generation/generators/recipes/single/matter/magenta_alt.json new file mode 100644 index 00000000..780e3d6e --- /dev/null +++ b/src/main/generation/generators/recipes/single/matter/magenta_alt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/magenta", + "pattern": [ + "FFF", + "MMM", + "FFF" + ], + "key": { + "F": { + "item": "projecte:aeternalis_fuel" + }, + "M": { + "item": "projecte:red_matter" + } + }, + "result": { + "item": "projectexpansion:magenta_matter" + } +} diff --git a/src/main/generation/generators/recipes/single/matter_upgrader_1.json b/src/main/generation/generators/recipes/single/matter_upgrader_1.json new file mode 100644 index 00000000..06e6bc1e --- /dev/null +++ b/src/main/generation/generators/recipes/single/matter_upgrader_1.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "LCL", + "PMR", + "LDL" + ], + "key": { + "L": { + "item": "projectexpansion:basic_emc_link" + }, + "C": { + "item": "projectexpansion:basic_collector" + }, + "P": { + "item": "projectexpansion:basic_power_flower" + }, + "M": { + "item": "minecraft:lime_dye" + }, + "R": { + "item": "projectexpansion:basic_relay" + }, + "D": { + "item": "projecte:dark_matter" + } + }, + "result": { + "item": "projectexpansion:matter_upgrader" + } +} diff --git a/src/main/generation/generators/recipes/single/matter_upgrader_2.json b/src/main/generation/generators/recipes/single/matter_upgrader_2.json new file mode 100644 index 00000000..77f025cb --- /dev/null +++ b/src/main/generation/generators/recipes/single/matter_upgrader_2.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "LCL", + "PMR", + "LDL" + ], + "key": { + "L": { + "item": "projectexpansion:basic_emc_link" + }, + "C": { + "item": "projectexpansion:basic_collector" + }, + "P": { + "item": "projectexpansion:basic_power_flower" + }, + "M": { + "item": "minecraft:lime_dye" + }, + "R": { + "item": "projecte:relay_mk1" + }, + "D": { + "item": "projecte:dark_matter" + } + }, + "result": { + "item": "projectexpansion:matter_upgrader" + } +} diff --git a/src/main/generation/generators/recipes/single/relay/basic.json b/src/main/generation/generators/recipes/single/relay/basic.json new file mode 100644 index 00000000..e7a48857 --- /dev/null +++ b/src/main/generation/generators/recipes/single/relay/basic.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:matter/basic", + "result": { + "item": "projectexpansion:basic_relay" + }, + "pattern": [ + "OSO", + "OAO", + "OOO" + ], + "key": { + "O": { + "tag": "forge:obsidian" + }, + "A": { + "item": "projecte:aeternalis_fuel_block" + }, + "S": { + "tag": "forge:glass" + } + } +} diff --git a/src/main/generation/generators/recipes/single/relay/dark.json b/src/main/generation/generators/recipes/single/relay/dark.json new file mode 100644 index 00000000..6156fa8f --- /dev/null +++ b/src/main/generation/generators/recipes/single/relay/dark.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/dark", + "ingredients": [ + { + "item": "projectexpansion:basic_relay" + }, + { + "item": "projecte:dark_matter" + } + ], + "result": { + "item": "projectexpansion:dark_relay" + } +} diff --git a/src/main/generation/generators/recipes/single/relay/final.json b/src/main/generation/generators/recipes/single/relay/final.json new file mode 100644 index 00000000..6deab871 --- /dev/null +++ b/src/main/generation/generators/recipes/single/relay/final.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/final", + "ingredients": [ + { + "item": "projectexpansion:fading_relay" + }, + { + "item": "projectexpansion:final_star_shard" + } + ], + "result": { + "item": "projectexpansion:final_relay" + } +} diff --git a/src/main/generation/generators/recipes/single/relay/magenta.json b/src/main/generation/generators/recipes/single/relay/magenta.json new file mode 100644 index 00000000..1200d3eb --- /dev/null +++ b/src/main/generation/generators/recipes/single/relay/magenta.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/magenta", + "ingredients": [ + { + "item": "projectexpansion:red_relay" + }, + { + "item": "projectexpansion:magenta_matter" + } + ], + "result": { + "item": "projectexpansion:magenta_relay" + } +} diff --git a/src/main/generation/generators/recipes/single/relay/mk1_conversion.json b/src/main/generation/generators/recipes/single/relay/mk1_conversion.json new file mode 100644 index 00000000..5117c580 --- /dev/null +++ b/src/main/generation/generators/recipes/single/relay/mk1_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/basic", + "result": { + "item": "projectexpansion:basic_relay" + }, + "ingredients": [ + { + "item": "projecte:relay_mk1" + } + ] +} diff --git a/src/main/generation/generators/recipes/single/relay/mk2_conversion.json b/src/main/generation/generators/recipes/single/relay/mk2_conversion.json new file mode 100644 index 00000000..5f349cf9 --- /dev/null +++ b/src/main/generation/generators/recipes/single/relay/mk2_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/dark", + "result": { + "item": "projectexpansion:dark_relay" + }, + "ingredients": [ + { + "item": "projecte:relay_mk2" + } + ] +} diff --git a/src/main/generation/generators/recipes/single/relay/mk3_conversion.json b/src/main/generation/generators/recipes/single/relay/mk3_conversion.json new file mode 100644 index 00000000..fdbf02d3 --- /dev/null +++ b/src/main/generation/generators/recipes/single/relay/mk3_conversion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/red", + "result": { + "item": "projectexpansion:red_relay" + }, + "ingredients": [ + { + "item": "projecte:relay_mk3" + } + ] +} diff --git a/src/main/generation/generators/recipes/single/relay/red.json b/src/main/generation/generators/recipes/single/relay/red.json new file mode 100644 index 00000000..096ac22e --- /dev/null +++ b/src/main/generation/generators/recipes/single/relay/red.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:matter/red", + "ingredients": [ + { + "item": "projectexpansion:dark_relay" + }, + { + "item": "projecte:red_matter" + } + ], + "result": { + "item": "projectexpansion:red_relay" + } +} diff --git a/src/main/generation/generators/recipes/single/star/colossal/drei.json b/src/main/generation/generators/recipes/single/star/colossal/drei.json new file mode 100644 index 00000000..27299ad4 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/colossal/drei.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_zwei" + }, + { + "item": "projectexpansion:colossal_star_zwei" + }, + { + "item": "projectexpansion:colossal_star_zwei" + }, + { + "item": "projectexpansion:colossal_star_zwei" + } + ], + "result": { + "item": "projectexpansion:colossal_star_drei" + } +} diff --git a/src/main/generation/generators/recipes/single/star/colossal/ein.json b/src/main/generation/generators/recipes/single/star/colossal/ein.json new file mode 100644 index 00000000..b3830747 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/colossal/ein.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_omega" + }, + { + "item": "projectexpansion:magnum_star_omega" + }, + { + "item": "projectexpansion:magnum_star_omega" + }, + { + "item": "projectexpansion:magnum_star_omega" + } + ], + "result": { + "item": "projectexpansion:colossal_star_ein" + } +} diff --git a/src/main/generation/generators/recipes/single/star/colossal/omega.json b/src/main/generation/generators/recipes/single/star/colossal/omega.json new file mode 100644 index 00000000..5815606c --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/colossal/omega.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_sphere" + }, + { + "item": "projectexpansion:colossal_star_sphere" + }, + { + "item": "projectexpansion:colossal_star_sphere" + }, + { + "item": "projectexpansion:colossal_star_sphere" + } + ], + "result": { + "item": "projectexpansion:colossal_star_omega" + } +} diff --git a/src/main/generation/generators/recipes/single/star/colossal/sphere.json b/src/main/generation/generators/recipes/single/star/colossal/sphere.json new file mode 100644 index 00000000..265bc013 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/colossal/sphere.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_vier" + }, + { + "item": "projectexpansion:colossal_star_vier" + }, + { + "item": "projectexpansion:colossal_star_vier" + }, + { + "item": "projectexpansion:colossal_star_vier" + } + ], + "result": { + "item": "projectexpansion:colossal_star_sphere" + } +} diff --git a/src/main/generation/generators/recipes/single/star/colossal/vier.json b/src/main/generation/generators/recipes/single/star/colossal/vier.json new file mode 100644 index 00000000..9f38fb42 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/colossal/vier.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_drei" + }, + { + "item": "projectexpansion:colossal_star_drei" + }, + { + "item": "projectexpansion:colossal_star_drei" + }, + { + "item": "projectexpansion:colossal_star_drei" + } + ], + "result": { + "item": "projectexpansion:colossal_star_vier" + } +} diff --git a/src/main/generation/generators/recipes/single/star/colossal/zwei.json b/src/main/generation/generators/recipes/single/star/colossal/zwei.json new file mode 100644 index 00000000..a51f1ac6 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/colossal/zwei.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:colossal_star_ein" + }, + { + "item": "projectexpansion:colossal_star_ein" + }, + { + "item": "projectexpansion:colossal_star_ein" + }, + { + "item": "projectexpansion:colossal_star_ein" + } + ], + "result": { + "item": "projectexpansion:colossal_star_zwei" + } +} diff --git a/src/main/generation/generators/recipes/single/star/final_star.json b/src/main/generation/generators/recipes/single/star/final_star.json new file mode 100644 index 00000000..206fdeed --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/final_star.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:star", + "result": { + "item": "projectexpansion:final_star" + }, + "pattern": [ + "SSS", + "SES", + "SSS" + ], + "key": { + "S": { + "item": "projectexpansion:final_power_flower" + }, + "E": { + "item": "minecraft:dragon_egg" + } + } +} diff --git a/src/main/generation/generators/recipes/single/star/final_star_shard.json b/src/main/generation/generators/recipes/single/star/final_star_shard.json new file mode 100644 index 00000000..0d9b4465 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/final_star_shard.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "projectexpansion:star", + "result": { + "item": "projectexpansion:final_star_shard" + }, + "pattern": [ + "SSS", + "SNS", + "SSS" + ], + "key": { + "S": { + "item": "projectexpansion:colossal_star_omega" + }, + "N": { + "item": "minecraft:nether_star" + } + } +} diff --git a/src/main/generation/generators/recipes/single/star/magnum/drei.json b/src/main/generation/generators/recipes/single/star/magnum/drei.json new file mode 100644 index 00000000..91e44aa0 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/magnum/drei.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_zwei" + }, + { + "item": "projectexpansion:magnum_star_zwei" + }, + { + "item": "projectexpansion:magnum_star_zwei" + }, + { + "item": "projectexpansion:magnum_star_zwei" + } + ], + "result": { + "item": "projectexpansion:magnum_star_drei" + } +} diff --git a/src/main/generation/generators/recipes/single/star/magnum/ein.json b/src/main/generation/generators/recipes/single/star/magnum/ein.json new file mode 100644 index 00000000..547717dc --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/magnum/ein.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projecte:klein_star_omega" + }, + { + "item": "projecte:klein_star_omega" + }, + { + "item": "projecte:klein_star_omega" + }, + { + "item": "projecte:klein_star_omega" + } + ], + "result": { + "item": "projectexpansion:magnum_star_ein" + } +} diff --git a/src/main/generation/generators/recipes/single/star/magnum/omega.json b/src/main/generation/generators/recipes/single/star/magnum/omega.json new file mode 100644 index 00000000..2772017b --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/magnum/omega.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_sphere" + }, + { + "item": "projectexpansion:magnum_star_sphere" + }, + { + "item": "projectexpansion:magnum_star_sphere" + }, + { + "item": "projectexpansion:magnum_star_sphere" + } + ], + "result": { + "item": "projectexpansion:magnum_star_omega" + } +} diff --git a/src/main/generation/generators/recipes/single/star/magnum/sphere.json b/src/main/generation/generators/recipes/single/star/magnum/sphere.json new file mode 100644 index 00000000..0ff5b276 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/magnum/sphere.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_vier" + }, + { + "item": "projectexpansion:magnum_star_vier" + }, + { + "item": "projectexpansion:magnum_star_vier" + }, + { + "item": "projectexpansion:magnum_star_vier" + } + ], + "result": { + "item": "projectexpansion:magnum_star_sphere" + } +} diff --git a/src/main/generation/generators/recipes/single/star/magnum/vier.json b/src/main/generation/generators/recipes/single/star/magnum/vier.json new file mode 100644 index 00000000..7161cd22 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/magnum/vier.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_drei" + }, + { + "item": "projectexpansion:magnum_star_drei" + }, + { + "item": "projectexpansion:magnum_star_drei" + }, + { + "item": "projectexpansion:magnum_star_drei" + } + ], + "result": { + "item": "projectexpansion:magnum_star_vier" + } +} diff --git a/src/main/generation/generators/recipes/single/star/magnum/zwei.json b/src/main/generation/generators/recipes/single/star/magnum/zwei.json new file mode 100644 index 00000000..7151d161 --- /dev/null +++ b/src/main/generation/generators/recipes/single/star/magnum/zwei.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "projectexpansion:star", + "ingredients": [ + { + "item": "projectexpansion:magnum_star_ein" + }, + { + "item": "projectexpansion:magnum_star_ein" + }, + { + "item": "projectexpansion:magnum_star_ein" + }, + { + "item": "projectexpansion:magnum_star_ein" + } + ], + "result": { + "item": "projectexpansion:magnum_star_zwei" + } +} diff --git a/src/main/generation/generators/recipes/single/transmutation_interface.json b/src/main/generation/generators/recipes/single/transmutation_interface.json new file mode 100644 index 00000000..88793692 --- /dev/null +++ b/src/main/generation/generators/recipes/single/transmutation_interface.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "LCL", + "CSC", + "LCL" + ], + "key": { + "L": { + "item": "projectexpansion:final_emc_link" + }, + "C": { + "item": "projecte:condenser_mk2" + }, + "S": { + "item": "projectexpansion:final_star_shard" + } + }, + "result": { + "item": "projectexpansion:transmutation_interface" + } +} diff --git a/src/main/generation/package-lock.json b/src/main/generation/package-lock.json new file mode 100644 index 00000000..2c0bfdb7 --- /dev/null +++ b/src/main/generation/package-lock.json @@ -0,0 +1,4153 @@ +{ + "name": "generation", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "generation", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.41", + "@uwu-codes/eslint-config": "^1.0.49", + "@uwu-codes/tsconfig": "^1.0.1", + "ts-node": "^10.8.1", + "typescript": "^4.7.3" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz", + "integrity": "sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==", + "dependencies": { + "comment-parser": "1.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~3.1.0" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/node": { + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.1.tgz", + "integrity": "sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/type-utils": "5.27.1", + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.1.tgz", + "integrity": "sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.1.tgz", + "integrity": "sha512-fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==", + "dependencies": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.1.tgz", + "integrity": "sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==", + "dependencies": { + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.1.tgz", + "integrity": "sha512-LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.1.tgz", + "integrity": "sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==", + "dependencies": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.1.tgz", + "integrity": "sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.1.tgz", + "integrity": "sha512-xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==", + "dependencies": { + "@typescript-eslint/types": "5.27.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@uwu-codes/eslint-config": { + "version": "1.0.49", + "resolved": "https://registry.npmjs.org/@uwu-codes/eslint-config/-/eslint-config-1.0.49.tgz", + "integrity": "sha512-8UCg+G2n3M6U0qzm7ki2Vsh80J6qomNkEOYMZLBGUf1uUhHIEXdW5em9+/41HVx5monyTmYq1L7zRuVYURElaA==", + "dependencies": { + "@typescript-eslint/eslint-plugin": "^5.27.1", + "@typescript-eslint/parser": "^5.27.1", + "@uwu-codes/tsconfig": "^1.0.1", + "eslint": "^8.17.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import-newlines": "^1.2.2", + "eslint-plugin-jsdoc": "^39.3.2", + "eslint-plugin-json": "^3.1.0", + "eslint-plugin-prefer-arrow": "^1.2.3", + "eslint-plugin-unused-imports": "^2.0.0" + }, + "engines": { + "node": ">=15" + } + }, + "node_modules/@uwu-codes/tsconfig": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@uwu-codes/tsconfig/-/tsconfig-1.0.1.tgz", + "integrity": "sha512-JcVNthILR1ZU+SGh54Z/Gxi0mEQCmPrcQHbtCxg23TZ17z/HiGf/Wc3Tkdg4q/VUs9c/pfYx1B1xS0LCnG24MA==", + "engines": { + "node": ">=15" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import-newlines": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.2.2.tgz", + "integrity": "sha512-SoKiFtSW/+dHsla/qzijU/RP+i8CNhYHuzfGelFf4SLpz+bzcshur6Qy7uzMow4sBg5HquAYOf/yGTKZMrbVcg==", + "bin": { + "import-linter": "lib/index.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "39.3.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.2.tgz", + "integrity": "sha512-RSGN94RYzIJS/WfW3l6cXzRLfJWxvJgNQZ4w0WCaxJWDJMigtwTsILEAfKqmmPkT2rwMH/s3C7G5ChDE6cwPJg==", + "dependencies": { + "@es-joy/jsdoccomment": "~0.31.0", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.7", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-json": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz", + "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==", + "dependencies": { + "lodash": "^4.17.21", + "vscode-json-languageservice": "^4.1.6" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "peerDependencies": { + "eslint": ">=2.0.0" + } + }, + "node_modules/eslint-plugin-unused-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz", + "integrity": "sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==", + "dependencies": { + "eslint-rule-composer": "^0.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "engines": { + "node": ">=4" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-node": { + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", + "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/vscode-json-languageservice": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", + "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.3", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.5.tgz", + "integrity": "sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg==" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.1.tgz", + "integrity": "sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ==" + }, + "node_modules/vscode-nls": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.1.tgz", + "integrity": "sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==" + }, + "node_modules/vscode-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz", + "integrity": "sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@es-joy/jsdoccomment": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz", + "integrity": "sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==", + "requires": { + "comment-parser": "1.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~3.1.0" + } + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "@types/node": { + "version": "17.0.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.1.tgz", + "integrity": "sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==", + "requires": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/type-utils": "5.27.1", + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.1.tgz", + "integrity": "sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==", + "requires": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.1.tgz", + "integrity": "sha512-fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==", + "requires": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.1.tgz", + "integrity": "sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==", + "requires": { + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.1.tgz", + "integrity": "sha512-LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.1.tgz", + "integrity": "sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==", + "requires": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.1.tgz", + "integrity": "sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==", + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.1.tgz", + "integrity": "sha512-xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==", + "requires": { + "@typescript-eslint/types": "5.27.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@uwu-codes/eslint-config": { + "version": "1.0.49", + "resolved": "https://registry.npmjs.org/@uwu-codes/eslint-config/-/eslint-config-1.0.49.tgz", + "integrity": "sha512-8UCg+G2n3M6U0qzm7ki2Vsh80J6qomNkEOYMZLBGUf1uUhHIEXdW5em9+/41HVx5monyTmYq1L7zRuVYURElaA==", + "requires": { + "@typescript-eslint/eslint-plugin": "^5.27.1", + "@typescript-eslint/parser": "^5.27.1", + "@uwu-codes/tsconfig": "^1.0.1", + "eslint": "^8.17.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import-newlines": "^1.2.2", + "eslint-plugin-jsdoc": "^39.3.2", + "eslint-plugin-json": "^3.1.0", + "eslint-plugin-prefer-arrow": "^1.2.3", + "eslint-plugin-unused-imports": "^2.0.0" + } + }, + "@uwu-codes/tsconfig": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@uwu-codes/tsconfig/-/tsconfig-1.0.1.tgz", + "integrity": "sha512-JcVNthILR1ZU+SGh54Z/Gxi0mEQCmPrcQHbtCxg23TZ17z/HiGf/Wc3Tkdg4q/VUs9c/pfYx1B1xS0LCnG24MA==" + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "eslint": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "eslint-plugin-import-newlines": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.2.2.tgz", + "integrity": "sha512-SoKiFtSW/+dHsla/qzijU/RP+i8CNhYHuzfGelFf4SLpz+bzcshur6Qy7uzMow4sBg5HquAYOf/yGTKZMrbVcg==", + "requires": {} + }, + "eslint-plugin-jsdoc": { + "version": "39.3.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.2.tgz", + "integrity": "sha512-RSGN94RYzIJS/WfW3l6cXzRLfJWxvJgNQZ4w0WCaxJWDJMigtwTsILEAfKqmmPkT2rwMH/s3C7G5ChDE6cwPJg==", + "requires": { + "@es-joy/jsdoccomment": "~0.31.0", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.7", + "spdx-expression-parse": "^3.0.1" + } + }, + "eslint-plugin-json": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz", + "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==", + "requires": { + "lodash": "^4.17.21", + "vscode-json-languageservice": "^4.1.6" + } + }, + "eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "requires": {} + }, + "eslint-plugin-unused-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz", + "integrity": "sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==", + "requires": { + "eslint-rule-composer": "^0.3.0" + } + }, + "eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==" + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" + }, + "espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-node": { + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", + "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "typescript": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "vscode-json-languageservice": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", + "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", + "requires": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.3", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.5.tgz", + "integrity": "sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg==" + }, + "vscode-languageserver-types": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.1.tgz", + "integrity": "sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ==" + }, + "vscode-nls": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.1.tgz", + "integrity": "sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==" + }, + "vscode-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz", + "integrity": "sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/src/main/generation/package.json b/src/main/generation/package.json new file mode 100644 index 00000000..0b79eaea --- /dev/null +++ b/src/main/generation/package.json @@ -0,0 +1,27 @@ +{ + "name": "generation", + "version": "1.0.0", + "description": "", + "main": "run.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/DonovanDMC/ProjectExpansion.git" + }, + "author": "Donovan Daniels ", + "license": "MIT", + "bugs": { + "url": "https://github.com/DonovanDMC/ProjectExpansion/issues" + }, + "homepage": "https://github.com/DonovanDMC/ProjectExpansion#readme", + "dependencies": { + "@types/node": "^17.0.41", + "@uwu-codes/eslint-config": "^1.0.49", + "@uwu-codes/tsconfig": "^1.0.1", + "ts-node": "^10.8.1", + "typescript": "^4.7.3" + }, + "type": "module" +} diff --git a/src/main/generation/run.ts b/src/main/generation/run.ts new file mode 100644 index 00000000..deadf2df --- /dev/null +++ b/src/main/generation/run.ts @@ -0,0 +1,36 @@ +import { exists } from "./util"; +import { mkdir, readdir, rm } from "fs/promises"; + +const inDir = new URL("generators/", import.meta.url); +const outDir = new URL("out/", import.meta.url); +if (await exists(outDir)) await rm(outDir, { recursive: true, force: true }); + +await mkdir(outDir); + +interface ModuleIndex { + format: string; + outDir: URL; +} + +interface ModuleRunner { + default(this: void, outDir: URL): Promise>; +} + +async function run(dir: URL) { + const { format, outDir: out } = await import(new URL("index.ts", dir).pathname) as ModuleIndex; + if (await exists(out)) await rm(out, { recursive: true, force: true }); + await mkdir(out, { recursive: true }); + (await readdir(dir, { withFileTypes: true })).forEach(async(gen) => { + if (gen.isDirectory() || !gen.name.endsWith(".ts") || gen.name === "index.ts") return; + const { default: mod } = await import(new URL(gen.name, dir).pathname) as ModuleRunner; + const res = (await mod(out)).filter(arr => arr.length > 0); + for (const [input, output] of res) { + if (dir.pathname.endsWith("lang/")) console.log(format.trim(), gen.name, output.split("/").slice(-1)[0].replace(/\.json/, "")); + else console.log(format.trim(), input.replace(dir.pathname, "").replace(/\//, ""), gen.name, output.replace(out.pathname, "").replace(/\.json/, "")); + } + }); +} + +const mod = await readdir(inDir); +for (const dir of mod) await run(new URL(`${dir}/`, inDir)); +await rm(outDir, { recursive: true, force: true }); diff --git a/src/main/generation/tsconfig.json b/src/main/generation/tsconfig.json new file mode 100644 index 00000000..b639db2b --- /dev/null +++ b/src/main/generation/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "@uwu-codes/tsconfig", + "compilerOptions": { + "outDir": "./build", + "baseUrl": "./src", + "strictPropertyInitialization": false, + "inlineSourceMap": true, + "moduleResolution": "node", + "esModuleInterop": true, + "module": "esnext" + }, + "include": ["**/*"], + "exclude": ["node_modules"] +} diff --git a/src/main/generation/util.ts b/src/main/generation/util.ts new file mode 100644 index 00000000..b0762bac --- /dev/null +++ b/src/main/generation/util.ts @@ -0,0 +1,76 @@ +import { MATTER_TIERS } from "./constants"; +import type { PathLike } from "fs"; +import { + access, + copyFile, + mkdir, + readdir, + readFile, + writeFile +} from "fs/promises"; +import { dirname } from "path"; + +export const exists = (input: PathLike) => access(input).then(() => true, () => false); +export async function genericBlock(name: string, base: string, exclude: Array, extra: string | undefined, outDir: URL): Promise> { + if (!await exists(new URL(`${name}/`, outDir))) await mkdir(new URL(`${name}/`, outDir), { recursive: true }); + return Promise.all(MATTER_TIERS.filter(tier => !exclude.includes(tier)).map(async(tier) => { + await writeFile(new URL(`${name}/${tier}${!extra ? "" : extra}.json`, outDir), (await readFile(base)).toString().replace(/\$TIER\$/g, tier)); + return [base, new URL(`${name}/${tier}${!extra ? "" : extra}.json`, outDir).pathname]; + })); +} + +export async function generic(name: string, base: string, exclude: Array, outDir: URL): Promise> { + return Promise.all(MATTER_TIERS.filter(tier => !exclude.includes(tier)).map(async(tier) => { + await writeFile(new URL(`${tier}_${name}.json`, outDir), (await readFile(base)).toString().replace(/\$TIER\$/g, tier)); + return [base, new URL(`${tier}_${name}.json`, outDir).pathname]; + })); +} + +export async function genericLanguage(name: string, dir: string, outDir: URL): Promise> { + const lang = {}; + + async function read(d: string) { + const r = await readdir(d, { withFileTypes: true }); + for (const c of r) { + if (c.isDirectory()) await read(`${d}/${c.name}/`); + else Object.assign(lang, JSON.parse((await readFile(`${d}/${c.name}`)).toString())); + } + } + + await read(dir); + await writeFile(new URL(`${name}.json`, outDir), JSON.stringify(lang, null, "\t")); + return [[name, new URL(`${name}.json`, outDir).pathname]]; +} + +// @TODO for the love of everything that is holy make this shit dynamic +export async function single(currentDir: string, outDir: URL): Promise> { + currentDir = `${dirname(currentDir)}/`; + const final: Array<[string, string]> = []; + const dir1 = await readdir(new URL("single/", currentDir), { withFileTypes: true }); + for (const d of dir1) { + if (currentDir.endsWith("block/") && d.name === "power_flower_base.json") continue; + if (d.isDirectory()) { + const dir2 = await readdir(new URL(`single/${d.name}/`, currentDir), { withFileTypes: true }); + for (const dd of dir2) { + if (dd.isDirectory()) { + const dir3 = await readdir(new URL(`single/${d.name}/${dd.name}/`, currentDir), { withFileTypes: true }); + for (const ddd of dir3) { + if (ddd.isDirectory()) throw new Error(`Nested Directory "${new URL(`single/${d.name}/${dd.name}/${ddd.name}/`, currentDir).pathname}" Is Too Deep.`); + if (!await exists(new URL(`${d.name}/${dd.name}/`, outDir))) await mkdir(new URL(`${d.name}/${dd.name}/`, outDir), { recursive: true }); + await copyFile(new URL(`single/${d.name}/${dd.name}/${ddd.name}`, currentDir), new URL(`${d.name}/${dd.name}/${ddd.name}`, outDir)); + final.push(["single", new URL(`${d.name}/${dd.name}/${ddd.name}`, outDir).pathname]); + } + } else { + if (!await exists(new URL(`${d.name}/`, outDir))) await mkdir(new URL(`${d.name}/`, outDir), { recursive: true }); + await copyFile(new URL(`single/${d.name}/${dd.name}`, currentDir), new URL(`${d.name}/${dd.name}`, outDir)); + final.push(["single", new URL(`${d.name}/${dd.name}`, outDir).pathname]); + } + } + } else { + await copyFile(new URL(`single/${d.name}`, currentDir), new URL(`${d.name}`, outDir)); + final.push(["single", new URL(`${d.name}`, outDir).pathname]); + } + } + + return final; +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/ClientHandler.java b/src/main/java/cool/furry/mc/forge/projectexpansion/ClientHandler.java new file mode 100644 index 00000000..792e25ff --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/ClientHandler.java @@ -0,0 +1,14 @@ +package cool.furry.mc.forge.projectexpansion; + +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; + +@Mod.EventBusSubscriber(modid = Main.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) +public class ClientHandler { + @SubscribeEvent + public static void clientSetup(FMLClientSetupEvent event) { + // TODO: config menu + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/Main.java b/src/main/java/cool/furry/mc/forge/projectexpansion/Main.java new file mode 100644 index 00000000..85dadf99 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/Main.java @@ -0,0 +1,65 @@ +package cool.furry.mc.forge.projectexpansion; + +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.registries.*; +import cool.furry.mc.forge.projectexpansion.util.Fuel; +import cool.furry.mc.forge.projectexpansion.util.Matter; +import cool.furry.mc.forge.projectexpansion.util.Star; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.config.ModConfig; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.server.ServerLifecycleHooks; +import org.apache.logging.log4j.LogManager; + +import javax.annotation.Nonnull; + +@Mod(Main.MOD_ID) +public class Main { + public static final String MOD_ID = "projectexpansion"; + public static CreativeModeTab tab; + @SuppressWarnings("unused") + public static final org.apache.logging.log4j.Logger Logger = LogManager.getLogger(); + + public Main() { + tab = new CreativeModeTab(MOD_ID) { + + @Override + @Nonnull + @OnlyIn(Dist.CLIENT) + public ItemStack makeIcon() { + return new ItemStack(Matter.FADING.getMatter()); + } + }; + IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); + BlockEntityTypes.Registry.register(bus); + Blocks.Registry.register(bus); + Enchantments.Registry.register(bus); + Items.Registry.register(bus); + SoundEvents.Registry.register(bus); + MinecraftForge.EVENT_BUS.addListener(this::serverTick); + ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.Spec, "project-expansion.toml"); + + Fuel.registerAll(); + Matter.registerAll(); + Star.registerAll(); + } + + private void serverTick(TickEvent.ServerTickEvent event) { + if (event.phase != TickEvent.Phase.END) return; + for (ServerPlayer player : ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayers()) { + for (int i = 0; i < player.getInventory().getContainerSize(); i++) { + ItemStack stack = player.getInventory().getItem(i); + if (stack.getItem().equals(Items.INFINITE_FUEL.get())) stack.getOrCreateTag().putUUID("Owner", player.getUUID()); + } + } + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockCollector.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockCollector.java new file mode 100644 index 00000000..4f480f88 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockCollector.java @@ -0,0 +1,72 @@ +package cool.furry.mc.forge.projectexpansion.block; + +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityCollector; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.EMCFormat; +import cool.furry.mc.forge.projectexpansion.util.IHasMatter; +import cool.furry.mc.forge.projectexpansion.util.Matter; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.level.material.PushReaction; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; + +@SuppressWarnings("deprecation") +public class BlockCollector extends Block implements IHasMatter, EntityBlock { + private final Matter matter; + + public BlockCollector(Matter matter) { + super(Properties.of(Material.STONE).strength(3.5F)); + this.matter = matter; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new BlockEntityCollector(pos, state); + } + + @Nonnull + @Override + public Matter getMatter() { + return matter; + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable BlockGetter level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("block.projectexpansion.collector.tooltip").setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("block.projectexpansion.collector.emc", EMCFormat.getComponent(matter.getCollectorOutputForTicks(Config.tickDelay.get())).setStyle(ColorStyle.GREEN)).setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("text.projectexpansion.see_wiki").setStyle(ColorStyle.AQUA)); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + if (type == BlockEntityTypes.COLLECTOR.get() && !level.isClientSide) return BlockEntityCollector::tickServer; + return null; + } + + @Override + public PushReaction getPistonPushReaction(BlockState state) { + return PushReaction.BLOCK; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockEMCLink.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockEMCLink.java new file mode 100644 index 00000000..632012c0 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockEMCLink.java @@ -0,0 +1,101 @@ +package cool.furry.mc.forge.projectexpansion.block; + +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityEMCLink; +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityNBTFilterable; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.EMCFormat; +import cool.furry.mc.forge.projectexpansion.util.IHasMatter; +import cool.furry.mc.forge.projectexpansion.util.Matter; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.level.material.PushReaction; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; + +@SuppressWarnings("deprecation") +public class BlockEMCLink extends Block implements IHasMatter, EntityBlock { + private final Matter matter; + + public BlockEMCLink(Matter matter) { + super(Properties.of(Material.STONE).strength(3.5F)); + this.matter = matter; + this.registerDefaultState(this.stateDefinition.any().setValue(BlockEntityNBTFilterable.FILTER, true)); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new BlockEntityEMCLink(pos, state); + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable BlockGetter level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add((Component.translatable("block.projectexpansion.emc_link.tooltip")).setStyle(ColorStyle.GRAY)); + list.add((Component.translatable("block.projectexpansion.emc_link.limit_items", matter.getEMCLinkItemLimitComponent()).setStyle(ColorStyle.GREEN)).setStyle(ColorStyle.GRAY)); + list.add((Component.translatable("block.projectexpansion.emc_link.limit_fluids", matter.getEMCLinkFluidLimitComponent()).setStyle(ColorStyle.GREEN)).setStyle(ColorStyle.GRAY)); + list.add((Component.translatable("block.projectexpansion.emc_link.limit_emc", Component.literal(matter.getLevel() == 16 ? "INFINITY" : EMCFormat.format(matter.getEMCLinkEMCLimit())).setStyle(ColorStyle.GREEN))).setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("text.projectexpansion.see_wiki").setStyle(ColorStyle.AQUA)); + } + + @Override + public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (level.isClientSide) return InteractionResult.SUCCESS; + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof BlockEntityEMCLink be) return be.handleActivation(player, hand); + return InteractionResult.PASS; + } + + @Override + public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity livingEntity, ItemStack stack) { + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof BlockEntityEMCLink be) be.wasPlaced(livingEntity, stack); + } + + @Nonnull + @Override + public Matter getMatter() { + return matter; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(BlockEntityNBTFilterable.FILTER); + super.createBlockStateDefinition(builder); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + if (type == BlockEntityTypes.EMC_LINK.get() && !level.isClientSide) return BlockEntityEMCLink::tickServer; + return null; + } + + @Override + public PushReaction getPistonPushReaction(BlockState state) { + return PushReaction.BLOCK; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockFuelItem.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockFuelItem.java new file mode 100644 index 00000000..bae12480 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockFuelItem.java @@ -0,0 +1,25 @@ +package cool.furry.mc.forge.projectexpansion.block; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.util.Fuel; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeType; + +import javax.annotation.Nullable; +import java.util.Objects; + +public class BlockFuelItem extends BlockItem { + private final Fuel level; + public BlockFuelItem(Fuel level) { + super(Objects.requireNonNull(Objects.requireNonNull(level).getBlock()), new Properties().tab(Main.tab).rarity(level.rarity)); + this.level = level; + } + + + @Override + public int getBurnTime(ItemStack stack, @Nullable RecipeType recipeType) { + // 9 single items combined + return level.getBurnTime(recipeType) * 9; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockPowerFlower.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockPowerFlower.java new file mode 100644 index 00000000..0d2a3c6d --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockPowerFlower.java @@ -0,0 +1,111 @@ +package cool.furry.mc.forge.projectexpansion.block; + +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityPowerFlower; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.EMCFormat; +import cool.furry.mc.forge.projectexpansion.util.IHasMatter; +import cool.furry.mc.forge.projectexpansion.util.Matter; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.level.material.PushReaction; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; + +@SuppressWarnings("deprecation") +public class BlockPowerFlower extends Block implements IHasMatter, EntityBlock { + private static final VoxelShape SHAPE = Shapes.or( + box(0, 0, 0, 16, 1, 16), + box(3.5, 4, 6.5, 12.5, 13, 9.5), + box(6.5, 1, 6.5, 9.5, 16, 9.5), + box(6.5, 4, 3.5, 9.5, 13, 12.5), + box(6.5, 7, 0.5, 9.5, 10, 15.5), + box(3.5, 7, 3.5, 12.5, 10, 12.5), + box(0.5, 7, 6.5, 15.5, 10, 9.5) + ); + private final Matter matter; + + public BlockPowerFlower(Matter matter) { + super(Properties.of(Material.STONE).strength(1F)); + this.matter = matter; + } + + @Nonnull + @Override + public Matter getMatter() { + return matter; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new BlockEntityPowerFlower(pos, state); + } + + @NotNull + @Override + @Deprecated + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext ctx) { + return SHAPE; + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable BlockGetter level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("block.projectexpansion.power_flower.tooltip", Component.literal(Config.tickDelay.get().toString()).setStyle(ColorStyle.GREEN), Component.literal(Config.tickDelay.get() == 1 ? "" : "s").setStyle(ColorStyle.GRAY)).setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("block.projectexpansion.power_flower.emc", EMCFormat.getComponent(matter.getPowerFlowerOutput()).setStyle(ColorStyle.GREEN)).setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("text.projectexpansion.see_wiki").setStyle(ColorStyle.AQUA)); + } + + @Override + public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (level.isClientSide) return InteractionResult.SUCCESS; + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof BlockEntityPowerFlower be) player.displayClientMessage(Component.literal(be.ownerName), true); + return super.use(state, level, pos, player, hand, hit); + } + + @Override + public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity livingEntity, ItemStack stack) { + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof BlockEntityPowerFlower be) be.wasPlaced(livingEntity, stack); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + if (type == BlockEntityTypes.POWER_FLOWER.get() && !level.isClientSide) return BlockEntityPowerFlower::tickServer; + return null; + } + + @Override + public PushReaction getPistonPushReaction(BlockState state) { + return PushReaction.BLOCK; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockRelay.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockRelay.java new file mode 100644 index 00000000..c5902bf3 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockRelay.java @@ -0,0 +1,74 @@ +package cool.furry.mc.forge.projectexpansion.block; + +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityRelay; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.EMCFormat; +import cool.furry.mc.forge.projectexpansion.util.IHasMatter; +import cool.furry.mc.forge.projectexpansion.util.Matter; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.level.material.PushReaction; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; + +@SuppressWarnings("deprecation") +public class BlockRelay extends Block implements IHasMatter, EntityBlock { + private final Matter matter; + + public BlockRelay(Matter matter) { + super(Properties.of(Material.STONE).strength(5F)); + this.matter = matter; + } + + @Nonnull + @Override + public Matter getMatter() { + return matter; + } + + + @org.jetbrains.annotations.Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new BlockEntityRelay(pos, state); + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable BlockGetter level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("block.projectexpansion.relay.tooltip").setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("block.projectexpansion.relay.bonus", EMCFormat.getComponent(matter.getRelayBonusForTicks(Config.tickDelay.get())).setStyle(ColorStyle.GREEN)).setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("block.projectexpansion.relay.transfer", EMCFormat.getComponent(matter.getRelayTransferForTicks(Config.tickDelay.get())).setStyle(ColorStyle.GREEN)).setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("text.projectexpansion.see_wiki").setStyle(ColorStyle.AQUA)); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + if (type == BlockEntityTypes.RELAY.get() && !level.isClientSide) return BlockEntityRelay::tickServer; + return null; + } + + @Override + public PushReaction getPistonPushReaction(BlockState state) { + return PushReaction.BLOCK; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockTransmutationInterface.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockTransmutationInterface.java new file mode 100644 index 00000000..75f30800 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/BlockTransmutationInterface.java @@ -0,0 +1,85 @@ +package cool.furry.mc.forge.projectexpansion.block; + +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityNBTFilterable; +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityTransmutationInterface; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.level.material.PushReaction; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nullable; +import java.util.List; + +@SuppressWarnings("deprecation") +public class BlockTransmutationInterface extends Block implements EntityBlock { + public BlockTransmutationInterface() { + super(Properties.of(Material.STONE).strength(5F)); + this.registerDefaultState(this.stateDefinition.any().setValue(BlockEntityNBTFilterable.FILTER, true)); + } + + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new BlockEntityTransmutationInterface(pos, state); + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable BlockGetter level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("block.projectexpansion.transmutation_interface.tooltip").setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("text.projectexpansion.see_wiki").setStyle(ColorStyle.AQUA)); + } + + @Override + public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (level.isClientSide)return InteractionResult.SUCCESS; + BlockEntity block = level.getBlockEntity(pos); + if (block instanceof BlockEntityTransmutationInterface be) player.displayClientMessage(Component.literal(be.ownerName), true); + return super.use(state, level, pos, player, hand, hit); + } + + @Override + public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity entity, ItemStack stack) { + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof BlockEntityTransmutationInterface be) be.wasPlaced(entity, stack); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(BlockEntityNBTFilterable.FILTER); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + if (type == BlockEntityTypes.TRANSMUTATION_INTERFACE.get() && !level.isClientSide) return BlockEntityTransmutationInterface::tickServer; + return null; + } + + @Override + public PushReaction getPistonPushReaction(BlockState state) { + return PushReaction.BLOCK; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityCollector.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityCollector.java new file mode 100644 index 00000000..26cf7a4a --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityCollector.java @@ -0,0 +1,117 @@ +package cool.furry.mc.forge.projectexpansion.block.entity; + +import cool.furry.mc.forge.projectexpansion.block.BlockCollector; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.TagNames; +import cool.furry.mc.forge.projectexpansion.util.Util; +import moze_intel.projecte.api.capabilities.PECapabilities; +import moze_intel.projecte.api.capabilities.block_entity.IEmcStorage; +import moze_intel.projecte.gameObjs.block_entities.RelayMK1BlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings("unused") +public class BlockEntityCollector extends BlockEntity implements IEmcStorage { + public BigInteger emc = BigInteger.ZERO; + private final LazyOptional emcStorageCapability = LazyOptional.of(() -> this); + public static final Direction[] DIRECTIONS = Direction.values(); + public BlockEntityCollector(BlockPos pos, BlockState state) { + super(BlockEntityTypes.COLLECTOR.get(), pos, state); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + if (tag.contains(TagNames.STORED_EMC, Tag.TAG_STRING)) emc = new BigInteger(tag.getString(TagNames.STORED_EMC)); + } + + @Override + protected void saveAdditional(CompoundTag tag) { + super.saveAdditional(tag); + tag.putString(TagNames.STORED_EMC, emc.toString()); + } + + public static void tickServer(Level level, BlockPos pos, BlockState state, BlockEntity blockEntity) { + if (blockEntity instanceof BlockEntityCollector be) be.tickServer(level, pos, state, be); + } + + public void tickServer(Level level, BlockPos pos, BlockState state, BlockEntityCollector blockEntity) { + // we can't use a user defined value due to emc duplication possibilities + if ((level.getGameTime() % 20L) != Util.mod(hashCode(), 20)) return; + emc = emc.add(((BlockCollector) getBlockState().getBlock()).getMatter().getCollectorOutputForTicks(Config.tickDelay.get())); + List temp = new ArrayList<>(1); + + for (Direction dir : DIRECTIONS) { + BlockEntity be = level.getBlockEntity(pos.offset(dir.getStepX(), dir.getStepY(), dir.getStepZ())); + if (be == null) continue; + be.getCapability(PECapabilities.EMC_STORAGE_CAPABILITY, dir.getOpposite()).ifPresent((storage) -> { + if (storage.insertEmc(1L, EmcAction.SIMULATE) > 0L) { + temp.add(storage); + if (be instanceof RelayMK1BlockEntity b) { + for (int i = 0; i < 20; i++) b.addBonus(); + Util.markDirty(b); + } else if (be instanceof BlockEntityRelay b) { + b.addBonus(); + Util.markDirty(b); + } + } + }); + } + + emc = Util.spreadEMC(emc, temp); + } + + @Override + public long getStoredEmc() { + return Util.safeLongValue(emc); + } + + @Override + public long getMaximumEmc() { + return Long.MAX_VALUE; + } + + @Override + public long extractEmc(long emc, EmcAction action) { + long change = Math.min(Util.safeLongValue(this.emc), emc); + if (change < 0L) return insertEmc(-change, action); + else if (action.execute()) this.emc = this.emc.subtract(BigInteger.valueOf(change)); + return change; + } + + @Override + public long insertEmc(long l, EmcAction emcAction) { + return 0L; + } + + /**************** + * Capabilities * + ****************/ + + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { + return + (cap == PECapabilities.EMC_STORAGE_CAPABILITY) ? emcStorageCapability.cast() : + super.getCapability(cap, side); + } + + @Override + public void invalidateCaps() { + emcStorageCapability.invalidate(); + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityEMCLink.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityEMCLink.java new file mode 100644 index 00000000..a251b563 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityEMCLink.java @@ -0,0 +1,424 @@ +package cool.furry.mc.forge.projectexpansion.block.entity; + +import cool.furry.mc.forge.projectexpansion.block.BlockEMCLink; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.*; +import moze_intel.projecte.api.ItemInfo; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import moze_intel.projecte.api.capabilities.PECapabilities; +import moze_intel.projecte.api.capabilities.block_entity.IEmcStorage; +import moze_intel.projecte.emc.nbt.NBTManager; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BucketItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluid; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemHandlerHelper; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.math.RoundingMode; +import java.util.Objects; + +@SuppressWarnings("unused") +public class BlockEntityEMCLink extends BlockEntityNBTFilterable implements IEmcStorage, IItemHandler, IHasMatter, IFluidHandler { + public BigInteger emc = BigInteger.ZERO; + private final LazyOptional emcStorageCapability = LazyOptional.of(() -> this); + private final LazyOptional itemHandlerCapability = LazyOptional.of(() -> this); + private final LazyOptional fluidHandlerCapability = LazyOptional.of(() -> this); + private ItemStack itemStack; + private Matter matter; + private BigInteger remainingEMC = BigInteger.ZERO; + private int remainingImport = 0; + private int remainingExport = 0; + private int remainingFluid = 0; + + public BlockEntityEMCLink(BlockPos pos, BlockState state) { + super(BlockEntityTypes.EMC_LINK.get(), pos, state); + itemStack = ItemStack.EMPTY; + } + + /******* + * NBT * + *******/ + + @Override + public void load(@Nonnull CompoundTag tag) { + super.load(tag); + if (tag.contains(TagNames.STORED_EMC, Tag.TAG_STRING)) emc = new BigInteger(tag.getString((TagNames.STORED_EMC))); + if (tag.contains(TagNames.ITEM, Tag.TAG_COMPOUND)) itemStack = NBTManager.getPersistentInfo(ItemInfo.fromStack(ItemStack.of(tag.getCompound(TagNames.ITEM)))).createStack(); + if (tag.contains(TagNames.REMAINING_EMC, Tag.TAG_STRING)) remainingEMC = new BigInteger(tag.getString(TagNames.REMAINING_EMC)); + if (tag.contains(TagNames.REMAINING_IMPORT, Tag.TAG_INT)) remainingImport = tag.getInt(TagNames.REMAINING_IMPORT); + if (tag.contains(TagNames.REMAINING_EXPORT, Tag.TAG_INT)) remainingExport = tag.getInt(TagNames.REMAINING_EXPORT); + if (tag.contains(TagNames.REMAINING_FLUID, Tag.TAG_INT)) remainingFluid = tag.getInt(TagNames.REMAINING_FLUID); + } + + @Override + public void saveAdditional(@Nonnull CompoundTag tag) { + super.saveAdditional(tag); + tag.putString(TagNames.STORED_EMC, emc.toString()); + tag.put(TagNames.ITEM, itemStack.serializeNBT()); + tag.putString(TagNames.REMAINING_EMC, remainingEMC.toString()); + tag.putInt(TagNames.REMAINING_IMPORT, remainingImport); + tag.putInt(TagNames.REMAINING_EXPORT, remainingExport); + tag.putInt(TagNames.REMAINING_FLUID, remainingFluid); + } + + /******** + * MISC * + ********/ + + public static void tickServer(Level level, BlockPos pos, BlockState state, BlockEntity blockEntity) { + if (blockEntity instanceof BlockEntityEMCLink be) be.tickServer(level, pos, state, be); + } + + public void tickServer(Level level, BlockPos pos, BlockState state, BlockEntityEMCLink blockEntity) { + // due to the nature of per second this block follows, using the config value isn't really possible + if (level.isClientSide || (level.getGameTime() % 20L) != Util.mod(hashCode(), 20)) return; + resetLimits(); + if (emc.equals(BigInteger.ZERO)) return; + ServerPlayer player = Util.getPlayer(level, owner); + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + + provider.setEmc(provider.getEmc().add(emc)); + if (player != null) provider.syncEmc(player); + Util.markDirty(this); + emc = BigInteger.ZERO; + } + + private void resetLimits() { + Matter m = getMatter(); + remainingEMC = m.getEMCLinkEMCLimit(); + remainingImport = remainingExport = m.getEMCLinkItemLimit(); + remainingFluid = m.getEMCLinkFluidLimit(); + } + + private void setInternalItem(ItemStack stack) { + itemStack = ItemHandlerHelper.copyStackWithSize(stack, 1); + Util.markDirty(this); + } + + public void wasPlaced(@Nullable LivingEntity livingEntity, ItemStack stack) { + if (livingEntity instanceof Player player) setOwner(player); + resetLimits(); + } + + @Nonnull + @Override + public Matter getMatter() { + if (level != null) { + BlockEMCLink block = (BlockEMCLink) getBlockState().getBlock(); + if (block.getMatter() != matter) setMatter(block.getMatter()); + return matter; + } + return Matter.BASIC; + } + + private void setMatter(Matter matter) { + this.matter = matter; + } + + /******* + * EMC * + *******/ + + @Override + public long getStoredEmc() { + return 0L; + } + + @Override + public long getMaximumEmc() { + return Util.safeLongValue(getMatter().getEMCLinkEMCLimit()); + } + + @Override + public long extractEmc(long emc, EmcAction action) { + return emc < 0L ? insertEmc(-emc, action) : 0L; + } + + @Override + public long insertEmc(long emc, EmcAction action) { + long v = Math.min(Util.safeLongValue(remainingEMC), emc); + + if (emc <= 0L) return 0L; + if (action.execute()) this.emc = this.emc.add(BigInteger.valueOf(v)); + + return v; + } + + /********* + * Items * + *********/ + + @Override + public int getSlots() { + return getMatter().getEMCLinkInventorySize(); + } + + @Nonnull + @Override + public ItemStack getStackInSlot(int slot) { + if (slot != 0 || itemStack.isEmpty()) return ItemStack.EMPTY; + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + BigInteger maxCount = provider.getEmc().divide(BigInteger.valueOf(ProjectEAPI.getEMCProxy().getValue(itemStack))).min(BigInteger.valueOf(Integer.MAX_VALUE)); + int count = maxCount.intValueExact(); + if (count <= 0) return ItemStack.EMPTY; + + return ItemHandlerHelper.copyStackWithSize(itemStack, count); + } + + @Nonnull + @Override + public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { + if (slot == 0 || remainingImport <= 0 || owner == null || stack.isEmpty() || !isItemValid(slot, stack) || Util.getPlayer(owner) == null) return stack; + + int count = stack.getCount(); + stack = ItemHandlerHelper.copyStackWithSize(stack, 1); + + if (count <= 0) return stack; + + ItemInfo info = ItemInfo.fromStack(stack); + if(getFilterStatus() && !NBTManager.getPersistentInfo(info).equals(info)) return stack; + + int insertCount = Math.min(count, remainingImport); + if (!simulate) { + long itemValue = ProjectEAPI.getEMCProxy().getSellValue(stack); + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + BigInteger totalValue = BigInteger.valueOf(itemValue).multiply(BigInteger.valueOf(insertCount)); + provider.setEmc(provider.getEmc().add(totalValue)); + ServerPlayer player = Util.getPlayer(owner); + if (player != null) { + if (provider.addKnowledge(stack)) + provider.syncKnowledgeChange(player, NBTManager.getPersistentInfo(info), true); + provider.syncEmc(player); + } + remainingImport -= insertCount; + Util.markDirty(this); + } + + if (insertCount == count) return ItemStack.EMPTY; + + stack.setCount(count - insertCount); + return stack; + } + + @Nonnull + @Override + public ItemStack extractItem(int slot, int amount, boolean simulate) { + return extractItemInternal(slot, amount, simulate, true); + } + + public ItemStack extractItemInternal(int slot, int amount, boolean simulate, boolean limit) { + if (slot != 0 || remainingExport <= 0 || owner == null || itemStack.isEmpty() || Util.getPlayer(owner) == null) return ItemStack.EMPTY; + + BigInteger itemValue = BigInteger.valueOf(ProjectEAPI.getEMCProxy().getValue(itemStack)); + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + BigInteger maxCount = provider.getEmc().divide(itemValue).min(BigInteger.valueOf(Integer.MAX_VALUE)); + int extractCount = Math.min(amount, limit ? Math.min(maxCount.intValueExact(), remainingExport) : maxCount.intValueExact()); + if (extractCount <= 0) return ItemStack.EMPTY; + + ItemStack r = ItemHandlerHelper.copyStackWithSize(itemStack, extractCount); + if (simulate) return r; + + BigInteger totalPrice = itemValue.multiply(BigInteger.valueOf(extractCount)); + provider.setEmc(provider.getEmc().subtract(totalPrice)); + ServerPlayer player = Util.getPlayer(owner); + if (player != null) provider.syncEmc(player); + + if (limit) remainingExport -= extractCount; + Util.markDirty(this); + return r; + } + + @Override + public int getSlotLimit(int slot) { + return getMatter().getEMCLinkItemLimit(); + } + + @Override + public boolean isItemValid(int slot, @Nonnull ItemStack stack) { + return ProjectEAPI.getEMCProxy().hasValue(stack); + } + + + /********* + * Fluids * + *********/ + + public @Nullable Fluid getFluid() { + if(!itemStack.isEmpty() && itemStack.getItem() instanceof BucketItem bucketItem) return bucketItem.getFluid(); + else return null; + } + + private double getFluidCostPer() { + try { + return ProjectEAPI.getEMCProxy().getValue(itemStack) / 1000D; + } catch(ArithmeticException ignore) { + return Long.MAX_VALUE; + } + } + + private long getFluidCost(double amount) { + try { + double cost = getFluidCostPer(); + return (long) Math.ceil(cost * amount); + } catch(ArithmeticException ignore) { + return Long.MAX_VALUE; + } + } + + @Override + public int getTanks() { + return 1; + } + + @Nonnull + @Override + public FluidStack getFluidInTank(int tank) { + Fluid fluid = getFluid(); + if(fluid == null) return FluidStack.EMPTY; + return new FluidStack(fluid, remainingFluid); + } + + @Override + public int getTankCapacity(int tank) { + return remainingFluid; + } + + @Override + public boolean isFluidValid(int tank, @Nonnull FluidStack stack) { + return false; + } + + @Override + public int fill(FluidStack resource, FluidAction action) { + return 0; + } + + @Nonnull + @Override + public FluidStack drain(FluidStack resource, FluidAction action) { + Fluid fluid = getFluid(); + if(fluid != null && resource.getFluid().equals(fluid)) return drain(resource.getAmount(), action); + return FluidStack.EMPTY; + } + + @Nonnull + @Override + public FluidStack drain(int maxDrain, FluidAction action) { + Fluid fluid = getFluid(); + if(fluid == null || Util.getPlayer(owner) == null) return FluidStack.EMPTY; + if(maxDrain > remainingFluid) maxDrain = remainingFluid; + long cost = getFluidCost(maxDrain); + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + BigInteger emc = provider.getEmc(); + BigDecimal dEMC = new BigDecimal(emc); + if(dEMC.compareTo(BigDecimal.valueOf(getFluidCostPer())) < 0) return FluidStack.EMPTY; + if(emc.compareTo(BigInteger.valueOf(cost)) < 0) { + // this is a bad way to estimate, it rounds up so we'll usually say less than what's really possible + BigDecimal max = dEMC.divide(BigDecimal.valueOf(getFluidCostPer()), RoundingMode.FLOOR); + maxDrain = Util.safeIntValue(max); + if(maxDrain > remainingFluid) maxDrain = remainingFluid; + if(maxDrain < 1) return FluidStack.EMPTY; + cost = getFluidCost(maxDrain); + } + if(action.execute()) { + remainingFluid -= maxDrain; + Util.markDirty(this); + provider.setEmc(emc.subtract(BigInteger.valueOf(cost))); + provider.syncEmc(Objects.requireNonNull(Util.getPlayer(owner))); + } + return new FluidStack(fluid, maxDrain); + } + public InteractionResult handleActivation(Player player, InteractionHand hand) { + ItemStack inHand = player.getItemInHand(hand); + + if(!super.handleActivation(player, ActivationType.CHECK_OWNERSHIP)) return InteractionResult.CONSUME; + + if (player.isCrouching()) { + if (itemStack.isEmpty()) { + player.displayClientMessage(Component.translatable("block.projectexpansion.emc_link.not_set").setStyle(ColorStyle.RED), true); + return InteractionResult.CONSUME; + } + if (inHand.isEmpty()) { + setInternalItem(ItemStack.EMPTY); + player.displayClientMessage(Component.translatable("block.projectexpansion.emc_link.cleared").setStyle(ColorStyle.RED), true); + return InteractionResult.SUCCESS; + } + } + + if (itemStack.isEmpty()) { + if (inHand.isEmpty()) { + player.displayClientMessage(Component.translatable("block.projectexpansion.emc_link.not_set").setStyle(ColorStyle.RED), true); + return InteractionResult.CONSUME; + } + if (!isItemValid(0, inHand)) { + player.displayClientMessage(Component.translatable("block.projectexpansion.emc_link.no_emc_value", Component.translatable(itemStack.getItem().toString()).setStyle(ColorStyle.BLUE)).setStyle(ColorStyle.RED), true); + return InteractionResult.CONSUME; + } + setInternalItem(inHand); + player.displayClientMessage(Component.translatable("block.projectexpansion.emc_link.set", Component.literal(itemStack.getItem().toString()).setStyle(ColorStyle.BLUE)).setStyle(ColorStyle.GREEN), true); + return InteractionResult.SUCCESS; + } + + if (inHand.isEmpty() || itemStack.is(inHand.getItem())) { + if (Config.limitEmcLinkVendor.get() && remainingExport <= 0) { + player.displayClientMessage(Component.translatable("block.projectexpansion.emc_link.no_export_remaining").setStyle(ColorStyle.RED), true); + return InteractionResult.CONSUME; + } + ItemStack extract = extractItemInternal(0, itemStack.getMaxStackSize(), false, Config.limitEmcLinkVendor.get()); + if (extract.isEmpty()) { + player.displayClientMessage(Component.translatable("block.projectexpansion.emc_link.not_enough_emc", Component.literal(EMCFormat.format(BigInteger.valueOf(ProjectEAPI.getEMCProxy().getValue(itemStack)))).setStyle(ColorStyle.GREEN)).setStyle(ColorStyle.RED), true); + return InteractionResult.CONSUME; + } + ItemHandlerHelper.giveItemToPlayer(player, extract); + return InteractionResult.SUCCESS; + } + + player.displayClientMessage(Component.translatable("block.projectexpansion.emc_link.empty_hand").setStyle(ColorStyle.RED), true); + return InteractionResult.CONSUME; + } + + /**************** + * Capabilities * + ****************/ + + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { + return + (cap == PECapabilities.EMC_STORAGE_CAPABILITY) ? emcStorageCapability.cast() : + (cap == ForgeCapabilities.ITEM_HANDLER) ? itemHandlerCapability.cast() : + (cap == ForgeCapabilities.FLUID_HANDLER) ? fluidHandlerCapability.cast() : + super.getCapability(cap, side); + } + + @Override + public void invalidateCaps() { + emcStorageCapability.invalidate(); + itemHandlerCapability.invalidate(); + fluidHandlerCapability.invalidate(); + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityNBTFilterable.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityNBTFilterable.java new file mode 100644 index 00000000..997e7f9f --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityNBTFilterable.java @@ -0,0 +1,38 @@ +package cool.furry.mc.forge.projectexpansion.block.entity; + +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; + +public class BlockEntityNBTFilterable extends BlockEntityOwnable { + public static final BooleanProperty FILTER = BooleanProperty.create("filter"); + public BlockEntityNBTFilterable(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + public void toggleFilter(Player player) { + if(level == null || level.isClientSide || !this.handleActivation(player, ActivationType.CHECK_OWNERSHIP)) return; + boolean status = getFilterStatus(); + if(status) { + setFilterStatus(false); + player.displayClientMessage(Component.translatable("text.projectexpansion.nbt_filter.disable").setStyle(ColorStyle.RED), true); + } else { + setFilterStatus(true); + player.displayClientMessage(Component.translatable("text.projectexpansion.nbt_filter.enable").setStyle(ColorStyle.GREEN), true); + } + } + + public boolean getFilterStatus() { + return getBlockState().getValue(FILTER); + } + + public void setFilterStatus(boolean status) { + if(level == null || level.isClientSide) return; + level.setBlockAndUpdate(getBlockPos(), getBlockState().setValue(FILTER, status)); + } +} + \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityOwnable.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityOwnable.java new file mode 100644 index 00000000..a29ab7fa --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityOwnable.java @@ -0,0 +1,63 @@ +package cool.furry.mc.forge.projectexpansion.block.entity; + +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.TagNames; +import cool.furry.mc.forge.projectexpansion.util.Util; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.UUID; + +public class BlockEntityOwnable extends BlockEntity { + public UUID owner = new UUID(0L, 0L); + public String ownerName = ""; + + public BlockEntityOwnable(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + if(tag.hasUUID(TagNames.OWNER)) owner = tag.getUUID(TagNames.OWNER); + if(tag.contains(TagNames.OWNER_NAME, Tag.TAG_STRING)) ownerName = tag.getString(TagNames.OWNER_NAME); + } + + @Override + protected void saveAdditional(CompoundTag tag) { + super.saveAdditional(tag); + tag.putUUID(TagNames.OWNER, owner); + tag.putString(TagNames.OWNER_NAME, ownerName); + } + + public void setOwner(Player player) { + owner = player.getUUID(); + ownerName = player.getScoreboardName(); + Util.markDirty(this); + } + + public enum ActivationType { + DISPLAY_NAME, + CHECK_OWNERSHIP + } + // return true if ownership not checked, or if passed + public boolean handleActivation(Player player, ActivationType activationType) { + switch (activationType) { + case DISPLAY_NAME -> player.displayClientMessage(Component.literal(ownerName), true); + case CHECK_OWNERSHIP -> { + if (!owner.equals(player.getUUID())) { + player.displayClientMessage(Component.translatable("text.projectexpansion.not_owner", Component.literal(ownerName).setStyle(ColorStyle.RED)).setStyle(ColorStyle.RED), true); + return false; + } + } + } + + return true; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityPowerFlower.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityPowerFlower.java new file mode 100644 index 00000000..afe3f469 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityPowerFlower.java @@ -0,0 +1,66 @@ +package cool.furry.mc.forge.projectexpansion.block.entity; + +import cool.furry.mc.forge.projectexpansion.block.BlockPowerFlower; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.PowerFlowerCollector; +import cool.furry.mc.forge.projectexpansion.util.TagNames; +import cool.furry.mc.forge.projectexpansion.util.Util; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.math.BigInteger; + +@SuppressWarnings("unused") +public class BlockEntityPowerFlower extends BlockEntityOwnable { + public BigInteger emc = BigInteger.ZERO; + public BlockEntityPowerFlower(BlockPos pos, BlockState state) { + super(BlockEntityTypes.POWER_FLOWER.get(), pos, state); + } + + @Override + @SuppressWarnings("unused") + public void load(@Nonnull CompoundTag tag) { + super.load(tag); + if (tag.contains(TagNames.STORED_EMC, Tag.TAG_STRING)) emc = new BigInteger(tag.getString((TagNames.STORED_EMC))); + } + + @Override + public void saveAdditional(@Nonnull CompoundTag tag) { + super.saveAdditional(tag); + tag.putString(TagNames.STORED_EMC, emc.toString()); + } + public void wasPlaced(@Nullable LivingEntity livingEntity, ItemStack stack) { + if (livingEntity instanceof Player player) + setOwner(player); + } + + public static void tickServer(Level level, BlockPos pos, BlockState state, BlockEntity blockEntity) { + if (blockEntity instanceof BlockEntityPowerFlower be) be.tickServer(level, pos, state, be); + } + + public void tickServer(Level level, BlockPos pos, BlockState state, BlockEntityPowerFlower blockEntity) { + if (level.isClientSide || (level.getGameTime() % Config.tickDelay.get()) != Util.mod(hashCode(), Config.tickDelay.get())) return; + BigInteger res = ((BlockPowerFlower) getBlockState().getBlock()).getMatter().getPowerFlowerOutputForTicks(Config.tickDelay.get()); + ServerPlayer player = Util.getPlayer(level, owner); + + if (player != null) { + PowerFlowerCollector.add(player, emc.add(res)); + emc = BigInteger.ZERO; + Util.markDirty(this); + } else { + emc = emc.add(res); + Util.markDirty(this); + } + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityRelay.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityRelay.java new file mode 100644 index 00000000..3c8e6c85 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityRelay.java @@ -0,0 +1,120 @@ +package cool.furry.mc.forge.projectexpansion.block.entity; + +import cool.furry.mc.forge.projectexpansion.block.BlockRelay; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.TagNames; +import cool.furry.mc.forge.projectexpansion.util.Util; +import moze_intel.projecte.api.capabilities.PECapabilities; +import moze_intel.projecte.api.capabilities.block_entity.IEmcStorage; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings("unused") +public class BlockEntityRelay extends BlockEntity implements IEmcStorage { + public BigInteger emc = BigInteger.ZERO; + private final LazyOptional emcStorageCapability = LazyOptional.of(() -> this); + public static final Direction[] DIRECTIONS = Direction.values(); + public BlockEntityRelay(BlockPos pos, BlockState state) { + super(BlockEntityTypes.RELAY.get(), pos, state); + } + + @Override + public void load(@Nonnull CompoundTag tag) { + super.load(tag); + if (tag.contains(TagNames.STORED_EMC, Tag.TAG_STRING)) emc = new BigInteger(tag.getString((TagNames.STORED_EMC))); + } + + @Override + public void saveAdditional(@Nonnull CompoundTag tag) { + super.saveAdditional(tag); + tag.putString(TagNames.STORED_EMC, emc.toString()); + } + + public static void tickServer(Level level, BlockPos pos, BlockState state, BlockEntity blockEntity) { + if (blockEntity instanceof BlockEntityRelay be) be.tickServer(level, pos, state, be); + } + + public void tickServer(Level level, BlockPos pos, BlockState state, BlockEntityRelay blockEntity) { + // we can't use the user defined value due to emc duplication possibilities + if ((level.getGameTime() % 20L) != Util.mod(hashCode(), 20)) return; + + BigInteger transfer = ((BlockRelay) getBlockState().getBlock()).getMatter().getRelayTransfer(); + List temp = new ArrayList<>(1); + + for (Direction dir : DIRECTIONS) { + BlockEntity be = level.getBlockEntity(pos.offset(dir.getStepX(), dir.getStepY(), dir.getStepZ())); + if (be == null) continue; + be.getCapability(PECapabilities.EMC_STORAGE_CAPABILITY, dir.getOpposite()).ifPresent((storage) -> { + if (!storage.isRelay() && storage.insertEmc(1L, EmcAction.SIMULATE) > 0L) temp.add(storage); + }); + + } + + emc = Util.spreadEMC(emc, temp, Util.safeLongValue(transfer)); + } + + @Override + public long getStoredEmc() { + return Util.safeLongValue(emc); + } + + @Override + public long getMaximumEmc() { + return Long.MAX_VALUE; + } + + @Override + public long extractEmc(long emc, EmcAction action) { + long v = Math.min(Util.safeLongValue(this.emc), emc); + if (v < 0L) return insertEmc(-v, action); + else if (action.execute()) this.emc = this.emc.subtract(BigInteger.valueOf(v)); + return v; + } + + @Override + public long insertEmc(long emc, EmcAction action) { + long v = Math.min(getMaximumEmc() - Util.safeLongValue(this.emc), emc); + if (v < 0L) return extractEmc(-v, action); + else if (action.execute()) this.emc = this.emc.add(BigInteger.valueOf(v)); + return v; + } + + @Override + public boolean isRelay() { + return true; + } + + public void addBonus() { + if (getBlockState().getBlock() instanceof BlockRelay) Util.stepBigInteger(((BlockRelay) getBlockState().getBlock()).getMatter().getRelayBonus(), (val) -> insertEmc(val, EmcAction.EXECUTE)); + } + + /**************** + * Capabilities * + ****************/ + + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { + return + (cap == PECapabilities.EMC_STORAGE_CAPABILITY) ? emcStorageCapability.cast() : + super.getCapability(cap, side); + } + + @Override + public void invalidateCaps() { + emcStorageCapability.invalidate(); + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityTransmutationInterface.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityTransmutationInterface.java new file mode 100644 index 00000000..2f5800c5 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/BlockEntityTransmutationInterface.java @@ -0,0 +1,180 @@ +package cool.furry.mc.forge.projectexpansion.block.entity; + +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.registries.BlockEntityTypes; +import cool.furry.mc.forge.projectexpansion.util.Util; +import moze_intel.projecte.api.ItemInfo; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import moze_intel.projecte.emc.nbt.NBTManager; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemHandlerHelper; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.math.BigInteger; + +@SuppressWarnings("unused") +public class BlockEntityTransmutationInterface extends BlockEntityNBTFilterable implements IItemHandler { + private final LazyOptional itemHandlerCapability = LazyOptional.of(() -> this); + + private ItemInfo[] info; + + public BlockEntityTransmutationInterface(BlockPos pos, BlockState state) { + super(BlockEntityTypes.TRANSMUTATION_INTERFACE.get(), pos, state); + } + + @Override + public void load(@Nonnull CompoundTag tag) { + super.load(tag); + } + + @Override + public void saveAdditional(@Nonnull CompoundTag tag) { + super.saveAdditional(tag); + } + + @SuppressWarnings("unused") + public void wasPlaced(@Nullable LivingEntity livingEntity, ItemStack stack) { + if (livingEntity instanceof Player player) + setOwner(player); + } + + private ItemInfo[] fetchKnowledge() { + try { + if (info != null) return info; + return info = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner).getKnowledge().toArray(new ItemInfo[0]); + } catch (NullPointerException ignore) { + return new ItemInfo[]{}; + } + } + + private int getMaxCount(int slot) { + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + BigInteger playerEmc = provider.getEmc(); + if (playerEmc.compareTo(BigInteger.ZERO) < 1) return 0; + BigInteger targetItemEmc = BigInteger.valueOf(ProjectEAPI.getEMCProxy().getValue(fetchKnowledge()[slot])); + if (targetItemEmc.compareTo(BigInteger.ZERO) < 1) return 0; + return playerEmc.divide(targetItemEmc).min(BigInteger.valueOf(Math.max(1, Config.transmutationInterfaceItemCount.get()))).intValue(); + } + + public static void tickServer(Level level, BlockPos pos, BlockState state, BlockEntity blockEntity) { + if (blockEntity instanceof BlockEntityTransmutationInterface be) + be.tickServer(level, pos, state, be); + } + + public void tickServer(Level level, BlockPos pos, BlockState state, BlockEntityTransmutationInterface blockEntity) { + info = null; + } + + @Override + public int getSlots() { + return fetchKnowledge().length + 1; + } + + @Nonnull + @Override + public ItemStack getStackInSlot(int slot) { + if (owner == null || Util.getPlayer(owner) == null) return ItemStack.EMPTY; + fetchKnowledge(); + + if (slot <= 0 || info.length < slot) return ItemStack.EMPTY; + int maxCount = getMaxCount(slot - 1); + if (maxCount <= 0) return ItemStack.EMPTY; + + ItemStack item = info[slot - 1].createStack(); + item.setCount(maxCount); + return item; + } + + @Nonnull + @Override + public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { + if (slot != 0 || owner == null || !isItemValid(slot, stack) || stack.isEmpty() || Util.getPlayer(owner) == null) return stack; + + ItemInfo info = ItemInfo.fromStack(stack); + + int count = stack.getCount(); + stack = ItemHandlerHelper.copyStackWithSize(stack, 1); + if (count <= 0) return stack; + + if(getFilterStatus() && !NBTManager.getPersistentInfo(info).equals(info)) return stack; + if (simulate) return ItemStack.EMPTY; + + long emcValue = ProjectEAPI.getEMCProxy().getSellValue(stack); + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + BigInteger totalEmcValue = BigInteger.valueOf(emcValue).multiply(BigInteger.valueOf(count)); + provider.setEmc(provider.getEmc().add(totalEmcValue)); + + ServerPlayer player = Util.getPlayer(level, owner); + if (player != null) { + if (provider.addKnowledge(stack)) provider.syncKnowledgeChange(player, NBTManager.getPersistentInfo(info), true); + provider.syncEmc(player); + } + + return ItemStack.EMPTY; + } + + @Nonnull + @Override + public ItemStack extractItem(int slot, int amount, boolean simulate) { + if (slot <= 0 || owner == null || info.length < slot || Util.getPlayer(owner) == null) return ItemStack.EMPTY; + fetchKnowledge(); + + amount = Math.min(amount, getMaxCount(slot - 1)); + + if (amount <= 0) return ItemStack.EMPTY; + ItemStack item = info[slot - 1].createStack(); + item.setCount(amount); + + if (simulate) return item; + long emcValue = ProjectEAPI.getEMCProxy().getValue(info[slot - 1]); + BigInteger totalEmcCost = BigInteger.valueOf(emcValue).multiply(BigInteger.valueOf(amount)); + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + provider.setEmc(provider.getEmc().subtract(totalEmcCost)); + ServerPlayer player = Util.getPlayer(level, owner); + if (player != null) provider.syncEmc(player); + + return item; + } + + @Override + public int getSlotLimit(int slot) { + return Integer.MAX_VALUE; + } + + @Override + public boolean isItemValid(int slot, @Nonnull ItemStack stack) { + return ProjectEAPI.getEMCProxy().hasValue(stack); + } + + /**************** + * Capabilities * + ****************/ + + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { + return + (cap == ForgeCapabilities.ITEM_HANDLER) ? itemHandlerCapability.cast() : + super.getCapability(cap, side); + } + + @Override + public void invalidateCaps() { + itemHandlerCapability.invalidate(); + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/package-info.java new file mode 100644 index 00000000..cc208963 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/entity/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion.block.entity; + + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/block/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/block/package-info.java new file mode 100644 index 00000000..2f360c7e --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/block/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion.block; + + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/commands/CommandEMC.java b/src/main/java/cool/furry/mc/forge/projectexpansion/commands/CommandEMC.java new file mode 100644 index 00000000..666968a8 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/commands/CommandEMC.java @@ -0,0 +1,189 @@ +package cool.furry.mc.forge.projectexpansion.commands; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.EMCFormat; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.EntityArgument; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.HoverEvent; +import net.minecraft.network.chat.Style; +import net.minecraft.server.level.ServerPlayer; + +import javax.annotation.Nullable; +import java.math.BigInteger; + +public class CommandEMC { + + private enum ActionType { + ADD, + REMOVE, + SET, + GET, + TEST + } + public static void register(CommandDispatcher dispatcher) { + LiteralArgumentBuilder cmd = Commands.literal("emc") + .requires((source) -> source.hasPermission(2)) + .then(Commands.literal("add") + .then(Commands.argument("player", EntityArgument.player()) + .then(Commands.argument("value", StringArgumentType.string()) + .executes((ctx) -> handle(ctx, ActionType.ADD)) + ) + ) + ) + .then(Commands.literal("remove") + .then(Commands.argument("player", EntityArgument.player()) + .then(Commands.argument("value", StringArgumentType.string()) + .executes((ctx) -> handle(ctx, ActionType.REMOVE)) + ) + ) + ) + .then(Commands.literal("set") + .then(Commands.argument("player", EntityArgument.player()) + .then(Commands.argument("value", StringArgumentType.string()) + .executes((ctx) -> handle(ctx, ActionType.SET)) + ) + ) + ) + .then(Commands.literal("test") + .then(Commands.argument("player", EntityArgument.player()) + .then(Commands.argument("value", StringArgumentType.string()) + .executes((ctx) -> handle(ctx, ActionType.TEST)) + ) + ) + ) + .then(Commands.literal("get") + .then(Commands.argument("player", EntityArgument.player()) + .executes((ctx) -> handle(ctx, ActionType.GET)) + ) + ); + + dispatcher.register(cmd); + } + + private static Component getSourceName(CommandSourceStack source) { + try { + return source.getPlayerOrException().getDisplayName(); + } catch (CommandSyntaxException e) { + return Component.translatable("command.projectexpansion.console").setStyle(ColorStyle.RED); + } + } + + private static Component formatEMC(BigInteger value) { + return Component.translatable(EMCFormat.formatForceShort(value)).setStyle(Style.EMPTY.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal(EMCFormat.formatForceLong(value))))).setStyle(ColorStyle.GRAY); + } + + private static boolean compareUUID(CommandSourceStack source, ServerPlayer player) { + try { + return source.getPlayerOrException().getUUID().equals(player.getUUID()); + } catch (CommandSyntaxException e) { + return false; + } + } + + private static int handle(CommandContext ctx, ActionType action) throws CommandSyntaxException { + ServerPlayer player = EntityArgument.getPlayer(ctx, "player"); + if(action == ActionType.GET) { + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(player.getUUID()); + if (compareUUID(ctx.getSource(), player)) ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.get.successSelf", formatEMC(provider.getEmc())), false); + else ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.get.success", player.getDisplayName(), formatEMC(provider.getEmc())), true); + + return 1; + } + String val = StringArgumentType.getString(ctx, "value"); + @Nullable BigInteger value = null; + try { + value = new BigInteger(val); + switch (action) { + case ADD -> { + if (value.compareTo(BigInteger.ZERO) < 0) { + action = ActionType.REMOVE; + value = value.abs(); + } + } + case REMOVE -> { + if (value.compareTo(BigInteger.ZERO) < 0) { + action = ActionType.ADD; + value = value.abs(); + } + } + case SET, TEST -> { + if (value.compareTo(BigInteger.ZERO) < 0) value = null; + } + } + } catch (NumberFormatException ignore) {} + if(value == null) { + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.emc.invalid", val).setStyle(ColorStyle.RED)); + return 0; + } + + int response = 1; + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(player.getUUID()); + BigInteger newEMC = provider.getEmc(); + switch (action) { + case ADD -> { + newEMC = newEMC.add(value); + if (compareUUID(ctx.getSource(), player)) + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.add.successSelf", formatEMC(value), formatEMC(newEMC)).setStyle(ColorStyle.GREEN), false); + else { + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.add.success", formatEMC(value), player.getDisplayName(), formatEMC(newEMC)).setStyle(ColorStyle.GREEN), true); + if (Config.notifyCommandChanges.get()) player.sendSystemMessage(Component.translatable("command.projectexpansion.emc.add.notification", formatEMC(value), getSourceName(ctx.getSource()), formatEMC(newEMC))); + } + } + case REMOVE -> { + newEMC = newEMC.subtract(value); + if (newEMC.compareTo(BigInteger.ZERO) < 0) { + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.emc.remove.negative", formatEMC(value), player.getScoreboardName()).setStyle(ColorStyle.RED)); + return 0; + } + if (compareUUID(ctx.getSource(), player)) + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.remove.successSelf", formatEMC(value), formatEMC(newEMC)).setStyle(ColorStyle.GREEN), false); + else { + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.remove.success", formatEMC(value), player.getScoreboardName(), formatEMC(newEMC)).setStyle(ColorStyle.GREEN), true); + if (Config.notifyCommandChanges.get()) player.sendSystemMessage(Component.translatable("command.projectexpansion.emc.remove.notification", formatEMC(value), getSourceName(ctx.getSource()), formatEMC(newEMC))); + } + } + case SET -> { + newEMC = value; + if (compareUUID(ctx.getSource(), player)) + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.set.successSelf", formatEMC(value), formatEMC(newEMC)).setStyle(ColorStyle.GREEN), false); + else { + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.set.success", player.getDisplayName(), formatEMC(newEMC)).setStyle(ColorStyle.GREEN), true); + if (Config.notifyCommandChanges.get()) player.sendSystemMessage(Component.translatable("command.projectexpansion.emc.set.notification", formatEMC(newEMC), getSourceName(ctx.getSource()))); + } + } + case TEST -> { + boolean canTake = newEMC.compareTo(value) > -1; + if (compareUUID(ctx.getSource(), player)) + if (canTake) { + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.test.successSelf", formatEMC(value)).setStyle(ColorStyle.GREEN), false); + } else { + response = 0; + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.emc.test.failSelf", formatEMC(value)).setStyle(ColorStyle.RED)); + } + else { + if (canTake) + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.emc.test.success", player.getScoreboardName(), formatEMC(value)).setStyle(ColorStyle.GREEN), false); + else { + response = 0; + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.emc.test.fail", player.getScoreboardName(), formatEMC(value)).setStyle(ColorStyle.RED)); + } + } + } + } + if(response == 1 && action != ActionType.TEST) { + provider.setEmc(newEMC); + provider.syncEmc(player); + } + return 1; + } +} \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/commands/CommandKnowledge.java b/src/main/java/cool/furry/mc/forge/projectexpansion/commands/CommandKnowledge.java new file mode 100644 index 00000000..be9eba25 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/commands/CommandKnowledge.java @@ -0,0 +1,163 @@ +package cool.furry.mc.forge.projectexpansion.commands; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import moze_intel.projecte.api.ItemInfo; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import moze_intel.projecte.api.proxy.IEMCProxy; +import moze_intel.projecte.emc.nbt.NBTManager; +import net.minecraft.commands.CommandBuildContext; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.EntityArgument; +import net.minecraft.commands.arguments.item.ItemArgument; +import net.minecraft.network.chat.Component; +import net.minecraft.server.commands.GiveCommand; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; + +public class CommandKnowledge { + private enum ActionType { + LEARN, + UNLEARN, + CLEAR, + TEST + } + public static void register(CommandDispatcher dispatcher, CommandBuildContext buildContext) { + LiteralArgumentBuilder cmd = Commands.literal("knowledge") + .requires((source) -> source.hasPermission(2)) + .then(Commands.literal("clear") + .then(Commands.argument("player", EntityArgument.player()) + .executes((ctx) -> CommandKnowledge.handle(ctx, ActionType.CLEAR)) + ) + ) + .then(Commands.literal("learn") + .then(Commands.argument("player", EntityArgument.player()) + .then(Commands.argument("item", ItemArgument.item(buildContext)) + .executes((ctx) -> CommandKnowledge.handle(ctx, ActionType.LEARN)) + ) + ) + ) + .then(Commands.literal("unlearn") + .then(Commands.argument("player", EntityArgument.player()) + .then(Commands.argument("item", ItemArgument.item(buildContext)) + .executes((ctx) -> CommandKnowledge.handle(ctx, ActionType.UNLEARN)) + ) + ) + ) + .then(Commands.literal("test") + .then(Commands.argument("player", EntityArgument.player()) + .then(Commands.argument("item", ItemArgument.item(buildContext)) + .executes((ctx) -> CommandKnowledge.handle(ctx, ActionType.TEST)) + ) + ) + ); + + dispatcher.register(cmd); + } + + private static Component getSourceName(CommandSourceStack source) { + try { + return source.getPlayerOrException().getDisplayName(); + } catch (CommandSyntaxException e) { + return Component.translatable("command.projectexpansion.console").setStyle(ColorStyle.RED); + } + } + + private static boolean compareUUID(CommandSourceStack source, ServerPlayer player) { + try { + return source.getPlayerOrException().getUUID().equals(player.getUUID()); + } catch (CommandSyntaxException e) { + return false; + } + } + + private static int handle(CommandContext ctx, ActionType action) throws CommandSyntaxException { + ServerPlayer player = EntityArgument.getPlayer(ctx, "player"); + boolean isSelf = compareUUID(ctx.getSource(), player); + if(action == ActionType.CLEAR) { + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(player.getUUID()); + if(provider.getKnowledge().size() == 0) { + if(isSelf) ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.knowledge.clear.failSelf").setStyle(ColorStyle.RED)); + else ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.knowledge.clear.fail", player.getDisplayName()).setStyle(ColorStyle.RED)); + return 0; + } + provider.clearKnowledge(); + provider.sync(player); + if (compareUUID(ctx.getSource(), player)) ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.knowledge.clear.successSelf").setStyle(ColorStyle.GREEN), false); + else { + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.knowledge.clear.success", player.getDisplayName()).setStyle(ColorStyle.GREEN), true); + if(Config.notifyCommandChanges.get()) player.sendSystemMessage(Component.translatable("command.projectexpansion.knowledge.clear.notification", getSourceName(ctx.getSource()))); + } + return 1; + } + Item item = ItemArgument.getItem(ctx, "item").getItem(); + + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(player.getUUID()); + IEMCProxy proxy = ProjectEAPI.getEMCProxy(); + if (!proxy.hasValue(item)) { + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.knowledge.invalid")); + return 0; + } + int response = 1; + switch (action) { + case LEARN -> { + if (!provider.addKnowledge(ItemInfo.fromItem(item))) { + response = 0; + if (isSelf) + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.knowledge.learn.failSelf", new ItemStack(item).getDisplayName()).setStyle(ColorStyle.RED)); + else + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.knowledge.learn.fail", player.getDisplayName(), new ItemStack(item).getDisplayName()).setStyle(ColorStyle.RED)); + } else { + if (isSelf) + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.knowledge.learn.successSelf", new ItemStack(item).getDisplayName()).setStyle(ColorStyle.GREEN), false); + else { + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.knowledge.learn.success", player.getDisplayName(), new ItemStack(item).getDisplayName()).setStyle(ColorStyle.GRAY), true); + if (Config.notifyCommandChanges.get()) + player.sendSystemMessage(Component.translatable("command.projectexpansion.knowledge.learn.notification", new ItemStack(item).getDisplayName(), getSourceName(ctx.getSource())).setStyle(ColorStyle.GRAY)); + } + } + } + case UNLEARN -> { + if (!provider.removeKnowledge(ItemInfo.fromItem(item))) { + response = 0; + if (isSelf) + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.knowledge.unlearn.failSelf", new ItemStack(item).getDisplayName()).setStyle(ColorStyle.RED)); + else + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.knowledge.unlearn.fail", player.getDisplayName(), new ItemStack(item).getDisplayName()).setStyle(ColorStyle.RED)); + } else { + if (isSelf) + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.knowledge.unlearn.successSelf", new ItemStack(item).getDisplayName()).setStyle(ColorStyle.GREEN), false); + else { + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.knowledge.unlearn.success", player.getDisplayName(), new ItemStack(item).getDisplayName()).setStyle(ColorStyle.GRAY), true); + if (Config.notifyCommandChanges.get()) + player.sendSystemMessage(Component.translatable("command.projectexpansion.knowledge.unlearn.notification", new ItemStack(item).getDisplayName(), getSourceName(ctx.getSource())).setStyle(ColorStyle.GRAY)); + } + } + } + case TEST -> { + if (!provider.hasKnowledge(ItemInfo.fromItem(item))) { + response = 0; + if (isSelf) + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.knowledge.test.failSelf", new ItemStack(item).getDisplayName()).setStyle(ColorStyle.RED)); + else + ctx.getSource().sendFailure(Component.translatable("command.projectexpansion.knowledge.test.fail", player.getDisplayName(), new ItemStack(item).getDisplayName()).setStyle(ColorStyle.RED)); + } else { + if (isSelf) + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.knowledge.test.successSelf", new ItemStack(item).getDisplayName()).setStyle(ColorStyle.GREEN), false); + else + ctx.getSource().sendSuccess(Component.translatable("command.projectexpansion.knowledge.test.success", player.getDisplayName(), new ItemStack(item).getDisplayName()).setStyle(ColorStyle.GRAY), false); + } + } + } + if(response == 1 && action != ActionType.TEST) provider.syncKnowledgeChange(player, NBTManager.getPersistentInfo(ItemInfo.fromItem(item)), true); + + return response; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/commands/CommandRegistry.java b/src/main/java/cool/furry/mc/forge/projectexpansion/commands/CommandRegistry.java new file mode 100644 index 00000000..5c873a42 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/commands/CommandRegistry.java @@ -0,0 +1,19 @@ +package cool.furry.mc.forge.projectexpansion.commands; + +import com.mojang.brigadier.CommandDispatcher; +import net.minecraft.commands.CommandBuildContext; +import net.minecraft.commands.CommandSourceStack; +import net.minecraftforge.event.RegisterCommandsEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE) +public class CommandRegistry { + @SubscribeEvent + public static void onRegisterCommandsEvent(RegisterCommandsEvent event) { + CommandDispatcher dispatcher = event.getDispatcher(); + CommandBuildContext buildContext = event.getBuildContext(); + CommandEMC.register(dispatcher); + CommandKnowledge.register(dispatcher, buildContext); + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/commands/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/commands/package-info.java new file mode 100644 index 00000000..25febee5 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/commands/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion.commands; + + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/config/Config.java b/src/main/java/cool/furry/mc/forge/projectexpansion/config/Config.java new file mode 100644 index 00000000..e342e6be --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/config/Config.java @@ -0,0 +1,28 @@ +package cool.furry.mc.forge.projectexpansion.config; + +import net.minecraftforge.common.ForgeConfigSpec; + +public final class Config { + public static final ForgeConfigSpec.Builder Builder = new ForgeConfigSpec.Builder(); + public static final ForgeConfigSpec Spec; + public static final ForgeConfigSpec.ConfigValue tickDelay = Builder.translation("gui.projectexpansion.config.tick_delay.desc").define("tickDelay", 20); + public static final ForgeConfigSpec.ConfigValue formatEMC = Builder.translation("gui.projectexpansion.config.format_emc.desc").define("formatEMC", true); + public static final ForgeConfigSpec.ConfigValue fullNumberNames = Builder.translation("gui.projectexpansion.config.full_number_names.desc").define("fullNumberNames", true); + public static final ForgeConfigSpec.ConfigValue emcDisplay = Builder.translation("gui.projectexpansion.config.emc_display.desc").define("emcDisplay", true); + public static final ForgeConfigSpec.ConfigValue notifyCommandChanges = Builder.translation("gui.projectexpansion.config.notify_command_changes.desc").define("notifyCommandChanges", true); + public static final ForgeConfigSpec.ConfigValue notifyKnowledgeBookGains = Builder.translation("gui.projectexpansion.config.notify_knowledge_book_gains.desc").define("notifyKnowledgeBookGains", true); + public static final ForgeConfigSpec.ConfigValue limitEmcLinkVendor = Builder.translation("gui.projectexpansion.config.limit_emc_link_vendor.desc").define("limitEmcLinkVendor", true); + public static final ForgeConfigSpec.ConfigValue transmutationInterfaceItemCount = Builder.translation("gui.projectexpansion.config.transmutation_interface_item_count.desc").define("transmutationInterfaceItemCount", 2147483647); + public static final ForgeConfigSpec.ConfigValue useOldValues = Builder.translation("gui.projectexpansion.config.use_old_values.desc").define("useOldValues", false); + public static final ForgeConfigSpec.ConfigValue collectorMultiplier = Builder.translation("gui.projectexpansion.config.collector_multiplier.desc").define("collectorMultiplier", 1); + public static final ForgeConfigSpec.ConfigValue emcLinkItemLimitMultiplier = Builder.translation("gui.projectexpansion.config.emc_link_item_limit_multiplier.desc").define("emcLinkItemLimitMultiplier", 1); + public static final ForgeConfigSpec.ConfigValue emcLinkFluidLimitMultiplier = Builder.translation("gui.projectexpansion.config.emc_link_fluid_limit_multiplier.desc").define("emcLinkFluidLimitMultiplier", 1); + public static final ForgeConfigSpec.ConfigValue emcLinkEMCLimitMultiplier = Builder.translation("gui.projectexpansion.config.emc_link_emc_limit_multiplier.desc").define("emcLinkEMCLimitMultiplier", 1); + public static final ForgeConfigSpec.ConfigValue powerflowerMultiplier = Builder.translation("gui.projectexpansion.config.powerflower_multiplier.desc").define("powerflowerMultiplier", 1); + public static final ForgeConfigSpec.ConfigValue relayBonusMultiplier = Builder.translation("gui.projectexpansion.config.relay_bonus_multiplier.desc").define("relayBonusMultiplier", 1); + public static final ForgeConfigSpec.ConfigValue relayTransferMultiplier = Builder.translation("gui.projectexpansion.config.relay_transfer_multiplier.desc").define("relayTransferMultiplier", 1); + public static final ForgeConfigSpec.ConfigValue infiniteFuelCost = Builder.translation("gui.projectexpansion.config.infinite_fuel_cost.desc").define("infiniteFuelCost", 128); + public static final ForgeConfigSpec.ConfigValue infiniteFuelBurnTime = Builder.translation("gui.projectexpansion.config.infinite_fuel_burn_time.desc").define("infiniteFuelBurnTime", 1600); + public static final ForgeConfigSpec.ConfigValue infiniteSteakCost = Builder.translation("gui.projectexpansion.config.infinite_steak_cost.desc").define("infiniteSteakCost", 64); + static { Spec = Builder.build(); } +} \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/config/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/config/package-info.java new file mode 100644 index 00000000..ebb7f30c --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/config/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion.config; + + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/enchantments/EnchantmentAlchemicalCollection.java b/src/main/java/cool/furry/mc/forge/projectexpansion/enchantments/EnchantmentAlchemicalCollection.java new file mode 100644 index 00000000..ea1690e5 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/enchantments/EnchantmentAlchemicalCollection.java @@ -0,0 +1,21 @@ +package cool.furry.mc.forge.projectexpansion.enchantments; + +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentCategory; + +public class EnchantmentAlchemicalCollection extends Enchantment { + public EnchantmentAlchemicalCollection() { + super(Rarity.RARE, EnchantmentCategory.DIGGER, new EquipmentSlot[]{EquipmentSlot.MAINHAND}); + } + + @Override + public int getMinCost(int level) { + return 15; + } + + @Override + public int getMaxCost(int level) { + return getMinCost(level) + 50; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/enchantments/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/enchantments/package-info.java new file mode 100644 index 00000000..7fdfdce6 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/enchantments/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion.enchantments; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/gui/EMCDisplay.java b/src/main/java/cool/furry/mc/forge/projectexpansion/gui/EMCDisplay.java new file mode 100644 index 00000000..f4304dfa --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/gui/EMCDisplay.java @@ -0,0 +1,77 @@ +package cool.furry.mc.forge.projectexpansion.gui; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.util.EMCFormat; +import moze_intel.projecte.api.capabilities.PECapabilities; +import net.minecraft.ChatFormatting; +import net.minecraft.client.Minecraft; +import net.minecraft.client.player.LocalPlayer; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.event.ClientPlayerNetworkEvent; +import net.minecraftforge.client.event.CustomizeGuiOverlayEvent; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.event.level.LevelEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +import javax.annotation.Nullable; +import java.math.BigInteger; + +@OnlyIn(Dist.CLIENT) +@Mod.EventBusSubscriber(modid = Main.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) +public class EMCDisplay { + private static BigInteger emc = BigInteger.ZERO; + private static final BigInteger[] history = new BigInteger[]{BigInteger.ZERO, BigInteger.ZERO}; + private static BigInteger lastEMC = BigInteger.ZERO; + private static int tick = 0; + + private static @Nullable + LocalPlayer getPlayer() { + return Minecraft.getInstance().player; + } + + @SubscribeEvent + public static void onTick(TickEvent.ClientTickEvent event) { + if (!Config.emcDisplay.get()) return; + LocalPlayer player = getPlayer(); + tick++; + if (event.phase == TickEvent.Phase.END && player != null && tick >= 20) { + tick = 0; + player.getCapability(PECapabilities.KNOWLEDGE_CAPABILITY).ifPresent((provider) -> { + emc = provider.getEmc(); + history[1] = history[0]; + history[0] = emc.subtract(lastEMC); + lastEMC = emc; + }); + } + } + + private static void reset() { + emc = lastEMC = BigInteger.ZERO; + tick = 0; + } + + @SubscribeEvent + public static void clientDisconnect(ClientPlayerNetworkEvent.LoggingOut event) { + if (!Config.emcDisplay.get()) return; + reset(); + } + + @SubscribeEvent + public static void onWorldUnload(LevelEvent.Unload event) { + if (!Config.emcDisplay.get()) return; + reset(); + } + + @SubscribeEvent + public static void onRenderGUI(CustomizeGuiOverlayEvent.DebugText event) { + if (!Config.emcDisplay.get()) return; + BigInteger avg = history[0].add(history[1]); + String str = EMCFormat.format(emc); + if (!avg.equals(BigInteger.ZERO)) str += " " + (avg.compareTo(BigInteger.ZERO) > 0 ? (ChatFormatting.GREEN + "+") : (ChatFormatting.RED + "-")) + EMCFormat.format(avg.abs()) + "/s"; + event.getLeft().add(String.format("EMC: %s", str)); + } +} + diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/gui/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/gui/package-info.java new file mode 100644 index 00000000..c58147a0 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/gui/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion.gui; + + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemColossalStar.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemColossalStar.java new file mode 100644 index 00000000..653f8289 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemColossalStar.java @@ -0,0 +1,24 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.util.Star; +import net.minecraft.world.item.ItemStack; + +import javax.annotation.Nonnull; + +public class ItemColossalStar extends ItemMagnumStar { + public ItemColossalStar(Star t) { + super(t, 2); + } + + @Override + public long getMaximumEmc(@Nonnull ItemStack stack) { + return STAR_EMC[tier.ordinal() + 6]; + } + + @Override + public float getWidthForBar(ItemStack stack) { + long starEmc = getEmc(stack); + return starEmc == 0L ? 1.0F : (float)(1.0 - (double)starEmc / (double) getMaximumEmc(stack)); + } +} + diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemCompressedEnergyCollector.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemCompressedEnergyCollector.java new file mode 100644 index 00000000..7b8d42cb --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemCompressedEnergyCollector.java @@ -0,0 +1,35 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.Matter; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nullable; +import java.util.List; + +public class ItemCompressedEnergyCollector extends Item { + public final Matter matter; + public ItemCompressedEnergyCollector(Matter matter) { + super(new Properties().tab(Main.tab).rarity(matter.rarity)); + this.matter = matter; + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("item.projectexpansion.compressed_collector.tooltip").setStyle(ColorStyle.GRAY)); + } + + @Override + public boolean isFoil(ItemStack stack) { + return true; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemFinalStar.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemFinalStar.java new file mode 100644 index 00000000..a13678b0 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemFinalStar.java @@ -0,0 +1,35 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nullable; +import java.util.List; + +public class ItemFinalStar extends Item { + public ItemFinalStar() { + super(new Properties().stacksTo(1).rarity(Rarity.EPIC).tab(Main.tab)); + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("item.projectexpansion.final_star.tooltip").setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("text.projectexpansion.see_wiki").setStyle(ColorStyle.AQUA)); + } + + @Override + public boolean isFoil(ItemStack stack) { + return true; + } +} + diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemFinalStarShard.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemFinalStarShard.java new file mode 100644 index 00000000..70fdc334 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemFinalStarShard.java @@ -0,0 +1,30 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nullable; +import java.util.List; + +public class ItemFinalStarShard extends Item { + public ItemFinalStarShard() { + super(new Properties().stacksTo(1).rarity(Rarity.EPIC).tab(Main.tab)); + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("item.projectexpansion.final_star.tooltip").setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("text.projectexpansion.see_wiki").setStyle(ColorStyle.AQUA)); + } +} + diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemFuel.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemFuel.java new file mode 100644 index 00000000..d531b28d --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemFuel.java @@ -0,0 +1,24 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.util.Fuel; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeType; + +import javax.annotation.Nullable; + +public class ItemFuel extends Item { + private final Fuel level; + public ItemFuel(Fuel level) { + super(new Properties().tab(Main.tab).rarity(level.rarity)); + this.level = level; + + } + + + @Override + public int getBurnTime(ItemStack stack, @Nullable RecipeType recipeType) { + return level.getBurnTime(recipeType); + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemInfiniteFuel.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemInfiniteFuel.java new file mode 100644 index 00000000..33183fba --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemInfiniteFuel.java @@ -0,0 +1,63 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.EMCFormat; +import cool.furry.mc.forge.projectexpansion.util.Util; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nullable; +import java.math.BigInteger; +import java.util.List; +import java.util.UUID; + +public class ItemInfiniteFuel extends Item { + + public ItemInfiniteFuel() { + super(new Properties().stacksTo(1).rarity(Rarity.RARE).tab(Main.tab)); + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("item.projectexpansion.infinite_fuel.tooltip").setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("text.projectexpansion.cost", EMCFormat.getComponent(Config.infiniteFuelCost.get()).setStyle(ColorStyle.GRAY)).setStyle(ColorStyle.RED)); + } + + @Override + public int getBurnTime(ItemStack stack, @Nullable RecipeType recipeType) { + @Nullable UUID owner = stack.getTag() == null ? null : stack.getTag().getUUID("Owner"); + if (owner == null) return 0; + return (Config.infiniteFuelCost.get() == 0 || Config.infiniteFuelBurnTime.get() == 0) ? 0 : ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner).getEmc().compareTo(BigInteger.valueOf(Config.infiniteFuelCost.get())) < 0 ? 0 : Config.infiniteFuelBurnTime.get(); + } + + @Override + public boolean hasCraftingRemainingItem(ItemStack stack) { + return true; + } + + @Override + public ItemStack getCraftingRemainingItem(ItemStack stack) { + @Nullable UUID owner = stack.getTag() == null ? null : stack.getTag().getUUID("Owner"); + if (owner == null) + return stack; + ServerPlayer player = Util.getPlayer(owner); + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + provider.setEmc(provider.getEmc().subtract(BigInteger.valueOf(Config.infiniteFuelCost.get()))); + if (player != null) provider.syncEmc(player); + return stack; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemInfiniteSteak.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemInfiniteSteak.java new file mode 100644 index 00000000..bbb6a40e --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemInfiniteSteak.java @@ -0,0 +1,78 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.EMCFormat; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.food.FoodProperties; +import net.minecraft.world.item.*; +import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nullable; +import java.math.BigInteger; +import java.util.List; + +public class ItemInfiniteSteak extends Item { + + public ItemInfiniteSteak() { + super(new Properties().stacksTo(1).rarity(Rarity.RARE).tab(Main.tab)); + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("item.projectexpansion.infinite_steak.tooltip").setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("text.projectexpansion.cost", EMCFormat.getComponent(Config.infiniteSteakCost.get()).setStyle(ColorStyle.GRAY)).setStyle(ColorStyle.RED)); + } + + @Override + public int getUseDuration(ItemStack stack) { + return Items.COOKED_BEEF.getUseDuration(stack); + } + + @Override + public boolean isEdible() { + return true; + } + + @org.jetbrains.annotations.Nullable + @Override + public FoodProperties getFoodProperties(ItemStack stack, @Nullable LivingEntity entity) { + return Items.COOKED_BEEF.getFoodProperties(stack, entity); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + // TODO: wolves??? + if (!player.canEat(false) || Config.infiniteSteakCost.get() == 0 || ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(player.getUUID()).getEmc().compareTo(BigInteger.valueOf(Config.infiniteSteakCost.get())) < 0) return InteractionResultHolder.fail(stack); + player.startUsingItem(hand); + return InteractionResultHolder.sidedSuccess(stack, level.isClientSide); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity entity) { + if (!(entity instanceof ServerPlayer player) || level.isClientSide) return stack; + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(player.getUUID()); + BigInteger emc = provider.getEmc().subtract(BigInteger.valueOf(Config.infiniteSteakCost.get())); + if (emc.compareTo(BigInteger.ZERO) < 0) { + player.displayClientMessage(Component.translatable("item.projectexpansion.infinite_steak.not_enough_emc", Component.literal(Config.infiniteSteakCost.get().toString())).setStyle(ColorStyle.RED), true); + return stack; + } + provider.setEmc(emc); + provider.syncEmc(player); + player.eat(level, new ItemStack(Items.COOKED_BEEF)); + return stack; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemKnowledgeSharingBook.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemKnowledgeSharingBook.java new file mode 100644 index 00000000..a8a535ff --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemKnowledgeSharingBook.java @@ -0,0 +1,119 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.registries.SoundEvents; +import cool.furry.mc.forge.projectexpansion.util.ColorStyle; +import cool.furry.mc.forge.projectexpansion.util.TagNames; +import moze_intel.projecte.api.ItemInfo; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import net.minecraft.core.particles.ItemParticleOption; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; + +import javax.annotation.Nullable; +import java.util.List; +import java.util.UUID; + +public class ItemKnowledgeSharingBook extends Item { + public ItemKnowledgeSharingBook() { + super(new Properties().stacksTo(1).rarity(Rarity.RARE).tab(Main.tab)); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + if(player.isCrouching()) { + if(!level.isClientSide) { + CompoundTag nbt = stack.getOrCreateTag(); + nbt.putUUID(TagNames.OWNER, player.getUUID()); + nbt.putString(TagNames.OWNER_NAME, player.getScoreboardName()); + level.playSound(null, player.position().x, player.position().y, player.position().z, SoundEvents.KNOWLEDGE_SHARING_BOOK_STORE.get(), SoundSource.PLAYERS, 0.8F, 0.8F + level.random.nextFloat() * 0.4F); + player.displayClientMessage(Component.translatable("item.projectexpansion.knowledge_sharing_book.stored").setStyle(ColorStyle.GREEN), true); + } + + return InteractionResultHolder.sidedSuccess(stack, level.isClientSide); + } else { + CompoundTag nbt = stack.getOrCreateTag(); + if(nbt.hasUUID(TagNames.OWNER)) { + UUID owner = nbt.getUUID(TagNames.OWNER); + if(player.getUUID().equals(nbt.getUUID(TagNames.OWNER))) { + player.displayClientMessage(Component.translatable("item.projectexpansion.knowledge_sharing_book.self").setStyle(ColorStyle.RED), true); + return InteractionResultHolder.fail(stack); + } + if(!level.isClientSide) { + IKnowledgeProvider ownerProvider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner); + IKnowledgeProvider learnerProvider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(player.getUUID()); + long learned = 0; + for(ItemInfo info : ownerProvider.getKnowledge()) { + if(!learnerProvider.hasKnowledge(info)) { + if(Config.notifyKnowledgeBookGains.get() && learned < 100) { + player.sendSystemMessage(Component.translatable("item.projectexpansion.knowledge_sharing_book.learned", info.createStack().getDisplayName()).setStyle(ColorStyle.GREEN)); + } + learnerProvider.addKnowledge(info); + learned++; + } + } + nbt.putLong(TagNames.LAST_USED, level.getGameTime()); + nbt.putLong(TagNames.KNOWLEDGE_GAINED, learned); + if(learned > 0) { + learnerProvider.sync((ServerPlayer) player); + if(learned > 100) { + player.sendSystemMessage(Component.translatable("item.projectexpansion.knowledge_sharing_book.learned_over_100", learned - 100).setStyle(ColorStyle.GREEN)); + } + player.displayClientMessage(Component.translatable("item.projectexpansion.knowledge_sharing_book.learned_total", learned, Component.literal(nbt.getString(TagNames.OWNER_NAME)).setStyle(ColorStyle.AQUA)).setStyle(ColorStyle.GREEN), true); + level.playSound(null, player.position().x, player.position().y, player.position().z, SoundEvents.KNOWLEDGE_SHARING_BOOK_USE.get(), SoundSource.PLAYERS, 0.8F, 0.8F + level.random.nextFloat() * 0.4F); + } else { + player.displayClientMessage(Component.translatable("item.projectexpansion.knowledge_sharing_book.no_new_knowledge").setStyle(ColorStyle.RED), true); + level.playSound(null, player.position().x, player.position().y, player.position().z, SoundEvents.KNOWLEDGE_SHARING_BOOK_USE_NONE.get(), SoundSource.PLAYERS, 0.8F, 0.8F + level.random.nextFloat() * 0.4F); + } + } else { + long gained = nbt.getLong(TagNames.KNOWLEDGE_GAINED); + for(int i = 0; i < 5; i++) { + Vec3 v1 = new Vec3(((double) level.random.nextFloat() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D) + .xRot(-player.getRotationVector().x * 0.017453292F) + .yRot(-player.getRotationVector().y * 0.017453292F); + Vec3 v2 = new Vec3(((double) level.random.nextFloat() - 0.5D) * 0.3D, (double) (-level.random.nextFloat()) * 0.6D - 0.3D, 0.6D) + .xRot(-player.getRotationVector().x * 0.017453292F) + .yRot(-player.getRotationVector().y * 0.017453292F) + .add(player.position().x, player.position().y + (double) player.getEyeHeight(), player.position().z); + level.addParticle(gained > 0 ? new ItemParticleOption(ParticleTypes.ITEM, stack) : ParticleTypes.SMOKE, v2.x, v2.y, v2.z, v1.x, v1.y + 0.05D, v1.z); + } + } + + stack.shrink(1); + return InteractionResultHolder.sidedSuccess(stack, level.isClientSide); + } else { + player.displayClientMessage(Component.translatable("item.projectexpansion.knowledge_sharing_book.no_owner").setStyle(ColorStyle.RED), true); + return InteractionResultHolder.fail(stack); + } + } + } + + @Override + public boolean isFoil(ItemStack stack) { + return stack.getOrCreateTag().hasUUID(TagNames.OWNER); + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltip, TooltipFlag flag) { + super.appendHoverText(stack, level, tooltip, flag); + CompoundTag nbt = stack.getOrCreateTag(); + if(nbt.hasUUID(TagNames.OWNER)) { + tooltip.add(Component.translatable("item.projectexpansion.knowledge_sharing_book.selected", Component.literal(nbt.getString(TagNames.OWNER_NAME)).setStyle(ColorStyle.AQUA)).setStyle(ColorStyle.GRAY)); + } + } +} \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemMagnumStar.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemMagnumStar.java new file mode 100644 index 00000000..c3019951 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemMagnumStar.java @@ -0,0 +1,96 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.util.Star; +import moze_intel.projecte.api.capabilities.block_entity.IEmcStorage; +import moze_intel.projecte.api.capabilities.item.IItemEmcHolder; +import moze_intel.projecte.capability.EmcHolderItemCapabilityWrapper; +import moze_intel.projecte.gameObjs.items.IBarHelper; +import moze_intel.projecte.gameObjs.items.ItemPE; +import moze_intel.projecte.integration.IntegrationHelper; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nonnull; + +public class ItemMagnumStar extends ItemPE implements IItemEmcHolder, IBarHelper { + public static final long[] STAR_EMC = new long[12]; + + static { + long emc = 204_800_000L; + + for (int i = 0; i < STAR_EMC.length; i++) { + STAR_EMC[i] = emc; + emc *= 4L; + } + } + + public final Star tier; + public final int type; + + public ItemMagnumStar(Star tier) { this(tier, 1); } + public ItemMagnumStar(Star tier, int type) { + super(new Properties().stacksTo(1).tab(Main.tab).rarity(tier == Star.OMEGA ? Rarity.EPIC : type == 1 ? Rarity.UNCOMMON : Rarity.RARE)); + + this.tier = tier; + this.type = type; + addItemCapability(EmcHolderItemCapabilityWrapper::new); + addItemCapability("curios", IntegrationHelper.CURIO_CAP_SUPPLIER); + } + + @Override + public boolean isBarVisible(@NotNull ItemStack stack) { + return stack.hasTag(); + } + + @Override + public float getWidthForBar(ItemStack stack) { + long starEmc = getEmc(stack); + return starEmc == 0L ? 1.0F : (float)(1.0 - (double)starEmc / (double) getMaximumEmc(stack)); + } + + @Override + public int getBarWidth(@NotNull ItemStack stack) { + return getScaledBarWidth(stack); + } + + @Override + public int getBarColor(@NotNull ItemStack stack) { + return getColorForBar(stack); + } + + @Override + public long insertEmc(@Nonnull ItemStack stack, long toInsert, IEmcStorage.EmcAction action) { + if (toInsert < 0L) return extractEmc(stack, -toInsert, action); + else { + long toAdd = Math.min(getNeededEmc(stack), toInsert); + if (action.execute()) addEmcToStack(stack, toAdd); + + return toAdd; + } + } + + @Override + public long extractEmc(@Nonnull ItemStack stack, long toExtract, IEmcStorage.EmcAction action) { + if (toExtract < 0L) + return insertEmc(stack, -toExtract, action); + else { + long storedEmc = getStoredEmc(stack); + long toRemove = Math.min(storedEmc, toExtract); + if (action.execute()) setEmc(stack, storedEmc - toRemove); + return toRemove; + } + } + + @Override + public long getStoredEmc(@Nonnull ItemStack stack) { + return getEmc(stack); + } + + @Override + public long getMaximumEmc(@Nonnull ItemStack stack) { + return STAR_EMC[tier.ordinal()]; + } +} + diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemMatterUpgrader.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemMatterUpgrader.java new file mode 100644 index 00000000..8ebf610b --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/ItemMatterUpgrader.java @@ -0,0 +1,143 @@ +package cool.furry.mc.forge.projectexpansion.item; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityCollector; +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityEMCLink; +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityPowerFlower; +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityRelay; +import cool.furry.mc.forge.projectexpansion.util.*; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import moze_intel.projecte.api.proxy.IEMCProxy; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nullable; +import java.math.BigInteger; +import java.util.List; +import java.util.Objects; +import java.util.UUID; + +public class ItemMatterUpgrader extends Item { + public ItemMatterUpgrader() { + super(new Properties().tab(Main.tab)); + } + + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { + super.appendHoverText(stack, level, list, flag); + list.add(Component.translatable("item.projectexpansion.matter_upgrader.tooltip").setStyle(ColorStyle.GRAY)); + list.add(Component.translatable("item.projectexpansion.matter_upgrader.tooltip2").setStyle(ColorStyle.GREEN)); + list.add(Component.translatable("item.projectexpansion.matter_upgrader.tooltip_creative").setStyle(ColorStyle.RED)); + } + + @Override + public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { + @Nullable Player player = context.getPlayer(); + BlockPos pos = context.getClickedPos(); + Level level = context.getLevel(); + + if (level.isClientSide || player == null) return InteractionResult.PASS; + + BlockEntity tile = level.getBlockEntity(pos); + Block block = level.getBlockState(pos).getBlock(); + + Matter matter; + Matter upgradeTo; + if (block instanceof IHasMatter) { + matter = ((IHasMatter) block).getMatter(); + upgradeTo = matter.next(); + } else return InteractionResult.PASS; + + if (matter == Matter.FINAL) { + player.displayClientMessage(Component.translatable("item.projectexpansion.matter_upgrader.max_upgrade").setStyle(ColorStyle.RED), true); + return InteractionResult.FAIL; + } + + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(player.getUUID()); + IEMCProxy proxy = ProjectEAPI.getEMCProxy(); + + @Nullable BlockItem upgrade = null; + @Nullable Block upgradeBlock = null; + @Nullable UUID owner = null; + @Nullable String ownerName = null; + @Nullable BigInteger emc = null; + + if (tile instanceof BlockEntityCollector) { + upgrade = Objects.requireNonNull(upgradeTo.getCollectorItem()); + upgradeBlock = Objects.requireNonNull(upgradeTo.getCollector()); + } + + if (tile instanceof BlockEntityPowerFlower blockEntityPowerFlower) { + upgrade = Objects.requireNonNull(upgradeTo.getPowerFlowerItem()); + upgradeBlock = Objects.requireNonNull(upgradeTo.getPowerFlower()); + owner = blockEntityPowerFlower.owner; + ownerName = blockEntityPowerFlower.ownerName; + emc = blockEntityPowerFlower.emc; + if (owner == null) return InteractionResult.FAIL; + if (owner != player.getUUID()) { + player.displayClientMessage(Component.translatable("item.projectexpansion.matter_upgrader.not_owner").setStyle(ColorStyle.RED), true); + return InteractionResult.FAIL; + } + } + + if (tile instanceof BlockEntityRelay) { + upgrade = Objects.requireNonNull(upgradeTo.getRelayItem()); + upgradeBlock = Objects.requireNonNull(upgradeTo.getRelay()); + } + + if (tile instanceof BlockEntityEMCLink) { + upgrade = Objects.requireNonNull(upgradeTo.getEMCLinkItem()); + upgradeBlock = Objects.requireNonNull(upgradeTo.getEMCLink()); + } + + if (!provider.hasKnowledge(new ItemStack(upgrade)) && !player.isCreative()) { + player.displayClientMessage(Component.translatable("item.projectexpansion.matter_upgrader.not_learned", Component.translatable(Objects.requireNonNull(upgrade).toString())).setStyle(ColorStyle.RED), true); + return InteractionResult.FAIL; + } + + long prevValue = proxy.getValue(block); + long emcValue = proxy.getValue(Objects.requireNonNull(upgrade)); + long diff = emcValue - prevValue; + if (player.isCreative()) diff = 0; + BigInteger newEmc = provider.getEmc().subtract(BigInteger.valueOf(diff)); + if (newEmc.compareTo(BigInteger.ZERO) < 0) { + player.displayClientMessage(Component.translatable("item.projectexpansion.matter_upgrader.not_enough_emc", EMCFormat.format(BigInteger.valueOf(diff))).setStyle(ColorStyle.RED), true); + return InteractionResult.FAIL; + } + + level.removeBlock(pos, false); + BlockState state = upgradeBlock.defaultBlockState(); + level.setBlockAndUpdate(pos, state); + + if (tile instanceof BlockEntityPowerFlower) { + if (ownerName == null || emc == null) return InteractionResult.FAIL; + + BlockEntityPowerFlower newTile = new BlockEntityPowerFlower(pos, state); + newTile.owner = owner; + newTile.ownerName = ownerName; + newTile.emc = emc; + level.removeBlockEntity(pos); + level.setBlockEntity(newTile); + Util.markDirty(level, pos); + } + + provider.setEmc(newEmc); + player.displayClientMessage(Component.translatable("item.projectexpansion.matter_upgrader.done", EMCFormat.format(BigInteger.valueOf(diff))).setStyle(ColorStyle.WHITE), true); + return InteractionResult.SUCCESS; + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/item/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/item/package-info.java new file mode 100644 index 00000000..2da49f95 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/item/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion.item; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/DeleteWeebShitMixin.java b/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/DeleteWeebShitMixin.java new file mode 100644 index 00000000..2e1f0a70 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/DeleteWeebShitMixin.java @@ -0,0 +1,28 @@ +package cool.furry.mc.forge.projectexpansion.mixin; + +import com.mojang.blaze3d.vertex.PoseStack; +import moze_intel.projecte.rendering.LayerYue; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraftforge.fml.loading.FMLEnvironment; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.UUID; + +// this removes the "yue" from players that aren't sin or their gf when in development (because it's always shown in development, thanks for that sin) +@Mixin(LayerYue.class) +@SuppressWarnings("unused") +public class DeleteWeebShitMixin { + @Inject(at = @At("HEAD"), method = "render(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;ILnet/minecraft/client/player/AbstractClientPlayer;FFFFFF)V", remap = false, cancellable = true) + public void render(PoseStack matrix, MultiBufferSource renderer, int light, AbstractClientPlayer player, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, CallbackInfo ci) { + if(!FMLEnvironment.production && !player.getUUID().equals(SIN_UUID) && !player.getUUID().equals(CLAR_UUID)) ci.cancel(); + } + + @Shadow(remap = false) @Final private static UUID SIN_UUID; + @Shadow(remap = false) @Final private static UUID CLAR_UUID; +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/EMCFormatterMixin.java b/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/EMCFormatterMixin.java new file mode 100644 index 00000000..5aa1d5d1 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/EMCFormatterMixin.java @@ -0,0 +1,18 @@ +package cool.furry.mc.forge.projectexpansion.mixin; + +import cool.furry.mc.forge.projectexpansion.util.EMCFormat; +import moze_intel.projecte.utils.Constants; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.text.NumberFormat; + +@Mixin(Constants.class) +public class EMCFormatterMixin { + @Inject(at = @At("HEAD"), method="getFormatter()Ljava/text/NumberFormat;", cancellable = true, remap = false) + private static void getFormatter(CallbackInfoReturnable cir) { + cir.setReturnValue(EMCFormat.INSTANCE); + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/EnchantmentMixin.java b/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/EnchantmentMixin.java new file mode 100644 index 00000000..fc070c9c --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/EnchantmentMixin.java @@ -0,0 +1,67 @@ +package cool.furry.mc.forge.projectexpansion.mixin; + +import cool.furry.mc.forge.projectexpansion.registries.Enchantments; +import moze_intel.projecte.api.ItemInfo; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import moze_intel.projecte.api.proxy.IEMCProxy; +import moze_intel.projecte.emc.nbt.NBTManager; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicLong; +import java.util.stream.Collectors; + +@Mixin(Block.class) +public abstract class EnchantmentMixin { + @Inject(at = @At("RETURN"), method = "getDrops(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/entity/BlockEntity;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/item/ItemStack;)Ljava/util/List;", cancellable = true) + private static void getDrops(BlockState state, ServerLevel level, BlockPos pos, BlockEntity blockEntity, Entity entity, ItemStack stack, CallbackInfoReturnable> cir) { + if(!(entity instanceof ServerPlayer player)) return; + IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(player.getUUID()); + IEMCProxy proxy = ProjectEAPI.getEMCProxy(); + boolean hasEnch = EnchantmentHelper.getTagEnchantmentLevel(Enchantments.ALCHEMICAL_COLLECTION.get(), stack) > 0; + if(!state.canHarvestBlock(level, pos, player) || !hasEnch) return; + List initialDrops = cir.getReturnValue(); + AtomicLong addEMC = new AtomicLong(); + List knowledgeAdditions = new ArrayList<>(); + List newDrops = initialDrops.stream() + .map(drop -> { + if(proxy.hasValue(drop)) { + addEMC.addAndGet(proxy.getValue(drop)); + if(!provider.hasKnowledge(drop)) knowledgeAdditions.add(drop); + return null; + } else return drop; + }) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + if (newDrops.size() < initialDrops.size() || addEMC.get() > 0) { + provider.setEmc(provider.getEmc().add(BigInteger.valueOf(addEMC.get()))); + if(knowledgeAdditions.size() > 0) { + knowledgeAdditions.forEach(knowledge -> { + if(provider.addKnowledge(knowledge)) provider.syncKnowledgeChange(player, NBTManager.getPersistentInfo(ItemInfo.fromStack(stack)), true); + }); + } + provider.syncEmc(player); + level.playSound(null, pos, SoundEvents.BLAZE_SHOOT, SoundSource.BLOCKS, 1f, 0.75f); + cir.setReturnValue(newDrops); + } + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/PhilosophersStoneMixin.java b/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/PhilosophersStoneMixin.java new file mode 100644 index 00000000..b05ba0bc --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/mixin/PhilosophersStoneMixin.java @@ -0,0 +1,41 @@ +package cool.furry.mc.forge.projectexpansion.mixin; + +import cool.furry.mc.forge.projectexpansion.block.entity.BlockEntityNBTFilterable; +import moze_intel.projecte.gameObjs.items.PhilosophersStone; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.phys.BlockHitResult; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(PhilosophersStone.class) +public class PhilosophersStoneMixin { + + @Inject(at = @At("HEAD"), method = "useOn(Lnet/minecraft/world/item/context/UseOnContext;)Lnet/minecraft/world/InteractionResult;", cancellable = true) + public void useOn(UseOnContext ctx, CallbackInfoReturnable cir) { + BlockPos pos = ctx.getClickedPos(); + Player player = ctx.getPlayer(); + Level level = ctx.getLevel(); + if(!level.isClientSide && player != null) { + BlockHitResult rtr = this.getHitBlock(player); + if (!rtr.getBlockPos().equals(pos)) pos = rtr.getBlockPos(); + BlockEntity blockEntity = level.getBlockEntity(pos); + if(blockEntity instanceof BlockEntityNBTFilterable be) { + be.toggleFilter(player); + cir.setReturnValue(InteractionResult.SUCCESS); + } + } + } + + @Shadow(remap = false) + public BlockHitResult getHitBlock(Player player) { + throw new IllegalStateException("Mixin failed to shadow getHitBlock()"); + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/package-info.java new file mode 100644 index 00000000..20cac45c --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion; + + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/registries/BlockEntityTypes.java b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/BlockEntityTypes.java new file mode 100644 index 00000000..02e09136 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/BlockEntityTypes.java @@ -0,0 +1,23 @@ +package cool.furry.mc.forge.projectexpansion.registries; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.block.entity.*; +import cool.furry.mc.forge.projectexpansion.util.Matter; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import java.util.Arrays; + +@SuppressWarnings({"unused", "ConstantConditions"}) +public class BlockEntityTypes { + public static final DeferredRegister> Registry = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, Main.MOD_ID); + + public static final RegistryObject> EMC_LINK = Registry.register("emc_link", () -> BlockEntityType.Builder.of(BlockEntityEMCLink::new, Arrays.stream(Matter.VALUES).map(Matter::getEMCLink).toArray(Block[]::new)).build(null)); + public static final RegistryObject> POWER_FLOWER = Registry.register("power_flower", () -> BlockEntityType.Builder.of(BlockEntityPowerFlower::new, Arrays.stream(Matter.VALUES).map(Matter::getPowerFlower).toArray(Block[]::new)).build(null)); + public static final RegistryObject> COLLECTOR = Registry.register("collector", () -> BlockEntityType.Builder.of(BlockEntityCollector::new, Arrays.stream(Matter.VALUES).map(Matter::getCollector).toArray(Block[]::new)).build(null)); + public static final RegistryObject> RELAY = Registry.register("relay", () -> BlockEntityType.Builder.of(BlockEntityRelay::new, Arrays.stream(Matter.VALUES).map(Matter::getRelay).toArray(Block[]::new)).build(null)); + public static final RegistryObject> TRANSMUTATION_INTERFACE = Registry.register("transmutation_interface", () -> BlockEntityType.Builder.of(BlockEntityTransmutationInterface::new, Blocks.TRANSMUTATION_INTERFACE.get()).build(null)); +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/registries/Blocks.java b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/Blocks.java new file mode 100644 index 00000000..859ba1bd --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/Blocks.java @@ -0,0 +1,15 @@ +package cool.furry.mc.forge.projectexpansion.registries; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.block.BlockTransmutationInterface; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +@SuppressWarnings("unused") +public class Blocks { + public static final DeferredRegister Registry = DeferredRegister.create(ForgeRegistries.BLOCKS, Main.MOD_ID); + + public static final RegistryObject TRANSMUTATION_INTERFACE = Registry.register("transmutation_interface", BlockTransmutationInterface::new); +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/registries/Enchantments.java b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/Enchantments.java new file mode 100644 index 00000000..15dde34e --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/Enchantments.java @@ -0,0 +1,16 @@ +package cool.furry.mc.forge.projectexpansion.registries; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.enchantments.EnchantmentAlchemicalCollection; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +@SuppressWarnings("unused") +public class Enchantments { + public static final DeferredRegister Registry = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, Main.MOD_ID); + + public static final RegistryObject ALCHEMICAL_COLLECTION = Registry.register("alchemical_collection", EnchantmentAlchemicalCollection::new); +} + diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/registries/Items.java b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/Items.java new file mode 100644 index 00000000..e42d0660 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/Items.java @@ -0,0 +1,23 @@ +package cool.furry.mc.forge.projectexpansion.registries; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.item.*; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Rarity; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +@SuppressWarnings("unused") +public class Items { + public static final DeferredRegister Registry = DeferredRegister.create(ForgeRegistries.ITEMS, Main.MOD_ID); + + public static final RegistryObject FINAL_STAR_SHARD = Registry.register("final_star_shard", ItemFinalStarShard::new); + public static final RegistryObject FINAL_STAR = Registry.register("final_star", ItemFinalStar::new); + public static final RegistryObject MATTER_UPGRADER = Registry.register("matter_upgrader", ItemMatterUpgrader::new); + public static final RegistryObject INFINITE_FUEL = Registry.register("infinite_fuel", ItemInfiniteFuel::new); + public static final RegistryObject INFINITE_STEAK = Registry.register("infinite_steak", ItemInfiniteSteak::new); + public static final RegistryObject TRANSMUTATION_INTERFACE = Registry.register("transmutation_interface", () -> new BlockItem(Blocks.TRANSMUTATION_INTERFACE.get(), new Item.Properties().tab(Main.tab).rarity(Rarity.EPIC))); + public static final RegistryObject KNOWLEDGE_SHARING_BOOK = Registry.register("knowledge_sharing_book", ItemKnowledgeSharingBook::new); +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/registries/SoundEvents.java b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/SoundEvents.java new file mode 100644 index 00000000..f153cbc7 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/SoundEvents.java @@ -0,0 +1,16 @@ +package cool.furry.mc.forge.projectexpansion.registries; + +import cool.furry.mc.forge.projectexpansion.Main; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvent; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public class SoundEvents { + public static final DeferredRegister Registry = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, Main.MOD_ID); + + public static final RegistryObject KNOWLEDGE_SHARING_BOOK_STORE = Registry.register("knowledge_sharing_book.store", () -> new SoundEvent(new ResourceLocation(Main.MOD_ID, "knowledge_sharing_book.store"))); + public static final RegistryObject KNOWLEDGE_SHARING_BOOK_USE = Registry.register("knowledge_sharing_book.use", () -> new SoundEvent(new ResourceLocation(Main.MOD_ID, "knowledge_sharing_book.use"))); + public static final RegistryObject KNOWLEDGE_SHARING_BOOK_USE_NONE = Registry.register("knowledge_sharing_book.use_none", () -> new SoundEvent(new ResourceLocation(Main.MOD_ID, "knowledge_sharing_book.use_none"))); +} \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/registries/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/package-info.java new file mode 100644 index 00000000..51104e94 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/registries/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion.registries; + + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/ColorStyle.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/ColorStyle.java new file mode 100644 index 00000000..b36cec81 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/ColorStyle.java @@ -0,0 +1,25 @@ +package cool.furry.mc.forge.projectexpansion.util; + + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Style; + +@SuppressWarnings("unused") +public class ColorStyle { + public static final Style BLACK = Style.EMPTY.withColor(ChatFormatting.BLACK); + public static final Style DARK_BLUE = Style.EMPTY.withColor(ChatFormatting.DARK_BLUE); + public static final Style DARK_GREEN = Style.EMPTY.withColor(ChatFormatting.DARK_GREEN); + public static final Style DARK_AQUA = Style.EMPTY.withColor(ChatFormatting.DARK_AQUA); + public static final Style DARK_RED = Style.EMPTY.withColor(ChatFormatting.DARK_RED); + public static final Style DARK_PURPLE = Style.EMPTY.withColor(ChatFormatting.DARK_PURPLE); + public static final Style GOLD = Style.EMPTY.withColor(ChatFormatting.GOLD); + public static final Style GRAY = Style.EMPTY.withColor(ChatFormatting.GRAY); + public static final Style DARK_GRAY = Style.EMPTY.withColor(ChatFormatting.DARK_GRAY); + public static final Style BLUE = Style.EMPTY.withColor(ChatFormatting.BLUE); + public static final Style GREEN = Style.EMPTY.withColor(ChatFormatting.GREEN); + public static final Style AQUA = Style.EMPTY.withColor(ChatFormatting.AQUA); + public static final Style RED = Style.EMPTY.withColor(ChatFormatting.RED); + public static final Style LIGHT_PURPLE = Style.EMPTY.withColor(ChatFormatting.LIGHT_PURPLE); + public static final Style YELLOW = Style.EMPTY.withColor(ChatFormatting.YELLOW); + public static final Style WHITE = Style.EMPTY.withColor(ChatFormatting.WHITE); +} \ No newline at end of file diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/EMCFormat.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/EMCFormat.java new file mode 100644 index 00000000..0068a01e --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/EMCFormat.java @@ -0,0 +1,176 @@ +package cool.furry.mc.forge.projectexpansion.util; + +import cool.furry.mc.forge.projectexpansion.config.Config; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; + +import javax.annotation.Nullable; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.text.FieldPosition; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Locale; + +@SuppressWarnings("unused") +public class EMCFormat extends DecimalFormat { + public static EMCFormat INSTANCE = new EMCFormat(); + private static final DecimalFormat decimalFormat = new DecimalFormat(); + public static final BigDecimal FORMAT_START = BigDecimal.valueOf(1000000); + + private EMCFormat() { + super("#,###"); + setRoundingMode(RoundingMode.DOWN); + } + + @Override + public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) { + String formatted = format(BigDecimal.valueOf(number)); + return new StringBuffer(formatted); + } + + @Override + public StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition) { + return format(Double.parseDouble(Long.toString(number)), result, fieldPosition); + } + + public static MutableComponent getComponent(long value) { + return getComponent(BigDecimal.valueOf(value)); + } + public static MutableComponent getComponent(BigInteger value) { + return getComponent(new BigDecimal(value)); + } + public static MutableComponent getComponent(BigDecimal value) { + return Component.literal(format(value)); + } + + public static String formatForceShort(BigInteger value) { + return format(value, IgnoreShiftType.FORMAT); + } + public static String formatForceLong(BigInteger value) { + return format(value, IgnoreShiftType.NO_FORMAT); + } + public static String format(BigInteger value) { + return format(value, IgnoreShiftType.NONE); + } + public static String format(BigInteger value, IgnoreShiftType ignoreShiftType) { + return format(new BigDecimal(value), ignoreShiftType); + } + + + public static String formatForceShort(BigDecimal value) { + return format(value, IgnoreShiftType.FORMAT); + } + + public static String formatForceLong(BigDecimal value) { + return format(value, IgnoreShiftType.NO_FORMAT); + } + public static String format(BigDecimal value) { + return format(value, IgnoreShiftType.NONE); + } + public static String format(BigDecimal value, IgnoreShiftType ignoreShiftType) { + if (shouldFormat(value, ignoreShiftType)) { + NumberName name = NumberName.findName(value); + if(name == null) return NumberFormat.getNumberInstance(Locale.US).format(value); + return getShort(value) + (Config.fullNumberNames.get() ? String.format(" %s", name.getName(false)) : name.getName(true)); + } else return NumberFormat.getNumberInstance(Locale.US).format(value); + } + + public boolean shouldFormat(BigDecimal value) { + return shouldFormat(value, IgnoreShiftType.NONE); + } + public static boolean shouldFormat(BigDecimal value, IgnoreShiftType ignoreShiftType) { + return Config.formatEMC.get() && ignoreShiftType != IgnoreShiftType.NO_FORMAT && (ignoreShiftType == IgnoreShiftType.FORMAT || !Screen.hasShiftDown()) && value.compareTo(FORMAT_START) > -1; + } + + public static String getShort(BigDecimal value) { + return getShort(value.toBigInteger()); + } + + static String getShort(BigInteger value) { + String str = value.toString(); + ArrayList list = new ArrayList<>(); + StringBuilder current = new StringBuilder(); + for(int i = str.length(); i > 0; i--) { + if(current.length() >= 3) { + list.add(current.reverse().toString()); + current.delete(0, current.length()); + } + current.append(str.charAt(i - 1)); + } + if(current.length() != 0) { + list.add(current.reverse().toString()); + current.delete(0, current.length()); + } + String sig = list.get(list.size() - 1); + String dec = list.get(list.size() - 2).substring(0, 2); + return String.format("%s.%s", sig, dec); + } + + public enum IgnoreShiftType { + NONE, + FORMAT, + NO_FORMAT + } + + public enum NumberName { + MILLION(1e6, "M"), + BILLION(1e9, "B"), + TRILLION(1e12, "T"), + QUADRILLION(1e15, "Qa"), + QUINTILLION(1e18, "Qi"), + SEXTILLION(1e21, "Sx"), + SEPTILLION(1e24, "Sp"), + OCTILLION(1e27, "O"), + NONILLION(1e30, "N"), + DECILLION(1e33, "D"), + UNDECILLION(1e36, "U"), + DUODECILLION(1e39, "Du"), + TREDECILLION(1e42, "Tr"), + QUATTUORDECILLION(1e45, "Qt"), + QUINDECILLION(1e48, "Qd"), + SEXDECILLION(1e51, "Sd"), + SEPTENDECILLION( 1e54, "St"), + OCTODECILLION(1e57, "Oc"), + NOVEMDECILLION(1e60, "No"); + + public static final NumberName[] VALUES = values(); + + private final double value; + private final String shortName; + NumberName(double val, String shortName) { + this.value = val; + this.shortName = shortName; + } + + public String getName() { + return getName(false); + } + + public String getName(boolean getShort) { + return getShort ? shortName : (name().charAt(0) + name().toLowerCase(Locale.US).substring(1)).trim(); + } + + public double getValue() { + return value; + } + + public BigInteger getBigIntegerValue() { + return new BigInteger(String.valueOf(getValue())); + } + + public BigDecimal getBigDecimalValue() { + return new BigDecimal(String.valueOf(getValue())); + } + + static @Nullable NumberName findName(BigDecimal value) { + // reduce is a quick and dirty solution to get the last element + return Arrays.stream(VALUES).filter(v -> value.compareTo(v.getBigDecimalValue()) > -1).reduce((first, second) -> second).orElse(null); + } + } +} + diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/Fuel.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/Fuel.java new file mode 100644 index 00000000..3d849cce --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/Fuel.java @@ -0,0 +1,106 @@ +package cool.furry.mc.forge.projectexpansion.util; + +import cool.furry.mc.forge.projectexpansion.block.BlockFuelItem; +import cool.furry.mc.forge.projectexpansion.item.ItemFuel; +import cool.furry.mc.forge.projectexpansion.registries.Blocks; +import cool.furry.mc.forge.projectexpansion.registries.Items; +import moze_intel.projecte.gameObjs.registries.PEItems; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.material.Material; +import net.minecraftforge.registries.RegistryObject; + +import javax.annotation.Nullable; +import java.util.Arrays; +import java.util.function.Supplier; + + +@SuppressWarnings("unused") +public enum Fuel { + ALCHEMICAL("alchemical", false, 1, PEItems.ALCHEMICAL_COAL::asItem), + MOBIUS("mobius", false, 2, PEItems.MOBIUS_FUEL::asItem), + AETERNALIS("aeternalis", false, 3, PEItems.AETERNALIS_FUEL::asItem), + MAGENTA("magenta", true, 4, null), + PINK("pink", true, 5, null), + PURPLE("purple", true, 6, null), + VIOLET("violet", true, 7, null), + BLUE("blue", true, 8, null), + CYAN("cyan", true, 9, null), + GREEN("green", true, 10, null), + LIME("lime", true, 11, null), + YELLOW("yellow", true, 12, null), + ORANGE("orange", true, 13, null), + WHITE("white", true, 14, null); + + + public static final int UNCOMMON_THRESHOLD = 4; + public static final int RARE_THRESHOLD = 15; + public static final int EPIC_THRESHOLD = 16; + + public static final Fuel[] VALUES = values(); + + public final String name; + public final boolean hasItem; + public final int level; + @Nullable + public final Supplier existingItem; + public final Rarity rarity; + @Nullable + private RegistryObject item = null; + @Nullable + private RegistryObject block = null; + @Nullable + private RegistryObject blockItem = null; + Fuel(String name, boolean hasItem, int level, @Nullable Supplier existingItem) { + this.name = name; + this.hasItem = hasItem; + this.level = level; + this.existingItem = existingItem; + this.rarity = + level >= EPIC_THRESHOLD ? Rarity.EPIC : + level >= RARE_THRESHOLD ? Rarity.RARE : + level >= UNCOMMON_THRESHOLD ? Rarity.UNCOMMON : + Rarity.COMMON; + } + + public int getBurnTime() { return getBurnTime(null); } + public int getBurnTime(@Nullable RecipeType type) { + return item == null ? -1 : PEItems.AETERNALIS_FUEL.get().getBurnTime(new ItemStack(item.get()), type); + } + + public @Nullable Item getItem() { + return item == null ? null : item.get(); + } + + public @Nullable Block getBlock() { + return block == null ? null : block.get(); + } + + public @Nullable BlockItem getBlockItem() { + return blockItem == null ? null : blockItem.get(); + } + + private void register(RegistrationType reg) { + if (!hasItem) return; + switch (reg) { + case ITEM -> item = Items.Registry.register(String.format("%s_fuel", name), () -> new ItemFuel(this)); + case BLOCK -> { + block = Blocks.Registry.register(String.format("%s_fuel_block", name), () -> new Block(Block.Properties.of(Material.STONE).requiresCorrectToolForDrops().strength(0.5F, 1.5F))); + blockItem = Items.Registry.register(String.format("%s_fuel_block", name), () -> new BlockFuelItem(this)); + } + } + } + + public static void registerAll() { + Arrays.stream(RegistrationType.values()).forEach(type -> Arrays.stream(VALUES).forEach(val -> val.register(type))); + } + + private enum RegistrationType { + ITEM, + BLOCK + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/IHasMatter.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/IHasMatter.java new file mode 100644 index 00000000..07e0a21c --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/IHasMatter.java @@ -0,0 +1,8 @@ +package cool.furry.mc.forge.projectexpansion.util; + +import javax.annotation.Nonnull; + +public interface IHasMatter { + @Nonnull + Matter getMatter(); +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/Matter.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/Matter.java new file mode 100644 index 00000000..1ac833f1 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/Matter.java @@ -0,0 +1,264 @@ +package cool.furry.mc.forge.projectexpansion.util; + +import cool.furry.mc.forge.projectexpansion.Main; +import cool.furry.mc.forge.projectexpansion.block.BlockCollector; +import cool.furry.mc.forge.projectexpansion.block.BlockEMCLink; +import cool.furry.mc.forge.projectexpansion.block.BlockPowerFlower; +import cool.furry.mc.forge.projectexpansion.block.BlockRelay; +import cool.furry.mc.forge.projectexpansion.config.Config; +import cool.furry.mc.forge.projectexpansion.item.ItemCompressedEnergyCollector; +import cool.furry.mc.forge.projectexpansion.registries.Blocks; +import cool.furry.mc.forge.projectexpansion.registries.Items; +import moze_intel.projecte.gameObjs.registries.PEItems; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Rarity; +import net.minecraftforge.registries.RegistryObject; + +import javax.annotation.Nullable; +import java.math.BigInteger; +import java.util.Arrays; +import java.util.Objects; +import java.util.function.Supplier; + +@SuppressWarnings("unused") +public enum Matter { + BASIC( 4L, 1L, 64L, null), + DARK( 12L, 3L, 192L, PEItems.DARK_MATTER), + RED( 40L, 10L, 640L, PEItems.RED_MATTER), + MAGENTA(160L, 40L, 2560L, null), + PINK( 640L, 150L, 10240L, null), + PURPLE( 2560L, 750L, 40960L, null), + VIOLET( 10240L, 3750L, 163840L, null), + BLUE( 40960L, 15000L, 655360L, null), + CYAN( 163840L, 60000L, 2621440L, null), + GREEN( 655360L, 240000L, 10485760L, null), + LIME( 2621440L, 960000L, 41943040L, null), + YELLOW( 10485760L, 3840000L, 167772160L, null), + ORANGE( 41943040L, 15360000L, 671088640L, null), + WHITE( 167772160L, 61440000L, 2684354560L, null), + FADING( 671088640L, 245760000L, 10737418240L, null), + FINAL( 1000000000000L, 1000000000000L, Long.MAX_VALUE, Items.FINAL_STAR_SHARD); + + public static final Matter[] VALUES = values(); + + public Matter prev() { + return VALUES[(ordinal() - 1 + VALUES.length) % VALUES.length]; + } + + public Matter next() { + return VALUES[(ordinal() + 1) % VALUES.length]; + } + + public final String name; + public final boolean hasItem; + public final int level; + public final BigInteger collectorOutputBase; + public final BigInteger relayBonusBase; + public final BigInteger relayTransferBase; + @Nullable + public final Supplier existingItem; + public final Rarity rarity; + @Nullable + private RegistryObject itemMatter = null; + @Nullable + private RegistryObject powerFlower = null; + @Nullable + private RegistryObject itemPowerFlower = null; + @Nullable + private RegistryObject collector = null; + @Nullable + private RegistryObject itemCollector = null; + @Nullable + private RegistryObject itemCompressedCollector = null; + @Nullable + private RegistryObject relay = null; + @Nullable + private RegistryObject itemRelay = null; + @Nullable + private RegistryObject emcLink = null; + @Nullable + private RegistryObject itemEMCLink = null; + + public static final int UNCOMMON_THRESHOLD = 4; + public static final int RARE_THRESHOLD = 15; + public static final int EPIC_THRESHOLD = 16; + Matter(long collectorOutput, long relayBonus, long relayTransfer, @Nullable Supplier existingItem) { + this.name = name().toLowerCase(); + this.hasItem = existingItem == null && ordinal() != 0; + this.level = ordinal() + 1; + // Gₙ(aₙ)(z)=4(2z²+z-1)/4z-1 + this.collectorOutputBase = BigInteger.valueOf(collectorOutput); + // ¯\_(ツ)_/¯ + this.relayBonusBase = BigInteger.valueOf(relayBonus); + // Gₙ(aₙ)(z)=64(2z²+z-1)/4z-1 + this.relayTransferBase = BigInteger.valueOf(relayTransfer); + this.existingItem = existingItem; + this.rarity = + level >= EPIC_THRESHOLD ? Rarity.EPIC : + level >= RARE_THRESHOLD ? Rarity.RARE : + level >= UNCOMMON_THRESHOLD ? Rarity.UNCOMMON : + Rarity.COMMON; + } + + public int getLevel() { + return level; + } + + /* Limits */ + + public BigInteger getPowerFlowerOutput() { + return collectorOutputBase.multiply(BigInteger.valueOf(18)).add(relayBonusBase.multiply(BigInteger.valueOf(30))).multiply(BigInteger.valueOf(Config.powerflowerMultiplier.get())); + } + + public BigInteger getPowerFlowerOutputForTicks(int ticks) { + if (ticks == 20) return getPowerFlowerOutput(); + BigInteger div20 = getPowerFlowerOutput().divide(BigInteger.valueOf(20)); + return div20.multiply(BigInteger.valueOf(ticks)); + } + + /* + unless we figure out a way to skip ticks or hard code numbers, dynamically changing the + tick rate of these 3 will grossly duplicate emc + */ + + public BigInteger getCollectorOutput() { + return collectorOutputBase.multiply(BigInteger.valueOf(Config.collectorMultiplier.get())); + } + + public BigInteger getCollectorOutputForTicks(int ticks) { + return getCollectorOutput(); + } + + public BigInteger getRelayBonus() { + return relayBonusBase.multiply(BigInteger.valueOf(Config.relayBonusMultiplier.get())); + } + + public BigInteger getRelayBonusForTicks(int ticks) { + return getRelayBonus(); + } + + public BigInteger getRelayTransfer() { + return relayTransferBase.multiply(BigInteger.valueOf(Config.relayTransferMultiplier.get())); + } + public BigInteger getRelayTransferForTicks(int ticks) { + return getRelayTransfer(); + } + + public int getEMCLinkInventorySize() { + return level * 3; + } + + public BigInteger getEMCLinkEMCLimit() { + return BigInteger.valueOf(16) + .pow(level) + .multiply(BigInteger.valueOf(Config.emcLinkEMCLimitMultiplier.get())); + } + + public int getEMCLinkItemLimit() { + try { + return Math.multiplyExact((int) Math.pow(2, level - 1), Config.emcLinkItemLimitMultiplier.get()); + } catch(ArithmeticException ignore) { + return Integer.MAX_VALUE; + } + } + + public int getEMCLinkFluidLimit() { + try { + return Math.multiplyExact(Math.multiplyExact((int) Math.pow(2, level - 1), 1000), Config.emcLinkFluidLimitMultiplier.get()); + } catch(ArithmeticException ignore) { + return Integer.MAX_VALUE; + } + } + + public Component getEMCLinkItemLimitComponent() { + return Component.translatable(this == FINAL ? "INFINITY" : String.valueOf(getEMCLinkItemLimit())); + } + + public Component getEMCLinkFluidLimitComponent() { + return Component.translatable(this == FINAL ? "INFINITY" : String.valueOf(getEMCLinkFluidLimit())); + } + + /* Registry Objects */ + + public @Nullable Item getMatter() { + return itemMatter == null ? null : itemMatter.get(); + } + + public @Nullable BlockPowerFlower getPowerFlower() { + return powerFlower == null ? null : powerFlower.get(); + } + + public @Nullable BlockItem getPowerFlowerItem() { + return itemPowerFlower == null ? null : itemPowerFlower.get(); + } + + public @Nullable BlockRelay getRelay() { + return relay == null ? null : relay.get(); + } + + public @Nullable BlockItem getRelayItem() { + return itemRelay == null ? null : itemRelay.get(); + } + + public @Nullable BlockCollector getCollector() { + return collector == null ? null : collector.get(); + } + + public @Nullable BlockItem getCollectorItem() { + return itemCollector == null ? null : itemCollector.get(); + } + + public @Nullable ItemCompressedEnergyCollector getCompressedCollectorItem() { + return itemCompressedCollector == null ? null : itemCompressedCollector.get(); + } + + public @Nullable BlockEMCLink getEMCLink() { + return emcLink == null ? null : emcLink.get(); + } + + public @Nullable BlockItem getEMCLinkItem() { + return itemEMCLink == null ? null : itemEMCLink.get(); + } + + /* Registration */ + + private void register(RegistrationType reg) { + switch (reg) { + case MATTER -> { if (hasItem)itemMatter = Items.Registry.register(String.format("%s_matter", name), () -> new Item(new Item.Properties().tab(Main.tab).rarity(rarity))); } + + case COLLECTOR -> { + collector = Blocks.Registry.register(String.format("%s_collector", name), () -> new BlockCollector(this)); + itemCollector = Items.Registry.register(String.format("%s_collector", name), () -> new BlockItem(Objects.requireNonNull(collector).get(), new Item.Properties().tab(Main.tab).rarity(rarity))); + } + case COMPRESSED_COLLECTOR -> itemCompressedCollector = Items.Registry.register(String.format("%s_compressed_collector", name), () -> new ItemCompressedEnergyCollector(this)); + case POWER_FLOWER -> { + powerFlower = Blocks.Registry.register(String.format("%s_power_flower", name), () -> new BlockPowerFlower(this)); + itemPowerFlower = Items.Registry.register(String.format("%s_power_flower", name), () -> new BlockItem(Objects.requireNonNull(powerFlower).get(), new Item.Properties().tab(Main.tab).rarity(rarity))); + } + case RELAY -> { + relay = Blocks.Registry.register(String.format("%s_relay", name), () -> new BlockRelay(this)); + itemRelay = Items.Registry.register(String.format("%s_relay", name), () -> new BlockItem(Objects.requireNonNull(relay).get(), new Item.Properties().tab(Main.tab).rarity(rarity))); + } + case EMC_LINK -> { + emcLink = Blocks.Registry.register(String.format("%s_emc_link", name), () -> new BlockEMCLink(this)); + itemEMCLink = Items.Registry.register(String.format("%s_emc_link", name), () -> new BlockItem(Objects.requireNonNull(emcLink).get(), new Item.Properties().tab(Main.tab).rarity(rarity))); + } + } + } + + public static void registerAll() { + Arrays.stream(RegistrationType.values()).forEach(type -> Arrays.stream(VALUES).forEach(val -> val.register(type))); + } + + private enum RegistrationType { + MATTER, + COLLECTOR, + COMPRESSED_COLLECTOR, + POWER_FLOWER, + RELAY, + EMC_LINK + + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/PowerFlowerCollector.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/PowerFlowerCollector.java new file mode 100644 index 00000000..f206be89 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/PowerFlowerCollector.java @@ -0,0 +1,43 @@ +package cool.furry.mc.forge.projectexpansion.util; + +import cool.furry.mc.forge.projectexpansion.Main; +import moze_intel.projecte.api.ProjectEAPI; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import net.minecraft.server.level.ServerPlayer; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +import java.math.BigInteger; +import java.util.*; + +@Mod.EventBusSubscriber(modid = Main.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE) +public class PowerFlowerCollector { + private static final Map stored = new HashMap<>(); + private static int tick = 0; + public static void add(ServerPlayer player, BigInteger amount) { + UUID uuid = player.getUUID(); + stored.put(uuid, stored.containsKey(uuid) ? stored.get(uuid).add(amount) : amount); + } + @SubscribeEvent + public static void onTick(TickEvent.ServerTickEvent event) { + tick++; + if (tick >= 20) { + tick = 0; + Set toRemove = new HashSet<>(); + for(UUID uuid : stored.keySet()) { + BigInteger amount = stored.get(uuid); + ServerPlayer player = Util.getPlayer(uuid); + if (player == null) continue; + IKnowledgeProvider provider; + try { + provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(uuid); + } catch(NullPointerException ignore) { continue; } + provider.setEmc(provider.getEmc().add(amount)); + provider.syncEmc(player); + toRemove.add(uuid); + } + toRemove.forEach(stored::remove); + } + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/Star.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/Star.java new file mode 100644 index 00000000..3067afc4 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/Star.java @@ -0,0 +1,65 @@ +package cool.furry.mc.forge.projectexpansion.util; + +import cool.furry.mc.forge.projectexpansion.item.ItemColossalStar; +import cool.furry.mc.forge.projectexpansion.item.ItemMagnumStar; +import cool.furry.mc.forge.projectexpansion.registries.Items; +import net.minecraftforge.registries.RegistryObject; + +import javax.annotation.Nullable; +import java.util.Arrays; + +@SuppressWarnings("unused") +public enum Star { + EIN("ein"), + ZWEI("zwei"), + DREI("drei"), + VIER("vier"), + SPHERE("sphere"), + OMEGA("omega"); + + public static final Star[] VALUES = values(); + + public Star prev() { + return VALUES[(ordinal() - 1 + VALUES.length) % VALUES.length]; + } + + public Star next() { + return VALUES[(ordinal() + 1) % VALUES.length]; + } + + public final String name; + @Nullable + private RegistryObject itemMagnum = null; + @Nullable + private RegistryObject itemColossal = null; + Star(String name) { + this.name = name; + } + + @Nullable + public Star getPrev() { + return this == EIN ? null : VALUES[ordinal() - 1]; + } + + + public @Nullable ItemMagnumStar asMagnumItem() { return itemMagnum == null ? null : itemMagnum.get(); } + public @Nullable ItemColossalStar asColossalItem() { return itemColossal == null ? null : itemColossal.get(); } + + private void registerMagnum() { + } + private void register(RegistrationType reg) { + switch (reg) { + case MAGNUM -> itemMagnum = Items.Registry.register(String.format("magnum_star_%s", name), () -> new ItemMagnumStar(this)); + case COLOSSAL -> itemColossal = Items.Registry.register(String.format("colossal_star_%s", name), () -> new ItemColossalStar(this)); + } + } + + public static void registerAll() { + Arrays.stream(RegistrationType.values()).forEach(type -> Arrays.stream(VALUES).forEach(val -> val.register(type))); + } + + private enum RegistrationType { + MAGNUM, + COLOSSAL + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/TagNames.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/TagNames.java new file mode 100644 index 00000000..97631b73 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/TagNames.java @@ -0,0 +1,16 @@ +package cool.furry.mc.forge.projectexpansion.util; + +import moze_intel.projecte.utils.Constants; + +public class TagNames { + public static String STORED_EMC = Constants.NBT_KEY_STORED_EMC; + public static String OWNER = "Owner"; + public static String OWNER_NAME = "OwnerName"; + public static String ITEM = "Item"; + public static String REMAINING_EMC = "RemainingEMC"; + public static String REMAINING_IMPORT = "RemainingImport"; + public static String REMAINING_EXPORT = "RemainingExport"; + public static String REMAINING_FLUID = "RemainingFluid"; + public static String LAST_USED = "LastUsed"; + public static String KNOWLEDGE_GAINED = "KnowledgeGained"; +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/Util.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/Util.java new file mode 100644 index 00000000..2be5ad72 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/Util.java @@ -0,0 +1,182 @@ +package cool.furry.mc.forge.projectexpansion.util; + +import moze_intel.projecte.api.ItemInfo; +import moze_intel.projecte.api.capabilities.IKnowledgeProvider; +import moze_intel.projecte.api.capabilities.block_entity.IEmcStorage; +import moze_intel.projecte.api.event.PlayerAttemptLearnEvent; +import moze_intel.projecte.emc.nbt.NBTManager; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.NonNullConsumer; +import net.minecraftforge.common.util.NonNullSupplier; +import net.minecraftforge.items.ItemHandlerHelper; +import net.minecraftforge.server.ServerLifecycleHooks; + +import javax.annotation.Nullable; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.function.BiFunction; +import java.util.function.Function; + +import static moze_intel.projecte.api.capabilities.block_entity.IEmcStorage.EmcAction; + +@SuppressWarnings("unused") +public class Util { + // yes I know this exists in net.minecraft.util.Util but having to either type out that fully or + // this package to import both is really annoying + public static final UUID DUMMY_UUID = new UUID(0L, 0L); + + public static @Nullable + ServerPlayer getPlayer(UUID uuid) { + return ServerLifecycleHooks.getCurrentServer() == null ? null : ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayer(uuid); + } + + public static @Nullable + ServerPlayer getPlayer(@Nullable Level level, UUID uuid) { + return level == null || level.getServer() == null ? null : level.getServer().getPlayerList().getPlayer(uuid); + } + + public static ItemStack cleanStack(ItemStack stack) { + if (stack.isEmpty()) return ItemStack.EMPTY; + ItemStack stackCopy = ItemHandlerHelper.copyStackWithSize(stack, 1); + if (stackCopy.isDamageableItem()) stackCopy.setDamageValue(0); + return NBTManager.getPersistentInfo(ItemInfo.fromStack(stackCopy)).createStack(); + } + + public static AddKnowledgeResult addKnowledge(Player player, IKnowledgeProvider provider, Item rawItem, Item cleanItem) { + return addKnowledge(player, provider, ItemInfo.fromItem(rawItem), ItemInfo.fromItem(cleanItem)); + } + + public static AddKnowledgeResult addKnowledge(Player player, IKnowledgeProvider provider, ItemStack rawStack, ItemStack cleanStack) { + return addKnowledge(player, provider, ItemInfo.fromStack(rawStack), ItemInfo.fromStack(cleanStack)); + } + + public static AddKnowledgeResult addKnowledge(Player player, IKnowledgeProvider provider, ItemInfo rawInfo, ItemInfo cleanInfo) { + if (cleanInfo.createStack().isEmpty()) return AddKnowledgeResult.FAIL; + + if (!provider.hasKnowledge(cleanInfo)) { + if (MinecraftForge.EVENT_BUS.post(new PlayerAttemptLearnEvent(player, rawInfo, cleanInfo))) + return AddKnowledgeResult.FAIL; + + provider.addKnowledge(cleanInfo); + return AddKnowledgeResult.SUCCESS; + } + + return AddKnowledgeResult.UNKNOWN; + } + + public static int safeIntValue(BigInteger val) { + try { + return val.intValueExact(); + } catch (ArithmeticException ignore) { + return Integer.MAX_VALUE; + } + } + + public static int safeIntValue(BigDecimal val) { + try { + return val.intValueExact(); + } catch (ArithmeticException ignore) { + return Integer.MAX_VALUE; + } + } + + public static long safeLongValue(BigInteger val) { + try { + return val.longValueExact(); + } catch (ArithmeticException ignore) { + return Long.MAX_VALUE; + } + } + + public static int mod(int a, int b) { + a = a % b; + return a < 0 ? a + b : a; + } + + public static void markDirty(BlockEntity block) { + if (block.getLevel() != null) markDirty(block.getLevel(), block); + } + + public static void markDirty(Level level, BlockEntity block) { + markDirty(level, block.getBlockPos()); + } + + public static void markDirty(Level level, BlockPos pos) { + level.getChunkAt(pos).setUnsaved(true); + } + + public static NonNullSupplier knowledgeProviderError = () -> new IllegalStateException("Failed to get knowledge provider."); + + public static , C> void usePlayerCapability(Player player, T cap, NonNullConsumer consumer) { + player.getCapability(cap).ifPresent(consumer); + } + + public static BigInteger stepBigInteger(BigInteger value, Function func) { + return stepBigInteger(value, Long.MAX_VALUE, func); + } + + public static BigInteger stepBigInteger(BigInteger value, Long step, Function func) { + return stepBigInteger(value, step, (a, b) -> func.apply(a)); + } + + public static BigInteger stepBigInteger(BigInteger value, BiFunction func) { + return stepBigInteger(value, Long.MAX_VALUE, func); + } + + public static BigInteger spreadEMC(BigInteger emc, List storageList) { + return spreadEMC(emc, storageList, null); + } + public static BigInteger spreadEMC(BigInteger emc, List storageList, @Nullable Long maxPer) { + if(emc.equals(BigInteger.ZERO) || storageList.isEmpty()) return emc; + List notAccepting = new ArrayList<>(); + emc = stepBigInteger(emc, (val) -> { + long div = val / storageList.size(); + if(maxPer != null && maxPer < div) div = maxPer; + parentLoop: while (val > 0 && notAccepting.size() < storageList.size()) { + for(IEmcStorage storage : storageList) { + if(notAccepting.contains(storage)) continue; + if(val == 0) break parentLoop; + if(val < div) div = val; + long oldVal = val; + val -= storage.insertEmc(div, EmcAction.EXECUTE); + if(val.equals(oldVal)) notAccepting.add(storage); + } + } + return val; + }); + return emc; + } + + // consumer values: step, leftover + // consumer return: leftover (from step) + public static BigInteger stepBigInteger(BigInteger value, Long step, BiFunction func) { + if(value.equals(BigInteger.ZERO)) return value; + long localValue; + while((localValue = Math.min(step, safeLongValue(value))) > 0L) { + value = value.subtract(BigInteger.valueOf(localValue)); + Long unused = func.apply(localValue, value); + if(unused > 0L) { + value = value.add(BigInteger.valueOf(unused)); + break; + } + } + return value; + } + + public enum AddKnowledgeResult { + FAIL, + UNKNOWN, + SUCCESS, + } +} diff --git a/src/main/java/cool/furry/mc/forge/projectexpansion/util/package-info.java b/src/main/java/cool/furry/mc/forge/projectexpansion/util/package-info.java new file mode 100644 index 00000000..a5c23ef2 --- /dev/null +++ b/src/main/java/cool/furry/mc/forge/projectexpansion/util/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package cool.furry.mc.forge.projectexpansion.util; + + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..7d847339 --- /dev/null +++ b/src/main/resources/META-INF/mods.toml @@ -0,0 +1,40 @@ +modLoader="javafml" +loaderVersion="[43,)" +license="MIT" +[[mods]] +modId="projectexpansion" +version="${file.jarVersion}" +displayName="Project Expansion" +updateJSONURL="https://raw.githubusercontent.com/DonovanDMC/ProjectExpansion/1.19/updates.json" +displayURL="https://github.com/DonovanDMC/ProjectExpansion" +logoFile="icon.png" +itemIcon = "minecraft:anvil" +credits="sinkillerj for ProjectE" +authors="Donovan_DMC" +description=''' +An unofficial expansion of ProjectE. +''' +[[dependencies.projectexpansion]] + modId="forge" + mandatory=true + versionRange="[43,)" + ordering="NONE" + side="BOTH" +[[dependencies.projectexpansion]] + modId="minecraft" + mandatory=true + versionRange="[1.19.2]" + ordering="NONE" + side="BOTH" +[[dependencies.projectexpansion]] + modId="projecte" + mandatory=true + versionRange="*" + ordering="AFTER" + side="BOTH" +[[dependencies.projectexpansion]] +modId = "catalogue" +mandatory = false +versionRange = "*" +ordering = "AFTER" +side = "BOTH" diff --git a/src/main/resources/assets/projectexpansion/sounds.json b/src/main/resources/assets/projectexpansion/sounds.json new file mode 100644 index 00000000..0c726c7c --- /dev/null +++ b/src/main/resources/assets/projectexpansion/sounds.json @@ -0,0 +1,14 @@ +{ + "knowledge_sharing_book.store": { + "subtitle": "sounds.projectexpansion.knowledge_sharing_book.store", + "sounds": ["minecraft:random/orb"] + }, + "knowledge_sharing_book.use": { + "subtitle": "sounds.projectexpansion.knowledge_sharing_book.use", + "sounds": ["minecraft:random/break"] + }, + "knowledge_sharing_book.use_none": { + "subtitle": "sounds.projectexpansion.knowledge_sharing_book.use_none", + "sounds": ["minecraft:random/fizz"] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/projectexpansion/textures/block/arcane_table/bottom.png b/src/main/resources/assets/projectexpansion/textures/block/arcane_table/bottom.png new file mode 100644 index 00000000..52345586 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/arcane_table/bottom.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/arcane_table/side.png b/src/main/resources/assets/projectexpansion/textures/block/arcane_table/side.png new file mode 100644 index 00000000..9b1c18af Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/arcane_table/side.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/arcane_table/top.png b/src/main/resources/assets/projectexpansion/textures/block/arcane_table/top.png new file mode 100644 index 00000000..7d3e3584 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/arcane_table/top.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/basic.png b/src/main/resources/assets/projectexpansion/textures/block/collector/basic.png new file mode 100644 index 00000000..4d9ac7b9 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/basic.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/blue.png b/src/main/resources/assets/projectexpansion/textures/block/collector/blue.png new file mode 100644 index 00000000..77af158f Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/blue.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/cyan.png b/src/main/resources/assets/projectexpansion/textures/block/collector/cyan.png new file mode 100644 index 00000000..caa2fef9 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/cyan.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/dark.png b/src/main/resources/assets/projectexpansion/textures/block/collector/dark.png new file mode 100644 index 00000000..011b8b46 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/dark.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/fading.png b/src/main/resources/assets/projectexpansion/textures/block/collector/fading.png new file mode 100644 index 00000000..b6b10ca5 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/fading.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/final.png b/src/main/resources/assets/projectexpansion/textures/block/collector/final.png new file mode 100644 index 00000000..e5d8de1f Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/final.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/final.png.mcmeta b/src/main/resources/assets/projectexpansion/textures/block/collector/final.png.mcmeta new file mode 100644 index 00000000..8af0a6be --- /dev/null +++ b/src/main/resources/assets/projectexpansion/textures/block/collector/final.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 24, "interpolate": true}} \ No newline at end of file diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/green.png b/src/main/resources/assets/projectexpansion/textures/block/collector/green.png new file mode 100644 index 00000000..dd3f5827 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/green.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/lime.png b/src/main/resources/assets/projectexpansion/textures/block/collector/lime.png new file mode 100644 index 00000000..b4019bf6 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/lime.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/magenta.png b/src/main/resources/assets/projectexpansion/textures/block/collector/magenta.png new file mode 100644 index 00000000..003b47b2 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/magenta.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/none.png b/src/main/resources/assets/projectexpansion/textures/block/collector/none.png new file mode 100644 index 00000000..14f45e4b Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/none.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/orange.png b/src/main/resources/assets/projectexpansion/textures/block/collector/orange.png new file mode 100644 index 00000000..de67784d Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/orange.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/pink.png b/src/main/resources/assets/projectexpansion/textures/block/collector/pink.png new file mode 100644 index 00000000..06eef75b Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/pink.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/purple.png b/src/main/resources/assets/projectexpansion/textures/block/collector/purple.png new file mode 100644 index 00000000..7bdf88e8 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/purple.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/red.png b/src/main/resources/assets/projectexpansion/textures/block/collector/red.png new file mode 100644 index 00000000..b449aaac Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/red.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/violet.png b/src/main/resources/assets/projectexpansion/textures/block/collector/violet.png new file mode 100644 index 00000000..e211107f Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/violet.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/white.png b/src/main/resources/assets/projectexpansion/textures/block/collector/white.png new file mode 100644 index 00000000..3ea3237f Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/white.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/collector/yellow.png b/src/main/resources/assets/projectexpansion/textures/block/collector/yellow.png new file mode 100644 index 00000000..5bcd44a9 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/collector/yellow.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/basic.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/basic.png new file mode 100644 index 00000000..01ce8a69 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/basic.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/basic_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/basic_nofilter.png new file mode 100644 index 00000000..c570837d Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/basic_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/blue.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/blue.png new file mode 100644 index 00000000..91a71bb0 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/blue.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/blue_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/blue_nofilter.png new file mode 100644 index 00000000..aaa35181 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/blue_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/cyan.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/cyan.png new file mode 100644 index 00000000..bb9b347e Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/cyan.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/cyan_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/cyan_nofilter.png new file mode 100644 index 00000000..df982866 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/cyan_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/dark.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/dark.png new file mode 100644 index 00000000..06e15c8f Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/dark.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/dark_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/dark_nofilter.png new file mode 100644 index 00000000..4046fdf6 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/dark_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/fading.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/fading.png new file mode 100644 index 00000000..0b8f87f3 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/fading.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/fading_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/fading_nofilter.png new file mode 100644 index 00000000..506c34a4 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/fading_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/final.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/final.png new file mode 100644 index 00000000..7bf26b9d Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/final.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/final.png.mcmeta b/src/main/resources/assets/projectexpansion/textures/block/emc_link/final.png.mcmeta new file mode 100644 index 00000000..8af0a6be --- /dev/null +++ b/src/main/resources/assets/projectexpansion/textures/block/emc_link/final.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 24, "interpolate": true}} \ No newline at end of file diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/final_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/final_nofilter.png new file mode 100644 index 00000000..ebe9c707 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/final_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/final_nofilter.png.mcmeta b/src/main/resources/assets/projectexpansion/textures/block/emc_link/final_nofilter.png.mcmeta new file mode 100644 index 00000000..8af0a6be --- /dev/null +++ b/src/main/resources/assets/projectexpansion/textures/block/emc_link/final_nofilter.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 24, "interpolate": true}} \ No newline at end of file diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/green.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/green.png new file mode 100644 index 00000000..c468525b Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/green.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/green_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/green_nofilter.png new file mode 100644 index 00000000..a3b52a8c Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/green_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/lime.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/lime.png new file mode 100644 index 00000000..6b138857 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/lime.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/lime_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/lime_nofilter.png new file mode 100644 index 00000000..b48b5af9 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/lime_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/magenta.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/magenta.png new file mode 100644 index 00000000..75adb501 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/magenta.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/magenta_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/magenta_nofilter.png new file mode 100644 index 00000000..15a8e1b8 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/magenta_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/orange.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/orange.png new file mode 100644 index 00000000..d52d8972 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/orange.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/orange_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/orange_nofilter.png new file mode 100644 index 00000000..4a9d6fa5 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/orange_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/pink.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/pink.png new file mode 100644 index 00000000..e0e366d6 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/pink.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/pink_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/pink_nofilter.png new file mode 100644 index 00000000..56b0881d Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/pink_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/purple.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/purple.png new file mode 100644 index 00000000..fcabab60 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/purple.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/purple_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/purple_nofilter.png new file mode 100644 index 00000000..bc638b94 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/purple_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/red.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/red.png new file mode 100644 index 00000000..5777144a Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/red.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/red_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/red_nofilter.png new file mode 100644 index 00000000..52214294 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/red_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/violet.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/violet.png new file mode 100644 index 00000000..132dc197 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/violet.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/violet_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/violet_nofilter.png new file mode 100644 index 00000000..50fc1f8e Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/violet_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/white.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/white.png new file mode 100644 index 00000000..c483bad9 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/white.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/white_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/white_nofilter.png new file mode 100644 index 00000000..9b67f41e Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/white_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/yellow.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/yellow.png new file mode 100644 index 00000000..e4ba90c4 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/yellow.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/emc_link/yellow_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/emc_link/yellow_nofilter.png new file mode 100644 index 00000000..0d4c69bd Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/emc_link/yellow_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/blue.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/blue.png new file mode 100644 index 00000000..ae213299 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/blue.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/cyan.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/cyan.png new file mode 100644 index 00000000..d1c7109a Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/cyan.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/green.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/green.png new file mode 100644 index 00000000..39813309 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/green.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/lime.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/lime.png new file mode 100644 index 00000000..63eaacf3 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/lime.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/magenta.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/magenta.png new file mode 100644 index 00000000..0fbb98c8 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/magenta.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/mobius_fuel_block.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/mobius_fuel_block.png new file mode 100644 index 00000000..b573eba6 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/mobius_fuel_block.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/orange.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/orange.png new file mode 100644 index 00000000..e3466bfc Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/orange.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/pink.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/pink.png new file mode 100644 index 00000000..8fc6617a Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/pink.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/purple.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/purple.png new file mode 100644 index 00000000..991ec6c3 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/purple.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/violet.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/violet.png new file mode 100644 index 00000000..d8b79642 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/violet.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/white.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/white.png new file mode 100644 index 00000000..00e77443 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/white.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/fuel/yellow.png b/src/main/resources/assets/projectexpansion/textures/block/fuel/yellow.png new file mode 100644 index 00000000..8286ae50 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/fuel/yellow.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/basic.png b/src/main/resources/assets/projectexpansion/textures/block/relay/basic.png new file mode 100644 index 00000000..45dea1b2 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/basic.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/blue.png b/src/main/resources/assets/projectexpansion/textures/block/relay/blue.png new file mode 100644 index 00000000..bcc984f5 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/blue.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/cyan.png b/src/main/resources/assets/projectexpansion/textures/block/relay/cyan.png new file mode 100644 index 00000000..be2597f8 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/cyan.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/dark.png b/src/main/resources/assets/projectexpansion/textures/block/relay/dark.png new file mode 100644 index 00000000..d4f05e93 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/dark.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/fading.png b/src/main/resources/assets/projectexpansion/textures/block/relay/fading.png new file mode 100644 index 00000000..ed2330c1 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/fading.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/final.png b/src/main/resources/assets/projectexpansion/textures/block/relay/final.png new file mode 100644 index 00000000..dccaa2d4 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/final.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/final.png.mcmeta b/src/main/resources/assets/projectexpansion/textures/block/relay/final.png.mcmeta new file mode 100644 index 00000000..8af0a6be --- /dev/null +++ b/src/main/resources/assets/projectexpansion/textures/block/relay/final.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 24, "interpolate": true}} \ No newline at end of file diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/green.png b/src/main/resources/assets/projectexpansion/textures/block/relay/green.png new file mode 100644 index 00000000..bca3ac33 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/green.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/lime.png b/src/main/resources/assets/projectexpansion/textures/block/relay/lime.png new file mode 100644 index 00000000..1cbc0f7e Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/lime.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/magenta.png b/src/main/resources/assets/projectexpansion/textures/block/relay/magenta.png new file mode 100644 index 00000000..5e1de157 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/magenta.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/none.png b/src/main/resources/assets/projectexpansion/textures/block/relay/none.png new file mode 100644 index 00000000..bed4ea24 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/none.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/orange.png b/src/main/resources/assets/projectexpansion/textures/block/relay/orange.png new file mode 100644 index 00000000..cb1c287f Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/orange.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/pink.png b/src/main/resources/assets/projectexpansion/textures/block/relay/pink.png new file mode 100644 index 00000000..dae27b29 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/pink.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/purple.png b/src/main/resources/assets/projectexpansion/textures/block/relay/purple.png new file mode 100644 index 00000000..f441ddfc Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/purple.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/red.png b/src/main/resources/assets/projectexpansion/textures/block/relay/red.png new file mode 100644 index 00000000..17939ca5 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/red.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/violet.png b/src/main/resources/assets/projectexpansion/textures/block/relay/violet.png new file mode 100644 index 00000000..2f934925 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/violet.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/white.png b/src/main/resources/assets/projectexpansion/textures/block/relay/white.png new file mode 100644 index 00000000..a2e9e05f Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/white.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/relay/yellow.png b/src/main/resources/assets/projectexpansion/textures/block/relay/yellow.png new file mode 100644 index 00000000..f832c42d Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/relay/yellow.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/transmutation_interface.png b/src/main/resources/assets/projectexpansion/textures/block/transmutation_interface.png new file mode 100644 index 00000000..b77f3205 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/transmutation_interface.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/block/transmutation_interface_nofilter.png b/src/main/resources/assets/projectexpansion/textures/block/transmutation_interface_nofilter.png new file mode 100644 index 00000000..1f61676a Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/block/transmutation_interface_nofilter.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/gui/emc_export.png b/src/main/resources/assets/projectexpansion/textures/gui/emc_export.png new file mode 100644 index 00000000..75e57f31 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/gui/emc_export.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/gui/emc_import.png b/src/main/resources/assets/projectexpansion/textures/gui/emc_import.png new file mode 100644 index 00000000..91d5b6eb Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/gui/emc_import.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/arcane_tablet.png b/src/main/resources/assets/projectexpansion/textures/item/arcane_tablet.png new file mode 100644 index 00000000..fe30e8e0 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/arcane_tablet.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/blue.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/blue.png new file mode 100644 index 00000000..d631a27c Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/blue.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/cyan.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/cyan.png new file mode 100644 index 00000000..8dee8db8 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/cyan.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/green.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/green.png new file mode 100644 index 00000000..35418c09 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/green.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/lime.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/lime.png new file mode 100644 index 00000000..d18ac50c Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/lime.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/magenta.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/magenta.png new file mode 100644 index 00000000..39c7fdbf Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/magenta.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/orange.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/orange.png new file mode 100644 index 00000000..91ab11a7 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/orange.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/pink.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/pink.png new file mode 100644 index 00000000..0df12d31 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/pink.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/purple.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/purple.png new file mode 100644 index 00000000..a1e485d2 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/purple.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/violet.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/violet.png new file mode 100644 index 00000000..bbe4e7ca Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/violet.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/white.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/white.png new file mode 100644 index 00000000..739f66a4 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/white.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/fuel/yellow.png b/src/main/resources/assets/projectexpansion/textures/item/fuel/yellow.png new file mode 100644 index 00000000..c8ea530e Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/fuel/yellow.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/infinite_fuel.png b/src/main/resources/assets/projectexpansion/textures/item/infinite_fuel.png new file mode 100644 index 00000000..502d5564 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/infinite_fuel.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/infinite_steak.png b/src/main/resources/assets/projectexpansion/textures/item/infinite_steak.png new file mode 100644 index 00000000..e31152fa Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/infinite_steak.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/knowledge_sharing_book.png b/src/main/resources/assets/projectexpansion/textures/item/knowledge_sharing_book.png new file mode 100644 index 00000000..ca67b23b Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/knowledge_sharing_book.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/blue.png b/src/main/resources/assets/projectexpansion/textures/item/matter/blue.png new file mode 100644 index 00000000..c0a32b43 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/blue.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/clay.png b/src/main/resources/assets/projectexpansion/textures/item/matter/clay.png new file mode 100644 index 00000000..94821ba9 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/clay.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/cyan.png b/src/main/resources/assets/projectexpansion/textures/item/matter/cyan.png new file mode 100644 index 00000000..77a94810 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/cyan.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/fading.png b/src/main/resources/assets/projectexpansion/textures/item/matter/fading.png new file mode 100644 index 00000000..36810414 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/fading.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/fading.png.mcmeta b/src/main/resources/assets/projectexpansion/textures/item/matter/fading.png.mcmeta new file mode 100644 index 00000000..3264a9e9 --- /dev/null +++ b/src/main/resources/assets/projectexpansion/textures/item/matter/fading.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 1, "frames": [2, 1, 0, 2, 1, 0, 1, 0, 3, 0, 0, 1, 1, 2, 3, 1, 0, 3, 0, 0]}} \ No newline at end of file diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/green.png b/src/main/resources/assets/projectexpansion/textures/item/matter/green.png new file mode 100644 index 00000000..69d59931 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/green.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/lime.png b/src/main/resources/assets/projectexpansion/textures/item/matter/lime.png new file mode 100644 index 00000000..85b0b242 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/lime.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/magenta.png b/src/main/resources/assets/projectexpansion/textures/item/matter/magenta.png new file mode 100644 index 00000000..cbabe4fd Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/magenta.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/orange.png b/src/main/resources/assets/projectexpansion/textures/item/matter/orange.png new file mode 100644 index 00000000..6391222d Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/orange.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/pink.png b/src/main/resources/assets/projectexpansion/textures/item/matter/pink.png new file mode 100644 index 00000000..569b739b Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/pink.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/purple.png b/src/main/resources/assets/projectexpansion/textures/item/matter/purple.png new file mode 100644 index 00000000..5171401f Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/purple.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/violet.png b/src/main/resources/assets/projectexpansion/textures/item/matter/violet.png new file mode 100644 index 00000000..90ea0b64 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/violet.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/white.png b/src/main/resources/assets/projectexpansion/textures/item/matter/white.png new file mode 100644 index 00000000..5c92f548 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/white.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter/yellow.png b/src/main/resources/assets/projectexpansion/textures/item/matter/yellow.png new file mode 100644 index 00000000..d738d106 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter/yellow.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/matter_upgrader.png b/src/main/resources/assets/projectexpansion/textures/item/matter_upgrader.png new file mode 100644 index 00000000..1b7f2d5c Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/matter_upgrader.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/colossal/drei.png b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/drei.png new file mode 100644 index 00000000..0365c716 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/drei.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/colossal/ein.png b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/ein.png new file mode 100644 index 00000000..ffb4ed3a Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/ein.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/colossal/omega.png b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/omega.png new file mode 100644 index 00000000..e0c19d76 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/omega.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/colossal/sphere.png b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/sphere.png new file mode 100644 index 00000000..cc6ab7b9 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/sphere.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/colossal/vier.png b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/vier.png new file mode 100644 index 00000000..8c56e896 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/vier.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/colossal/zwei.png b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/zwei.png new file mode 100644 index 00000000..73c8a593 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/colossal/zwei.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/final.png b/src/main/resources/assets/projectexpansion/textures/item/star/final.png new file mode 100644 index 00000000..eb7be122 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/final.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/final.png.mcmeta b/src/main/resources/assets/projectexpansion/textures/item/star/final.png.mcmeta new file mode 100644 index 00000000..77ca32cd --- /dev/null +++ b/src/main/resources/assets/projectexpansion/textures/item/star/final.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 6, "interpolate": true}} \ No newline at end of file diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/final_shard.png b/src/main/resources/assets/projectexpansion/textures/item/star/final_shard.png new file mode 100644 index 00000000..1224d673 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/final_shard.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/final_shard.png.mcmeta b/src/main/resources/assets/projectexpansion/textures/item/star/final_shard.png.mcmeta new file mode 100644 index 00000000..77ca32cd --- /dev/null +++ b/src/main/resources/assets/projectexpansion/textures/item/star/final_shard.png.mcmeta @@ -0,0 +1 @@ +{"animation": {"frametime": 6, "interpolate": true}} \ No newline at end of file diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/magnum/drei.png b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/drei.png new file mode 100644 index 00000000..9a3f90b2 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/drei.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/magnum/ein.png b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/ein.png new file mode 100644 index 00000000..87c4a19b Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/ein.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/magnum/omega.png b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/omega.png new file mode 100644 index 00000000..8d52d8f0 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/omega.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/magnum/sphere.png b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/sphere.png new file mode 100644 index 00000000..67aa697d Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/sphere.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/magnum/vier.png b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/vier.png new file mode 100644 index 00000000..1fb1f5f2 Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/vier.png differ diff --git a/src/main/resources/assets/projectexpansion/textures/item/star/magnum/zwei.png b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/zwei.png new file mode 100644 index 00000000..be26237d Binary files /dev/null and b/src/main/resources/assets/projectexpansion/textures/item/star/magnum/zwei.png differ diff --git a/src/main/resources/data/curios/tags/items/klein_star.json b/src/main/resources/data/curios/tags/items/klein_star.json new file mode 100644 index 00000000..3704bfea --- /dev/null +++ b/src/main/resources/data/curios/tags/items/klein_star.json @@ -0,0 +1,17 @@ +{ + "replace": false, + "values": [ + "projectexpansion:magnum_star_ein", + "projectexpansion:magnum_star_zwei", + "projectexpansion:magnum_star_drei", + "projectexpansion:magnum_star_vier", + "projectexpansion:magnum_star_sphere", + "projectexpansion:magnum_star_omega", + "projectexpansion:colossal_star_ein", + "projectexpansion:colossal_star_zwei", + "projectexpansion:colossal_star_drei", + "projectexpansion:colossal_star_vier", + "projectexpansion:colossal_star_sphere", + "projectexpansion:colossal_star_omega" + ] +} \ No newline at end of file diff --git a/src/main/resources/icon.png b/src/main/resources/icon.png new file mode 100644 index 00000000..f48504fc Binary files /dev/null and b/src/main/resources/icon.png differ diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta new file mode 100644 index 00000000..1832ad63 --- /dev/null +++ b/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "Project Expansion Resources", + "pack_format": 9 + } +} diff --git a/src/main/resources/projectexpansion.mixins.json b/src/main/resources/projectexpansion.mixins.json new file mode 100644 index 00000000..1ac9afd5 --- /dev/null +++ b/src/main/resources/projectexpansion.mixins.json @@ -0,0 +1,18 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "cool.furry.mc.forge.projectexpansion.mixin", + "compatibilityLevel": "JAVA_17", + "refmap": "projectexpansion.refmap.json", + "client": [ + "DeleteWeebShitMixin", + "EMCFormatterMixin" + ], + "mixins": [ + "EnchantmentMixin", + "PhilosophersStoneMixin" + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/updates.json b/updates.json new file mode 100644 index 00000000..4ad49b3b --- /dev/null +++ b/updates.json @@ -0,0 +1,10 @@ +{ + "homepage": "https://www.curseforge.com/minecraft/mc-mods/project-expansion", + "1.19.2": { + "1.19.2-1.0.0": "https://github.com/DonovanDMC/ProjectExpansion/releases/tag/1.18.2-1.0.0" + }, + "promos": { + "1.19.2-latest": "1.19.2-1.0.0", + "1.19.2-recommended": "1.19.2-1.0.0" + } +} \ No newline at end of file