Compare commits

..

No commits in common. "master" and "7.0.0" have entirely different histories.

68 changed files with 1631 additions and 6001 deletions

View File

@ -0,0 +1,134 @@
# FOR DEVELOPMENT, DO NOT EDIT THIS FILE! EDIT THE TEMPlATES INSTEAD!
# See https://github.com/Nomi-CEu/Nomi-CEu/wiki/Part-2:-Contributing-Information#section-5-template-information!
name: Bug Report
description: "Crashes or unintended behaviors arising from Nomi CEu's mods, configurations, or custom scripts."
labels: bug
body:
- type: markdown
attributes:
value: "Note: If you need general tech support for things like server configuration, or general game support (how to I make this?), Discord is a better venue. Please open an issue only if there is a clear bug with the pack or if you have been asked to by one of the Discord staff."
- type: dropdown
id: version
attributes:
label: Nomi CEu Version
description: The version of Nomi CEu you were using when this bug was encountered. If you do not know what it is, check the title of your instance window. If you do not see your version here, please update to the newest alpha, beta or release of the pack.
options:
- "Nightly"
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7a
- 1.7
- 1.7-beta-6a
- 1.7-beta-6
- 1.7-beta-5c
- 1.7-beta-5b
- 1.7-beta-5a
- 1.7-beta-5
- 1.7-alpha-4
- 1.7-alpha-3
- 1.7-alpha-2a
- 1.7-alpha-2
- 1.7-alpha-1
- 1.6.1b
- 1.6.1a
- 1.6.1-beta-4
- 1.6.1-beta-3a
- 1.6.1-beta-2
- 1.6.1-alpha-1
- 1.6
validations:
required: true
- type: input
id: launcher
attributes:
label: Launcher
description: "What launcher you were using when you experienced this issue. If you were using the CurseForge Launcher, please try to see if the issue occurs on a different launcher."
placeholder: "Example: Prism Launcher"
validations:
required: true
- type: textarea
id: changed
attributes:
label: Configurations or Mods Changed
description: Any changed configs, and removed or added mods. Make sure to also include the version of any mods you have added. If you have not changed any configurations, and not removed or added any mods, please leave this field blank.
placeholder: |
Example:
Changed Loliasm Config: B:onDemandAnimatedTextures to false.
Added AE2 Fluid Crafting Rework: Version 2.4.18-r.
validations:
required: false
- type: textarea
id: environment
attributes:
label: Environment
description: "How you were playing on the world, and the Nightly Specification (if relevant). Typical answers include: Singleplayer, Open to LAN, Forge Server, Sponge Server, or Mohist Server. If you selected Nightly as your version, please also specify the Nightly Hash (the 7 random characters), and the Nightly Branch."
placeholder: |
Example: Singleplayer
Example For Nightly: Singleplayer, Nightly main 7ga03fj
Example For Nightly On Dev Branch: Singleplayer, Nightly dev/gt-2.8 1asdf83
validations:
required: true
- type: dropdown
id: mode
attributes:
label: Mode
description: "What pack mode were you using when you came across this error?"
options:
- "Normal Mode"
- "Expert Mode"
- "Both Modes"
- "N/A"
validations:
required: true
- type: textarea
id: problem
attributes:
label: What Happened
description: What happened, of which you believe is a bug. Attach screenshots here as necessary.
placeholder: "Example: Produced one X but Y was not consumed."
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What you expected to happen. Attach screenshots here as necessary.
placeholder: "Example: Expected to produce X by consuming Y."
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction Steps
description: |
How do you trigger this bug? Please walk us through it step by step.
Please leave this field blank if this is not applicable. (Quest Isuses, JEI Issues, Tooltip Issues, etc.)
placeholder: |
1.
2.
3.
...
validations:
required: false
- type: textarea
id: logs
attributes:
label: Logs
description: "If your client crashed as a result of this bug, please upload the generated crash log. This is found in your launcher's Nomi CEu instance, in a folder called `crash-reports`. If there was no crash, but instead an error screen, please upload your `latest.log`, found in a folder called `logs`. If there was a script error, please upload your `crafttweaker.log`, found in your base instance folder, instead. Otherwise, please leave this field blank."
placeholder: "You can upload into a external site like paste-bin, and send the link, or just drag the file into this text field."
validations:
required: false
- type: textarea
id: additional-info
attributes:
label: Additional Information
description: Any additional information you wish to provide. Please add anything which did not fit into the other sections here.
placeholder: "Example: This is likely caused by X because..."
validations:
required: false
- type: markdown
attributes:
value: Thank you for taking the time to fill out this bug report.

View File

@ -0,0 +1,129 @@
# FOR DEVELOPMENT, DO NOT EDIT THIS FILE! EDIT THE TEMPlATES INSTEAD!
# See https://github.com/Nomi-CEu/Nomi-CEu/wiki/Part-2:-Contributing-Information#section-5-template-information!
name: Feature Request
description: Suggest an idea, including mod additions or addon scripts, for Nomi CEu.
labels: enhancement
body:
- type: markdown
attributes:
value: "Note: balancing ideas should use this template, but only for changes. However, if its a problem, not a change, like `X material always runs out`, please use the `Bug Report` Template."
- type: dropdown
id: version
attributes:
label: Nomi CEu Version
description: The version of Nomi CEu you are using as the basis for this feature request. If you do not know what it is, check the title of your instance window. f you do not see your version here, please update to the newest alpha, beta or release of the pack.
options:
- "Nightly"
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7a
- 1.7
- 1.7-beta-6a
- 1.7-beta-6
- 1.7-beta-5c
- 1.7-beta-5b
- 1.7-beta-5a
- 1.7-beta-5
- 1.7-alpha-4
- 1.7-alpha-3
- 1.7-alpha-2a
- 1.7-alpha-2
- 1.7-alpha-1
- 1.6.1b
- 1.6.1a
- 1.6.1-beta-4
- 1.6.1-beta-3a
- 1.6.1-beta-2
- 1.6.1-alpha-1
- 1.6
validations:
required: true
- type: input
id: launcher
attributes:
label: Launcher
description: "What launcher you were using when you experienced this issue. If you were using the CurseForge Launcher, please try to see if the issue occurs on a different launcher."
placeholder: "Example: Prism Launcher"
validations:
required: true
- type: textarea
id: changed
attributes:
label: Configurations or Mods Changed
description: Any changed configs, and removed or added mods. Make sure to also include the version of any mods you have added. If you have not changed any configurations, and not removed or added any mods, please leave this field blank.
placeholder: |
Example:
Changed Loliasm Config: B:onDemandAnimatedTextures to false.
Added AE2 Fluid Crafting Rework: Version 2.4.18-r.
validations:
required: false
- type: textarea
id: environment
attributes:
label: Environment
description: "How you were playing on the world, and the Nightly Specification (if relevant). Typical answers include: Singleplayer, Open to LAN, Forge Server, Sponge Server, or Mohist Server. If you selected Nightly as your version, please also specify the Nightly Hash (the 7 random characters), and the Nightly Branch."
placeholder: |
Example: Singleplayer
Example For Nightly: Singleplayer, Nightly main 7ga03fj
Example For Nightly On Dev Branch: Singleplayer, Nightly dev/gt-2.8 1asdf83
validations:
required: true
- type: dropdown
id: mode
attributes:
label: Mode
description: "What pack mode is this feature request related to?"
options:
- "Normal Mode"
- "Expert Mode"
- "Both Modes"
- "N/A"
validations:
required: true
- type: textarea
id: problem
attributes:
label: Related Problem
description: If the feature you wish to change is related to a problem, please desscribe it. Leave this field blank if it is not related to a problem.
placeholder: "Example: I'm always frustrated when..."
validations:
required: false
- type: textarea
id: solution
attributes:
label: Your Solution
description: Describe the solution you would like to have happen.
placeholder: "Example: If I could..."
validations:
required: true
- type: textarea
id: work
attributes:
label: How Will Your Solution Work
description: |
Describe how the solution will fix the problem, or add to the pack.
If you are suggesting a mod, please describe what the mod does, and how it will add to the pack.
placeholder: "Example: If X was done, than Y will get a use, and..."
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: "Alternatives You've Considered"
description: "What alternatives have you considered that might help solve the problem? If you aren't sure, or this is not related to a problem, please leave this field blank."
placeholder: "Example: Otherwise, we can also do Z..."
validations:
required: false
- type: textarea
id: additional-info
attributes:
label: Additional Information
description: "Add any other context or screenshots about the feature request here. If you are suggesting a mod, please also add a link to the mod's CurseForge page."
placeholder: "Example: This main motive for this idea is because X..."
validations:
required: false
- type: markdown
attributes:
value: Thank you for taking the time to fill out this feature request.

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Nomi-CEu Discord
url: https://discord.com/invite/zwQzqP8b6q
about: Join us on Discord to discuss questions, gameplay advice, bugs, beta releases, and more.

412
.github/workflows/buildpack.yml vendored Normal file
View File

