mirror of
https://github.com/GTNewHorizons/EnderIO.git
synced 2026-11-15 09:34:50 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5e6e2fdba | ||
|
|
5b46f376eb | ||
|
|
1a14946abb | ||
|
|
8ca820f71c | ||
|
|
4e40230bf3 | ||
|
|
76708883c0 | ||
|
|
0a1ee81780 | ||
|
|
1fd7ae7567 | ||
|
|
251fcc26b0 | ||
|
|
b22915cc9c | ||
|
|
0bf8d3f568 | ||
|
|
35e6667da5 | ||
|
|
73cb43a761 | ||
|
|
d32a8e88a3 | ||
|
|
447450d541 | ||
|
|
7f6a0a6a4c | ||
|
|
28df6fa938 |
No files matched your search
@@ -18,9 +18,5 @@ end_of_line = crlf
|
||||
[*.{dtd,json,info,mcmeta,md,sh,svg,xml,xsd,xsl,yaml,yml}]
|
||||
indent_size = 2
|
||||
|
||||
[*.java]
|
||||
indent_size = 2
|
||||
ij_java_space_before_if_parentheses = false
|
||||
|
||||
[*.lang]
|
||||
trim_trailing_whitespace = false
|
||||
+156
-42
@@ -1,4 +1,4 @@
|
||||
//version: 1676031737
|
||||
//version: 1680120787
|
||||
/*
|
||||
DO NOT CHANGE THIS FILE!
|
||||
Also, you may replace this file at any time if there is an update available.
|
||||
@@ -20,6 +20,7 @@ import cpw.mods.fml.relauncher.Side
|
||||
import org.gradle.api.tasks.options.Option;
|
||||
import org.gradle.internal.logging.text.StyledTextOutput.Style
|
||||
import org.gradle.internal.logging.text.StyledTextOutputFactory
|
||||
import org.gradle.internal.xml.XmlTransformer
|
||||
import org.jetbrains.gradle.ext.*
|
||||
|
||||
import java.nio.file.Files
|
||||
@@ -31,7 +32,6 @@ import javax.inject.Inject
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
|
||||
maven {
|
||||
@@ -52,6 +52,8 @@ buildscript {
|
||||
name 'Scala CI dependencies'
|
||||
url 'https://repo1.maven.org/maven2/'
|
||||
}
|
||||
|
||||
mavenLocal()
|
||||
}
|
||||
}
|
||||
plugins {
|
||||
@@ -63,7 +65,7 @@ plugins {
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.8.0' apply false
|
||||
id 'org.jetbrains.kotlin.kapt' version '1.8.0' apply false
|
||||
id 'com.google.devtools.ksp' version '1.8.0-1.0.9' apply false
|
||||
id 'org.ajoberstar.grgit' version '4.1.1' // 4.1.1 is the last jvm8 supporting version ,unused, available for addon.gradle
|
||||
id 'org.ajoberstar.grgit' version '4.1.1' // 4.1.1 is the last jvm8 supporting version, unused, available for addon.gradle
|
||||
id 'com.github.johnrengelman.shadow' version '7.1.2' apply false
|
||||
id 'com.palantir.git-version' version '0.13.0' apply false // 0.13.0 is the last jvm8 supporting version
|
||||
id 'de.undercouch.download' version '5.3.0'
|
||||
@@ -71,7 +73,7 @@ plugins {
|
||||
id 'com.diffplug.spotless' version '6.7.2' apply false
|
||||
id 'com.modrinth.minotaur' version '2.+' apply false
|
||||
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
|
||||
id 'com.gtnewhorizons.retrofuturagradle' version '1.1.6'
|
||||
id 'com.gtnewhorizons.retrofuturagradle' version '1.2.4'
|
||||
}
|
||||
boolean settingsupdated = verifySettingsGradle()
|
||||
settingsupdated = verifyGitAttributes() || settingsupdated
|
||||
@@ -127,6 +129,9 @@ propertyDefaultIfUnset("gradleTokenGroupName", "")
|
||||
propertyDefaultIfUnset("enableModernJavaSyntax", false) // On by default for new projects only
|
||||
propertyDefaultIfUnset("enableGenericInjection", false) // On by default for new projects only
|
||||
|
||||
// this is meant to be set using the user wide property file. by default we do nothing.
|
||||
propertyDefaultIfUnset("ideaOverrideBuildType", "") // Can be nothing, "gradle" or "idea"
|
||||
|
||||
project.extensions.add(Blowdryer, "Blowdryer", Blowdryer) // Make blowdryer available in "apply from:" scripts
|
||||
if (!disableSpotless) {
|
||||
apply plugin: 'com.diffplug.spotless'
|
||||
@@ -148,13 +153,21 @@ java {
|
||||
} else {
|
||||
languageVersion.set(projectJavaVersion)
|
||||
}
|
||||
vendor.set(JvmVendorSpec.ADOPTIUM)
|
||||
vendor.set(JvmVendorSpec.AZUL)
|
||||
}
|
||||
if (!noPublishedSources) {
|
||||
withSourcesJar()
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
tasks.withType(ScalaCompile).configureEach {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
pluginManager.withPlugin('org.jetbrains.kotlin.jvm') {
|
||||
// If Kotlin is enabled in the project
|
||||
kotlin {
|
||||
@@ -217,7 +230,7 @@ if (enableModernJavaSyntax.toBoolean()) {
|
||||
|
||||
javaCompiler.set(javaToolchains.compilerFor {
|
||||
languageVersion.set(JavaLanguageVersion.of(17))
|
||||
vendor.set(JvmVendorSpec.ADOPTIUM)
|
||||
vendor.set(JvmVendorSpec.AZUL)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -249,12 +262,14 @@ if (apiPackage) {
|
||||
}
|
||||
|
||||
if (accessTransformersFile) {
|
||||
String targetFile = "src/main/resources/META-INF/" + accessTransformersFile
|
||||
if (!getFile(targetFile).exists()) {
|
||||
throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile)
|
||||
for (atFile in accessTransformersFile.split(",")) {
|
||||
String targetFile = "src/main/resources/META-INF/" + atFile.trim()
|
||||
if (!getFile(targetFile).exists()) {
|
||||
throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile)
|
||||
}
|
||||
tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(targetFile)
|
||||
tasks.srgifyBinpatchedJar.accessTransformerFiles.from(targetFile)
|
||||
}
|
||||
tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(targetFile)
|
||||
tasks.srgifyBinpatchedJar.accessTransformerFiles.from(targetFile)
|
||||
} else {
|
||||
boolean atsFound = false
|
||||
for (File at : sourceSets.getByName("main").resources.files) {
|
||||
@@ -382,12 +397,14 @@ minecraft {
|
||||
injectMissingGenerics.set(true)
|
||||
}
|
||||
|
||||
username = developmentEnvironmentUserName.toString()
|
||||
|
||||
lwjgl3Version = "3.3.2-SNAPSHOT"
|
||||
|
||||
// Enable assertions in the current mod
|
||||
extraRunJvmArguments.add("-ea:${modGroup}")
|
||||
|
||||
if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) {
|
||||
extraTweakClasses.add("org.spongepowered.asm.launch.MixinTweaker")
|
||||
|
||||
if (usesMixinDebug.toBoolean()) {
|
||||
extraRunJvmArguments.addAll([
|
||||
"-Dmixin.debug.countInjections=true",
|
||||
@@ -455,8 +472,9 @@ repositories.configureEach { repo ->
|
||||
apply from: 'repositories.gradle'
|
||||
|
||||
configurations {
|
||||
runtimeClasspath.extendsFrom(runtimeOnlyNonPublishable)
|
||||
testRuntimeClasspath.extendsFrom(runtimeOnlyNonPublishable)
|
||||
for (config in [compileClasspath, runtimeClasspath, testCompileClasspath, testRuntimeClasspath]) {
|
||||
config.extendsFrom(runtimeOnlyNonPublishable)
|
||||
if (usesShadowedDependencies.toBoolean()) {
|
||||
config.extendsFrom(shadowImplementation)
|
||||
// TODO: remove Compile after all uses are refactored to Implementation
|
||||
@@ -501,12 +519,11 @@ repositories {
|
||||
url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/"
|
||||
allowInsecureProtocol = true
|
||||
}
|
||||
if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) {
|
||||
if (usesMixinDebug.toBoolean()) {
|
||||
maven {
|
||||
name = "Fabric Maven"
|
||||
url = "https://maven.fabricmc.net/"
|
||||
}
|
||||
maven {
|
||||
name 'sonatype'
|
||||
url 'https://oss.sonatype.org/content/repositories/snapshots/'
|
||||
content {
|
||||
includeGroup "org.lwjgl"
|
||||
}
|
||||
}
|
||||
if (includeWellKnownRepositories.toBoolean()) {
|
||||
@@ -540,29 +557,49 @@ repositories {
|
||||
}
|
||||
}
|
||||
|
||||
def mixinProviderGroup = "io.github.legacymoddingmc"
|
||||
def mixinProviderModule = "unimixins"
|
||||
def mixinProviderVersion = "0.1.6"
|
||||
def mixinProviderSpecNoClassifer = "${mixinProviderGroup}:${mixinProviderModule}:${mixinProviderVersion}"
|
||||
def mixinProviderSpec = "${mixinProviderSpecNoClassifer}:dev"
|
||||
|
||||
dependencies {
|
||||
if (usesMixins.toBoolean()) {
|
||||
annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3')
|
||||
annotationProcessor('com.google.guava:guava:24.1.1-jre')
|
||||
annotationProcessor('com.google.code.gson:gson:2.8.6')
|
||||
annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.12:processor')
|
||||
annotationProcessor(mixinProviderSpec)
|
||||
if (usesMixinDebug.toBoolean()) {
|
||||
runtimeOnlyNonPublishable('org.jetbrains:intellij-fernflower:1.2.1.16')
|
||||
}
|
||||
}
|
||||
if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) {
|
||||
implementation('com.gtnewhorizon:gtnhmixins:2.1.12')
|
||||
if (usesMixins.toBoolean()) {
|
||||
implementation(mixinProviderSpec)
|
||||
} else if (forceEnableMixins.toBoolean()) {
|
||||
runtimeOnlyNonPublishable(mixinProviderSpec)
|
||||
}
|
||||
}
|
||||
|
||||
pluginManager.withPlugin('org.jetbrains.kotlin.kapt') {
|
||||
if (usesMixins.toBoolean()) {
|
||||
dependencies {
|
||||
kapt('com.gtnewhorizon:gtnhmixins:2.1.12:processor')
|
||||
kapt(mixinProviderSpec)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Replace old mixin mods with unimixins
|
||||
// https://docs.gradle.org/8.0.2/userguide/resolution_rules.html#sec:substitution_with_classifier
|
||||
configurations.all {
|
||||
resolutionStrategy.dependencySubstitution {
|
||||
substitute module('com.gtnewhorizon:gtnhmixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods")
|
||||
substitute module('com.github.GTNewHorizons:Mixingasm') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods")
|
||||
substitute module('com.github.GTNewHorizons:SpongePoweredMixin') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods")
|
||||
substitute module('com.github.GTNewHorizons:SpongeMixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods")
|
||||
substitute module('io.github.legacymoddingmc:unimixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Our previous unimixins upload was missing the dev classifier")
|
||||
}
|
||||
}
|
||||
|
||||
apply from: 'dependencies.gradle'
|
||||
|
||||
def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json'
|
||||
@@ -667,17 +704,22 @@ ext.java17Toolchain = (JavaToolchainSpec spec) -> {
|
||||
spec.vendor.set(JvmVendorSpec.matching("jetbrains"))
|
||||
}
|
||||
|
||||
ext.java17DependenciesCfg = configurations.create("java17Dependencies")
|
||||
ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies")
|
||||
ext.java17DependenciesCfg = configurations.create("java17Dependencies") {
|
||||
extendsFrom(configurations.getByName("runtimeClasspath")) // Ensure consistent transitive dependency resolution
|
||||
canBeConsumed = false
|
||||
}
|
||||
ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies") {
|
||||
canBeConsumed = false
|
||||
}
|
||||
|
||||
dependencies {
|
||||
def lwjgl3ifyVersion = '1.1.21'
|
||||
def lwjgl3ifyVersion = '1.3.3'
|
||||
def asmVersion = '9.4'
|
||||
if (modId != 'lwjgl3ify') {
|
||||
java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}")
|
||||
}
|
||||
if (modId != 'hodgepodge') {
|
||||
java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.0.31')
|
||||
java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.4')
|
||||
}
|
||||
|
||||
java17PatchDependencies('net.minecraft:launchwrapper:1.15') {transitive = false}
|
||||
@@ -688,14 +730,14 @@ dependencies {
|
||||
java17PatchDependencies("org.ow2.asm:asm-util:${asmVersion}")
|
||||
java17PatchDependencies('org.ow2.asm:asm-deprecated:7.1')
|
||||
java17PatchDependencies("org.apache.commons:commons-lang3:3.12.0")
|
||||
java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches")
|
||||
java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches") {transitive = false}
|
||||
}
|
||||
|
||||
ext.java17JvmArgs = [
|
||||
// Java 9+ support
|
||||
"--illegal-access=warn",
|
||||
"-Dfile.encoding=UTF-8",
|
||||
"-Djava.security.manager=allow",
|
||||
"-Dfile.encoding=UTF-8",
|
||||
"--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED",
|
||||
"--add-opens", "java.base/java.net=ALL-UNNAMED",
|
||||
"--add-opens", "java.base/java.nio=ALL-UNNAMED",
|
||||
@@ -706,6 +748,7 @@ ext.java17JvmArgs = [
|
||||
"--add-opens", "java.base/java.util=ALL-UNNAMED",
|
||||
"--add-opens", "java.base/jdk.internal.reflect=ALL-UNNAMED",
|
||||
"--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED",
|
||||
"--add-opens", "jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED,java.naming",
|
||||
"--add-opens", "java.desktop/sun.awt.image=ALL-UNNAMED",
|
||||
"--add-modules", "jdk.dynalink",
|
||||
"--add-opens", "jdk.dynalink/jdk.dynalink.beans=ALL-UNNAMED",
|
||||
@@ -750,8 +793,8 @@ public abstract class RunHotswappableMinecraftTask extends RunMinecraftTask {
|
||||
public boolean setEnableHotswap(boolean enable) { enableHotswap = enable }
|
||||
|
||||
@Inject
|
||||
public RunHotswappableMinecraftTask(Side side, String superTask) {
|
||||
super(side)
|
||||
public RunHotswappableMinecraftTask(Side side, String superTask, org.gradle.api.invocation.Gradle gradle) {
|
||||
super(side, gradle)
|
||||
|
||||
this.lwjglVersion = 3
|
||||
this.javaLauncher = project.javaToolchains.launcherFor(project.java17Toolchain)
|
||||
@@ -768,10 +811,6 @@ public abstract class RunHotswappableMinecraftTask extends RunMinecraftTask {
|
||||
!file.path.contains("2.9.4-nightly-20150209") // Remove lwjgl2
|
||||
}
|
||||
this.classpath(project.java17DependenciesCfg)
|
||||
|
||||
if (!(project.usesMixins.toBoolean() || project.forceEnableMixins.toBoolean())) {
|
||||
this.extraArgs.addAll("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -782,6 +821,8 @@ runClient17Task.configure {
|
||||
description = "Runs the modded client using Java 17, lwjgl3ify and Hodgepodge"
|
||||
dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar')
|
||||
mainClass = "GradleStart"
|
||||
username = minecraft.username
|
||||
userUUID = minecraft.userUUID
|
||||
}
|
||||
|
||||
def runServer17Task = tasks.register("runServer17", RunHotswappableMinecraftTask, Side.SERVER, "runServer")
|
||||
@@ -828,7 +869,7 @@ if (usesShadowedDependencies.toBoolean()) {
|
||||
tasks.register('relocateShadowJar', ConfigureShadowRelocation) {
|
||||
target = tasks.shadowJar
|
||||
prefix = modGroup + ".shadow"
|
||||
enabled = minimizeShadowedDependencies.toBoolean()
|
||||
enabled = relocateShadowedDependencies.toBoolean()
|
||||
}
|
||||
tasks.named("shadowJar", ShadowJar).configure {
|
||||
manifest {
|
||||
@@ -844,7 +885,7 @@ if (usesShadowedDependencies.toBoolean()) {
|
||||
project.configurations.shadeCompile
|
||||
]
|
||||
archiveClassifier.set('dev')
|
||||
if (minimizeShadowedDependencies.toBoolean()) {
|
||||
if (relocateShadowedDependencies.toBoolean()) {
|
||||
dependsOn(relocateShadowJar)
|
||||
}
|
||||
}
|
||||
@@ -905,6 +946,19 @@ idea {
|
||||
}
|
||||
project {
|
||||
settings {
|
||||
if (ideaOverrideBuildType != "") {
|
||||
delegateActions {
|
||||
if ("gradle".equalsIgnoreCase(ideaOverrideBuildType)) {
|
||||
delegateBuildRunToGradle = true
|
||||
testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.GRADLE
|
||||
} else if ("idea".equalsIgnoreCase(ideaOverrideBuildType)) {
|
||||
delegateBuildRunToGradle = false
|
||||
testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
|
||||
} else {
|
||||
throw GradleScriptException('Accepted value for ideaOverrideBuildType is one of gradle or idea.')
|
||||
}
|
||||
}
|
||||
}
|
||||
runConfigurations {
|
||||
"1. Run Client"(Gradle) {
|
||||
taskNames = ["runClient"]
|
||||
@@ -943,7 +997,7 @@ idea {
|
||||
}
|
||||
"Run Client (IJ Native)"(Application) {
|
||||
mainClass = "GradleStart"
|
||||
moduleName = project.name + ".main"
|
||||
moduleName = project.name + ".ideVirtualMain"
|
||||
afterEvaluate {
|
||||
workingDirectory = tasks.runClient.workingDir.absolutePath
|
||||
programParameters = tasks.runClient.calculateArgs(project).collect { '"' + it + '"' }.join(' ')
|
||||
@@ -954,7 +1008,7 @@ idea {
|
||||
}
|
||||
"Run Server (IJ Native)"(Application) {
|
||||
mainClass = "GradleStartServer"
|
||||
moduleName = project.name + ".main"
|
||||
moduleName = project.name + ".ideVirtualMain"
|
||||
afterEvaluate {
|
||||
workingDirectory = tasks.runServer.workingDir.absolutePath
|
||||
programParameters = tasks.runServer.calculateArgs(project).collect { '"' + it + '"' }.join(' ')
|
||||
@@ -966,11 +1020,57 @@ idea {
|
||||
}
|
||||
compiler.javac {
|
||||
afterEvaluate {
|
||||
javacAdditionalOptions = "-encoding utf8"
|
||||
moduleJavacAdditionalOptions = [
|
||||
(project.name + ".main"): tasks.compileJava.options.compilerArgs.collect { '"' + it + '"' }.join(' ')
|
||||
]
|
||||
}
|
||||
}
|
||||
withIDEADir { File ideaDir ->
|
||||
if (!ideaDir.path.contains(".idea")) {
|
||||
// If an .ipr file exists, the project root directory is passed here instead of the .idea subdirectory
|
||||
ideaDir = new File(ideaDir, ".idea")
|
||||
}
|
||||
if (ideaDir.isDirectory()) {
|
||||
def miscFile = new File(ideaDir, "misc.xml")
|
||||
if (miscFile.isFile()) {
|
||||
boolean dirty = false
|
||||
def miscTransformer = new XmlTransformer()
|
||||
miscTransformer.addAction { root ->
|
||||
Node rootNode = root.asNode()
|
||||
def rootManager = rootNode
|
||||
.component.find { it.@name == 'ProjectRootManager' }
|
||||
if (!rootManager) {
|
||||
rootManager = rootNode.appendNode('component', ['name': 'ProjectRootManager', 'version': '2'])
|
||||
dirty = true
|
||||
}
|
||||
def output = rootManager.output
|
||||
if (!output) {
|
||||
output = rootManager.appendNode('output')
|
||||
dirty = true
|
||||
}
|
||||
if (!output.@url) {
|
||||
// Only modify the output url if it doesn't yet have one, or if the existing one is blank somehow.
|
||||
// This is a sensible default for most setups
|
||||
output.@url = 'file://$PROJECT_DIR$/build/ideaBuild'
|
||||
dirty = true
|
||||
}
|
||||
}
|
||||
def result = miscTransformer.transform(miscFile.text)
|
||||
if (dirty) {
|
||||
miscFile.write(result)
|
||||
}
|
||||
} else {
|
||||
miscFile.text = """<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2">
|
||||
<output url="file://\$PROJECT_DIR\$/out" />
|
||||
</component>
|
||||
</project>
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1040,7 +1140,7 @@ if (modrinthProjectId.size() != 0 && System.getenv("MODRINTH_TOKEN") != null) {
|
||||
}
|
||||
}
|
||||
if (usesMixins.toBoolean()) {
|
||||
addModrinthDep("required", "project", "gtnhmixins")
|
||||
addModrinthDep("required", "project", "unimixins")
|
||||
}
|
||||
tasks.modrinth.dependsOn(build)
|
||||
tasks.publish.dependsOn(tasks.modrinth)
|
||||
@@ -1084,7 +1184,7 @@ if (curseForgeProjectId.size() != 0 && System.getenv("CURSEFORGE_TOKEN") != null
|
||||
}
|
||||
}
|
||||
if (usesMixins.toBoolean()) {
|
||||
addCurseForgeRelation("requiredDependency", "gtnhmixins")
|
||||
addCurseForgeRelation("requiredDependency", "unimixins")
|
||||
}
|
||||
tasks.curseforge.dependsOn(build)
|
||||
tasks.publish.dependsOn(tasks.curseforge)
|
||||
@@ -1118,10 +1218,21 @@ def addCurseForgeRelation(String type, String name) {
|
||||
}
|
||||
|
||||
// Updating
|
||||
|
||||
def buildscriptGradleVersion = "8.0.2"
|
||||
|
||||
tasks.named('wrapper', Wrapper).configure {
|
||||
gradleVersion = buildscriptGradleVersion
|
||||
}
|
||||
|
||||
tasks.register('updateBuildScript') {
|
||||
group = 'GTNH Buildscript'
|
||||
description = 'Updates the build script to the latest version'
|
||||
|
||||
if (gradle.gradleVersion != buildscriptGradleVersion && !Boolean.getBoolean('DISABLE_BUILDSCRIPT_GRADLE_UPDATE')) {
|
||||
dependsOn('wrapper')
|
||||
}
|
||||
|
||||
doLast {
|
||||
if (performBuildScriptUpdate()) return
|
||||
|
||||
@@ -1134,6 +1245,9 @@ if (!project.getGradle().startParameter.isOffline() && !Boolean.getBoolean('DISA
|
||||
performBuildScriptUpdate()
|
||||
} else {
|
||||
out.style(Style.SuccessHeader).println("Build script update available! Run 'gradle updateBuildScript'")
|
||||
if (gradle.gradleVersion != buildscriptGradleVersion) {
|
||||
out.style(Style.SuccessHeader).println("updateBuildScript can update gradle from ${gradle.gradleVersion} to ${buildscriptGradleVersion}\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+11
-10
@@ -1,20 +1,21 @@
|
||||
// Add your dependencies here
|
||||
|
||||
dependencies {
|
||||
compile('com.github.GTNewHorizons:EnderCore:0.2.9:dev')
|
||||
compile('com.github.GTNewHorizons:ForestryMC:4.4.6:dev')
|
||||
compile('com.github.GTNewHorizons:NotEnoughItems:2.3.7-GTNH:dev')
|
||||
compile('com.github.GTNewHorizons:BuildCraft:7.1.27:dev')
|
||||
compile('curse.maven:cofh-lib-220333:2388748') // https://www.curseforge.com/minecraft/mc-mods/cofh-lib/files/2388748
|
||||
api('com.github.GTNewHorizons:EnderCore:0.2.13:dev')
|
||||
implementation('com.github.GTNewHorizons:ForestryMC:4.6.5:dev')
|
||||
implementation('com.github.GTNewHorizons:NotEnoughItems:2.3.45-GTNH:dev')
|
||||
implementation("com.github.GTNewHorizons:GTNHLib:0.0.13:dev")
|
||||
api('com.github.GTNewHorizons:BuildCraft:7.1.33:dev')
|
||||
api('curse.maven:cofh-lib-220333:2388748') // https://www.curseforge.com/minecraft/mc-mods/cofh-lib/files/2388748
|
||||
shadowImplementation('cglib:cglib-nodep:3.3.0')
|
||||
|
||||
compileOnly('com.github.GTNewHorizons:waila:1.5.19:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-85-GTNH:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:waila:1.5.24:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-195-GTNH:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Baubles:1.0.1.14:dev') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Railcraft:9.13.6:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Railcraft:9.14.1:api') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:StorageDrawers:1.11.13-GTNH:api') {transitive = false}
|
||||
compile('com.github.GTNewHorizons:Chisel:2.10.8-GTNH:dev') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:OpenComputers:1.7.5.25-GTNH:api') {transitive = false}
|
||||
implementation('com.github.GTNewHorizons:Chisel:2.10.17-GTNH:dev') {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:OpenComputers:1.9.1-GTNH:api') {transitive = false}
|
||||
compileOnly('curse.maven:minefactory-reloaded-66672:2366150') // https://www.curseforge.com/minecraft/mc-mods/minefactory-reloaded/files/2366150
|
||||
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
|
||||
compileOnly('curse.maven:ee3-65509:2305023') // https://www.curseforge.com/minecraft/mc-mods/ee3/files/2305023
|
||||
|
||||
Vendored
BIN
Binary file not shown.
+1
-1
@@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip
|
||||
networkTimeout=10000
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
@@ -144,7 +144,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
@@ -152,7 +152,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
|
||||
@@ -1,26 +1,4 @@
|
||||
// Add any additional repositories for your dependencies here
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
name 'GTNH Maven'
|
||||
url 'http://jenkins.usrv.eu:8081/nexus/content/groups/public/'
|
||||
allowInsecureProtocol
|
||||
}
|
||||
maven {
|
||||
name 'ic2'
|
||||
url 'http://maven.ic2.player.to/'
|
||||
metadataSources {
|
||||
mavenPom()
|
||||
artifact()
|
||||
}
|
||||
}
|
||||
maven {
|
||||
url 'https://cursemaven.com'
|
||||
content {
|
||||
includeGroup 'curse.maven'
|
||||
}
|
||||
}
|
||||
maven {
|
||||
url = 'https://jitpack.io'
|
||||
}
|
||||
}
|
||||
@@ -206,6 +206,8 @@ public class EnderIO {
|
||||
|
||||
public static final Lang lang = new Lang("enderio");
|
||||
|
||||
public static final boolean hasLwjgl3 = Loader.isModLoaded("lwjgl3ify");
|
||||
|
||||
// Materials
|
||||
public static ItemCapacitor itemBasicCapacitor;
|
||||
public static ItemAlloy itemAlloy;
|
||||
|
||||
@@ -84,6 +84,18 @@ public abstract class AbstractConduit implements IConduit {
|
||||
|
||||
protected boolean connectionsDirty = true;
|
||||
|
||||
/**
|
||||
* This shows if the currently running connection update should not finish with settings connectionsDirty to false.
|
||||
* If this is true, it will trigger a reconnection on the next Tick.
|
||||
* <p>
|
||||
* Use the method needUpdateConnections() instead of setting this to true.
|
||||
*
|
||||
* @see needUpdateConnections()
|
||||
*/
|
||||
private boolean needUpdateConnections = false;
|
||||
|
||||
private boolean isUpdatingConnections = false;
|
||||
|
||||
protected AbstractConduit() {}
|
||||
|
||||
@Override
|
||||
@@ -434,10 +446,13 @@ public abstract class AbstractConduit implements IConduit {
|
||||
}
|
||||
|
||||
private void updateConnections() {
|
||||
if (!connectionsDirty) {
|
||||
if (!connectionsDirty && !needUpdateConnections) {
|
||||
return;
|
||||
}
|
||||
|
||||
isUpdatingConnections = true;
|
||||
needUpdateConnections = false;
|
||||
|
||||
boolean externalConnectionsChanged = false;
|
||||
List<ForgeDirection> copy = new ArrayList<ForgeDirection>(externalConnections);
|
||||
// remove any no longer valid connections
|
||||
@@ -462,6 +477,21 @@ public abstract class AbstractConduit implements IConduit {
|
||||
}
|
||||
|
||||
connectionsDirty = false;
|
||||
isUpdatingConnections = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method prevents connection update from getting completed successfully by not settings connectionsDirty to
|
||||
* false. This will trigger an connection update at the next Tick.
|
||||
* <p>
|
||||
* Only use this while executing updateConnections().
|
||||
* <p>
|
||||
* See this PR for more info: https://github.com/GTNewHorizons/EnderIO/pull/111
|
||||
*/
|
||||
protected void needUpdateConnections() {
|
||||
if (isUpdatingConnections) {
|
||||
needUpdateConnections = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -682,6 +682,11 @@ public class ConduitRecipes {
|
||||
addShaped(res.copy(), "bbb", "fqf", "bbb", 'b', conduitBinder, 'f', pureFluix, 'q', quartzFiber);
|
||||
|
||||
res.stackSize = 1;
|
||||
addShaped(new ItemStack(EnderIO.itemMEConduit, 1, 1), "bCb", "CbC", "bCb", 'b', conduitBinder, 'C', res);
|
||||
ItemStack resDense = new ItemStack(EnderIO.itemMEConduit, 1, 1);
|
||||
ItemStack resUltra = new ItemStack(EnderIO.itemMEConduit, 1, 2);
|
||||
addShaped(resDense, "bCb", "CbC", "bCb", 'b', conduitBinder, 'C', res);
|
||||
if (Config.enableMEUltraDenseConduits) {
|
||||
addShaped(resUltra, "bCb", "CbC", "bCb", 'b', conduitBinder, 'C', resDense);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -248,7 +248,7 @@ public class ConduitUtil {
|
||||
|
||||
public static <T extends IConduit> Collection<T> getConnectedConduits(World world, int x, int y, int z,
|
||||
Class<T> type) {
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
TileEntity te = world.blockExists(x, y, z) ? world.getTileEntity(x, y, z) : null;
|
||||
if (!(te instanceof IConduitBundle)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@@ -213,9 +213,11 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
} else if (guiButton.id == ID_EXTRACT_CHANNEL) {
|
||||
DyeColor col = DyeColor.fromIndex(extractChannelB.getColorIndex());
|
||||
itemConduit.setInputColor(gui.getDir(), col);
|
||||
} else {
|
||||
if (insertFilterGui != null) insertFilterGui.actionPerformed(guiButton);
|
||||
if (extractFilterGui != null) extractFilterGui.actionPerformed(guiButton);
|
||||
return;
|
||||
}
|
||||
if (insertFilterGui != null) insertFilterGui.actionPerformed(guiButton);
|
||||
if (extractFilterGui != null) extractFilterGui.actionPerformed(guiButton);
|
||||
PacketHandler.INSTANCE.sendToServer(new PacketItemConduitFilter(itemConduit, gui.getDir()));
|
||||
}
|
||||
|
||||
|
||||
@@ -14,5 +14,7 @@ public interface IMEConduit extends IConduit {
|
||||
|
||||
boolean isDense();
|
||||
|
||||
boolean isDenseUltra();
|
||||
|
||||
int getChannelsInUse();
|
||||
}
|
||||
@@ -15,7 +15,8 @@ public class ItemMEConduit extends AbstractItemConduit {
|
||||
|
||||
private static ItemConduitSubtype[] subtypes = new ItemConduitSubtype[] {
|
||||
new ItemConduitSubtype(ModObject.itemMEConduit.name(), "enderio:itemMeConduit"),
|
||||
new ItemConduitSubtype(ModObject.itemMEConduit.name() + "Dense", "enderio:itemMeConduitDense") };
|
||||
new ItemConduitSubtype(ModObject.itemMEConduit.name() + "Dense", "enderio:itemMeConduitDense"),
|
||||
new ItemConduitSubtype(ModObject.itemMEConduit.name() + "DenseUltra", "enderio:itemMeConduitDenseUltra") };
|
||||
|
||||
public static ItemMEConduit create() {
|
||||
ItemMEConduit result = new ItemMEConduit();
|
||||
|
||||
@@ -13,6 +13,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.networking.GridFlags;
|
||||
import appeng.api.networking.IGridConnection;
|
||||
import appeng.api.networking.IGridHost;
|
||||
import appeng.api.networking.IGridNode;
|
||||
@@ -44,6 +45,7 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
public static IIcon[] longTextures;
|
||||
|
||||
private boolean isDense;
|
||||
private boolean isDenseUltra;
|
||||
private int playerID = -1;
|
||||
|
||||
public MEConduit() {
|
||||
@@ -51,6 +53,7 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
}
|
||||
|
||||
public MEConduit(int itemDamage) {
|
||||
isDenseUltra = itemDamage == 2;
|
||||
isDense = itemDamage == 1;
|
||||
}
|
||||
|
||||
@@ -59,14 +62,16 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
|
||||
@Override
|
||||
public void registerIcons(IIconRegister register) {
|
||||
coreTextures = new IIcon[2];
|
||||
longTextures = new IIcon[2];
|
||||
coreTextures = new IIcon[3];
|
||||
longTextures = new IIcon[3];
|
||||
|
||||
coreTextures[0] = register.registerIcon(EnderIO.DOMAIN + ":meConduitCore");
|
||||
coreTextures[1] = register.registerIcon(EnderIO.DOMAIN + ":meConduitCoreDense");
|
||||
coreTextures[2] = register.registerIcon(EnderIO.DOMAIN + ":meConduitCoreDenseUltra");
|
||||
|
||||
longTextures[0] = register.registerIcon(EnderIO.DOMAIN + ":meConduit");
|
||||
longTextures[1] = register.registerIcon(EnderIO.DOMAIN + ":meConduitDense");
|
||||
longTextures[2] = register.registerIcon(EnderIO.DOMAIN + ":meConduitDenseUltra");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -76,8 +81,14 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
});
|
||||
}
|
||||
|
||||
public static int getDamageForState(boolean isDense) {
|
||||
return isDense ? 1 : 0;
|
||||
public static int getDamageForState(boolean isDense, boolean isDenseUltra) {
|
||||
if (isDenseUltra) {
|
||||
return 2;
|
||||
}
|
||||
if (isDense) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -87,7 +98,7 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
|
||||
@Override
|
||||
public ItemStack createItem() {
|
||||
return new ItemStack(EnderIO.itemMEConduit, 1, getDamageForState(isDense));
|
||||
return new ItemStack(EnderIO.itemMEConduit, 1, getDamageForState(isDense, isDenseUltra));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -105,6 +116,7 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
public void writeToNBT(NBTTagCompound nbtRoot) {
|
||||
super.writeToNBT(nbtRoot);
|
||||
nbtRoot.setBoolean("isDense", isDense);
|
||||
nbtRoot.setBoolean("isDenseUltra", isDenseUltra);
|
||||
nbtRoot.setInteger("playerID", playerID);
|
||||
}
|
||||
|
||||
@@ -117,6 +129,9 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
} else {
|
||||
playerID = -1;
|
||||
}
|
||||
if (nbtRoot.hasKey("isDenseUltra")) {
|
||||
isDenseUltra = nbtRoot.getBoolean("isDenseUltra");
|
||||
}
|
||||
}
|
||||
|
||||
public void setPlayerID(int playerID) {
|
||||
@@ -140,7 +155,16 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
public boolean canConnectToExternal(ForgeDirection dir, boolean ignoreDisabled) {
|
||||
World world = getBundle().getWorld();
|
||||
BlockCoord pos = getLocation();
|
||||
TileEntity te = world.getTileEntity(pos.x + dir.offsetX, pos.y + dir.offsetY, pos.z + dir.offsetZ);
|
||||
|
||||
final int exactPosX = pos.x + dir.offsetX;
|
||||
final int exactPosY = pos.y + dir.offsetY;
|
||||
final int exactPosZ = pos.z + dir.offsetZ;
|
||||
|
||||
if (!world.blockExists(exactPosX, exactPosY, exactPosZ)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
TileEntity te = world.getTileEntity(exactPosX, exactPosY, exactPosZ);
|
||||
|
||||
if (te instanceof TileConduitBundle) {
|
||||
return false;
|
||||
@@ -148,26 +172,44 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
|
||||
// because the AE2 API doesn't allow an easy query like "which side can connect to an ME cable" it needs this
|
||||
// mess
|
||||
IGridNode node = null;
|
||||
if (te instanceof IPartHost) {
|
||||
IPart part = ((IPartHost) te).getPart(dir.getOpposite());
|
||||
if (part == null) {
|
||||
part = ((IPartHost) te).getPart(ForgeDirection.UNKNOWN);
|
||||
return part != null;
|
||||
}
|
||||
if (part.getExternalFacingNode() != null) {
|
||||
return true;
|
||||
if (part != null) {
|
||||
node = part.getExternalFacingNode();
|
||||
if (node == null) {
|
||||
node = part.getGridNode();
|
||||
}
|
||||
if (node == null) {
|
||||
// The GridNode has not been initialized yet, let's try on the next Tick.
|
||||
needUpdateConnections();
|
||||
}
|
||||
}
|
||||
String name = part.getClass().getSimpleName();
|
||||
return "PartP2PTunnelME".equals(name) || "PartQuartzFiber".endsWith(name)
|
||||
|| "PartToggleBus".equals(name)
|
||||
|| "PartInvertedToggleBus".equals(name);
|
||||
} else if (te instanceof IGridHost) {
|
||||
IGridNode node = ((IGridHost) te).getGridNode(dir.getOpposite());
|
||||
node = ((IGridHost) te).getGridNode(dir.getOpposite());
|
||||
if (node == null) {
|
||||
node = ((IGridHost) te).getGridNode(ForgeDirection.UNKNOWN);
|
||||
}
|
||||
if (node != null) {
|
||||
return node.getGridBlock().getConnectableSides().contains(dir.getOpposite());
|
||||
}
|
||||
if (node != null) {
|
||||
return canConnectToGridNode(node, dir);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Method(modid = "appliedenergistics2")
|
||||
private Boolean canConnectToGridNode(IGridNode node, ForgeDirection dir) {
|
||||
if (node.getGridBlock().getConnectableSides().contains(dir.getOpposite())) {
|
||||
if (isDenseUltra()) {
|
||||
return node.hasFlag(GridFlags.ULTRA_DENSE_CAPACITY)
|
||||
|| ((node.hasFlag(GridFlags.DENSE_CAPACITY)) && !node.hasFlag(GridFlags.CANNOT_CARRY));
|
||||
} else if (isDense()) {
|
||||
return true;
|
||||
} else {
|
||||
return !node.hasFlag(GridFlags.ULTRA_DENSE_CAPACITY);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -175,7 +217,7 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
|
||||
@Override
|
||||
public IIcon getTextureForState(CollidableComponent component) {
|
||||
int state = getDamageForState(isDense);
|
||||
int state = getDamageForState(isDense, isDenseUltra);
|
||||
if (component.dir == ForgeDirection.UNKNOWN) {
|
||||
return coreTextures[state];
|
||||
} else {
|
||||
@@ -272,7 +314,11 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
private void onNodeChanged(BlockCoord location) {
|
||||
World world = getBundle().getWorld();
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
TileEntity te = location.getLocation(dir).getTileEntity(world);
|
||||
BlockCoord dirLocation = location.getLocation(dir);
|
||||
TileEntity te = null;
|
||||
if (world.blockExists(dirLocation.x, dirLocation.y, dirLocation.z)) {
|
||||
te = location.getLocation(dir).getTileEntity(world);
|
||||
}
|
||||
if (te != null && te instanceof IGridHost && !(te instanceof IConduitBundle)) {
|
||||
IGridNode node = ((IGridHost) te).getGridNode(ForgeDirection.UNKNOWN);
|
||||
if (node == null) {
|
||||
@@ -288,7 +334,12 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
@Override
|
||||
public void onAddedToBundle() {
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
TileEntity te = getLocation().getLocation(dir).getTileEntity(getBundle().getWorld());
|
||||
World world = getBundle().getWorld();
|
||||
BlockCoord dirLocation = getLocation().getLocation(dir);
|
||||
TileEntity te = null;
|
||||
if (world.blockExists(dirLocation.x, dirLocation.y, dirLocation.z)) {
|
||||
te = dirLocation.getTileEntity(world);
|
||||
}
|
||||
if (te instanceof TileConduitBundle) {
|
||||
IMEConduit cond = ((TileConduitBundle) te).getConduit(IMEConduit.class);
|
||||
if (cond != null) {
|
||||
@@ -343,4 +394,9 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
|
||||
public boolean isDense() {
|
||||
return isDense;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDenseUltra() {
|
||||
return isDenseUltra;
|
||||
}
|
||||
}
|
||||
@@ -43,7 +43,13 @@ public class MEConduitGrid implements IGridBlock {
|
||||
|
||||
@Override
|
||||
public EnumSet<GridFlags> getFlags() {
|
||||
return conduit.isDense() ? EnumSet.of(GridFlags.DENSE_CAPACITY) : EnumSet.noneOf(GridFlags.class);
|
||||
if (conduit.isDenseUltra()) {
|
||||
return EnumSet.of(GridFlags.ULTRA_DENSE_CAPACITY);
|
||||
}
|
||||
if (conduit.isDense()) {
|
||||
return EnumSet.of(GridFlags.DENSE_CAPACITY);
|
||||
}
|
||||
return EnumSet.noneOf(GridFlags.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -101,6 +101,7 @@ public final class Config {
|
||||
public static int transceiverUpkeepCostRF = 10;
|
||||
public static int transceiverBucketTransmissionCostRF = 100;
|
||||
public static int transceiverMaxIoRF = 20480;
|
||||
public static int transceiverInternalBuffer = 500000;
|
||||
public static boolean transceiverUseEasyRecipe = false;
|
||||
|
||||
public static File configDirectory;
|
||||
@@ -438,6 +439,7 @@ public final class Config {
|
||||
|
||||
public static boolean isGasConduitEnabled = true;
|
||||
public static boolean enableMEConduits = true;
|
||||
public static boolean enableMEUltraDenseConduits = false;
|
||||
public static boolean enableOCConduits = true;
|
||||
public static boolean enableOCConduitsAnimatedTexture = true;
|
||||
|
||||
@@ -1001,6 +1003,13 @@ public final class Config {
|
||||
transceiverMaxIoRF,
|
||||
"Maximum RF/t sent and received by a Dimensional Transceiver per tick. Input and output limits are not cumulative")
|
||||
.getInt(transceiverMaxIoRF);
|
||||
transceiverInternalBuffer = config
|
||||
.get(
|
||||
sectionPower.name,
|
||||
"transceiverInternalBuffer",
|
||||
transceiverInternalBuffer,
|
||||
"Maximum RF for the send/receive buffer. Need to be at least transceiverMaxIoRF.")
|
||||
.getInt(transceiverInternalBuffer);
|
||||
transceiverBucketTransmissionCostRF = config
|
||||
.get(
|
||||
sectionEfficiency.name,
|
||||
@@ -2298,6 +2307,11 @@ public final class Config {
|
||||
sectionItems.name,
|
||||
enableMEConduits,
|
||||
"Allows ME conduits. Only has an effect with AE2 installed.");
|
||||
enableMEUltraDenseConduits = config.getBoolean(
|
||||
"enableMEUltraDenseConduits",
|
||||
sectionItems.name,
|
||||
enableMEUltraDenseConduits,
|
||||
"Allows ME Ultra Dense conduits. Only has an effect with AE2 installed.");
|
||||
enableOCConduits = config.getBoolean(
|
||||
"enableOCConduits",
|
||||
sectionItems.name,
|
||||
|
||||
@@ -22,6 +22,9 @@ public class PacketConfigSync implements IMessage, IMessageHandler<PacketConfigS
|
||||
buf.writeInt(Config.travelStaffMaxDistance);
|
||||
buf.writeInt(Config.travelStaffMaxBlinkDistance);
|
||||
buf.writeFloat(Config.travelStaffPowerPerBlockRF);
|
||||
buf.writeInt(Config.teleportStaffMaxDistance);
|
||||
buf.writeInt(Config.teleportStaffMaxBlinkDistance);
|
||||
buf.writeInt(Config.teleportStaffFailedBlinkDistance);
|
||||
buf.writeBoolean(Config.telepadLockCoords);
|
||||
buf.writeBoolean(Config.telepadLockDimension);
|
||||
}
|
||||
@@ -38,6 +41,9 @@ public class PacketConfigSync implements IMessage, IMessageHandler<PacketConfigS
|
||||
Config.travelStaffMaxDistance = data.readInt();
|
||||
Config.travelStaffMaxBlinkDistance = data.readInt();
|
||||
Config.travelStaffPowerPerBlockRF = data.readFloat();
|
||||
Config.teleportStaffMaxDistance = data.readInt();
|
||||
Config.teleportStaffMaxBlinkDistance = data.readInt();
|
||||
Config.teleportStaffFailedBlinkDistance = data.readInt();
|
||||
Config.telepadLockCoords = data.readBoolean();
|
||||
Config.telepadLockDimension = data.readBoolean();
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
@@ -180,7 +181,11 @@ public class GuiEnderface extends GuiScreen {
|
||||
}
|
||||
}
|
||||
|
||||
distance -= Mouse.getDWheel() * 0.01;
|
||||
int wheelD = Mouse.getEventDWheel();
|
||||
if (!EnderIO.hasLwjgl3) {
|
||||
wheelD = MathHelper.clamp_int(wheelD, -1, 1);
|
||||
}
|
||||
distance -= wheelD;
|
||||
distance = VecmathUtil.clamp(distance, 0.1, 20);
|
||||
|
||||
long elapsed = EnderIO.proxy.getTickCount() - initTime;
|
||||
|
||||
@@ -17,6 +17,7 @@ import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
@@ -156,7 +157,11 @@ public class IoConfigRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
distance -= Mouse.getEventDWheel() * 0.01;
|
||||
int wheelD = Mouse.getEventDWheel();
|
||||
if (!EnderIO.hasLwjgl3) {
|
||||
wheelD = MathHelper.clamp_int(wheelD, -1, 1);
|
||||
}
|
||||
distance -= wheelD;
|
||||
distance = VecmathUtil.clamp(distance, 0.01, 200);
|
||||
|
||||
long elapsed = System.currentTimeMillis() - initTime;
|
||||
|
||||
@@ -131,6 +131,10 @@ public class ItemMagnet extends ItemEnergyContainer implements IResourceTooltipP
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) {
|
||||
if (maxReceive < 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int res = super.receiveEnergy(container, maxReceive, simulate);
|
||||
if (res != 0 && !simulate) {
|
||||
updateDamage(container);
|
||||
@@ -148,6 +152,10 @@ public class ItemMagnet extends ItemEnergyContainer implements IResourceTooltipP
|
||||
}
|
||||
|
||||
public int extractEnergyInternal(ItemStack container, int maxExtract, boolean simulate) {
|
||||
if (maxExtract < 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int res = super.extractEnergy(container, maxExtract, simulate);
|
||||
if (res != 0 && !simulate) {
|
||||
updateDamage(container);
|
||||
|
||||
@@ -54,7 +54,7 @@ public class TileTransceiver extends AbstractPoweredTaskEntity
|
||||
private final ICapacitor capacitor = new BasicCapacitor(
|
||||
0,
|
||||
Config.transceiverMaxIoRF * 2,
|
||||
500000,
|
||||
Config.transceiverInternalBuffer,
|
||||
Config.transceiverMaxIoRF);
|
||||
private boolean sendChannelsDirty = false;
|
||||
private boolean recieveChannelsDirty = false;
|
||||
|
||||
@@ -67,6 +67,12 @@ public class ItemTeleportStaff extends ItemTravelStaff {
|
||||
return equipped;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) {
|
||||
// Don't allow receiving energy, since we have infinite energy.
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) {
|
||||
// Don't allow extracting energy.
|
||||
|
||||
@@ -103,6 +103,10 @@ public class ItemTravelStaff extends ItemEnergyContainer implements IItemOfTrave
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) {
|
||||
if (maxReceive < 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int res = super.receiveEnergy(container, maxReceive, simulate);
|
||||
if (res != 0 && !simulate) {
|
||||
updateDamage(container);
|
||||
@@ -112,6 +116,10 @@ public class ItemTravelStaff extends ItemEnergyContainer implements IItemOfTrave
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) {
|
||||
if (maxExtract < 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int res = super.extractEnergy(container, maxExtract, simulate);
|
||||
if (res != 0 && !simulate) {
|
||||
updateDamage(container);
|
||||
|
||||
@@ -17,12 +17,7 @@ import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.ChatComponentTranslation;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovementInput;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.util.*;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
@@ -37,7 +32,9 @@ import com.enderio.core.common.vecmath.Vector2d;
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
import com.google.common.collect.MultimapBuilder;
|
||||
import com.google.common.collect.SetMultimap;
|
||||
import com.gtnewhorizon.gtnhlib.GTNHLib;
|
||||
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.ObfuscationReflectionHelper;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.common.gameevent.TickEvent;
|
||||
@@ -338,7 +335,7 @@ public class TravelController {
|
||||
}
|
||||
|
||||
if (displayOutOfRangeMessage && distanceMap.isEmpty()) {
|
||||
player.addChatComponentMessage(new ChatComponentTranslation("enderio.blockTravelPlatform.outOfRange"));
|
||||
showMessage(player, new ChatComponentTranslation("enderio.blockTravelPlatform.outOfRange"));
|
||||
}
|
||||
|
||||
return distanceMap.values().stream().findFirst();
|
||||
@@ -532,7 +529,7 @@ public class TravelController {
|
||||
TravelController.instance.selectedCoord.z);
|
||||
}
|
||||
} else {
|
||||
player.addChatComponentMessage(new ChatComponentTranslation("enderio.gui.travelAccessable.unauthorised"));
|
||||
showMessage(player, new ChatComponentTranslation("enderio.gui.travelAccessable.unauthorised"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -578,8 +575,7 @@ public class TravelController {
|
||||
if (te instanceof ITravelAccessable) {
|
||||
ITravelAccessable ta = (ITravelAccessable) te;
|
||||
if (!ta.canBlockBeAccessed(player)) {
|
||||
player.addChatComponentMessage(
|
||||
new ChatComponentTranslation("enderio.gui.travelAccessable.unauthorised"));
|
||||
showMessage(player, new ChatComponentTranslation("enderio.gui.travelAccessable.unauthorised"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -593,14 +589,13 @@ public class TravelController {
|
||||
|
||||
if (!isInRangeTarget(player, coord, source.getMaxDistanceTravelledSq())) {
|
||||
if (source != TravelSource.STAFF_BLINK && source != TravelSource.TELEPORT_STAFF_BLINK) {
|
||||
player.addChatComponentMessage(new ChatComponentTranslation("enderio.blockTravelPlatform.outOfRange"));
|
||||
showMessage(player, new ChatComponentTranslation("enderio.blockTravelPlatform.outOfRange"));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if (!isValidTarget(player, coord, source)) {
|
||||
if (source != TravelSource.STAFF_BLINK && source != TravelSource.TELEPORT_STAFF_BLINK) {
|
||||
player.addChatComponentMessage(
|
||||
new ChatComponentTranslation("enderio.blockTravelPlatform.invalidTarget"));
|
||||
showMessage(player, new ChatComponentTranslation("enderio.blockTravelPlatform.invalidTarget"));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -630,7 +625,7 @@ public class TravelController {
|
||||
if (requiredPower > canUsePower) {
|
||||
// make sure chat is sent only once per trial
|
||||
if (!insufficientPower) {
|
||||
player.addChatComponentMessage(new ChatComponentTranslation("enderio.itemTravelStaff.notEnoughPower"));
|
||||
showMessage(player, new ChatComponentTranslation("enderio.itemTravelStaff.notEnoughPower"));
|
||||
insufficientPower = true;
|
||||
}
|
||||
return -1;
|
||||
@@ -745,17 +740,16 @@ public class TravelController {
|
||||
|
||||
if (Config.travelAnchorSkipWarning) {
|
||||
if (travelBlock.getRequiresPassword(player)) {
|
||||
player.addChatComponentMessage(
|
||||
new ChatComponentTranslation("enderio.gui.travelAccessable.skipLocked"));
|
||||
showMessage(player, new ChatComponentTranslation("enderio.gui.travelAccessable.skipLocked"));
|
||||
}
|
||||
|
||||
if (travelBlock.getAccessMode() == ITravelAccessable.AccessMode.PRIVATE
|
||||
&& !travelBlock.canUiBeAccessed(player)) {
|
||||
player.addChatComponentMessage(
|
||||
new ChatComponentTranslation("enderio.gui.travelAccessable.skipPrivate"));
|
||||
showMessage(player, new ChatComponentTranslation("enderio.gui.travelAccessable.skipPrivate"));
|
||||
}
|
||||
if (!isValidTarget(player, targetBlock, TravelSource.BLOCK)) {
|
||||
player.addChatComponentMessage(
|
||||
showMessage(
|
||||
player,
|
||||
new ChatComponentTranslation("enderio.gui.travelAccessable.skipObstructed"));
|
||||
}
|
||||
}
|
||||
@@ -944,4 +938,16 @@ public class TravelController {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static void showMessage(EntityPlayer player, IChatComponent chatComponent) {
|
||||
if (Loader.isModLoaded("gtnhlib")) {
|
||||
GTNHLib.proxy.printMessageAboveHotbar(
|
||||
EnumChatFormatting.WHITE + chatComponent.getFormattedText(),
|
||||
60,
|
||||
true,
|
||||
true);
|
||||
} else {
|
||||
player.addChatComponentMessage(chatComponent);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -353,13 +353,14 @@ public class WailaCompat implements IWailaDataProvider {
|
||||
} else if (itemStack.getItem() == EnderIO.itemMEConduit) {
|
||||
NBTTagCompound nbtRoot = _accessor.getNBTData();
|
||||
if (nbtRoot.hasKey("isDense")) {
|
||||
boolean isDenseUltra = nbtRoot.getBoolean("isDenseUltra");
|
||||
boolean isDense = nbtRoot.getBoolean("isDense");
|
||||
int channelsInUse = nbtRoot.getInteger("channelsInUse");
|
||||
currenttip.add(
|
||||
MessageFormat.format(
|
||||
EnderIO.lang.localize("itemMEConduit.channelsUsed"),
|
||||
channelsInUse,
|
||||
isDense ? 32 : 8));
|
||||
isDenseUltra ? 128 : (isDense ? 32 : 8)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -395,6 +396,7 @@ public class WailaCompat implements IWailaDataProvider {
|
||||
if (mec != null) {
|
||||
tag.setInteger("channelsInUse", mec.getChannelsInUse());
|
||||
tag.setBoolean("isDense", mec.isDense());
|
||||
tag.setBoolean("isDenseUltra", mec.isDenseUltra());
|
||||
}
|
||||
} else if (te instanceof IInternalPoweredTile) {
|
||||
IInternalPoweredTile ipte = (IInternalPoweredTile) te;
|
||||
|
||||
@@ -33,6 +33,19 @@ enderio.itemPowerConduit.name=Energieleitung
|
||||
enderio.itemPowerConduitEnhanced.name=Verbesserte Energieleitung
|
||||
enderio.itemPowerConduitEnder.name=Ender-Energieleitung
|
||||
|
||||
enderio.itemPowerConduitEndergyCrude.name=Lehm-Energieleitung
|
||||
enderio.itemPowerConduitEndergyIron.name=Eisen-Energieleitung
|
||||
enderio.itemPowerConduitEndergyAluminum.name=Aluminium-Energieleitung
|
||||
enderio.itemPowerConduitEndergyGold.name=Gold-Energieleitung
|
||||
enderio.itemPowerConduitEndergyCopper.name=Kupfer-Energieleitung
|
||||
enderio.itemPowerConduitEndergySilver.name=Silber-Energieleitung
|
||||
enderio.itemPowerConduitEndergyElectrum.name=Elektrum-Energieleitung
|
||||
enderio.itemPowerConduitEndergyEnergeticSilver.name=Elektrisches Silber-Energieleitung
|
||||
enderio.itemPowerConduitEndergyCrystalline.name=Kristallin-Energieleitung
|
||||
enderio.itemPowerConduitEndergyCrystallinePinkSlime.name=Kristalliner Rosa Schleim Energieleitung
|
||||
enderio.itemPowerConduitEndergyMelodic.name=Melodische Energieleitung
|
||||
enderio.itemPowerConduitEndergyStellar.name=Hervorragende Energieleitung
|
||||
|
||||
enderio.itemRedstoneConduit.name=Redstone-Leitung
|
||||
enderio.itemRedstoneConduitSwitch.name=Leitungsschalter
|
||||
enderio.itemRedstoneConduitInsulated.name=Isolierte Redstone-Leitung
|
||||
@@ -40,12 +53,10 @@ enderio.itemRedstoneConduitInsulated.name=Isolierte Redstone-Leitung
|
||||
enderio.itemLiquidConduit.name=Flüssigkeitsleitung
|
||||
enderio.itemLiquidConduitAdvanced.name=Flüssigkeitsdruckleitung
|
||||
enderio.itemLiquidConduitEnder.name=Ender-Flüssigkeitsleitung
|
||||
# BEGIN needs translation
|
||||
enderio.itemLiquidConduitCrystallineEnder.name=Crystalline Ender Fluid Conduit
|
||||
enderio.itemLiquidConduitCrystallinePinkSlimeEnder.name=Crystalline Pink Slime Ender Fluid Conduit
|
||||
enderio.itemLiquidConduitMelodicEnder.name=Melodic Ender Fluid Conduit
|
||||
enderio.itemLiquidConduitStellarEnder.name=Stellar Ender Fluid Conduit
|
||||
# END needs translation
|
||||
enderio.itemLiquidConduitCrystallineEnder.name=Kristallin-Flüssigkeitsdruckleitung
|
||||
enderio.itemLiquidConduitCrystallinePinkSlimeEnder.name=Kristalliner Rosa Schleim Flüssigkeitsdruckleitung
|
||||
enderio.itemLiquidConduitMelodicEnder.name=Melodische Flüssigkeitsdruckleitung
|
||||
enderio.itemLiquidConduitStellarEnder.name=Hervorragende Flüssigkeitsdruckleitung
|
||||
enderio.itemLiquidConduit.lockedType=Flüssigkeitstyp gebunden an
|
||||
enderio.itemLiquidConduit.unlockedType=Flüssigkeitstyp nicht mehr gebunden
|
||||
enderio.itemLiquidConduit.lockedWaila=Festgelegt auf
|
||||
@@ -119,6 +130,7 @@ enderio.itemGasConduit.tooltip.detailed.line1=Transportiert Mekanism-kompatible
|
||||
|
||||
enderio.itemMEConduit.name=ME-Leitung
|
||||
enderio.itemMEConduitDense.name=Dichte ME-Leitung
|
||||
enderio.itemMEConduitDenseUltra.name=Extrem Dichte ME-Leitungen
|
||||
enderio.itemMEConduit.channelsUsed={0,number} von {1,number} Kanälen
|
||||
|
||||
enderio.itemOCConduit.name=Netzwerkleitung (OC)
|
||||
@@ -218,6 +230,42 @@ enderio.phasedIron.name=Pulsierendes Eisen
|
||||
enderio.vibrantNugget.name=Dynamischer Nugget
|
||||
enderio.darkSteel.name=Dunkelstahl
|
||||
enderio.soularium.name=Soularium
|
||||
enderio.endSteel.name=End-Stahl
|
||||
enderio.endSteelNugget.name=End-Stahl-Nugget
|
||||
|
||||
enderio.crudeSteel.name=Lehmzusammensetzung
|
||||
enderio.crystallineAlloy.name=Kristallin-Legierung
|
||||
enderio.melodicAlloy.name=Melodische Legierung
|
||||
enderio.stellarAlloy.name=Hervorragende Legierung
|
||||
enderio.crystallinePinkSlime.name=Kristalliner Rosa Schleim
|
||||
enderio.energeticSilver.name=Energetisches Silber
|
||||
enderio.vividAlloy.name=Lebendige Legierung
|
||||
|
||||
enderio.crudeSteelGrindingBall.name=Mahlwerkkugel aus Lehmzusammensetzung
|
||||
enderio.crystallineAlloyGrindingBall.name=Mahlwerkkugel aus Kristallin-Legierung
|
||||
enderio.melodicAlloyGrindingBall.name=Mahlwerkkugel aus Melodischer Legierung
|
||||
enderio.stellarAlloyGrindingBall.name=Mahlwerkkugel aus Hervorragender Legierung
|
||||
enderio.crystallinePinkSlimeGrindingBall.name=Mahlwerkkugel aus Kristallinem Rosa Schleim
|
||||
enderio.energeticSilverGrindingBall.name=Mahlwerkkugel aus Energetischem Silber
|
||||
enderio.vividAlloyGrindingBall.name=Mahlwerkkugel aus Lebendiger Legierung
|
||||
|
||||
enderio.precientCrystal.name=Vorausschauender Kristall
|
||||
enderio.pulsatingPowder.name=Körner der Piezalität
|
||||
enderio.vibrantPowder.name=Körner der Lebendigkeit
|
||||
enderio.enderCrystalPowder.name=Körner des Ends
|
||||
enderio.precientPowder.name=Körner der Voraussicht
|
||||
|
||||
#Balls
|
||||
enderio.electricalSteel_ball.name=Ball aus Elektrischem Stahl
|
||||
enderio.energeticAlloy_ball.name=Ball aus Energetisierter Ligierung
|
||||
enderio.phasedGold_ball.name=Ball aus Dynamischer Legierung
|
||||
enderio.redstoneAlloy_ball.name=Ball aus Redstone-Legierung
|
||||
enderio.conductiveIron_ball.name=Ball aus Leitendem Eisen
|
||||
enderio.phasedIron_ball.name=Ball aus Pulsierendem Eisen
|
||||
enderio.vibrantNugget_ball.name=Ball aus Dynamischen Nuggets
|
||||
enderio.darkSteel_ball.name=Ball aus Dunkelstahl
|
||||
enderio.soularium_ball.name=Ball aus Soularium
|
||||
enderio.endSteel_ball.name=Ball aus End-Stahl
|
||||
|
||||
tile.blockIngotStorage.name=Barrenspeicher
|
||||
tile.enderio.electricalSteel.name=Block aus Elektrischem Stahl
|
||||
@@ -245,6 +293,13 @@ enderio.itemBasicCapacitor.name=Kondensator
|
||||
enderio.basicCapacitor.name=Basiskondensator
|
||||
enderio.activatedCapacitor.name=Doppelschichtkondensator
|
||||
enderio.enderCapacitor.name=Oktadischer Kondensator
|
||||
enderio.crystallineCapacitor.name=Kristallin-Kondensator
|
||||
enderio.melodicCapacitor.name=Melodischer Kondensator
|
||||
enderio.stellarCapacitor.name=Hervorragende Kondensator
|
||||
enderio.silverCapacitor.name=Silber-Kondensator
|
||||
enderio.endergeticCapacitor.name=Energetischer Kondensator
|
||||
enderio.endergisedCapacitor.name=Energetisierter Kondensator
|
||||
enderio.totemicCapacitor.name=Totemischer Kondensator
|
||||
|
||||
enderio.machine.tooltip.upgrade=Maschinen-Upgrade
|
||||
enderio.machine.tooltip.upgrade.tooltip.detailed.line1=Erhöht Energiespeicher sowie
|
||||
@@ -403,6 +458,16 @@ tile.blockZombieGenerator.tooltip.detailed.line2=um Energie zu erzeugen
|
||||
enderio.zombieGenerator.fuelTank=Nahrhafter Tank
|
||||
enderio.gui.fluid.minReq=%s benötigt für die Aktivierung
|
||||
|
||||
tile.blockFrankenzombieGenerator.name=Frank'N'Zombie-Generator
|
||||
tile.blockFrankenzombieGenerator.tooltip.detailed.line1=Konsumiert Nahrhaftes Destillat,
|
||||
tile.blockFrankenzombieGenerator.tooltip.detailed.line2=um Energie zu erzeugen
|
||||
enderio.frankenzombieGenerator.fuelTank=Nahrhafter Tank
|
||||
|
||||
tile.blockEnderGenerator.name=Ender-Generator
|
||||
tile.blockEnderGenerator.tooltip.detailed.line1=Konsumiert Tau des Voids,
|
||||
tile.blockEnderGenerator.tooltip.detailed.line2=um Energie zu erzeugen
|
||||
enderio.enderGenerator.fuelTank=Leere-Tank
|
||||
|
||||
tile.blockKillerJoe.name=Killer Joe
|
||||
tile.blockKillerJoe.tooltip.detailed.line1=Attackiert nahe Mobs und Spieler,
|
||||
tile.blockKillerJoe.tooltip.detailed.line2=wenn mit einem Schwert und
|
||||
@@ -613,6 +678,12 @@ item.itemTravelStaff.tooltip.detailed.line4=<shift><r-click> wird den Spieler ei
|
||||
item.itemTravelStaff.tooltip.detailed.line5=kurze Distanz teleportieren
|
||||
enderio.itemTravelStaff.notEnoughPower=Nicht genügend Energie
|
||||
|
||||
item.itemTeleportStaff.name=Stab der Teleportation
|
||||
item.itemTeleportStaff.tooltip.detailed.line1=Rechtsklick, um zu teleportieren, wohin auch immer du schaust
|
||||
item.itemTeleportStaff.tooltip.detailed.line2=Shift-Rechtsklick, um zu Reiseankern zu telportieren
|
||||
item.itemTeleportStaff.tooltip.detailed.line3=Rechtsklick auf einen benachbarten Block, um zu versuchen
|
||||
item.itemTeleportStaff.tooltip.detailed.line4=zur anderen Seite zu teleportieren
|
||||
|
||||
item.itemCoordSelector.name=Koordinatenselektor
|
||||
item.itemCoordSelector.tooltip.detailed.line1=Speichert die Koordinaten eines Blocks.
|
||||
item.itemCoordSelector.tooltip.detailed.line2=Rechts-Klick auf Block um den
|
||||
@@ -689,6 +760,8 @@ skullZombieController.name=Z-Logik-Controller
|
||||
skullZombieFrankenstien.name=Frank'N'Zombie
|
||||
skullEnderResonator.name=Enderresonator
|
||||
skullSentientEnder.name=Empfindsamer Ender
|
||||
skullSkeletalContractor.name=Skelettunternehmer
|
||||
skullGuardianDiode.name=Wächterdiode
|
||||
|
||||
item.itemSpawnEggEnderIO.name=Spawn
|
||||
|
||||
@@ -702,19 +775,55 @@ item.darkSteel_pickaxe.name=Dunkelspitzhacke
|
||||
item.darkSteel_axe.name=Dunkelaxt
|
||||
item.darkSteel_shears.name=Dunkelschere
|
||||
|
||||
#End Steel
|
||||
item.endSteel_helmet.name=Endstahl-Helm
|
||||
item.endSteel_chestplate.name=Endstahl-Brustpanzer
|
||||
item.endSteel_leggings.name=Endstahl-Beinschutz
|
||||
item.endSteel_boots.name=Endstahl-Stiefel
|
||||
item.endSteel_sword.name=Endstahl-Schwert
|
||||
item.endSteel_pickaxe.name=Endstahl-Spitzhacke
|
||||
item.endSteel_axe.name=Endstahl-Axt
|
||||
|
||||
#Stellar
|
||||
item.stellar_helmet.name=Hervorragender Helm
|
||||
item.stellar_chestplate.name=Hervorragender Brustpanzer
|
||||
item.stellar_leggings.name=Hervorragender Beinschutz
|
||||
item.stellar_boots.name=Hervorragende Stiefel
|
||||
item.stellar_sword.name=Hervorragendes Schwert
|
||||
item.stellar_pickaxe.name=Hervorragende Spitzhacke
|
||||
item.stellar_axe.name=Hervorragende Axt
|
||||
|
||||
enderio.item.darkSteel.tooltip.lvs=Level
|
||||
|
||||
enderio.item.darkSteel_pickaxe.tooltip.effPowered=Effizienz, wenn aktiviert
|
||||
enderio.item.darkSteel_pickaxe.tooltip.effObs=Effizienz baut Obsidian ab
|
||||
enderio.item.darkSteel_pickaxe.tooltip.cost=Kosten
|
||||
|
||||
enderio.item.endSteel_pickaxe.tooltip.effPowered=Effizienz, wenn aktiviert
|
||||
enderio.item.endSteel_pickaxe.tooltip.effObs=Effizienz baut Obsidian ab
|
||||
enderio.item.endSteel_pickaxe.tooltip.cost=Kosten
|
||||
|
||||
enderio.item.stellar_pickaxe.tooltip.effPowered=Effizienz, wenn aktiviert
|
||||
enderio.item.stellar_pickaxe.tooltip.effObs=Effizienz baut Obsidian ab
|
||||
enderio.item.stellar_pickaxe.tooltip.cost=Kosten
|
||||
|
||||
enderio.item.darkSteel_axe.tooltip.multiHarvest=Schleiche, um mehr Holz auf einmal abzubauen
|
||||
enderio.item.endSteel_axe.tooltip.multiHarvest=Schleiche, um mehr Holz auf einmal abzubauen
|
||||
enderio.item.stellar_axe.tooltip.multiHarvest=Schleiche, um mehr Holz auf einmal abzubauen
|
||||
|
||||
enderio.item.darkSteel_shears.tooltip.multiHarvest=Schert mehrere Blöcke/Schafe wenn verstärkt
|
||||
|
||||
enderio.item.darkSteel_sword.tooltip.line1=Erhöht Schädel- und Enderperlen-Drops.
|
||||
enderio.item.darkSteel_sword.tooltip.line2=Endermen können sich nach einem Treffer nicht mehr teleportieren.
|
||||
enderio.item.darkSteel_sword.tooltip.line3=+1 Schaden, wenn aktiviert
|
||||
enderio.item.darkSteel_sword.tooltip.line3=+2 Schaden, wenn aktiviert
|
||||
|
||||
enderio.item.endSteel_sword.tooltip.line1=Erhöht Schädel- und Enderperlen-Drops
|
||||
enderio.item.endSteel_sword.tooltip.line2=Endermen können sich nach einem Treffer nicht mehr teleportieren.
|
||||
enderio.item.endSteel_sword.tooltip.line3=+2 Schaden, wenn aktiviert
|
||||
|
||||
enderio.item.stellar_sword.tooltip.line1=Erhöht Schädel- und Enderperlen-Drops
|
||||
enderio.item.stellar_sword.tooltip.line2=Endermen können sich nach einem Treffer nicht mehr teleportieren.
|
||||
enderio.item.stellar_sword.tooltip.line3=+2 Schaden, wenn aktiviert
|
||||
|
||||
enderio.item.darkSteel_armor.tooltip.line1=Schutz auf Diamant-Level,
|
||||
enderio.item.darkSteel_armor.tooltip.line2=wenn mit Energie versorgt
|
||||
@@ -722,26 +831,43 @@ enderio.item.darkSteel_armor.tooltip.line2=wenn mit Energie versorgt
|
||||
enderio.item.darkSteel_boots.tooltip.line1=Negiert Fallschaden,
|
||||
enderio.item.darkSteel_boots.tooltip.line2=wenn mit Energie versorgt
|
||||
|
||||
enderio.item.stellar_armor.tooltip.line1=Schutz auf Diamant-Level+,
|
||||
enderio.item.stellar_armor.tooltip.line2=wenn mit Energie versorgt
|
||||
|
||||
enderio.item.darkSteel_boots.tooltip.line1=Fallschaden negiert,
|
||||
enderio.item.darkSteel_boots.tooltip.line2=wenn mit Energie versorgt
|
||||
|
||||
enderio.item.endSteel_boots.tooltip.line1=Fallschaden negiert,
|
||||
enderio.item.endSteel_boots.tooltip.line2=wenn mit Energie versorgt
|
||||
|
||||
enderio.item.stellar_boots.tooltip.line1=Fallschaden negiert,
|
||||
enderio.item.stellar_boots.tooltip.line2=wenn mit Energie versorgt
|
||||
|
||||
enderio.darksteel.upgrade.empowered_one.name=Verstärkt
|
||||
enderio.darksteel.upgrade.empowered_one.tooltip.detailed.line1=Energie: $P
|
||||
enderio.darksteel.upgrade.empowered_one.tooltip.detailed.line2=Hälfte des Haltbarkeitsschadens
|
||||
enderio.darksteel.upgrade.empowered_one.tooltip.detailed.line2=$D% des Haltbarkeitsschaden
|
||||
enderio.darksteel.upgrade.empowered_one.tooltip.detailed.line3=von Energie absorbiert
|
||||
|
||||
enderio.darksteel.upgrade.empowered_two.name=Verstärkt II
|
||||
enderio.darksteel.upgrade.empowered_two.tooltip.detailed.line1=Energie: $P
|
||||
enderio.darksteel.upgrade.empowered_two.tooltip.detailed.line2=Hälfte des Haltbarkeitsschadens
|
||||
enderio.darksteel.upgrade.empowered_two.tooltip.detailed.line2=$D% des Haltbarkeitsschaden
|
||||
enderio.darksteel.upgrade.empowered_two.tooltip.detailed.line3=von Energie absorbiert
|
||||
|
||||
enderio.darksteel.upgrade.empowered_three.name=Verstärkt III
|
||||
enderio.darksteel.upgrade.empowered_three.tooltip.detailed.line1=Energie: $P
|
||||
enderio.darksteel.upgrade.empowered_three.tooltip.detailed.line2=Hälfte des Haltbarkeitsschadens
|
||||
enderio.darksteel.upgrade.empowered_three.tooltip.detailed.line2=$D% des Haltbarkeitsschaden
|
||||
enderio.darksteel.upgrade.empowered_three.tooltip.detailed.line3=von Energie absorbiert
|
||||
|
||||
enderio.darksteel.upgrade.empowered_four.name=Verstärkt IV
|
||||
enderio.darksteel.upgrade.empowered_four.tooltip.detailed.line1=Energie: $P
|
||||
enderio.darksteel.upgrade.empowered_four.tooltip.detailed.line2=Hälfte des Haltbarkeitsschadens
|
||||
enderio.darksteel.upgrade.empowered_four.tooltip.detailed.line2=$D% des Haltbarkeitsschaden
|
||||
enderio.darksteel.upgrade.empowered_four.tooltip.detailed.line3=von Energie absorbiert
|
||||
|
||||
enderio.darksteel.upgrade.empowered_five.name=Verstärkt V
|
||||
enderio.darksteel.upgrade.empowered_five.tooltip.detailed.line1=Energie: $P
|
||||
enderio.darksteel.upgrade.empowered_five.tooltip.detailed.line2=$D% des Haltbarkeitsschaden
|
||||
enderio.darksteel.upgrade.empowered_five.tooltip.detailed.line3=von Energie absorbiert
|
||||
|
||||
enderio.darksteel.upgrade.travel.name=Reise
|
||||
enderio.darksteel.upgrade.travel.tooltip.detailed.line1=Halte Shift und Rechts-Klick zum Teleportieren,
|
||||
enderio.darksteel.upgrade.travel.tooltip.detailed.line2=oder aktiviere einen Reiseanker oder Ender-IO
|
||||
@@ -825,6 +951,9 @@ enderio.darksteel.upgrade.solar_one.tooltip.detailed.line1=Generiert Energie aus
|
||||
enderio.darksteel.upgrade.solar_two.name=Solar II
|
||||
enderio.darksteel.upgrade.solar_two.tooltip.detailed.line1=Generiert Energie von der Sonne.
|
||||
|
||||
enderio.darksteel.upgrade.solar_three.name=Solar III
|
||||
enderio.darksteel.upgrade.solar_three.tooltip.detailed.line1=Generiert Energie von der Sonne.
|
||||
|
||||
#------GUI
|
||||
|
||||
enderio.gui.simple.in=Max. Ein:
|
||||
@@ -985,6 +1114,9 @@ enderio.gui.travelAccessable.ok=Autorisieren
|
||||
enderio.gui.travelAccessable.skipLocked=Überspringe abgeschlossene Anker, benutzte gezielten Teleport.
|
||||
enderio.gui.travelAccessable.skipObstructed=Überspringe versperrte Anker.
|
||||
enderio.gui.travelAccessable.skipPrivate=Überspringe private Anker.
|
||||
enderio.gui.travelAccessable.tooltip.visible=Sicherbarkeit
|
||||
enderio.gui.travelAccessable.tooltip.visible.desc1=Wenn deaktiviert kannst du diesen Block von anderen Blöcken aus nicht sehen.
|
||||
enderio.gui.travelAccessable.tooltip.visible.desc2=Nützlich für Aufzüge.
|
||||
|
||||
enderio.gui.telepad.configure.travel=Reiseeinstellungen
|
||||
enderio.gui.telepad.configure.telepad=Telepad-Einstellungen
|
||||
|
||||
@@ -131,6 +131,7 @@ enderio.itemGasConduit.tooltip.detailed.line1=Transfers Mekanism-compatible gase
|
||||
|
||||
enderio.itemMEConduit.name=ME Conduit
|
||||
enderio.itemMEConduitDense.name=Dense ME Conduit
|
||||
enderio.itemMEConduitDenseUltra.name=Ultra Dense ME Conduit
|
||||
enderio.itemMEConduit.channelsUsed={0,number} of {1,number} Channels
|
||||
|
||||
enderio.itemOCConduit.name=Network Conduit (OC)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 731 B |
Binary file not shown.
|
After Width: | Height: | Size: 298 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
Reference in new issue
Block a user