@ -0,0 +1,412 @@
name: Build Pack
on:
workflow_dispatch:
inputs:
tag:
description: Tag to Checkout and Release.
required: false
type: string
release_type:
description: The Release Type.
required: true
type: choice
default: 'Release'
options:
- 'Release'
- 'Beta Release'
- 'Alpha Release'
- 'Cutting Edge Build'
changelog_url:
description: Where to download the Changelog File from. See CONTRIBUTING.md for more information.
required: false
type: string
changelog_cf_url:
description: Where to download the CF Changelog File from. See CONTRIBUTING.md for more information.
required: false
type: string
changelog_branch:
description: Branch to download changelog Files from. See CONTRIBUTING.md for more information.
required: false
type: string
compare_tag:
description: Tag(s) to compare against. If specifying multiple, seperate by commas. (Spaces allowed). See CONTRIBUTING.md for more information.
required: false
type: string
separate_upload:
description: Whether to upload each zip (Client, Server, Lang) and the changelogs seperately. If not set, will just upload all six files into one artifact (Built Pack).
required: true
type: boolean
skip_changelog:
description: Whether to skip changelog generation.
type: boolean
default: false
required: true
workflow_call:
inputs:
tag:
description: Tag to Checkout and Release.
required: false
type: string
release_type:
description: The Release Type.
required: false
default: Release
type: string
changelog_url:
description: Where to download the Changelog File from. See CONTRIBUTING.md for more information.
required: false
type: string
changelog_cf_url:
description: Where to download the CF Changelog File from. See CONTRIBUTING.md for more information.
required: false
type: string
changelog_branch:
description: Branch to download changelog Files from. See CONTRIBUTING.md for more information.
required: false
type: string
compare_tag:
description: Tag to compare to. See CONTRIBUTING.md for more information.
required: false
type: string
separate_upload:
description: Whether to upload each zip (Client, Server & Lang) and the changelogs seperately. If not set, will just upload all five files into one artifact (Built Pack).
required: false
default: false
type: boolean
head_ref:
type: string
required: false
true_sha:
type: string
required: false
skip_changelog:
description: Whether to skip changelog generation.
type: boolean
default: false
required: false
env:
GITHUB_TAG: ${{ inputs.tag }}
RELEASE_TYPE: ${{ inputs.release_type }}
HEAD_REF: ${{ inputs.head_ref }}
TRUE_SHA: ${{ inputs.true_sha }}
SKIP_CHANGELOG: ${{ inputs.skip_changelog }}
jobs:
buildSingle:
name: Build Pack (${{ inputs.tag }})
runs-on: ubuntu-latest
if: ${{ !inputs.separate_upload }}
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.tag }}
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Restore Build Cached Files
uses: actions/cache@v4
id: build-cache
with:
path: |
./.cache
key: ${{ runner.os }}-build-${{ hashFiles('./.cache', './manifest.json') }}
restore-keys: ${{ runner.os }}-build-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Check Environmental Variables
working-directory: ./tools
run: npm run gulp check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
CURSEFORGE_API_TOKEN: ${{ secrets.CURSEFORGE_API_TOKEN }}
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Build and Zip Pack
working-directory: ./tools
run: npm run gulp
env:
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
CHANGELOG_BRANCH: ${{ inputs.changelog_branch }}
CHANGELOG_URL: ${{ inputs.changelog_url }}
CHANGELOG_CF_URL: ${{ inputs.changelog_cf_url }}
COMPARE_TAG: ${{ inputs.compare_tag }}
- name: Upload All Files
uses: actions/upload-artifact@v4
with:
name: Built Pack
path: |
./build/**/*.zip
./build/*.md
if-no-files-found: error
compression-level: 0
makeNames:
name: Make Artifact Names and Changelogs (${{ inputs.tag }})
runs-on: ubuntu-latest
if: ${{ inputs.separate_upload }}
outputs:
client: ${{ steps.artifactNames.outputs.client }}
server: ${{ steps.artifactNames.outputs.server }}
lang: ${{ steps.artifactNames.outputs.lang }}
mmc: ${{ steps.artifactNames.outputs.mmc }}
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.tag }}
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Check Environmental Variables
working-directory: ./tools
run: npm run gulp check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
CURSEFORGE_API_TOKEN: ${{ secrets.CURSEFORGE_API_TOKEN }}
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Make Artifact Names
id: artifactNames
working-directory: ./tools
run: npm run gulp makeArtifactNames
- name: Make Changelogs
if: ${{ !inputs.skip_changelog }}
working-directory: ./tools
run: npm run gulp buildChangelog
env:
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
CHANGELOG_BRANCH: ${{ inputs.changelog_branch }}
CHANGELOG_URL: ${{ inputs.changelog_url }}
CHANGELOG_CF_URL: ${{ inputs.changelog_cf_url }}
COMPARE_TAG: ${{ inputs.compare_tag }}
- name: Upload Changelogs
if: ${{ !inputs.skip_changelog }}
uses: actions/upload-artifact@v4
with:
name: Changelogs
path: ./build/*.md
if-no-files-found: error
compression-level: 9
buildClient:
name: Build Pack Client (${{ inputs.tag }})
runs-on: ubuntu-latest
if: ${{ inputs.separate_upload }}
needs: makeNames
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.tag }}
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Download Changelog Artifacts
if: ${{ !inputs.skip_changelog }}
uses: actions/download-artifact@v4
with:
name: Changelogs
path: ./build/
- name: Build Client
working-directory: ./tools
run: npm run gulp buildClient
env:
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
MADE_CHANGELOG: true # Changelog Already Exists
- name: Upload Client Zip
uses: actions/upload-artifact@v4
with:
name: ${{ needs.makeNames.outputs.client }}
path: ./build/client/**/*
if-no-files-found: error
compression-level: 9
buildServer:
name: Build Pack Server (${{ inputs.tag }})
runs-on: ubuntu-latest
if: ${{ inputs.separate_upload }}
needs: makeNames
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.tag }}
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Restore Build Cached Files
uses: actions/cache@v4
id: build-cache
with:
path: |
./.cache
key: ${{ runner.os }}-build-${{ hashFiles('./.cache', './manifest.json') }}
restore-keys: ${{ runner.os }}-build-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Download Changelog Artifacts
if: ${{ !inputs.skip_changelog }}
uses: actions/download-artifact@v4
with:
name: Changelogs
path: ./build/
- name: Build Server
working-directory: ./tools
run: npm run gulp buildServer
env:
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
MADE_CHANGELOG: true # Changelog Already Exists
- name: Upload Server Zip
uses: actions/upload-artifact@v4
with:
name: ${{ needs.makeNames.outputs.server }}
path: ./build/server/**/*
if-no-files-found: error
compression-level: 9
buildLang:
name: Build Pack Lang and Changelogs (${{ inputs.tag }})
runs-on: ubuntu-latest
if: ${{ inputs.separate_upload }}
needs: makeNames
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.tag }}
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Download Changelog Artifacts
if: ${{ !inputs.skip_changelog }}
uses: actions/download-artifact@v4
with:
name: Changelogs
path: ./build/
- name: Build Lang
working-directory: ./tools
run: npm run gulp buildLang
env:
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
MADE_CHANGELOG: true # Changelog Already Exists
- name: Upload Lang Zip
uses: actions/upload-artifact@v4
with:
name: ${{ needs.makeNames.outputs.lang }}
path: ./build/lang/**/*
if-no-files-found: error
compression-level: 9

43
.github/workflows/checks.yml vendored Normal file
View File

@ -0,0 +1,43 @@
name: Checks
on:
push:
pull_request:
jobs:
checks:
name: Checks
runs-on: ubuntu-latest
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Check Buildscripts
working-directory: ./tools
run: npm run check
- name: Check QB
working-directory: ./tools
run: npm run gulp checkQB

128
.github/workflows/createchangelog.yml vendored Normal file
View File

@ -0,0 +1,128 @@
name: Create Changelog
on:
workflow_dispatch:
inputs:
tag:
description: Tag to checkout.
required: false
release_type:
description: Release Type
type: choice
required: true
default: 'Release'
options:
- 'Release'
- 'Beta Release'
- 'Alpha Release'
- 'Cutting Edge Build'
compare_tag:
description: Tag(s) to compare against. If not set, will use the tag before `Tag`. If specifying multiple, seperate by commas. (Spaces allowed).
required: false
branch:
description: Branch to push changelog to. If not set, changelog will just be uploaded as an artifact.
required: false
test:
description: Whether to test commits. If true, then any parsing errors will throw an error.
required: false
type: boolean
default: false
workflow_call:
inputs:
tag:
description: Tag to make changelog at.
type: string
required: false
release_type:
description: Release Type.
type: string
required: true
compare_tag:
description: Tag to compare against.
type: string
required: false
branch:
description: Branch to push changelog to. If not set, will not push. Will still be uploaded as artifact.
type: string
required: false
test:
description: Whether to test commits. If true, then any parsing errors will throw an error.
required: false
type: boolean
default: false
jobs:
deploy:
name: Create Changelog (${{ inputs.tag }})
runs-on: ubuntu-latest
env:
GITHUB_TAG: ${{ inputs.tag }}
RELEASE_TYPE: ${{ inputs.release_type }}
steps:
- name: Get Token
id: token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_KEY }}
owner: Nomi-CEu
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.tag }}
token: ${{ steps.token.outputs.token }}
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Create Changelog
working-directory: ./tools
run: npm run gulp createChangelog
env:
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
COMPARE_TAG: ${{ inputs.compare_tag }}
TEST_CHANGELOG: ${{ inputs.test }}
- name: Commit and Push Changelog
if: ${{ inputs.branch }}
uses: "stefanzweifel/git-auto-commit-action@v5"
id: "commit-template"
with:
commit_message: "Upload Changelogs for Release ${{ inputs.tag }}"
commit_author: nomi-ceu-management[bot] <155502507+nomi-ceu-management[bot]@users.noreply.github.com>
commit_user_name: nomi-ceu-management[bot]
commit_user_email: 155502507+nomi-ceu-management[bot]@users.noreply.github.com
branch: ${{ inputs.branch }}
create_branch: true
- name: Upload Changelog
uses: actions/upload-artifact@v4
with:
name: Changelogs
path: |
./CHANGELOG.md
./CHANGELOG_CF.md
if-no-files-found: error
compression-level: 9

78
.github/workflows/deploy.yml vendored Normal file
View File

@ -0,0 +1,78 @@
name: "Deploy to GitHub Releases & CurseForge"
on:
workflow_dispatch:
inputs:
tag:
description: Tag to Checkout and Release.
required: true
type: string
release_type:
description: The Release Type.
required: true
type: choice
default: 'Release'
options:
- 'Release'
- 'Beta Release'
- 'Alpha Release'
changelog_url:
description: Where to download the Changelog File from. See CONTRIBUTING.md for more information.
required: false
type: string
changelog_cf_url:
description: Where to download the CF Changelog File from. See CONTRIBUTING.md for more information.
required: false
type: string
changelog_branch:
description: Branch to download changelog Files from. See CONTRIBUTING.md for more information.
required: false
type: string
compare_tag:
description: Tag(s) to compare against. If specifying multiple, seperate by commas. (Spaces allowed). See CONTRIBUTING.md for more information.
required: false
type: string
deploy_to_gh:
description: Whether to deploy to GitHub Releases.
required: true
type: boolean
default: true
deploy_to_cf:
description: Whether to deploy to CurseForge.
required: true
type: boolean
default: true
jobs:
build:
name: Build Pack (${{ inputs.tag }})
uses: ./.github/workflows/buildpack.yml
with:
tag: ${{ inputs.tag }}
release_type: ${{ inputs.release_type }}
changelog_url: ${{ inputs.changelog_url }}
changelog_cf_url: ${{ inputs.changelog_cf_url }}
changelog_branch: ${{ inputs.changelog_branch }}
compare_tag: ${{ inputs.compare_tag }}
secrets: inherit
deployGH:
name: Deploy to GitHub Releases (${{ inputs.tag }})
if: ${{ inputs.deploy_to_gh }}
needs: build
uses: ./.github/workflows/deploygh.yml
with:
tag: ${{ inputs.tag }}
release_type: ${{ inputs.release_type }}
secrets: inherit
deployCF:
name: Deploy to CurseForge (${{ inputs.tag }})
if: ${{ inputs.deploy_to_cf }}
needs: build
uses: ./.github/workflows/deploycf.yml
with:
tag: ${{ inputs.tag }}
release_type: ${{ inputs.release_type }}
secrets: inherit

69
.github/workflows/deploycf.yml vendored Normal file
View File

@ -0,0 +1,69 @@
name: "[NOT CALLABLE] Deploy To CurseForge"
on:
workflow_call:
inputs:
tag:
description: The Release Tag.
required: true
type: string
release_type:
description: The Release Type. This is the formatted version.
required: true
type: string
jobs:
deployCF:
name: Deploy to CurseForge (${{ inputs.tag }})
runs-on: ubuntu-latest
env:
GITHUB_TAG: ${{ github.event.inputs.tag }}
steps:
- name: Checkout Tag
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Check Environmental Variables
working-directory: ./tools
run: npm run gulp check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
CURSEFORGE_API_TOKEN: ${{ secrets.CURSEFORGE_API_TOKEN }}
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Download Built Artifacts
uses: actions/download-artifact@v4
with:
name: Built Pack
path: ./build/
- name: Deploy to CurseForge
env:
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
CURSEFORGE_API_TOKEN: ${{ secrets.CURSEFORGE_API_TOKEN }}
RELEASE_TYPE: ${{ inputs.release_type }}
working-directory: ./tools
run: npm run gulp deployCurseForge

78
.github/workflows/deploygh.yml vendored Normal file
View File

@ -0,0 +1,78 @@
name: "[NOT CALLABLE] Deploy To Github Releases"
on:
workflow_call:
inputs:
tag:
description: The Release Tag.
required: true
type: string
release_type:
description: The Release Type. This is the formatted version.
required: true
type: string
jobs:
deployGH:
name: Deploy to GitHub Releases (${{ inputs.tag }})
runs-on: ubuntu-latest
env:
GITHUB_TAG: ${{ inputs.tag }}
steps:
- name: Get Token
id: token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_KEY }}
owner: Nomi-CEu
- name: Checkout Tag
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Check Environmental Variables
working-directory: ./tools
run: npm run gulp check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
CURSEFORGE_API_TOKEN: ${{ secrets.CURSEFORGE_API_TOKEN }}
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Download Built Artifacts
uses: actions/download-artifact@v4
with:
name: Built Pack
path: ./build/
- name: Deploy to GitHub Releases
env:
GITHUB_TOKEN: ${{ steps.token.outputs.token }}
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
CURSEFORGE_API_TOKEN: ${{ secrets.CURSEFORGE_API_TOKEN }}
RELEASE_TYPE: ${{ inputs.release_type }}
working-directory: ./tools
run: npm run gulp deployReleases

183
.github/workflows/forkprbuildpack.yml vendored Normal file
View File

@ -0,0 +1,183 @@
# This workflow file tests PRs made from forks. Disable this if it is considered too much of a security risk (although many efforts have been taken to reduce risk)
# If workflow enabled, make sure to set the environment used to need a specific team (admin-devs), and default GITHUB_TOKEN perms to read!
# See https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ for more information!
# Actions taken to reduce risk:
# This workflow is only started if a PR has the 'fork-build' label, and when the deployment to `forkprbuildpack` is approved (by admin-devs)
# Only the CFCORE_API_TOKEN secret is accessed, meaning it is the only one revealed, meaning that the other secrets cannot be used by nodejs tools
# GITHUB_TOKEN permissions are set to read
name: "[NOT CALLABLE] Fork PR Build Pack"
on:
pull_request_target:
types:
- synchronize
- labeled
paths-ignore:
- "README.md"
# if a second commit is pushed quickly after the first, cancel the first one's build
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true
permissions:
contents: read
env:
HEAD_REF: ${{ github.head_ref }}
HEAD_REPO: ${{ github.event.pull_request.head.repo.owner.login }}
TRUE_SHA: ${{ github.event.pull_request.head.sha }}
SKIP_CHANGELOG: true
jobs:
setup:
# Only continue if we are in base Nomi-CEu Repo, pull request is from fork and pr has fork-build label
if: "${{ github.repository_owner == 'Nomi-CEu' && github.event.pull_request.head.repo.owner.login != 'Nomi-CEu' && contains(github.event.pull_request.labels.*.name, 'fork-build') }}"
name: Setup (${{ github.event.pull_request.head.sha }})
runs-on: ubuntu-latest
environment: fork-pr-build-pack
outputs:
client: ${{ steps.artifactNames.outputs.client }}
server: ${{ steps.artifactNames.outputs.server }}
lang: ${{ steps.artifactNames.outputs.lang }}
mmc: ${{ steps.artifactNames.outputs.mmc }}
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
persist-credentials: false
# Don't use cache to prevent cache poisoning
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
working-directory: ./tools
run: npm ci
- name: Make Artifact Names
id: artifactNames
working-directory: ./tools
run: npm run gulp makeArtifactNames
buildClient:
name: Build Fork PR Client (${{ github.event.pull_request.head.sha }})
runs-on: ubuntu-latest
needs: setup
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
persist-credentials: false
# Don't use cache to prevent cache poisoning
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
working-directory: ./tools
run: npm ci
- name: Build Client
working-directory: ./tools
run: npm run gulp buildClient
env:
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Upload Client Zip
uses: actions/upload-artifact@v4
with:
name: ${{ needs.setup.outputs.client }}
path: ./build/client/**/*
if-no-files-found: error
compression-level: 9
buildServer:
name: Build Fork PR Server (${{ github.event.pull_request.head.sha }})
runs-on: ubuntu-latest
needs: setup
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
persist-credentials: false
# Don't use cache to prevent cache poisoning
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
working-directory: ./tools
run: npm ci
- name: Build Server
working-directory: ./tools
run: npm run gulp buildServer
env:
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Upload Server Zip
uses: actions/upload-artifact@v4
with:
name: ${{ needs.setup.outputs.server }}
path: ./build/server/**/*
if-no-files-found: error
compression-level: 9
buildLang:
name: Build Fork PR Lang (${{ github.event.pull_request.head.sha }})
runs-on: ubuntu-latest
needs: setup
steps:
- name: Checkout Ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
persist-credentials: false
# Don't use cache to prevent cache poisoning
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
working-directory: ./tools
run: npm ci
- name: Build Lang
working-directory: ./tools
run: npm run gulp buildLang
env:
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Upload Lang Zip
uses: actions/upload-artifact@v4
with:
name: ${{ needs.setup.outputs.lang }}
path: ./build/lang/**/*
if-no-files-found: error
compression-level: 9

43
.github/workflows/releasechangelog.yml vendored Normal file
View File

@ -0,0 +1,43 @@
name: Create Release Commit & Changelog
on:
workflow_dispatch:
inputs:
tag:
description: Tag to Create & Create Changelog At.
required: true
release_type:
description: Release Type.
type: choice
required: true
default: 'Release'
options:
- 'Release'
- 'Beta Release'
- 'Alpha Release'
compare_tag:
description: Tag(s) to compare against. If not set, will use the tag before `Tag`. If specifying multiple, seperate by commas. (Spaces allowed).
required: false
branch:
description: Branch to push changelog to. If not set, changelog will just be uploaded as an artifact.
required: false
jobs:
releaseCommit:
name: Create Release Commit (${{ inputs.tag }})
uses: ./.github/workflows/releasecommit.yml
with:
tag: ${{ inputs.tag }}
release_type: ${{ inputs.release_type }}
secrets: inherit
createChangelog:
name: Create Changelog (${{ inputs.tag }})
needs: releaseCommit
uses: ./.github/workflows/createchangelog.yml
with:
tag: ${{ inputs.tag }}
release_type: ${{ inputs.release_type }}
compare_tag: ${{ inputs.compare_tag }}
branch: ${{ inputs.branch }}
secrets: inherit

132
.github/workflows/releasecommit.yml vendored Normal file
View File

@ -0,0 +1,132 @@
name: Create Release Commit
on:
workflow_dispatch:
inputs:
tag:
description: |
Tag to release (aka 1.6.1a, 1.6.1-beta-3, 2.0, etc.).
If this is just a release, then the version will be grabbed from the top line of version.txt. However, this field is needed if version.txt does not exist or is empty.
type: string
required: false
release_type:
description: 'Release Type. Will be ignored if not a release.'
type: choice
required: false
default: 'Release'
options:
- 'Release'
- 'Beta Release'
- 'Alpha Release'
update_files:
description: |
Whether this commit is just to update files. version.txt will not be changed. This is used when the templates are changed, and the main files need to be updated.
type: boolean
required: true
default: false
workflow_call:
inputs:
tag:
description: |
Tag to release (aka 1.6.1a, 1.6.1-beta-3, 2.0, etc.).
If this is just a release, then the version will be grabbed from the top line of version.txt. However, this field is needed if version.txt does not exist or is empty.
type: string
required: false
release_type:
description: 'Release Type. Will be ignored if not a release.'
type: string
required: false
update_files:
description: |
Whether this commit is just to update files. version.txt will not be changed. This is used when the templates are changed, and the main files need to be updated.
type: boolean
required: false
default: false
jobs:
createReleaseCommit:
name: Create Release Commit (${{ inputs.version }})
runs-on: ubuntu-latest
env:
UPDATE_FILES: ${{ inputs.update_files }}
GITHUB_TAG: ${{ inputs.tag }}
RELEASE_TYPE: ${{ inputs.release_type }}
steps:
- name: Get Token
id: token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_KEY }}
owner: Nomi-CEu
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ steps.token.outputs.token }}
- name: Restore NPM Cached Files
uses: actions/cache@v4
id: npm-cache
with:
path: |
~/.npm
./tools/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('./tools/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Setup NodeJS v20
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
- name: Setup NPM Packages
if: steps.npm-cache.outputs.cache-hit != 'true'
working-directory: ./tools
run: npm ci
- name: Check Environmental Variables
working-directory: ./tools
run: npm run gulp check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
CURSEFORGE_API_TOKEN: ${{ secrets.CURSEFORGE_API_TOKEN }}
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Update Files
working-directory: ./tools
run: npm run gulp updateFilesAll
- name: Commit and Push Release Changes
uses: stefanzweifel/git-auto-commit-action@v5
id: commit-release
if: ${{ !inputs.update_files }}
with:
commit_message: "${{ inputs.release_type }} ${{ inputs.tag }}\n\n[NO CATEGORY]"
commit_author: nomi-ceu-management[bot] <155502507+nomi-ceu-management[bot]@users.noreply.github.com>
commit_user_name: nomi-ceu-management[bot]
commit_user_email: 155502507+nomi-ceu-management[bot]@users.noreply.github.com
tagging_message: "${{ inputs.tag }}"
- name: Commit and Push Update Changes
uses: stefanzweifel/git-auto-commit-action@v5
id: commit-update
if: ${{ inputs.update_files }}
with:
commit_message: "Update Issue, Server and Version Config Files from Templates\n\n[SKIP]"
commit_author: nomi-ceu-management[bot] <155502507+nomi-ceu-management[bot]@users.noreply.github.com>
commit_user_name: nomi-ceu-management[bot]
commit_user_email: 155502507+nomi-ceu-management[bot]@users.noreply.github.com
- name: Throw Error if No Changes were Detected
if: ${{ steps.commit-release.outputs.changes_detected == 'false' || steps.commit-update.outputs.changes_detected == 'false' }}
run: |
echo "No Changes were Detected. Most likely, this is an error."
exit 1

74
.github/workflows/releasedeploy.yml vendored Normal file
View File

@ -0,0 +1,74 @@
name: Release Commit & Deploy
on:
workflow_dispatch:
inputs:
tag:
description: Tag to Make and Release.
required: true
type: string
release_type:
description: The Release Type.
required: true
type: choice
default: 'Release'
options:
- 'Release'
- 'Beta Release'
- 'Alpha Release'
compare_tag:
description: Tag(s) to compare against. If specifying multiple, seperate by commas. (Spaces allowed). See CONTRIBUTING.md for more information.
required: false
type: string
deploy_to_gh:
description: Whether to deploy to GitHub Releases.
required: true
type: boolean
default: true
deploy_to_cf:
description: Whether to deploy to CurseForge.
required: true
type: boolean
default: true
jobs:
releaseCommit:
name: Create Release Commit (${{ inputs.tag }})
uses: ./.github/workflows/releasecommit.yml
with:
tag: ${{ inputs.tag }}
release_type: ${{ inputs.release_type }}
secrets: inherit
build:
name: Build Pack (${{ inputs.tag }})
needs: releaseCommit
uses: ./.github/workflows/buildpack.yml
with:
tag: ${{ inputs.tag }}
release_type: ${{ inputs.release_type }}
changelog_url: ${{ inputs.changelog_url }}
changelog_cf_url: ${{ inputs.changelog_cf_url }}
changelog_branch: ${{ inputs.changelog_branch }}
compare_tag: ${{ inputs.compare_tag }}
secrets: inherit
deployGH:
name: Deploy to GitHub Releases (${{ inputs.tag }})
if: ${{ inputs.deploy_to_gh }}
needs: build
uses: ./.github/workflows/deploygh.yml
with:
tag: ${{ inputs.tag }}
release_type: ${{ inputs.release_type }}
secrets: inherit
deployCF:
name: Deploy to CurseForge (${{ inputs.tag }})
if: ${{ inputs.deploy_to_cf }}
needs: build
uses: ./.github/workflows/deploycf.yml
with:
tag: ${{ inputs.tag }}
release_type: ${{ inputs.release_type }}
secrets: inherit

36
.github/workflows/testbuildpack.yml vendored Normal file
View File

@ -0,0 +1,36 @@
# Test Builds pack from pushes and pull requests in same repo.
name: "[NOT CALLABLE] Test Build Pack"
on:
push:
branches:
- main
- test-buildscript*
- dev/*
paths-ignore:
- "README.md"
pull_request:
paths-ignore:
- "README.md"
types:
- opened
- reopened
- synchronize
# if a second commit is pushed quickly after the first, cancel the first one's build
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
# Only allow runs from commits to Nomi-CEu Branches or from pull requests from Nomi-CEu repo without dev/ (That is handled by push)
if: "${{ github.repository_owner == 'Nomi-CEu' && ( !github.event.pull_request || ( github.event.pull_request.head.repo.owner.login == 'Nomi-CEu' && !startsWith(github.head_ref, 'dev/') ) ) }}"
name: Test Build Pack
uses: ./.github/workflows/buildpack.yml
with:
separate_upload: true
head_ref: ${{ github.head_ref }}
true_sha: ${{ github.event.pull_request.head.sha }}
skip_changelog: ${{ github.event.pull_request != null }}
secrets: inherit

18
.github/workflows/testcommits.yml vendored Normal file
View File

@ -0,0 +1,18 @@
name: Test Commit Syntax
on:
workflow_dispatch:
push:
branches:
- main
- test-buildscript*
jobs:
testCommits:
if: "${{ github.repository_owner == 'Nomi-CEu' }}"
name: Test Commits
uses: ./.github/workflows/createchangelog.yml
with:
release_type: "Cutting Edge Build"
test: true
secrets: inherit

54
.github/workflows/updateEnglishLang.yml vendored Normal file
View File

@ -0,0 +1,54 @@
# Tells Nomi-CEu-Translations to Update English Lang
name: "Update English Lang in Nomi-CEu-Translations"
on:
workflow_dispatch:
push:
branches:
# Only Update English Lang on Branch Main
- main
paths:
# Specify the path to 'assets' folder, suffixed by '/**/[eE][nN]_[uU][sS].lang', then another one, suffixed by '/**/[eE][nN]-[uU][sS].lang' (Can't use character group [-_])
# This also activates on QB Json Change, as if that happens, the QB Lang most likely needs to be changed.
- "overrides/resources/**/[eE][nN]_[uU][sS].lang"
- "overrides/resources/**/[eE][nN]-[uU][sS].lang"
- "overrides/config/betterquesting/DefaultQuests.json" # Normal QB Json in Default Config
- "overrides/config/betterquesting/saved_quests/ExpertQuests.json" # Expert QB Json in Default Config
- "overrides/config-overrides/normal/betterquesting/DefaultQuests.json" # Normal QB Json in Config Overrides
- "overrides/config-overrides/expert/betterquesting/DefaultQuests.json" # Expert QB Json in Config Overrides
jobs:
updateLang:
name: Update English Lang in Nomi-CEu-Translations
runs-on: ubuntu-latest
# Prevent Workflow from Running on Forks
if: "${{ github.repository_owner == 'Nomi-CEu' }}"
steps:
# We have to use a custom app token, as the default GITHUB_TOKEN only has access to the base repo.
# Nomi-CEu-Management has access to all of Nomi-CEu's Repos.
- name: Get Token
id: token
uses: actions/create-github-app-token@v1
with:
# Shared Org Secret: Contains the Nomi-CEu-Management App ID (773030)
app-id: ${{ secrets.APP_ID }}
# Shared Org Secret: Contains the Nomi-CEu-Management App's Private Key.
# run `cat {PEM_FILE_PATH} | base64 -w 0 && echo` to encode the key first if changing the key.
# Paste the output of the command into the secret value.
private-key: ${{ secrets.APP_KEY }}
owner: Nomi-CEu
- name: Dispatch Workflow
uses: actions/github-script@v5
with:
github-token: ${{ steps.token.outputs.token }}
# A Javascript Function Body to send the Workflow Dispatch Event.
script: |
await github.rest.repos.createDispatchEvent({
owner: "Nomi-CEu",
repo: "Nomi-CEu-Translations",
event_type: "update_english_lang",
client_payload: {
module: "nomi-ceu",
},
});

View File

@ -15,57 +15,21 @@
"author": "__tracer",
"name": "nomi-ceu",
"files": [
{
"projectID": 322344,
"fileID": 3509087,
"required": true
},
{
"projectID": 237102,
"fileID": 3157548,
"required": true
},
{
"projectID": 292217,
"fileID": 6017244,
"required": true
},
{
"projectID": 286703,
"fileID": 5669731,
"required": true
},
{
"projectID": 439870,
"fileID": 5689775,
"required": true
},
{
"projectID": 623955,
"fileID": 5751930,
"required": true
},
{
"projectID": 322347,
"fileID": 3254160,
"required": true
},
{
"projectID": 254317,
"fileID": 3840727,
"required": true
},
{,
{
"projectID": 223008,
"fileID": 5741939,
"required": true
},
{,
{
"projectID": 220318,
"fileID": 3558882,
"required": true
},
{
{,
"projectID": 32274,
"fileID": 5172461,
"required": true
@ -330,6 +294,12 @@
"fileID": 2845365,
"required": true
},
{
"projectID": 251407,
"fileID": 2624712,
"required": true,
"sides": ["client"]
},
{
"projectID": 251792,
"fileID": 3017440,
@ -764,7 +734,7 @@
},
{
"projectID": 932060,
"fileID": 6051550,
"fileID": 5981309,
"required": true
},
{

View File

@ -345,20 +345,6 @@ World {
# Add the ID of any mod's dimensions that you don't want Draconium Ore generated in.
I:oreGenDimentionBlacklist <
100
101
102
103
104
201
105
106
107
108
109
110
111
119
>
# Setting this to false will just completely disable ALL DE world gen!

View File

@ -23,14 +23,6 @@
{
"dimID": 119,
"dimName": "Void"
},
{
"dimID": 108,
"dimName": "Titan"
},
{
"dimId": 201,
"dimName": "Hypron"
}
]
}

View File

@ -13,7 +13,6 @@
"fluid": "oil_heavy",
"dimension_filter": [
"name:overworld",
"dimension_id:201",
"name:lostcities"
],
"biome_modifier": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"name:overworld",
"dimension_id:201",
"name:lostcities"
],
"fluid": "oil_light"

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"name:overworld",
"dimension_id:201",
"name:lostcities"
],
"fluid": "natural_gas"

View File

@ -13,7 +13,6 @@
"fluid": "oil",
"dimension_filter": [
"name:overworld",
"dimension_id:201",
"name:lostcities"
],
"biome_modifier": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"name:overworld",
"dimension_id:201",
"name:lostcities"
],
"fluid": "oil_medium"

View File

@ -13,7 +13,6 @@
"fluid": "salt_water",
"dimension_filter": [
"name:overworld",
"dimension_id:201",
"name:lostcities"
],
"biome_modifier": {

View File

@ -1,17 +0,0 @@
{
"weight": 600,
"name": "Titan Infinite Heavy Oil Deposit",
"yield": {
"min": 160,
"max": 160
},
"depletion": {
"amount": 0,
"chance": 0,
"depleted_yield": 80
},
"dimension_filter": [
"dimension_id:108"
],
"fluid": "oil_heavy"
}

View File

@ -1,17 +0,0 @@
{
"weight": 600,
"name": "Titan Infinite light Oil Deposit",
"yield": {
"min": 160,
"max": 160
},
"depletion": {
"amount": 0,
"chance": 0,
"depleted_yield": 80
},
"dimension_filter": [
"dimension_id:108"
],
"fluid": "oil_light"
}

View File

@ -1,17 +0,0 @@
{
"weight": 600,
"name": "Titan Infinite Raw Oil Deposit",
"yield": {
"min": 160,
"max": 160
},
"depletion": {
"amount": 0,
"chance": 0,
"depleted_yield": 80
},
"dimension_filter": [
"dimension_id:108"
],
"fluid": "oil"
}

View File

@ -1,17 +0,0 @@
{
"weight": 600,
"name": "Titan Infinite Medium Oil Deposit",
"yield": {
"min": 160,
"max": 160
},
"depletion": {
"amount": 0,
"chance": 0,
"depleted_yield": 80
},
"dimension_filter": [
"dimension_id:108"
],
"fluid": "oil_medium"
}

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -13,7 +13,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -13,7 +13,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -13,7 +13,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -23,7 +23,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -13,7 +13,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -12,7 +12,6 @@
},
"dimension_filter": [
"dimension_id:111",
"dimension_id:201",
"dimension_id:0"
],
"filler": {

View File

@ -86,7 +86,7 @@ general {
>
# Block to put underneath a bed so that it qualifies as a teleporter bed [default: minecraft:diamond_block]
S:specialBedBlock=minecraft:command_block
S:specialBedBlock=minecraft:diamond_block
# Config version. Do not modify this manually!
I:version=7

File diff suppressed because it is too large Load Diff

View File

@ -1,703 +0,0 @@
{
"renderingSettings": {
"renderHUD_1P": {
"value": true,
"comment": "If false, the HUD in vehicles will not render in 1st-person mode."
},
"renderHUD_3P": {
"value": true,
"comment": "If false, the HUD in vehicles will not render in 3rd-person mode."
},
"fullHUD_1P": {
"value": true,
"comment": "If true, the full-size HUD will render in 1st-person rather than the half-size HUD."
},
"fullHUD_3P": {
"value": false,
"comment": "If true, the full-size HUD will render in 3rd-person rather than the half-size HUD."
},
"transpHUD_1P": {
"value": false,
"comment": "If true, the background textures for the HUD will not be rendered in 1st-person."
},
"transpHUD_3P": {
"value": false,
"comment": "If true, the background textures for the HUD will not be rendered in 1st-person."
},
"renderWindows": {
"value": true,
"comment": "Should the glass on windows be rendered on vehicles?"
},
"innerWindows": {
"value": false,
"comment": "Should the glass on windows be rendered on the inside of the vehicle? Note: if renderWindows is false, this config has no effect."
},
"vehicleBeams": {
"value": true,
"comment": "If false, beams on vehicles will not render."
},
"blockBeams": {
"value": true,
"comment": "If false, beams on blocks will not render."
},
"brightLights": {
"value": true,
"comment": "If false, lights from vehicles and blocks will not make themselves bright and instead will render as if they were part of the model at that same brightness. Useful if you have shaders and this is causing troubles."
},
"blendedLights": {
"value": true,
"comment": "If false, beam-based lights from vehicles and blocks will not do brightness blending. This is different from the general brightness setting as this will do OpenGL blending on the world to make it brighter, not just the beams themselves."
},
"playerTweaks": {
"value": true,
"comment": "If true, player hands will be modified when holding guns, and hands and legs will be modified when riding in vehicles. Set this to false (and restart the game) if mods cause issues, like two-hand rendering or player model issues. Automatically set to false if some mods are detected."
},
"renderingMode": {
"value": 0,
"comment": "Internal rendering mode value, don't touch!"
}
},
"controlSettings": {
"kbOverride": {
"value": false,
"comment": "Should keyboard controls be ignored when a joystick control is mapped? Leave true to free up the keyboard while using a joysick."
},
"north360": {
"value": true,
"comment": "If true, instruments will represent North as 360 degrees, instead of the Minecraft default of 180. Allows using the heading system that real-world pilots and militaries do."
},
"simpleThrottle": {
"value": true,
"comment": "If true, then vehicles will automatically go into reverse after stopped with the brake rather than staying stopped and waiting for you to shift. When going in reverse, the opposite is true: the vehicle will shift into forwards when pressing forwards when stopped. Additionally, the parking brake will automatically be set when leaving the vehicle."
},
"halfThrottle": {
"value": false,
"comment": "If true, then the gas key will only be a half-throttle, with the MOD+Throttle key becoming the full-speed control. Useful if you want a more controlled vehicle experience. Only valid on car/boat types with on-off throttles, and does not work in conjunction with simpleThrottle as that changes how the MOD key works with gas and brake keys."
},
"autostartEng": {
"value": false,
"comment": "If true, engines will automatically start when a driver enters a vehicle, and will turn off when they leave. The parking brake will also be applied when leaving the vehicle. Note: this does not bypass the fuel or electrical system."
},
"autoTrnSignals": {
"value": true,
"comment": "If true, turns signals will come on automatically when you start a turn, and will turn off when the turn completes. If this is false, then they will only be able to be activated with the keybinds or via the panel."
},
"useShifter": {
"value": false,
"comment": "Set to true if you are using a shifter for shifting gears. Required since IV doesn't know this automatically since a shifter in neutral won't press any buttons."
},
"heliAutoLevel": {
"value": true,
"comment": "If true, helicopters will automatically return to level flight when you let off the control stick. However, this will prevent them from doing loops. The realistic value for this config is false, but the one that's more player-freindly is true. Hence it being the default."
},
"classicJystk": {
"value": false,
"comment": "If true, the classic controller code will be used. Note: THIS CODE MAY CRASH MOBILE DEVICES! Also note that switching will probably mess up your keybinds. Only do this if you are having issues with a joystick or controller not being recognized. After changing this setting, reboot the game to make it take effect."
},
"steeringControlRate": {
"value": 2.0,
"comment": "How many degrees to turn the wheels on vehicles for every tick the button is held down. This is not used when using a joystick."
},
"steeringReturnRate": {
"value": 4.0,
"comment": "How many degrees to turn the wheels on vehicles for every tick the button is NOT held down. This is not used when using a joystick."
},
"flightControlRate": {
"value": 0.6,
"comment": "How many degrees to move the elevators and ailerons on aircraft for every tick the button is held down. This is not used when using a joystick."
},
"mouseYokeRate": {
"value": 0.1,
"comment": "How many degrees to move control surfaces for every 1 mouse unit change. Used for mouse yoke controls."
},
"joystickDeadZone": {
"value": 0.03,
"comment": "Dead zone for joystick axis. This is NOT joystick specific."
},
"soundVolume": {
"value": 1.0,
"comment": "Volume for all sounds in the mod. This is used instead of the game's master volume."
},
"radioVolume": {
"value": 1.0,
"comment": "Volume for radios in the mod. This is used instead of the game's master volume."
}
},
"controls": {
"keysetID": 12,
"keyboard": {
"car.mod": {
"keyCode": 54
},
"aircraft.js_inhibit": {
"keyCode": 70
},
"aircraft.brake": {
"keyCode": 45
},
"aircraft.throttle_u": {
"keyCode": 46
},
"car.lights": {
"keyCode": 76
},
"car.panel": {
"keyCode": 34
},
"car.shift_u": {
"keyCode": 25
},
"car.horn": {
"keyCode": 36
},
"aircraft.radio": {
"keyCode": 12
},
"aircraft.yaw_l": {
"keyCode": 35
},
"aircraft.changeview": {
"keyCode": 16
},
"car.gas": {
"keyCode": 51
},
"aircraft.throttle_d": {
"keyCode": 20
},
"aircraft.gun_fire": {
"keyCode": 57
},
"car.turn_l": {
"keyCode": 30
},
"aircraft.roll_l": {
"keyCode": 30
},
"aircraft.gun_switch": {
"keyCode": 47
},
"car.turn_r": {
"keyCode": 18
},
"aircraft.yaw_r": {
"keyCode": 49
},
"aircraft.roll_r": {
"keyCode": 18
},
"car.shift_d": {
"keyCode": 22
},
"car.turnsignal_r": {
"keyCode": 77
},
"car.radio": {
"keyCode": 12
},
"car.gun_fire": {
"keyCode": 57
},
"aircraft.pitch_d": {
"keyCode": 51
},
"car.zoom_o": {
"keyCode": 209
},
"aircraft.zoom_o": {
"keyCode": 209
},
"aircraft.zoom_i": {
"keyCode": 201
},
"car.js_inhibit": {
"keyCode": 70
},
"aircraft.flaps_d": {
"keyCode": 32
},
"car.zoom_i": {
"keyCode": 201
},
"car.gun_switch": {
"keyCode": 37
},
"car.changeview": {
"keyCode": 45
},
"aircraft.pitch_u": {
"keyCode": 24
},
"aircraft.mod": {
"keyCode": 54
},
"aircraft.flaps_u": {
"keyCode": 33
},
"car.brake": {
"keyCode": 24
},
"aircraft.panel": {
"keyCode": 34
},
"car.turnsignal_l": {
"keyCode": 75
},
"general.custom1": {
"keyCode": 82
},
"general.custom2": {
"keyCode": 79
},
"general.custom3": {
"keyCode": 80
},
"general.custom4": {
"keyCode": 81
},
"general.reload": {
"keyCode": 19
},
"aircraft.park": {
"keyCode": 54
},
"car.park": {
"keyCode": 49
}
},
"joystick": {
"general.custom1": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"general.custom2": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"general.custom3": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"general.custom4": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"general.reload": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.camlock": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.yaw": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.pitch": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.roll": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.throttle": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.brake": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.brake_digital": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.gear": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.flaps_u": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.flaps_d": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.panel": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.park": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.radio": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.gun_fire": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.gun_switch": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.zoom_i": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.zoom_o": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.changeview": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.look_l": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.look_r": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.look_u": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.look_d": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.look_a": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.trim_yaw_r": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.trim_yaw_l": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.trim_pitch_u": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.trim_pitch_d": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.trim_roll_r": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.trim_roll_l": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.reverse": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"aircraft.js_inhibit": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.mod": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.camlock": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.turn": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.gas": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.brake": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.brake_digital": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.panel": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_u": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_d": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_1": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_2": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_3": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_4": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_5": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_6": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_7": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_8": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_9": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.shift_r": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.horn": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.park": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.radio": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.gun_fire": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.gun_switch": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.zoom_i": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.zoom_o": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.changeview": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.look_l": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.look_r": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.look_u": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.look_d": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.look_a": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.lights": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.turnsignal_l": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.turnsignal_r": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
},
"car.js_inhibit": {
"buttonIndex": 0,
"invertedAxis": false,
"axisMinTravel": 0.0,
"axisMaxTravel": 0.0
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +0,0 @@
{
"comment1": "The following section is used for overriding the default 1:1 damage values applied to vehicles in packs from external sources.",
"comment2": "This is useful for modpack creators that wish to include MTS in packs with other weapons that don't know about the various hitbox and armor systems.",
"comment3": "The entries in here are first indexed by the pack, then the vehicle ID.",
"comment4": "If you need the full listing of items, set dumpDamageConfig to true in the general config section.",
"comment5": "This will overwrite this file with all vehicles in all packs.",
"overrides": {
"mtsofficialpack": {
"gmcbrig": 2.0,
"e500": 2.0,
"trimotor": 2.0,
"comanche": 2.0,
"pzl37los": 2.0,
"scout": 2.0,
"fordmustang70": 1.0,
"mc172": 2.0,
"vulcanair": 2.0,
"ft17": 2.0,
"pzlp11": 2.0,
"bell47g": 2.0,
"firetruck": 2.0
}
}
}

View File

@ -40,7 +40,7 @@ for (var entry : [0: 'glass', 20: 'covered', 40: 'smart', 60: 'dense_smart', 500
.output(output)
.input(cables, fluidIng(fluid('water')))
.setInputTooltip(1, IngredientFluidBucket.getInputTooltip(fluid('water')))
.register()
.replace().register()
}
// Paper

View File

@ -37,6 +37,9 @@ addOverride('key.draconicevolution.toolConfig', KeyModifier.SHIFT, Keyboard.KEY_
// Its also replaced by a different mod, FindMyItemsAndFluids.
addOverride('key.xu2.searchforitems', Keyboard.KEY_NONE)
addOverride('key.ftbutilities.nbt', Keyboard.KEY_NONE)
addOverride('key.ftbutilities.trash', Keyboard.KEY_NONE)
addOverride('key.groovyscript.reload', Keyboard.KEY_NONE)
// Doesn't affect ability to move bookmarks for some reason?

View File

@ -1,198 +0,0 @@
import com.nomiceu.nomilabs.groovy.ChangeRecipeBuilder
import com.nomiceu.nomilabs.groovy.ChangeRecipeBuilderCollection
import com.nomiceu.nomilabs.util.LabsModeHelper
import gregtech.api.recipes.RecipeBuilder
import gregtech.api.metatileentity.multiblock.CleanroomType
import gregtech.api.recipes.ingredients.GTRecipeItemInput
import gregtech.api.recipes.ingredients.nbtmatch.NBTCondition
import gregtech.api.recipes.ingredients.nbtmatch.NBTMatcher
import net.minecraft.item.ItemStack
import net.minecraftforge.fluids.FluidStack
import gregtech.loaders.WoodTypeEntry
import gregtech.loaders.recipe.WoodRecipeLoader
def newWoods = Arrays.asList(
new WoodTypeEntry.Builder("biomesoplenty", "sacred_oak")
.planks(item("biomesoplenty:planks_0", 0), "sacred_oak_planks")
.log(item("biomesoplenty:log_0", 4)).removeCharcoalRecipe()
.door(item("biomesoplenty:sacred_oak_door"), "sacred_oak_door")
.slab(item("biomesoplenty:wood_slab_0", 0), "sacred_oak_wooden_slab")
.fence(item("biomesoplenty:sacred_oak_fence"), "sacred_oak_fence")
.fenceGate(item("biomesoplenty:sacred_oak_fence_gate"), "sacred_oak_fence_gate")
.stairs(item("biomesoplenty:sacred_oak_stairs"), "sacred_oak_stairs")
.boat(item("biomesoplenty:boat_sacred_oak"), "boat_sacred_oak")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "cherry")
.planks(item("biomesoplenty:planks_0", 1), "cherry_planks")
.log(item("biomesoplenty:log_0", 5)).removeCharcoalRecipe()
.door(item("biomesoplenty:cherry_door"), "cherry_door")
.slab(item("biomesoplenty:wood_slab_0", 1), "cherry_wooden_slab")
.fence(item("biomesoplenty:cherry_fence"), "cherry_fence")
.fenceGate(item("biomesoplenty:cherry_fence_gate"), "cherry_fence_gate")
.stairs(item("biomesoplenty:cherry_stairs"), "cherry_stairs")
.boat(item("biomesoplenty:boat_cherry"), "boat_cherry")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "umbran")
.planks(item("biomesoplenty:planks_0", 2), "umbran_planks")
.log(item("biomesoplenty:log_0", 6)).removeCharcoalRecipe()
.door(item("biomesoplenty:umbran_door"), "umbran_door")
.slab(item("biomesoplenty:wood_slab_0", 2), "umbran_wooden_slab")
.fence(item("biomesoplenty:umbran_fence"), "umbran_fence")
.fenceGate(item("biomesoplenty:umbran_fence_gate"), "umbran_fence_gate")
.stairs(item("biomesoplenty:umbran_stairs"), "umbran_stairs")
.boat(item("biomesoplenty:boat_umbran"), "boat_umbran")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "fir")
.planks(item("biomesoplenty:planks_0", 3), "fir_planks")
.log(item("biomesoplenty:log_0", 7)).removeCharcoalRecipe()
.door(item("biomesoplenty:fir_door"), "fir_door")
.slab(item("biomesoplenty:wood_slab_0", 3), "fir_wooden_slab")
.fence(item("biomesoplenty:fir_fence"), "fir_fence")
.fenceGate(item("biomesoplenty:fir_fence_gate"), "fir_fence_gate")
.stairs(item("biomesoplenty:fir_stairs"), "fir_stairs")
.boat(item("biomesoplenty:boat_fir"), "boat_fir")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "ethereal")
.planks(item("biomesoplenty:planks_0", 4), "ethereal_planks")
.log(item("biomesoplenty:log_1", 4)).removeCharcoalRecipe()
.door(item("biomesoplenty:ethereal_door"), "ethereal_door")
.slab(item("biomesoplenty:wood_slab_0", 4), "ethereal_wooden_slab")
.fence(item("biomesoplenty:ethereal_fence"), "ethereal_fence")
.fenceGate(item("biomesoplenty:ethereal_fence_gate"), "ethereal_fence_gate")
.stairs(item("biomesoplenty:ethereal_stairs"), "ethereal_stairs")
.boat(item("biomesoplenty:boat_ethereal"), "boat_ethereal")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "magic")
.planks(item("biomesoplenty:planks_0", 5), "magic_planks")
.log(item("biomesoplenty:log_1", 5)).removeCharcoalRecipe()
.door(item("biomesoplenty:magic_door"), "magic_door")
.slab(item("biomesoplenty:wood_slab_0", 5), "magic_wooden_slab")
.fence(item("biomesoplenty:magic_fence"), "magic_fence")
.fenceGate(item("biomesoplenty:magic_fence_gate"), "magic_fence_gate")
.stairs(item("biomesoplenty:magic_stairs"), "magic_stairs")
.boat(item("biomesoplenty:boat_magic"), "boat_magic")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "mangrove")
.planks(item("biomesoplenty:planks_0", 6), "mangrove_planks")
.log(item("biomesoplenty:log_1", 6)).removeCharcoalRecipe()
.door(item("biomesoplenty:mangrove_door"), "mangrove_door")
.slab(item("biomesoplenty:wood_slab_0", 6), "mangrove_wooden_slab")
.fence(item("biomesoplenty:mangrove_fence"), "mangrove_fence")
.fenceGate(item("biomesoplenty:mangrove_fence_gate"), "mangrove_fence_gate")
.stairs(item("biomesoplenty:mangrove_stairs"), "mangrove_stairs")
.boat(item("biomesoplenty:boat_mangrove"), "boat_mangrove")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "palm")
.planks(item("biomesoplenty:planks_0", 7), "palm_planks")
.log(item("biomesoplenty:log_1", 7)).removeCharcoalRecipe()
.door(item("biomesoplenty:palm_door"), "palm_door")
.slab(item("biomesoplenty:wood_slab_0", 7), "palm_wooden_slab")
.fence(item("biomesoplenty:palm_fence"), "palm_fence")
.fenceGate(item("biomesoplenty:palm_fence_gate"), "palm_fence_gate")
.stairs(item("biomesoplenty:palm_stairs"), "palm_stairs")
.boat(item("biomesoplenty:boat_palm"), "boat_palm")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "redwood")
.planks(item("biomesoplenty:planks_0", 8), "redwood_planks")
.log(item("biomesoplenty:log_2", 4)).removeCharcoalRecipe()
.door(item("biomesoplenty:redwood_door"), "redwood_door")
.slab(item("biomesoplenty:wood_slab_1", 0), "redwood_wooden_slab")
.fence(item("biomesoplenty:redwood_fence"), "redwood_fence")
.fenceGate(item("biomesoplenty:redwood_fence_gate"), "redwood_fence_gate")
.stairs(item("biomesoplenty:redwood_stairs"), "redwood_stairs")
.boat(item("biomesoplenty:boat_redwood"), "boat_redwood")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "willow")
.planks(item("biomesoplenty:planks_0", 9), "willow_planks")
.log(item("biomesoplenty:log_2", 5)).removeCharcoalRecipe()
.door(item("biomesoplenty:willow_door"), "willow_door")
.slab(item("biomesoplenty:wood_slab_1", 1), "willow_wooden_slab")
.fence(item("biomesoplenty:willow_fence"), "willow_fence")
.fenceGate(item("biomesoplenty:willow_fence_gate"), "willow_fence_gate")
.stairs(item("biomesoplenty:willow_stairs"), "willow_stairs")
.boat(item("biomesoplenty:boat_willow"), "boat_willow")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "pine")
.planks(item("biomesoplenty:planks_0", 10), "pine_planks")
.log(item("biomesoplenty:log_2", 6)).removeCharcoalRecipe()
.door(item("biomesoplenty:pine_door"), "pine_door")
.slab(item("biomesoplenty:wood_slab_1", 2), "pine_wooden_slab")
.fence(item("biomesoplenty:pine_fence"), "pine_fence")
.fenceGate(item("biomesoplenty:pine_fence_gate"), "pine_fence_gate")
.stairs(item("biomesoplenty:pine_stairs"), "pine_stairs")
.boat(item("biomesoplenty:boat_pine"), "boat_pine")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "hellbark")
.planks(item("biomesoplenty:planks_0", 11), "hellbark_planks")
.log(item("biomesoplenty:log_2", 7)).removeCharcoalRecipe()
.door(item("biomesoplenty:hellbark_door"), "hellbark_door")
.slab(item("biomesoplenty:wood_slab_1", 3), "hellbark_wooden_slab")
.fence(item("biomesoplenty:hellbark_fence"), "hellbark_fence")
.fenceGate(item("biomesoplenty:hellbark_fence_gate"), "hellbark_fence_gate")
.stairs(item("biomesoplenty:hellbark_stairs"), "hellbark_stairs")
.boat(item("biomesoplenty:boat_hellbark"), "boat_hellbark")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "jacaranda")
.planks(item("biomesoplenty:planks_0", 12), "jacaranda_planks")
.log(item("biomesoplenty:log_3", 4)).removeCharcoalRecipe()
.door(item("biomesoplenty:jacaranda_door"), "jacaranda_door")
.slab(item("biomesoplenty:wood_slab_1", 4), "jacaranda_wooden_slab")
.fence(item("biomesoplenty:jacaranda_fence"), "jacaranda_fence")
.fenceGate(item("biomesoplenty:jacaranda_fence_gate"), "jacaranda_fence_gate")
.stairs(item("biomesoplenty:jacaranda_stairs"), "jacaranda_stairs")
.boat(item("biomesoplenty:boat_jacaranda"), "boat_jacaranda")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "mahogany")
.planks(item("biomesoplenty:planks_0", 13), "mahogany_planks")
.log(item("biomesoplenty:log_3", 5)).removeCharcoalRecipe()
.door(item("biomesoplenty:mahogany_door"), "mahogany_door")
.slab(item("biomesoplenty:wood_slab_1", 5), "mahogany_wooden_slab")
.fence(item("biomesoplenty:mahogany_fence"), "mahogany_fence")
.fenceGate(item("biomesoplenty:mahogany_fence_gate"), "mahogany_fence_gate")
.stairs(item("biomesoplenty:mahogany_stairs"), "mahogany_stairs")
.boat(item("biomesoplenty:boat_mahogany"), "boat_mahogany")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "ebony")
.planks(item("biomesoplenty:planks_0", 14), "ebony_planks")
.log(item("biomesoplenty:log_3", 6)).removeCharcoalRecipe()
.door(item("biomesoplenty:ebony_door"), "ebony_door")
.slab(item("biomesoplenty:wood_slab_1", 6), "ebony_wooden_slab")
.fence(item("biomesoplenty:ebony_fence"), "ebony_fence")
.fenceGate(item("biomesoplenty:ebony_fence_gate"), "ebony_fence_gate")
.stairs(item("biomesoplenty:ebony_stairs"), "ebony_stairs")
.boat(item("biomesoplenty:boat_ebony"), "boat_ebony")
.registerAllUnificationInfo()
.build(),
new WoodTypeEntry.Builder("biomesoplenty", "eucalyptus")
.planks(item("biomesoplenty:planks_0", 15), "eucalyptus_planks")
.log(item("biomesoplenty:log_3", 7)).removeCharcoalRecipe()
.door(item("biomesoplenty:eucalyptus_door"), "eucalyptus_door")
.slab(item("biomesoplenty:wood_slab_1", 7), "eucalyptus_wooden_slab")
.fence(item("biomesoplenty:eucalyptus_fence"), "eucalyptus_fence")
.fenceGate(item("biomesoplenty:eucalyptus_fence_gate"), "eucalyptus_fence_gate")
.stairs(item("biomesoplenty:eucalyptus_stairs"), "eucalyptus_stairs")
.boat(item("biomesoplenty:boat_eucalyptus"), "boat_eucalyptus")
.registerAllUnificationInfo()
.build(),
)
def woodRecipeLoader = new WoodRecipeLoader()
for (entry : newWoods) {
woodRecipeLoader.registerWoodTypeRecipe(entry)
}

View File

@ -1,319 +0,0 @@
import com.nomiceu.nomilabs.groovy.ChangeRecipeBuilder
import com.nomiceu.nomilabs.groovy.ChangeRecipeBuilderCollection
import com.nomiceu.nomilabs.util.LabsModeHelper
import gregtech.api.recipes.RecipeBuilder
import gregtech.api.metatileentity.multiblock.CleanroomType
import gregtech.api.recipes.ingredients.GTRecipeItemInput
import gregtech.api.recipes.ingredients.nbtmatch.NBTCondition
import gregtech.api.recipes.ingredients.nbtmatch.NBTMatcher
import net.minecraft.item.ItemStack
import net.minecraftforge.fluids.FluidStack
import static gregtech.api.GTValues.*
import static com.nomiceu.nomilabs.groovy.GroovyHelpers.JEIHelpers.*
import static com.nomiceu.nomilabs.groovy.GroovyHelpers.GTRecipeHelpers.*
crafting.shapedBuilder()
.output(item('mts:mts.jerrycan'))
.matrix(
'TPP',
'PBP',
'PPP')
.key('T', ore('pipeTinyFluidSteel'))
.key('P', ore('plateSteel'))
.key('B', item('minecraft:bucket'))
.replace().register()
crafting.removeByOutput(item('mts:mts.charger'))
mods.gregtech.assembler.recipeBuilder()
.inputs(ore('plateAluminium') * 3, item('enderio:block_buffer', 1), item('mts:mts.jumpercable'), metaitem('hull.lv'))
.outputs(item('mts:mts.charger'))
.fluidInputs(fluid("soldering_alloy") * 72)
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.removeByOutput(item('mts:mts.custombench'))
mods.gregtech.assembler.recipeBuilder()
.inputs(ore('plateSteel') * 6, ore('workbench'), ore('screwSteel') * 6)
.outputs(item('mts:mts.custombench'))
.fluidInputs(fluid("plastic") * 144)
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.shapedBuilder()
.output(item('mts:mts.decorbench'))
.matrix(
'C ',
'PPP',
'F F'
)
.key('C', item('mts:mts.itembench'))
.key('P', ore('plateSteel'))
.key('F', ore("frameGtSteel"))
.replace().register()
crafting.shapedBuilder()
.output(item("mts:mts.enginebench"))
.matrix(
'SSS',
'BDS',
' PF')
.key("S", ore("ingotSteel"))
.key("B", ore("barsIron"))
.key("D", ore("dyeRed"))
.key("P", ore("plateSteel"))
.key("F", ore("frameGtSteel"))
.replace().register()
crafting.removeByOutput(item("mts:mts.fuelpump"))
mods.gregtech.assembler.recipeBuilder()
.inputs(metaitem("electric.pump.hv"), metaitem("cover.screen"), item("mts:mts.fuelhose"), ore("pipeHugeFluidSteel"), ore("circuitLv"))
.outputs(item("mts:mts.fuelpump"))
.fluidInputs(fluid("plastic") * 144)
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.removeByOutput(item("mts:mts.gunbench"))
mods.gregtech.assembler.recipeBuilder()
.inputs(metaitem("lathe.lv"), ore("frameGtSteel") * 3)
.outputs(item("mts:mts.gunbench"))
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.removeByOutput(item("mts:mts.itembench"))
mods.gregtech.assembler.recipeBuilder()
.inputs(metaitem("cover.screen"), ore("circuitLv") * 3, ore("oc:keyboard"), ore("frameGtAluminium"))
.outputs(item("mts:mts.itembench"))
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.removeByOutput(item("mts:mts.propellerbench"))
mods.gregtech.assembler.recipeBuilder()
.inputs(ore("toolHeadDrillSteel"), metaitem("electric.motor.hv") * 2, ore("circuitLv") * 2, ore("plateSteel") * 8)
.outputs(item("mts:mts.propellerbench"))
.duration(200).EUt(VHA[MV])
.buildAndRegister()
crafting.removeByOutput(item("mts:mts.seatbench"))
mods.gregtech.assembler.recipeBuilder()
.inputs(ore("toolHeadBuzzSawSteel"), metaitem("electric.motor.hv"), ore("plateIron") * 4)
.outputs(item("mts:mts.seatbench"))
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.shapedBuilder()
.output(item("mts:mts.wheelbench"))
.matrix(
' ',
'PSS',
'TFF')
.key("P", ore("pipeTinyFluidSteel"))
.key("S", ore("slabWood"))
.key("T", item("gregtech:machine", 1611))
.key("F", ore("frameGtWood"))
.replace().register()
crafting.removeByOutput(item("mts:mts.fuelhose"))
mods.gregtech.assembler.recipeBuilder()
.inputs(ore("ringRubber") * 2, ore("pipeTinyFluidSteel") * 2)
.outputs(item("mts:mts.fuelhose"))
.fluidInputs(fluid("rubber") * 144)
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.removeByOutput(item("mts:mts.jumpercable"))
mods.gregtech.assembler.recipeBuilder()
.inputs(ore("cableGtSingleRedAlloy") * 4, ore("plateCopper") * 4, ore("dyeRed"), ore("dyeBlue"))
.outputs(item("mts:mts.jumpercable"))
.fluidInputs(fluid("soldering_alloy") * 72)
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.shapedBuilder()
.output(item("mts:mts.jumperpack"))
.matrix(
'AJA',
'PBP',
'YPY'
)
.key("A", ore("plateAluminium"))
.key("J", item("mts:mts.jumpercable"))
.key("P", ore("platePlastic"))
.key("Y", ore("dyeYellow"))
.key("B", item('gregtech:meta_item_1', 735).withNbt(['Charge': 120000L]))
.replace().register()
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ft17_blue'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ft17_gray'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ft17_olive'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ft17_tan'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzl37los'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzl37los_arctic'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzl37los_brown'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzl37los_green'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzl37los_tan'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzlp11'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzlp11_brown'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzlp11_green'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzlp11_tan'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.aa_base'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.aa_turret_37'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.aa_turret_762'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ammocrate_bomb_250'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ammocrate_rocket'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ammocrate_shell37_ap'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ammocrate_shell37_he'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ammocrate_shell37_prox'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.basicbomb_hardpoint'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.double_bombrack'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.drill'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.ft17track'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.gunft17turret'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.gunm1919'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.gunobserver'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.gunrocketlauncher'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.gunrocketpod'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.heavy_bombrack'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.pzl37_bombrack'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.basicbomb'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.bullet3700he'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.bullet3700he_mag'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.bullet3700proxy'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.bullet3700proxy_mag'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.bullet3700solid'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.bullet3700solid_mag'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.bullet762'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.bulletrocket'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.heavy_bomb'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.basecartridge'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.copperwire'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.circuit'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.fuzeimpact'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.fuzeproxy'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.metaltube'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.plastic'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.plating'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.processor'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.screws'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.smallarmscartridge'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.solidfuel'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.explosives'))
removeAndHideItemIgnoreNBT(item('mts:mtsofficialpack.spring'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ft17_blue'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ft17_gray'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ft17_olive'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ft17_tan'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzl37los'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzl37los_arctic'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzl37los_brown'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzl37los_green'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzl37los_tan'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzlp11'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzlp11_brown'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzlp11_green'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzlp11_tan'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.aa_base'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.aa_turret_37'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.aa_turret_762'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ammocrate_bomb_250'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ammocrate_rocket'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ammocrate_shell37_ap'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ammocrate_shell37_he'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ammocrate_shell37_prox'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.basicbomb_hardpoint'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.double_bombrack'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.drill'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.ft17track'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.gunft17turret'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.gunm1919'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.gunobserver'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.gunrocketlauncher'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.gunrocketpod'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.heavy_bombrack'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.pzl37_bombrack'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.basicbomb'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.bullet3700he'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.bullet3700he_mag'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.bullet3700proxy'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.bullet3700proxy_mag'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.bullet3700solid'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.bullet3700solid_mag'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.bullet762'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.bulletrocket'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.heavy_bomb'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.basecartridge'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.copperwire'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.circuit'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.fuzeimpact'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.fuzeproxy'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.metaltube'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.plastic'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.plating'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.processor'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.screws'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.smallarmscartridge'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.solidfuel'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.explosives'))
mods.jei.ingredient.hide(item('mts:mtsofficialpack.spring'))
crafting.removeByOutput(item("mts:mtsofficialpack.blowtorch"))
mods.gregtech.assembler.recipeBuilder()
.inputs(ore("pipeTinyFluidSteel"), ore("pipeTinyFluidBronze"), ore("gemFlint"), ore("nuggetSteel"))
.outputs(item("mts:mtsofficialpack.blowtorch"))
.fluidInputs(fluid("propane") * 1000)
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.shapedBuilder()
.output(item("mts:mtsofficialpack.headlight"))
.matrix(
' G',
'PL ',
'WP ',
)
.key('G', ore("paneGlassColorless"))
.key("P", ore("plateIron"))
.key("L", item("minecraft:redstone_lamp"))
.key("W", ore("wireFineCopper"))
.replace().register()
// recipe conflict with minecart wheels
mods.gregtech.assembler.removeByInput(20, [metaitem("stickSteel"), metaitem("ringSteel") * 2], [null])
mods.gregtech.assembler.recipeBuilder()
.inputs(ore("stickSteel"), ore("ringSteel") * 2)
.outputs(item("gregtech:meta_item_1", 269))
.duration(60).EUt(20)
.circuitMeta(11)
.buildAndRegister()
crafting.removeByOutput(item("mts:mtsofficialpack.piston"))
mods.gregtech.assembler.recipeBuilder()
.inputs(ore("plateSteel"), ore("stickSteel") * 2, ore("ringSteel") * 2, ore("screwSteel") * 2)
.outputs(item("mts:mtsofficialpack.piston"))
.duration(200).EUt(VHA[LV])
.circuitMeta(10)
.buildAndRegister()
crafting.removeByOutput(item("mts:mtsofficialpack.sparkplug"))
mods.gregtech.assembler.recipeBuilder()
.inputs(ore("stickCupronickel"), ore("nuggetLead"), ore("dustCoal"), ore("ringRubber"), ore("pipeTinyFluidSteel"))
.outputs(item("mts:mtsofficialpack.sparkplug"))
.fluidInputs(fluid("soldering_alloy") * 72)
.duration(200).EUt(VHA[LV])
.buildAndRegister()
crafting.shapelessBuilder()
.output(item("mts:mtsofficialpack.extinguisherfoam"))
.input(item("mts:mtsofficialpack.watercannon_proj"))
.replace().register()
crafting.removeByOutput(item("mts:mtsofficialpack.repairkit"))
mods.gregtech.assembler.recipeBuilder()
.inputs(item("mts:mtsofficialpack.blowtorch"), item("mts:mts.jumperpack"), item("mts:mts.wrench"), ore("wireFineCopper") * 64, item("gregtech:machine", 1627), ore("plateDoubleSteel") * 32, ore("ingotSolderingAlloy") * 16)
.outputs(item("mts:mtsofficialpack.repairkit"))
.circuitMeta(11)
.duration(400).EUt(VHA[MV])
.buildAndRegister()

View File

@ -345,14 +345,12 @@ mods.gregtech.circuitAssembler.recipeBuilder()
.outputs(item("opencomputers:material", 11))
.fluidInputs(fluid("soldering_alloy") * 72)
.duration(350).EUt(VHA[LV])
.circuitMeta(1)
.buildAndRegister()
mods.gregtech.circuitAssembler.recipeBuilder()
.inputs(ore("componentTransistor") * 4, ore("circuitMv"))
.outputs(item("opencomputers:material", 11))
.fluidInputs(fluid("tin") * 144)
.duration(350).EUt(VHA[LV])
.circuitMeta(1)
.buildAndRegister()
// disk platter