diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 00000000..2c0e607b --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# Ignore spotlessApply reformat +69a5c0e6ee71fe714eabe24002f9e39aae3b97be diff --git a/build.gradle b/build.gradle index 2dc32c9f..b7756e80 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1673027205 +//version: 1674943145 /* DO NOT CHANGE THIS FILE! Also, you may replace this file at any time if there is an update available. @@ -6,24 +6,27 @@ */ +import com.diffplug.blowdryer.Blowdryer import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import com.gtnewhorizons.retrofuturagradle.mcp.ReobfuscatedJar import com.matthewprenger.cursegradle.CurseArtifact import com.matthewprenger.cursegradle.CurseRelation import com.modrinth.minotaur.dependencies.ModDependency import com.modrinth.minotaur.dependencies.VersionDependency import org.gradle.internal.logging.text.StyledTextOutput.Style import org.gradle.internal.logging.text.StyledTextOutputFactory +import org.jetbrains.gradle.ext.* import java.nio.file.Files import java.nio.file.Paths import java.util.concurrent.TimeUnit import java.util.zip.ZipEntry -import java.util.zip.ZipInputStream import java.util.zip.ZipOutputStream buildscript { repositories { + mavenLocal() mavenCentral() maven { @@ -31,9 +34,10 @@ buildscript { url 'https://maven.minecraftforge.net' } maven { - // GTNH ForgeGradle and ASM Fork - name = "GTNH Maven" - url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + // GTNH RetroFuturaGradle and ASM Fork + name "GTNH Maven" + url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + allowInsecureProtocol = true } maven { name 'sonatype' @@ -44,76 +48,41 @@ buildscript { url 'https://repo1.maven.org/maven2/' } } - dependencies { - //Overwrite the current ASM version to fix shading newer than java 8 applicatations. - classpath 'org.ow2.asm:asm-debug-all-custom:5.0.3' - classpath 'net.minecraftforge.gradle:ForgeGradle:1.2.13' - } } plugins { id 'java-library' - id 'idea' + id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.7" id 'eclipse' id 'scala' id 'maven-publish' id 'org.jetbrains.kotlin.jvm' version '1.5.30' apply false id 'org.jetbrains.kotlin.kapt' version '1.5.30' apply false id 'com.google.devtools.ksp' version '1.5.30-1.0.0' apply false - id 'org.ajoberstar.grgit' version '4.1.1' - id 'com.github.johnrengelman.shadow' version '4.0.4' - id 'com.palantir.git-version' version '0.13.0' apply false - id 'de.undercouch.download' version '5.0.1' - id 'com.github.gmazzo.buildconfig' version '3.0.3' 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 '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' + id 'com.github.gmazzo.buildconfig' version '3.1.0' apply false // Unused, available for addon.gradle 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.0.16' } boolean settingsupdated = verifySettingsGradle() settingsupdated = verifyGitAttributes() || settingsupdated if (settingsupdated) throw new GradleException("Settings has been updated, please re-run task.") -dependencies { - implementation 'com.diffplug:blowdryer:1.6.0' -} - -apply plugin: 'com.diffplug.blowdryer' - if (project.file('.git/HEAD').isFile()) { apply plugin: 'com.palantir.git-version' } def out = services.get(StyledTextOutputFactory).create('an-output') -apply plugin: 'forge' - def projectJavaVersion = JavaLanguageVersion.of(8) -java { - toolchain { - languageVersion.set(projectJavaVersion) - } -} - -idea { - module { - inheritOutputDirs = true - downloadJavadoc = true - downloadSources = true - } -} - boolean disableSpotless = project.hasProperty("disableSpotless") ? project.disableSpotless.toBoolean() : false -if (!disableSpotless) { - apply plugin: 'com.diffplug.spotless' - apply from: Blowdryer.file('spotless.gradle') -} - -if (JavaVersion.current() != JavaVersion.VERSION_1_8) { - throw new GradleException("This project requires Java 8, but it's running on " + JavaVersion.current()) -} - checkPropertyExists("modName") checkPropertyExists("modId") checkPropertyExists("modGroup") @@ -121,10 +90,7 @@ checkPropertyExists("autoUpdateBuildScript") checkPropertyExists("minecraftVersion") checkPropertyExists("forgeVersion") checkPropertyExists("replaceGradleTokenInFile") -checkPropertyExists("gradleTokenModId") -checkPropertyExists("gradleTokenModName") checkPropertyExists("gradleTokenVersion") -checkPropertyExists("gradleTokenGroupName") checkPropertyExists("apiPackage") checkPropertyExists("accessTransformersFile") checkPropertyExists("usesMixins") @@ -135,6 +101,8 @@ checkPropertyExists("containsMixinsAndOrCoreModOnly") checkPropertyExists("usesShadowedDependencies") checkPropertyExists("developmentEnvironmentUserName") +propertyDefaultIfUnset("generateGradleTokenClass", "") +propertyDefaultIfUnset("includeWellKnownRepositories", true) propertyDefaultIfUnset("noPublishedSources", false) propertyDefaultIfUnset("usesMixinDebug", project.usesMixins) propertyDefaultIfUnset("forceEnableMixins", false) @@ -144,14 +112,82 @@ propertyDefaultIfUnset("modrinthProjectId", "") propertyDefaultIfUnset("modrinthRelations", "") propertyDefaultIfUnset("curseForgeProjectId", "") propertyDefaultIfUnset("curseForgeRelations", "") +propertyDefaultIfUnset("minimizeShadowedDependencies", true) +// Deprecated properties (kept for backwards compat) +propertyDefaultIfUnset("gradleTokenModId", "") +propertyDefaultIfUnset("gradleTokenModName", "") +propertyDefaultIfUnset("gradleTokenGroupName", "") + +propertyDefaultIfUnset("enableModernJavaSyntax", false) // On by default for new projects only +propertyDefaultIfUnset("enableGenericInjection", false) // On by default for new projects only + +project.extensions.add(Blowdryer, "Blowdryer", Blowdryer) // Make blowdryer available in "apply from:" scripts +if (!disableSpotless) { + apply plugin: 'com.diffplug.spotless' + apply from: Blowdryer.file('spotless.gradle') +} String javaSourceDir = "src/main/java/" String scalaSourceDir = "src/main/scala/" String kotlinSourceDir = "src/main/kotlin/" +if (usesShadowedDependencies.toBoolean()) { + apply plugin: "com.github.johnrengelman.shadow" +} -final String modGroupPath = modGroup.toString().replaceAll("\\.", "/") -final String apiPackagePath = apiPackage.toString().replaceAll("\\.", "/") +java { + toolchain { + if (enableModernJavaSyntax.toBoolean()) { + languageVersion.set(JavaLanguageVersion.of(17)) + } else { + languageVersion.set(projectJavaVersion) + } + vendor.set(JvmVendorSpec.ADOPTIUM) + } + if (!noPublishedSources) { + withSourcesJar() + } +} + +configurations { + create("runtimeOnlyNonPublishable") { + description = "Runtime only dependencies that are not published alongside the jar" + canBeConsumed = false + canBeResolved = false + } +} + +if (enableModernJavaSyntax.toBoolean()) { + dependencies { + annotationProcessor 'com.github.bsideup.jabel:jabel-javac-plugin:1.0.0' + compileOnly('com.github.bsideup.jabel:jabel-javac-plugin:1.0.0') { + transitive = false // We only care about the 1 annotation class + } + } + + tasks.withType(JavaCompile).configureEach { + if (it.name in ["compileMcLauncherJava", "compilePatchedMcJava"]) { + return + } + sourceCompatibility = 17 // for the IDE support + options.release.set(8) + + javaCompiler.set(javaToolchains.compilerFor { + languageVersion.set(JavaLanguageVersion.of(17)) + vendor.set(JvmVendorSpec.ADOPTIUM) + }) + } +} + +eclipse { + classpath { + downloadSources = true + downloadJavadoc = true + } +} + +final String modGroupPath = modGroup.toString().replace('.' as char, '/' as char) +final String apiPackagePath = apiPackage.toString().replace('.' as char, '/' as char) String targetPackageJava = javaSourceDir + modGroupPath String targetPackageScala = scalaSourceDir + modGroupPath @@ -174,6 +210,8 @@ if (accessTransformersFile) { 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) } if (usesMixins.toBoolean()) { @@ -212,7 +250,7 @@ if (coreModClass) { } } -configurations.all { +configurations.configureEach { resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS) // Make sure GregTech build won't time out @@ -243,7 +281,7 @@ catch (Exception ignored) { versionOverride = 'NO-GIT-TAG-SET' identifiedVersion = versionOverride } -version = minecraftVersion + '-' + identifiedVersion +version = identifiedVersion ext { modVersion = identifiedVersion } @@ -259,72 +297,112 @@ if (project.hasProperty("customArchiveBaseName") && customArchiveBaseName) { archivesBaseName = modId } -def arguments = [] -def jvmArguments = [] - -if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - arguments += [ - "--tweakClass org.spongepowered.asm.launch.MixinTweaker" - ] - if (usesMixinDebug.toBoolean()) { - jvmArguments += [ - "-Dmixin.debug.countInjections=true", - "-Dmixin.debug.verbose=true", - "-Dmixin.debug.export=true" - ] - } -} minecraft { - version = minecraftVersion + '-' + forgeVersion + '-' + minecraftVersion - runDir = 'run' - if (replaceGradleTokenInFile) { for (f in replaceGradleTokenInFile.split(',')) { - replaceIn f + tagReplacementFiles.add f } - if (gradleTokenModId) { - replace gradleTokenModId, modId - } - if (gradleTokenModName) { - replace gradleTokenModName, modName - } - if (gradleTokenVersion) { - replace gradleTokenVersion, modVersion - } - if (gradleTokenGroupName) { - replace gradleTokenGroupName, modGroup + } + if (gradleTokenModId) { + injectedTags.put gradleTokenModId, modId + } + if (gradleTokenModName) { + injectedTags.put gradleTokenModName, modName + } + if (gradleTokenVersion) { + injectedTags.put gradleTokenVersion, modVersion + } + if (gradleTokenGroupName) { + injectedTags.put gradleTokenGroupName, modGroup + } + if (enableGenericInjection.toBoolean()) { + injectMissingGenerics.set(true) + } + + // 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", + "-Dmixin.debug.verbose=true", + "-Dmixin.debug.export=true" + ]) } } - clientIntellijRun { - args(arguments) - jvmArgs(jvmArguments) + // Blowdryer is present in some old mod builds, do not propagate it further as a dependency + // IC2 has no reobf jars in its Maven + groupsToExcludeFromAutoReobfMapping.addAll(["com.diffplug", "com.diffplug.durian", "net.industrial-craft"]) +} - if (developmentEnvironmentUserName) { - args("--username", developmentEnvironmentUserName) +if (generateGradleTokenClass) { + tasks.injectTags.outputClassName.set(generateGradleTokenClass) +} + +// Custom reobf auto-mappings +configurations.configureEach { + dependencies.configureEach { dep -> + if (dep instanceof org.gradle.api.artifacts.ExternalModuleDependency) { + if (dep.group == "net.industrial-craft" && dep.name == "industrialcraft-2") { + // https://www.curseforge.com/minecraft/mc-mods/industrial-craft/files/2353971 + project.dependencies.reobfJarConfiguration("curse.maven:ic2-242638:2353971") + } } } - - serverIntellijRun { - args(arguments) - jvmArgs(jvmArguments) - } } if (file('addon.gradle').exists()) { apply from: 'addon.gradle' } +// Allow unsafe repos but warn +repositories.configureEach { repo -> + if (repo instanceof org.gradle.api.artifacts.repositories.UrlArtifactRepository) { + if (repo.getUrl().getScheme() == "http" && !repo.allowInsecureProtocol) { + logger.warn("Deprecated: Allowing insecure connections for repo '${repo.name}' - add 'allowInsecureProtocol = true'") + repo.allowInsecureProtocol = true + } + } +} + apply from: 'repositories.gradle' configurations { - // TODO: remove Compile after all uses are refactored to Implementation - for (config in [shadowImplementation, shadowCompile, shadeCompile]) { - compileClasspath.extendsFrom(config) - runtimeClasspath.extendsFrom(config) - testCompileClasspath.extendsFrom(config) - testRuntimeClasspath.extendsFrom(config) + 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 + config.extendsFrom(shadeCompile) + config.extendsFrom(shadowCompile) + } + } + // A "bag-of-dependencies"-style configuration for backwards compatibility, gets put in "api" + create("compile") { + description = "Deprecated: use api or implementation instead, gets put in api" + canBeConsumed = false + canBeResolved = false + visible = false + } + create("testCompile") { + description = "Deprecated: use testImplementation instead" + canBeConsumed = false + canBeResolved = false + visible = false + } + api.extendsFrom(compile) + testImplementation.extendsFrom(testCompile) +} + +afterEvaluate { + if (!configurations.compile.allDependencies.empty || !configurations.testCompile.allDependencies.empty) { + logger.warn("This project uses deprecated `compile` dependencies, please migrate to using `api` and `implementation`") + logger.warn("For more details, see https://github.com/GTNewHorizons/ExampleMod1.7.10/blob/master/dependencies.gradle") } } @@ -332,12 +410,16 @@ repositories { maven { name 'Overmind forge repo mirror' url 'https://gregtech.overminddl1.com/' + mavenContent { + excludeGroup("net.minecraftforge") // missing the `universal` artefact + } + } + maven { + name = "GTNH Maven" + url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + allowInsecureProtocol = true } if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - maven { - name = "GTNH Maven" - url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" - } if (usesMixinDebug.toBoolean()) { maven { name = "Fabric Maven" @@ -345,6 +427,35 @@ repositories { } } } + if (includeWellKnownRepositories.toBoolean()) { + maven { + name "CurseMaven" + url "https://cursemaven.com" + content { + includeGroup "curse.maven" + } + } + maven { + name = "ic2" + url = "https://maven.ic2.player.to/" + metadataSources { + mavenPom() + artifact() + } + } + maven { + name = "ic2-mirror" + url = "https://maven2.ic2.player.to/" + metadataSources { + mavenPom() + artifact() + } + } + maven { + name "MMD Maven" + url "https://maven.mcmoddev.com/" + } + } } dependencies { @@ -352,31 +463,34 @@ dependencies { 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.3:processor') + annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.10:processor') if (usesMixinDebug.toBoolean()) { - runtimeClasspath('org.jetbrains:intellij-fernflower:1.2.1.16') - testRuntimeClasspath('org.jetbrains:intellij-fernflower:1.2.1.16') + runtimeOnlyNonPublishable('org.jetbrains:intellij-fernflower:1.2.1.16') } } if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - compile('com.gtnewhorizon:gtnhmixins:2.1.3') + implementation('com.gtnewhorizon:gtnhmixins:2.1.10') } } apply from: 'dependencies.gradle' def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json' -def refMap = "${tasks.compileJava.temporaryDir}" + File.separator + mixingConfigRefMap -def mixinSrg = "${tasks.reobf.temporaryDir}" + File.separator + "mixins.srg" +def mixinTmpDir = buildDir.path + File.separator + 'tmp' + File.separator + 'mixins' +def refMap = "${mixinTmpDir}" + File.separator + mixingConfigRefMap +def mixinSrg = "${mixinTmpDir}" + File.separator + "mixins.srg" -task generateAssets { - if (usesMixins.toBoolean()) { +tasks.register('generateAssets') { + group = "GTNH Buildscript" + description = "Generates a mixin config file at /src/main/resources/mixins.modid.json if needed" + onlyIf { usesMixins.toBoolean() } + doLast { def mixinConfigFile = getFile("/src/main/resources/mixins." + modId + ".json") if (!mixinConfigFile.exists()) { def mixinPluginLine = "" - if(!mixinPlugin.isEmpty()) { + if (!mixinPlugin.isEmpty()) { // We might not have a mixin plugin if we're using early/late mixins - mixinPluginLine += """\n "plugin": "${modGroup}.${mixinPlugin}", """ + mixinPluginLine += """\n "plugin": "${modGroup}.${mixinPlugin}", """ } mixinConfigFile.text = """{ @@ -395,105 +509,37 @@ task generateAssets { } } -task relocateShadowJar(type: ConfigureShadowRelocation) { - target = tasks.shadowJar - prefix = modGroup + ".shadow" +if (usesMixins.toBoolean()) { + tasks.named("reobfJar", ReobfuscatedJar).configure { + extraSrgFiles.from(mixinSrg) + } } -shadowJar { - project.configurations.shadeCompile.each { dep -> - from(project.zipTree(dep)) { - exclude 'META-INF', 'META-INF/**' +if (usesMixins.toBoolean()) { + tasks.named("compileJava", JavaCompile).configure { + doFirst { + new File(mixinTmpDir).mkdirs() } - } - - manifest { - attributes(getManifestAttributes()) - } - - minimize() // This will only allow shading for actually used classes - configurations = [ - project.configurations.shadowImplementation, - project.configurations.shadowCompile - ] - dependsOn(relocateShadowJar) -} - -jar { - project.configurations.shadeCompile.each { dep -> - from(project.zipTree(dep)) { - exclude 'META-INF', 'META-INF/**' - } - } - - manifest { - attributes(getManifestAttributes()) - } - - if (usesShadowedDependencies.toBoolean()) { - dependsOn(shadowJar) - enabled = false - } -} - -reobf { - if (usesMixins.toBoolean()) { - addExtraSrgFile mixinSrg - } -} - -afterEvaluate { - if (usesMixins.toBoolean()) { - tasks.compileJava { - options.compilerArgs += [ - "-AreobfSrgFile=${tasks.reobf.srg}", - "-AoutSrgFile=${mixinSrg}", - "-AoutRefMapFile=${refMap}", - // Elan: from what I understand they are just some linter configs so you get some warning on how to properly code - "-XDenableSunApiLintControl", - "-XDignore.symbol.file" - ] - } - } -} - -runClient { - if (developmentEnvironmentUserName) { - arguments += [ - "--username", - developmentEnvironmentUserName + options.compilerArgs += [ + "-AreobfSrgFile=${tasks.reobfJar.srg.get().asFile}", + "-AoutSrgFile=${mixinSrg}", + "-AoutRefMapFile=${refMap}", + // Elan: from what I understand they are just some linter configs so you get some warning on how to properly code + "-XDenableSunApiLintControl", + "-XDignore.symbol.file" ] } - - args(arguments) - jvmArgs(jvmArguments) } -runServer { - args(arguments) - jvmArgs(jvmArguments) -} - -tasks.withType(JavaExec).configureEach { - javaLauncher.set( - javaToolchains.launcherFor { - languageVersion = projectJavaVersion - } - ) -} - -processResources { +tasks.named("processResources", ProcessResources).configure { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version - inputs.property "mcversion", project.minecraft.version + inputs.property "mcversion", project.minecraft.mcVersion exclude("spotless.gradle") - // replace stuff in mcmod.info, nothing else - from(sourceSets.main.resources.srcDirs) { - include 'mcmod.info' - - // replace modVersion and minecraftVersion - expand "minecraftVersion": project.minecraft.version, + // replace stuff in mcmod.info, nothing else. replaces ${key} with value in text + filesMatching("mcmod.info") { + expand "minecraftVersion": project.minecraft.mcVersion, "modVersion": modVersion, "modId": modId, "modName": modName @@ -502,12 +548,6 @@ processResources { if (usesMixins.toBoolean()) { from refMap } - - // copy everything else that's not the mcmod.info - from(sourceSets.main.resources.srcDirs) { - exclude 'mcmod.info' - exclude 'spotless.gradle' - } } def getManifestAttributes() { @@ -534,65 +574,68 @@ def getManifestAttributes() { return manifestAttributes } -task sourcesJar(type: Jar) { - from(sourceSets.main.allSource) - from(file("$projectDir/LICENSE")) - getArchiveClassifier().set('sources') -} - -task shadowDevJar(type: ShadowJar) { - project.configurations.shadeCompile.each { dep -> - from(project.zipTree(dep)) { - exclude 'META-INF', 'META-INF/**' - } - } - - from sourceSets.main.output - getArchiveClassifier().set("dev") - +tasks.named("jar", Jar).configure { manifest { attributes(getManifestAttributes()) } - - minimize() // This will only allow shading for actually used classes - configurations = [ - project.configurations.shadowImplementation, - project.configurations.shadowCompile - ] } -task relocateShadowDevJar(type: ConfigureShadowRelocation) { - target = tasks.shadowDevJar - prefix = modGroup + ".shadow" -} - -task circularResolverJar(type: Jar) { - dependsOn(relocateShadowDevJar) - dependsOn(shadowDevJar) - enabled = false -} - -task devJar(type: Jar) { - project.configurations.shadeCompile.each { dep -> - from(project.zipTree(dep)) { - exclude 'META-INF', 'META-INF/**' +if (usesShadowedDependencies.toBoolean()) { + tasks.register('relocateShadowJar', ConfigureShadowRelocation) { + target = tasks.shadowJar + prefix = modGroup + ".shadow" + } + tasks.named("shadowJar", ShadowJar).configure { + manifest { + attributes(getManifestAttributes()) } + + if (minimizeShadowedDependencies.toBoolean()) { + minimize() // This will only allow shading for actually used classes + } + configurations = [ + project.configurations.shadowImplementation, + project.configurations.shadowCompile, + project.configurations.shadeCompile + ] + archiveClassifier.set('dev') + dependsOn(relocateShadowJar) } - - from sourceSets.main.output - getArchiveClassifier().set("dev") - - manifest { - attributes(getManifestAttributes()) - } - - if (usesShadowedDependencies.toBoolean()) { - dependsOn(circularResolverJar) + configurations.runtimeElements.outgoing.artifacts.clear() + configurations.apiElements.outgoing.artifacts.clear() + configurations.runtimeElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar)) + configurations.apiElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar)) + tasks.named("jar", Jar) { enabled = false + finalizedBy(tasks.shadowJar) + } + tasks.named("reobfJar", ReobfuscatedJar) { + inputJar.set(tasks.named("shadowJar", ShadowJar).flatMap({it.archiveFile})) + } + AdhocComponentWithVariants javaComponent = (AdhocComponentWithVariants) project.components.findByName("java") + javaComponent.withVariantsFromConfiguration(configurations.shadowRuntimeElements) { + skip() + } + for (runTask in ["runClient", "runServer"]) { + tasks.named(runTask).configure { + dependsOn("shadowJar") + } + } +} +ext.publishableDevJar = usesShadowedDependencies.toBoolean() ? tasks.shadowJar : tasks.jar +ext.publishableObfJar = tasks.reobfJar + +tasks.named('extractForgeUserdev', Copy).configure { efu -> + doLast { + // Fix CoFH-repackaged CCL not finding mappings + project.copy { + from(mcpTasks.userdevDir("conf")) + into(new File(project.buildDir, "unpacked/conf")) + } } } -task apiJar(type: Jar) { +tasks.register('apiJar', Jar) { from(sourceSets.main.allSource) { include modGroupPath + "/" + apiPackagePath + '/**' } @@ -610,18 +653,78 @@ task apiJar(type: Jar) { artifacts { if (!noPublishedSources) { - archives sourcesJar + archives tasks.named("sourcesJar") } - archives devJar if (apiPackage) { - archives apiJar + archives tasks.named("apiJar") } } -// The gradle metadata includes all of the additional deps that we disabled from POM generation (including forgeBin with no groupID), -// and isn't strictly needed with the POM so just disable it. -tasks.withType(GenerateModuleMetadata) { - enabled = false +idea { + module { + downloadJavadoc = true + downloadSources = true + } + project { + settings { + runConfigurations { + "1. Run Client"(Gradle) { + taskNames = ["runClient"] + } + "2. Run Server"(Gradle) { + taskNames = ["runServer"] + } + "3. Run Obfuscated Client"(Gradle) { + taskNames = ["runObfClient"] + } + "4. Run Obfuscated Server"(Gradle) { + taskNames = ["runObfServer"] + } + if (!disableSpotless) { + "5. Apply spotless"(Gradle) { + taskNames = ["spotlessApply"] + } + } + def coreModArgs = "" + if (coreModClass) { + coreModArgs = ' "-Dfml.coreMods.load=' + modGroup + '.' + coreModClass + '"' + } + "Run Client (IJ Native)"(Application) { + mainClass = "GradleStart" + moduleName = project.name + ".main" + afterEvaluate { + workingDirectory = tasks.runClient.workingDir.absolutePath + programParameters = tasks.runClient.calculateArgs(project).collect { '"' + it + '"' }.join(' ') + jvmArgs = tasks.runClient.calculateJvmArgs(project).collect { '"' + it + '"' }.join(' ') + + ' ' + tasks.runClient.systemProperties.collect { '"-D' + it.key + '=' + it.value.toString() + '"' }.join(' ') + + coreModArgs + } + } + "Run Server (IJ Native)"(Application) { + mainClass = "GradleStartServer" + moduleName = project.name + ".main" + afterEvaluate { + workingDirectory = tasks.runServer.workingDir.absolutePath + programParameters = tasks.runServer.calculateArgs(project).collect { '"' + it + '"' }.join(' ') + jvmArgs = tasks.runServer.calculateJvmArgs(project).collect { '"' + it + '"' }.join(' ') + + ' ' + tasks.runServer.systemProperties.collect { '"-D' + it.key + '=' + it.value.toString() + '"' }.join(' ') + + coreModArgs + } + } + } + compiler.javac { + afterEvaluate { + moduleJavacAdditionalOptions = [ + (project.name + ".main"): tasks.compileJava.options.compilerArgs.collect { '"' + it + '"' }.join(' ') + ] + } + } + } + } +} + +tasks.named("processIdeaSettings").configure { + dependsOn("injectTags") } // workaround variable hiding in pom processing @@ -629,51 +732,24 @@ def projectConfigs = project.configurations publishing { publications { - maven(MavenPublication) { + create("maven", MavenPublication) { from components.java - if (usesShadowedDependencies.toBoolean()) { - artifact source: shadowJar, classifier: "" - } - if (!noPublishedSources) { - artifact source: sourcesJar, classifier: "sources" - } - artifact source: usesShadowedDependencies.toBoolean() ? shadowDevJar : devJar, classifier: "dev" + if (apiPackage) { - artifact source: apiJar, classifier: "api" + artifact apiJar } groupId = System.getenv("ARTIFACT_GROUP_ID") ?: "com.github.GTNewHorizons" artifactId = System.getenv("ARTIFACT_ID") ?: project.name // Using the identified version, not project.version as it has the prepended 1.7.10 version = System.getenv("RELEASE_VERSION") ?: identifiedVersion - - // remove extra garbage from minecraft and minecraftDeps configuration - pom.withXml { - def badArtifacts = [:].withDefault { [] as Set } - for (configuration in [ - projectConfigs.minecraft, - projectConfigs.minecraftDeps - ]) { - for (dependency in configuration.allDependencies) { - badArtifacts[dependency.group == null ? "" : dependency.group] += dependency.name - } - } - // example for specifying extra stuff to ignore - // badArtifacts["org.example.group"] += "artifactName" - - Node pomNode = asNode() - pomNode.dependencies.'*'.findAll() { - badArtifacts[it.groupId.text()].contains(it.artifactId.text()) - }.each() { - it.parent().remove(it) - } - } } } repositories { maven { url = "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases" + allowInsecureProtocol = true credentials { username = System.getenv("MAVEN_USER") ?: "NONE" password = System.getenv("MAVEN_PASSWORD") ?: "NONE" @@ -693,7 +769,7 @@ if (modrinthProjectId.size() != 0 && System.getenv("MODRINTH_TOKEN") != null) { versionNumber = identifiedVersion versionType = identifiedVersion.endsWith("-pre") ? "beta" : "release" changelog = changelogFile.exists() ? changelogFile.getText("UTF-8") : "" - uploadFile = jar + uploadFile = publishableObfJar additionalFiles = getSecondaryArtifacts() gameVersions = [minecraftVersion] loaders = ["forge"] @@ -734,7 +810,7 @@ if (curseForgeProjectId.size() != 0 && System.getenv("CURSEFORGE_TOKEN") != null releaseType = identifiedVersion.endsWith("-pre") ? "beta" : "release" addGameVersion minecraftVersion addGameVersion "Forge" - mainArtifact jar + mainArtifact publishableObfJar for (artifact in getSecondaryArtifacts()) addArtifact artifact } @@ -762,7 +838,7 @@ if (curseForgeProjectId.size() != 0 && System.getenv("CURSEFORGE_TOKEN") != null tasks.publish.dependsOn(tasks.curseforge) } -def addModrinthDep(scope, type, name) { +def addModrinthDep(String scope, String type, String name) { com.modrinth.minotaur.dependencies.Dependency dep; if (!(scope in ["required", "optional", "incompatible", "embedded"])) { throw new Exception("Invalid modrinth dependency scope: " + scope) @@ -780,7 +856,7 @@ def addModrinthDep(scope, type, name) { project.modrinth.dependencies.add(dep) } -def addCurseForgeRelation(type, name) { +def addCurseForgeRelation(String type, String name) { if (!(type in ["requiredDependency", "embeddedLibrary", "optionalDependency", "tool", "incompatible"])) { throw new Exception("Invalid CurseForge relation type: " + type) } @@ -790,17 +866,20 @@ def addCurseForgeRelation(type, name) { } // Updating -task updateBuildScript { +tasks.register('updateBuildScript') { + group = 'GTNH Buildscript' + description = 'Updates the build script to the latest version' + doLast { - if (performBuildScriptUpdate(projectDir.toString())) return + if (performBuildScriptUpdate()) return print("Build script already up-to-date!") } } -if (!project.getGradle().startParameter.isOffline() && isNewBuildScriptVersionAvailable(projectDir.toString())) { +if (!project.getGradle().startParameter.isOffline() && !Boolean.getBoolean('DISABLE_BUILDSCRIPT_UPDATE_CHECK') && isNewBuildScriptVersionAvailable()) { if (autoUpdateBuildScript.toBoolean()) { - performBuildScriptUpdate(projectDir.toString()) + performBuildScriptUpdate() } else { out.style(Style.SuccessHeader).println("Build script update available! Run 'gradle updateBuildScript'") } @@ -843,10 +922,11 @@ boolean verifySettingsGradle() { return false } -boolean performBuildScriptUpdate(String projectDir) { - if (isNewBuildScriptVersionAvailable(projectDir)) { +boolean performBuildScriptUpdate() { + if (isNewBuildScriptVersionAvailable()) { def buildscriptFile = getFile("build.gradle") availableBuildScriptUrl().withInputStream { i -> buildscriptFile.withOutputStream { it << i } } + def out = services.get(StyledTextOutputFactory).create('buildscript-update-output') out.style(Style.Success).print("Build script updated. Please REIMPORT the project or RESTART your IDE!") boolean settingsupdated = verifySettingsGradle() settingsupdated = verifyGitAttributes() || settingsupdated @@ -857,7 +937,7 @@ boolean performBuildScriptUpdate(String projectDir) { return false } -boolean isNewBuildScriptVersionAvailable(String projectDir) { +boolean isNewBuildScriptVersionAvailable() { Map parameters = ["connectTimeout": 2000, "readTimeout": 2000] String currentBuildScript = getFile("build.gradle").getText() @@ -877,15 +957,12 @@ static String getVersionHash(String buildScriptContent) { return "" } -configure(updateBuildScript) { - group = 'forgegradle' - description = 'Updates the build script to the latest version' -} - // Parameter Deobfuscation -task deobfParams { - doLast { +tasks.register('deobfParams') { + group = 'GTNH Buildscript' + description = 'Rename all obfuscated parameter names inherited from Minecraft classes' + doLast { // TODO String mcpDir = "$project.gradle.gradleUserHomeDir/caches/minecraft/de/oceanlabs/mcp/mcp_$channel/$mappingsVersion" String mcpZIP = "$mcpDir/mcp_$channel-$mappingsVersion-${minecraftVersion}.zip" @@ -899,7 +976,10 @@ task deobfParams { if (!file(paramsCSV).exists()) { println("Extracting MCP archive ...") - unzip(mcpZIP, mcpDir) + copy { + from(zipTree(mcpZIP)) + into(mcpDir) + } } println("Parsing params.csv ...") @@ -942,42 +1022,6 @@ static int replaceParams(File file, Map params) { return 0 } -// Credit: bitsnaps (https://gist.github.com/bitsnaps/00947f2dce66f4bbdabc67d7e7b33681) -static unzip(String zipFileName, String outputDir) { - byte[] buffer = new byte[16384] - ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFileName)) - ZipEntry zipEntry = zis.getNextEntry() - while (zipEntry != null) { - File newFile = new File(outputDir + File.separator, zipEntry.name) - if (zipEntry.isDirectory()) { - if (!newFile.isDirectory() && !newFile.mkdirs()) { - throw new IOException("Failed to create directory $newFile") - } - } else { - // fix for Windows-created archives - File parent = newFile.parentFile - if (!parent.isDirectory() && !parent.mkdirs()) { - throw new IOException("Failed to create directory $parent") - } - // write file content - FileOutputStream fos = new FileOutputStream(newFile) - int len = 0 - while ((len = zis.read(buffer)) > 0) { - fos.write(buffer, 0, len) - } - fos.close() - } - zipEntry = zis.getNextEntry() - } - zis.closeEntry() - zis.close() -} - -configure(deobfParams) { - group = 'forgegradle' - description = 'Rename all obfuscated parameter names inherited from Minecraft classes' -} - // Dependency Deobfuscation def deobf(String sourceURL) { @@ -1004,11 +1048,29 @@ def deobf(String sourceURL) { hostName = String.join(".", parts) return deobf(sourceURL, "$hostName/$fileName") - } catch (Exception e) { + } catch (Exception ignored) { return deobf(sourceURL, "deobf/${sourceURL.hashCode()}") } } +def deobfMaven(String repoURL, String mavenDep) { + if (!repoURL.endsWith("/")) { + repoURL += "/" + } + String[] parts = mavenDep.split(":") + parts[0] = parts[0].replace('.', '/') + def jarURL = repoURL + parts[0] + "/" + parts[1] + "/" + parts[2] + "/" + parts[1] + "-" + parts[2] + ".jar" + return deobf(jarURL) +} + +def deobfCurse(String curseDep) { + try { + return deobfMaven("https://www.cursemaven.com/", "curse.maven:$curseDep") + } catch (Exception ignored) { + out.style(Style.Failure).println("Failed to get $curseDep from cursemaven.") + } +} + // The method above is to be preferred. Use this method if the filename is not at the end of the URL. def deobf(String sourceURL, String rawFileName) { String bon2Version = "2.5.1" @@ -1114,7 +1176,7 @@ def getFile(String relativePath) { def getSecondaryArtifacts() { // Because noPublishedSources from the beginning of the script is somehow not visible here... boolean noPublishedSources = project.hasProperty("noPublishedSources") ? project.noPublishedSources.toBoolean() : false - def secondaryArtifacts = [devJar] + def secondaryArtifacts = [publishableDevJar] if (!noPublishedSources) secondaryArtifacts += [sourcesJar] if (apiPackage) secondaryArtifacts += [apiJar] return secondaryArtifacts diff --git a/dependencies.gradle b/dependencies.gradle index 018ce888..9e6debc9 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -23,5 +23,5 @@ dependencies { compileOnly('com.github.GTNewHorizons:GTplusplus:1.7.191:dev') { transitive = false } compileOnly('com.github.GTNewHorizons:KekzTech:0.6.25:dev') - runtime('com.github.GTNewHorizons:Baubles:1.0.1.14:dev') + runtimeOnly('com.github.GTNewHorizons:Baubles:1.0.1.14:dev') } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf0..ccebba77 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3ab0b725..f398c33c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 91a7e269..79a61d42 100755 --- a/gradlew +++ b/gradlew @@ -1,79 +1,129 @@ -#!/usr/bin/env bash +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum -warn ( ) { +warn () { echo "$*" -} +} >&2 -die ( ) { +die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -82,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -90,75 +140,105 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; +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 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/settings.gradle b/settings.gradle index 93c852a1..01ea5f12 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,10 +1,28 @@ + +pluginManagement { + repositories { + maven { + // RetroFuturaGradle + name "GTNH Maven" + url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + allowInsecureProtocol = true + mavenContent { + includeGroup("com.gtnewhorizons.retrofuturagradle") + } + } + gradlePluginPortal() + mavenCentral() + mavenLocal() + } +} + plugins { id 'com.diffplug.blowdryerSetup' version '1.6.0' + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.4.0' // Provides java toolchains } -apply plugin: 'com.diffplug.blowdryerSetup' - blowdryerSetup { - github('GTNewHorizons/ExampleMod1.7.10', 'tag', '0.1.5') + repoSubfolder 'gtnhShared' + github('GTNewHorizons/ExampleMod1.7.10', 'tag', '0.2.0') //devLocal '.' // Use this when testing config updates locally } diff --git a/src/main/java/com/glodblock/github/FluidCraft.java b/src/main/java/com/glodblock/github/FluidCraft.java index cd9e2c57..5c3061a6 100644 --- a/src/main/java/com/glodblock/github/FluidCraft.java +++ b/src/main/java/com/glodblock/github/FluidCraft.java @@ -1,6 +1,9 @@ package com.glodblock.github; +import net.minecraft.util.ResourceLocation; + import appeng.api.AEApi; + import com.glodblock.github.common.Config; import com.glodblock.github.common.storage.FluidCellHandler; import com.glodblock.github.crossmod.opencomputers.OCDriverInit; @@ -12,6 +15,7 @@ import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.loader.RecipeLoader; import com.glodblock.github.proxy.CommonProxy; import com.glodblock.github.util.ModAndClassUtil; + import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; @@ -19,7 +23,6 @@ import cpw.mods.fml.common.event.FMLLoadCompleteEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; -import net.minecraft.util.ResourceLocation; @Mod( modid = FluidCraft.MODID, diff --git a/src/main/java/com/glodblock/github/client/ClientHelper.java b/src/main/java/com/glodblock/github/client/ClientHelper.java index 45f80896..c067fa88 100644 --- a/src/main/java/com/glodblock/github/client/ClientHelper.java +++ b/src/main/java/com/glodblock/github/client/ClientHelper.java @@ -1,11 +1,13 @@ package com.glodblock.github.client; -import com.glodblock.github.client.textures.FCPartsTexture; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.common.MinecraftForge; +import com.glodblock.github.client.textures.FCPartsTexture; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + public class ClientHelper { @SubscribeEvent diff --git a/src/main/java/com/glodblock/github/client/gui/FCGuiLineField.java b/src/main/java/com/glodblock/github/client/gui/FCGuiLineField.java index c3cd7bd2..dd0064dc 100644 --- a/src/main/java/com/glodblock/github/client/gui/FCGuiLineField.java +++ b/src/main/java/com/glodblock/github/client/gui/FCGuiLineField.java @@ -3,6 +3,7 @@ package com.glodblock.github.client.gui; import net.minecraft.client.gui.FontRenderer; public class FCGuiLineField extends FCGuiTextField { + private final int _xPos; private final int _yPos; private final int _width; diff --git a/src/main/java/com/glodblock/github/client/gui/FCGuiTextField.java b/src/main/java/com/glodblock/github/client/gui/FCGuiTextField.java index db0d4efc..90f70f8a 100644 --- a/src/main/java/com/glodblock/github/client/gui/FCGuiTextField.java +++ b/src/main/java/com/glodblock/github/client/gui/FCGuiTextField.java @@ -1,11 +1,13 @@ package com.glodblock.github.client.gui; -import appeng.client.gui.AEBaseGui; -import appeng.client.gui.widgets.ITooltip; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiTextField; +import appeng.client.gui.AEBaseGui; +import appeng.client.gui.widgets.ITooltip; + public class FCGuiTextField extends GuiTextField { + private static final int PADDING = 2; private final FontRenderer _fontRender; private String tooltip; @@ -18,8 +20,7 @@ public class FCGuiTextField extends GuiTextField { private int _color; /** - * Uses the values to instantiate a padded version of a text field. - * Pays attention to the '_' caret. + * Uses the values to instantiate a padded version of a text field. Pays attention to the '_' caret. * * @param fontRenderer renderer for the strings * @param xPos absolute left position @@ -27,8 +28,8 @@ public class FCGuiTextField extends GuiTextField { * @param width absolute width * @param height absolute height */ - public FCGuiTextField( - final FontRenderer fontRenderer, final int xPos, final int yPos, final int width, final int height) { + public FCGuiTextField(final FontRenderer fontRenderer, final int xPos, final int yPos, final int width, + final int height) { super( fontRenderer, xPos + PADDING, @@ -136,6 +137,7 @@ public class FCGuiTextField extends GuiTextField { } public class TooltipProvider implements ITooltip { + @Override public String getMessage() { return tooltip; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java b/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java index 3d010ff3..7cfd1dfc 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiDualInterface.java @@ -1,5 +1,11 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.StatCollector; + +import org.lwjgl.input.Mouse; + import appeng.api.config.InsertionMode; import appeng.api.config.Settings; import appeng.api.config.SidelessMode; @@ -13,6 +19,7 @@ import appeng.core.localization.GuiText; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketConfigButton; import appeng.helpers.IInterfaceHost; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerDualInterface; import com.glodblock.github.common.parts.PartFluidInterface; @@ -22,10 +29,6 @@ import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.StatCollector; -import org.lwjgl.input.Mouse; public class GuiDualInterface extends GuiUpgradeable { @@ -46,15 +49,18 @@ public class GuiDualInterface extends GuiUpgradeable { @Override @SuppressWarnings("unchecked") protected void addButtons() { - this.priority = - new GuiTabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), itemRender); + this.priority = new GuiTabButton( + this.guiLeft + 154, + this.guiTop, + 2 + 4 * 16, + GuiText.Priority.getLocal(), + itemRender); this.buttonList.add(this.priority); this.switcher = new GuiTabButton( this.guiLeft + 132, this.guiTop, - host instanceof PartFluidInterface - ? ItemAndBlockHolder.FLUID_INTERFACE.stack() + host instanceof PartFluidInterface ? ItemAndBlockHolder.FLUID_INTERFACE.stack() : ItemAndBlockHolder.INTERFACE.stack(), StatCollector.translateToLocal("ae2fc.tooltip.switch_fluid_interface"), itemRender); @@ -72,13 +78,19 @@ public class GuiDualInterface extends GuiUpgradeable { GuiText.InterfaceTerminalHint.getLocal()); this.buttonList.add(this.interfaceMode); - this.insertionMode = - new GuiImgButton(this.guiLeft - 18, this.guiTop + 44, Settings.INSERTION_MODE, InsertionMode.DEFAULT); + this.insertionMode = new GuiImgButton( + this.guiLeft - 18, + this.guiTop + 44, + Settings.INSERTION_MODE, + InsertionMode.DEFAULT); this.buttonList.add(this.insertionMode); if (isTile()) { this.sidelessMode = new GuiImgButton( - this.guiLeft - 18, this.guiTop + 62, Settings.SIDELESS_MODE, SidelessMode.SIDELESS); + this.guiLeft - 18, + this.guiTop + 62, + Settings.SIDELESS_MODE, + SidelessMode.SIDELESS); this.buttonList.add(this.sidelessMode); } } @@ -100,7 +112,10 @@ public class GuiDualInterface extends GuiUpgradeable { } this.fontRendererObj.drawString( - getGuiDisplayName(StatCollector.translateToLocal(NameConst.GUI_FLUID_INTERFACE)), 8, 6, 4210752); + getGuiDisplayName(StatCollector.translateToLocal(NameConst.GUI_FLUID_INTERFACE)), + 8, + 6, + 4210752); } @Override @@ -125,19 +140,11 @@ public class GuiDualInterface extends GuiUpgradeable { return; } if (btn == this.priority) { - if (isTile()) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY_TILE)); - } else if (isPart()) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY_PART)); - } + FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY)); } if (btn == this.switcher) { - if (isTile()) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.DUAL_INTERFACE_FLUID)); - } else if (isPart()) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.DUAL_INTERFACE_FLUID_PART)); - } + FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.DUAL_INTERFACE_FLUID)); } if (btn == this.interfaceMode) { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java b/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java index eaae370d..e6e7b8f0 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCImgButton.java @@ -1,16 +1,20 @@ package com.glodblock.github.client.gui; -import appeng.client.gui.widgets.ITooltip; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.util.NameConst; import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.util.StatCollector; + import org.lwjgl.opengl.GL11; +import appeng.client.gui.widgets.ITooltip; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.util.NameConst; + public class GuiFCImgButton extends GuiButton implements ITooltip { private static final Pattern COMPILE = Pattern.compile("%s"); @@ -138,8 +142,8 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { String displayValue = null; if (this.buttonSetting != null && this.currentValue != null) { - final ButtonAppearance buttonAppearance = - appearances.get(new EnumPair(this.buttonSetting, this.currentValue)); + final ButtonAppearance buttonAppearance = appearances + .get(new EnumPair(this.buttonSetting, this.currentValue)); if (buttonAppearance == null) { return "No Such Message"; } @@ -196,8 +200,7 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { } par1Minecraft.renderEngine.bindTexture(FluidCraft.resource("textures/gui/states.png")); - this.field_146123_n = par2 >= this.xPosition - && par3 >= this.yPosition + this.field_146123_n = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; @@ -233,8 +236,7 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { } par1Minecraft.renderEngine.bindTexture(FluidCraft.resource("textures/gui/states.png")); - this.field_146123_n = par2 >= this.xPosition - && par3 >= this.yPosition + this.field_146123_n = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; @@ -292,6 +294,7 @@ public class GuiFCImgButton extends GuiButton implements ITooltip { } private static class ButtonAppearance { + public int index; public String displayName; public String displayValue; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java index 497abf90..d51ab6ca 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java @@ -1,5 +1,9 @@ package com.glodblock.github.client.gui; +import java.io.IOException; + +import net.minecraft.entity.player.InventoryPlayer; + import appeng.container.implementations.ContainerPriority; import appeng.core.AELog; import appeng.core.localization.GuiText; @@ -8,14 +12,12 @@ import appeng.core.sync.packets.PacketValueConfig; import appeng.helpers.IPriorityHost; import appeng.util.calculators.ArithHelper; import appeng.util.calculators.Calculator; + import com.glodblock.github.client.gui.base.FCGuiAmount; -import com.glodblock.github.common.parts.PartFluidInterface; import com.glodblock.github.common.parts.PartFluidStorageBus; -import com.glodblock.github.common.tile.TileFluidInterface; +import com.glodblock.github.inventory.IDualHost; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.loader.ItemAndBlockHolder; -import java.io.IOException; -import net.minecraft.entity.player.InventoryPlayer; public class GuiFCPriority extends FCGuiAmount { @@ -47,11 +49,10 @@ public class GuiFCPriority extends FCGuiAmount { protected void addQty(final int i) { try { this.amountBox.setText(Long.toString(getAmount() + i)); - } catch (final NumberFormatException ignore) { - } + } catch (final NumberFormatException ignore) {} try { - NetworkHandler.instance.sendToServer( - new PacketValueConfig("PriorityHost.Priority", String.valueOf(getAmount()))); + NetworkHandler.instance + .sendToServer(new PacketValueConfig("PriorityHost.Priority", String.valueOf(getAmount()))); } catch (IOException e) { AELog.debug(e); } @@ -59,12 +60,9 @@ public class GuiFCPriority extends FCGuiAmount { @Override protected void setOriginGUI(Object target) { - if (target instanceof TileFluidInterface) { + if (target instanceof IDualHost) { this.myIcon = ItemAndBlockHolder.INTERFACE.stack(); this.originalGui = GuiType.DUAL_INTERFACE; - } else if (target instanceof PartFluidInterface) { - this.myIcon = ItemAndBlockHolder.FLUID_INTERFACE.stack(); - this.originalGui = GuiType.DUAL_INTERFACE_PART; } else if (target instanceof PartFluidStorageBus) { this.myIcon = ItemAndBlockHolder.FLUID_STORAGE_BUS.stack(); this.originalGui = GuiType.FLUID_STORAGE_BUS; @@ -75,8 +73,8 @@ public class GuiFCPriority extends FCGuiAmount { protected void keyTyped(final char character, final int key) { super.keyTyped(character, key); try { - NetworkHandler.instance.sendToServer( - new PacketValueConfig("PriorityHost.Priority", String.valueOf(getAmount()))); + NetworkHandler.instance + .sendToServer(new PacketValueConfig("PriorityHost.Priority", String.valueOf(getAmount()))); } catch (IOException e) { AELog.debug(e); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java index 2a318a0a..5b4f4ece 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java @@ -1,8 +1,13 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.container.implementations.ContainerCraftAmount; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.base.FCGuiAmount; import com.glodblock.github.common.parts.PartFluidPatternTerminal; @@ -11,9 +16,6 @@ import com.glodblock.github.common.parts.PartFluidTerminal; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.network.CPacketCraftRequest; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiFluidCraftAmount extends FCGuiAmount { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java index 067ca1e4..febf6194 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java @@ -1,5 +1,15 @@ package com.glodblock.github.client.gui; +import java.text.NumberFormat; +import java.util.*; + +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + import appeng.api.AEApi; import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEItemStack; @@ -10,6 +20,7 @@ import appeng.core.AELog; import appeng.core.localization.GuiText; import appeng.integration.modules.NEI; import appeng.util.Platform; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidCraftConfirm; import com.glodblock.github.common.parts.PartFluidPatternTerminal; @@ -20,13 +31,6 @@ import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.ModAndClassUtil; import com.google.common.base.Joiner; -import java.text.NumberFormat; -import java.util.*; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; public class GuiFluidCraftConfirm extends AEBaseGui { @@ -72,8 +76,13 @@ public class GuiFluidCraftConfirm extends AEBaseGui { public void initGui() { super.initGui(); - this.start = - new GuiButton(0, this.guiLeft + 162, this.guiTop + this.ySize - 25, 50, 20, GuiText.Start.getLocal()); + this.start = new GuiButton( + 0, + this.guiLeft + 162, + this.guiTop + this.ySize - 25, + 50, + 20, + GuiText.Start.getLocal()); this.start.enabled = false; this.buttonList.add(this.start); @@ -89,7 +98,12 @@ public class GuiFluidCraftConfirm extends AEBaseGui { if (this.OriginalGui != null) { this.cancel = new GuiButton( - 0, this.guiLeft + 6, this.guiTop + this.ySize - 25, 50, 20, GuiText.Cancel.getLocal()); + 0, + this.guiLeft + 6, + this.guiTop + this.ySize - 25, + 50, + 20, + GuiText.Cancel.getLocal()); } this.buttonList.add(this.cancel); @@ -137,9 +151,7 @@ public class GuiFluidCraftConfirm extends AEBaseGui { if (this.ccc.getSelectedCpu() >= 0) // && status.selectedCpu < status.cpus.size() ) { if (this.ccc.getName().length() > 0) { - final String name = this.ccc - .getName() - .substring(0, Math.min(20, this.ccc.getName().length())); + final String name = this.ccc.getName().substring(0, Math.min(20, this.ccc.getName().length())); btnTextText = GuiText.CraftingCPU.getLocal() + ": " + name; } else { btnTextText = GuiText.CraftingCPU.getLocal() + ": #" + this.ccc.getSelectedCpu(); @@ -161,8 +173,8 @@ public class GuiFluidCraftConfirm extends AEBaseGui { public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { final long BytesUsed = this.ccc.getUsedBytes(); final String byteUsed = NumberFormat.getInstance().format(BytesUsed); - final String Add = - BytesUsed > 0 ? (byteUsed + ' ' + GuiText.BytesUsed.getLocal()) : GuiText.CalculatingWait.getLocal(); + final String Add = BytesUsed > 0 ? (byteUsed + ' ' + GuiText.BytesUsed.getLocal()) + : GuiText.CalculatingWait.getLocal(); this.fontRendererObj.drawString(GuiText.CraftingPlan.getLocal() + " - " + Add, 8, 7, 4210752); String dsp = null; @@ -171,8 +183,12 @@ public class GuiFluidCraftConfirm extends AEBaseGui { dsp = GuiText.Simulation.getLocal(); } else { dsp = this.ccc.getCpuAvailableBytes() > 0 - ? (GuiText.Bytes.getLocal() + ": " + this.ccc.getCpuAvailableBytes() + " : " - + GuiText.CoProcessors.getLocal() + ": " + this.ccc.getCpuCoProcessors()) + ? (GuiText.Bytes.getLocal() + ": " + + this.ccc.getCpuAvailableBytes() + + " : " + + GuiText.CoProcessors.getLocal() + + ": " + + this.ccc.getCpuCoProcessors()) : GuiText.Bytes.getLocal() + ": N/A : " + GuiText.CoProcessors.getLocal() + ": N/A"; } @@ -479,8 +495,8 @@ public class GuiFluidCraftConfirm extends AEBaseGui { final boolean backwards = Mouse.isButtonDown(1); if (btn == this.selectCPU) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketFluidPatternTermBtns("Terminal.Cpu", backwards ? "Prev" : "Next")); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketFluidPatternTermBtns("Terminal.Cpu", backwards ? "Prev" : "Next")); } if (btn == this.cancel) { @@ -497,7 +513,7 @@ public class GuiFluidCraftConfirm extends AEBaseGui { } } - @SuppressWarnings({"rawtypes", "unchecked"}) + @SuppressWarnings({ "rawtypes", "unchecked" }) protected void addItemTooltip(ItemStack is, List lineList) { if (isShiftKeyDown()) { List l = is.getTooltip(this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips); diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidIO.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidIO.java index 3f14f5b8..d753fe7a 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidIO.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidIO.java @@ -1,16 +1,19 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.implementations.GuiUpgradeable; import appeng.core.localization.GuiText; + import com.glodblock.github.client.gui.container.ContainerFluidIO; import com.glodblock.github.common.parts.PartFluidImportBus; import com.glodblock.github.common.parts.base.FCSharedFluidBus; import com.glodblock.github.util.NameConst; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; public class GuiFluidIO extends GuiUpgradeable { + private final FCSharedFluidBus bus; public GuiFluidIO(InventoryPlayer inventoryPlayer, FCSharedFluidBus te) { @@ -30,10 +33,10 @@ public class GuiFluidIO extends GuiUpgradeable { @Override public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { this.fontRendererObj.drawString( - this.getGuiDisplayName(I18n.format( - this.bus instanceof PartFluidImportBus - ? NameConst.GUI_FLUID_IMPORT - : NameConst.GUI_FLUID_EXPORT)), + this.getGuiDisplayName( + I18n.format( + this.bus instanceof PartFluidImportBus ? NameConst.GUI_FLUID_IMPORT + : NameConst.GUI_FLUID_EXPORT)), 8, 6, 4210752); diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java index 0054ec81..ce492b98 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidInterface.java @@ -1,9 +1,22 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import net.minecraftforge.common.util.ForgeDirection; + +import org.lwjgl.opengl.GL11; + import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiTabButton; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidInterface; import com.glodblock.github.common.parts.PartFluidInterface; @@ -16,16 +29,6 @@ import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; -import net.minecraftforge.common.util.ForgeDirection; -import org.lwjgl.opengl.GL11; public class GuiFluidInterface extends AEBaseGui { @@ -58,11 +61,8 @@ public class GuiFluidInterface extends AEBaseGui { @Override public void func_146977_a(final Slot s) { try { - GuiContainer.class - .getDeclaredMethod("func_146977_a_original", Slot.class) - .invoke(this, s); - } catch (final Exception ignore) { - } + GuiContainer.class.getDeclaredMethod("func_146977_a_original", Slot.class).invoke(this, s); + } catch (final Exception ignore) {} } @Override @@ -117,8 +117,7 @@ public class GuiFluidInterface extends AEBaseGui { protected void actionPerformed(final GuiButton btn) { super.actionPerformed(btn); if (btn == this.switcher) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketSwitchGuis(isPart() ? GuiType.DUAL_INTERFACE_PART : GuiType.DUAL_INTERFACE)); + FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.DUAL_INTERFACE)); } } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidLevelEmitter.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidLevelEmitter.java index 9458210c..e831a240 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidLevelEmitter.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidLevelEmitter.java @@ -1,5 +1,8 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.api.config.*; import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.implementations.GuiUpgradeable; @@ -10,16 +13,16 @@ import appeng.core.AEConfig; import appeng.core.AELog; import appeng.core.localization.GuiColors; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidLevelEmitter; import com.glodblock.github.common.parts.PartFluidLevelEmitter; import com.glodblock.github.network.CPacketValueConfig; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.NameConst; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; public class GuiFluidLevelEmitter extends GuiUpgradeable { + private GuiNumberBox level; private final AppEngRenderItem stackSizeRenderer = Ae2ReflectClient.getStackSizeRenderer(this); private GuiButton plus1; @@ -52,7 +55,10 @@ public class GuiFluidLevelEmitter extends GuiUpgradeable { @Override protected void addButtons() { this.redstoneMode = new GuiImgButton( - this.guiLeft - 18, this.guiTop + 8, Settings.REDSTONE_EMITTER, RedstoneMode.LOW_SIGNAL); + this.guiLeft - 18, + this.guiTop + 8, + Settings.REDSTONE_EMITTER, + RedstoneMode.LOW_SIGNAL); final int a = AEConfig.instance.levelByStackAmounts(0); final int b = AEConfig.instance.levelByStackAmounts(1); @@ -75,9 +81,15 @@ public class GuiFluidLevelEmitter extends GuiUpgradeable { @Override public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { this.fontRendererObj.drawString( - NameConst.i18n(NameConst.GUI_FLUID_LEVEL_EMITTER), 8, 6, GuiColors.UpgradableTitle.getColor()); + NameConst.i18n(NameConst.GUI_FLUID_LEVEL_EMITTER), + 8, + 6, + GuiColors.UpgradableTitle.getColor()); this.fontRendererObj.drawString( - GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, GuiColors.UpgradableInventory.getColor()); + GuiText.inventory.getLocal(), + 8, + this.ySize - 96 + 3, + GuiColors.UpgradableInventory.getColor()); this.redstoneMode.set(this.cvb.getRedStoneMode()); this.level.drawTextBox(); if (isShiftKeyDown() && !isMul) { @@ -90,8 +102,8 @@ public class GuiFluidLevelEmitter extends GuiUpgradeable { } else if (!isShiftKeyDown() && isMul) { for (Object btn : this.buttonList) { if (btn instanceof GuiButton) { - ((GuiButton) btn).displayString = ((GuiButton) btn) - .displayString.substring(0, ((GuiButton) btn).displayString.lastIndexOf("000")); + ((GuiButton) btn).displayString = ((GuiButton) btn).displayString + .substring(0, ((GuiButton) btn).displayString.lastIndexOf("000")); } } isMul = false; @@ -115,8 +127,9 @@ public class GuiFluidLevelEmitter extends GuiUpgradeable { protected void actionPerformed(final GuiButton btn) { super.actionPerformed(btn); final boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000; - final boolean isMinus = - btn == this.minus1 || btn == this.minus10 || btn == this.minus100 || btn == this.minus1000; + final boolean isMinus = btn == this.minus1 || btn == this.minus10 + || btn == this.minus100 + || btn == this.minus1000; if (isPlus || isMinus) { this.addQty(this.getQty(btn)); diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidMonitor.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidMonitor.java index 26bbca5e..1f96d1f1 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidMonitor.java @@ -1,23 +1,26 @@ package com.glodblock.github.client.gui; +import java.util.List; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.core.localization.GuiText; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.gui.base.FCGuiMonitor; import com.glodblock.github.client.gui.container.ContainerFluidMonitor; import com.glodblock.github.client.me.FluidRepo; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.util.Util; -import java.util.List; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiFluidMonitor extends FCGuiMonitor { - public GuiFluidMonitor( - final InventoryPlayer inventoryPlayer, final ITerminalHost te, final ContainerFluidMonitor c) { + public GuiFluidMonitor(final InventoryPlayer inventoryPlayer, final ITerminalHost te, + final ContainerFluidMonitor c) { super(inventoryPlayer, te, c); this.repo = new FluidRepo(getScrollBar(), this); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPacketDecoder.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPacketDecoder.java index cb031b32..a6b16442 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPacketDecoder.java @@ -1,14 +1,16 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + import appeng.client.gui.AEBaseGui; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidPacketDecoder; import com.glodblock.github.common.tile.TileFluidPacketDecoder; import com.glodblock.github.util.NameConst; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; public class GuiFluidPacketDecoder extends AEBaseGui { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternEncoder.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternEncoder.java index 9cdea974..08733438 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternEncoder.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternEncoder.java @@ -1,9 +1,23 @@ package com.glodblock.github.client.gui; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.AEBaseGui; import appeng.client.render.AppEngRenderItem; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidPatternEncoder; import com.glodblock.github.common.item.ItemFluidPacket; @@ -14,17 +28,6 @@ import com.glodblock.github.inventory.slot.SlotSingleItem; import com.glodblock.github.network.CPacketEncodePattern; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.NameConst; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fluids.FluidStack; public class GuiFluidPatternEncoder extends AEBaseGui { @@ -38,6 +41,7 @@ public class GuiFluidPatternEncoder extends AEBaseGui { super(new ContainerFluidPatternEncoder(ipl, tile)); this.cont = (ContainerFluidPatternEncoder) inventorySlots; mouseRegions.addRegion(141, 38, 10, 10, new MouseRegionManager.Handler() { + @Override public List getTooltip() { return Collections.singletonList(I18n.format(NameConst.TT_ENCODE_PATTERN)); @@ -104,14 +108,15 @@ public class GuiFluidPatternEncoder extends AEBaseGui { } @Override - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({ "unchecked", "rawtypes" }) protected void renderToolTip(ItemStack stack, int x, int y) { List list; if (stack.getItem() instanceof ItemFluidPacket) { FluidStack fluid = ItemFluidPacket.getFluidStack(stack); if (fluid != null) { list = Arrays.asList( - fluid.getLocalizedName(), String.format(EnumChatFormatting.GRAY + "%,d mB", fluid.amount)); + fluid.getLocalizedName(), + String.format(EnumChatFormatting.GRAY + "%,d mB", fluid.amount)); } else { list = stack.getTooltip(this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java index f2030d24..8ce4e822 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminal.java @@ -1,5 +1,11 @@ package com.glodblock.github.client.gui; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + import appeng.api.config.ActionItems; import appeng.api.config.ItemSubstitution; import appeng.api.config.PatternBeSubstitution; @@ -11,15 +17,11 @@ import appeng.container.slot.OptionalSlotFake; import appeng.container.slot.SlotFakeCraftingMatrix; import appeng.container.slot.SlotPatternTerm; import appeng.core.localization.GuiText; + import com.glodblock.github.client.gui.base.FCGuiEncodeTerminal; import com.glodblock.github.client.gui.container.ContainerFluidPatternTerminal; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { @@ -48,29 +50,44 @@ public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { this.buttonList.add(this.tabProcessButton); this.substitutionsEnabledBtn = new GuiImgButton( - this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.ENABLED); + this.guiLeft + 84, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ItemSubstitution.ENABLED); this.substitutionsEnabledBtn.setHalfSize(true); this.buttonList.add(this.substitutionsEnabledBtn); this.substitutionsDisabledBtn = new GuiImgButton( - this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.DISABLED); + this.guiLeft + 84, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ItemSubstitution.DISABLED); this.substitutionsDisabledBtn.setHalfSize(true); this.buttonList.add(this.substitutionsDisabledBtn); this.clearBtn = new GuiImgButton( - this.guiLeft + 74, this.guiTop + this.ySize - 163, Settings.ACTIONS, ActionItems.CLOSE); + this.guiLeft + 74, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ActionItems.CLOSE); this.clearBtn.setHalfSize(true); this.buttonList.add(this.clearBtn); this.encodeBtn = new GuiImgButton( - this.guiLeft + 147, this.guiTop + this.ySize - 142, Settings.ACTIONS, ActionItems.ENCODE); + this.guiLeft + 147, + this.guiTop + this.ySize - 142, + Settings.ACTIONS, + ActionItems.ENCODE); this.buttonList.add(this.encodeBtn); int combineLeft = 74; int combineTop = 153; if (ModAndClassUtil.isDoubleButton) { this.doubleBtn = new GuiImgButton( - this.guiLeft + 74, this.guiTop + this.ySize - 153, Settings.ACTIONS, ActionItems.DOUBLE); + this.guiLeft + 74, + this.guiTop + this.ySize - 153, + Settings.ACTIONS, + ActionItems.DOUBLE); this.doubleBtn.setHalfSize(true); this.buttonList.add(this.doubleBtn); combineLeft = 84; @@ -79,7 +96,10 @@ public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { combineLeft = 74; combineTop -= 11; this.beSubstitutionsEnabledBtn = new GuiImgButton( - this.guiLeft + 84, this.guiTop + this.ySize - 153, Settings.ACTIONS, PatternBeSubstitution.ENABLED); + this.guiLeft + 84, + this.guiTop + this.ySize - 153, + Settings.ACTIONS, + PatternBeSubstitution.ENABLED); this.beSubstitutionsEnabledBtn.setHalfSize(true); this.buttonList.add(this.beSubstitutionsEnabledBtn); @@ -92,12 +112,18 @@ public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { this.buttonList.add(this.beSubstitutionsDisabledBtn); } this.combineEnableBtn = new GuiFCImgButton( - this.guiLeft + combineLeft, this.guiTop + this.ySize - combineTop, "FORCE_COMBINE", "DO_COMBINE"); + this.guiLeft + combineLeft, + this.guiTop + this.ySize - combineTop, + "FORCE_COMBINE", + "DO_COMBINE"); this.combineEnableBtn.setHalfSize(true); this.buttonList.add(this.combineEnableBtn); this.combineDisableBtn = new GuiFCImgButton( - this.guiLeft + combineLeft, this.guiTop + this.ySize - combineTop, "NOT_COMBINE", "DONT_COMBINE"); + this.guiLeft + combineLeft, + this.guiTop + this.ySize - combineTop, + "NOT_COMBINE", + "DONT_COMBINE"); this.combineDisableBtn.setHalfSize(true); this.buttonList.add(this.combineDisableBtn); } @@ -116,8 +142,7 @@ public class GuiFluidPatternTerminal extends FCGuiEncodeTerminal { protected void handleMouseClick(final Slot slot, final int slotIdx, final int ctrlDown, final int mouseButton) { if (mouseButton == 3) { if (this.container.isCraftingMode() - && (slot instanceof OptionalSlotFake - || slot instanceof SlotFakeCraftingMatrix + && (slot instanceof OptionalSlotFake || slot instanceof SlotFakeCraftingMatrix || slot instanceof SlotPatternTerm)) { return; } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalCraftingStatus.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalCraftingStatus.java index 4cf7278a..c0ac8608 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalCraftingStatus.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalCraftingStatus.java @@ -1,8 +1,13 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.client.gui.implementations.GuiCraftingStatus; import appeng.client.gui.widgets.GuiTabButton; + import com.glodblock.github.common.parts.PartFluidPatternTerminal; import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; import com.glodblock.github.common.parts.PartFluidTerminal; @@ -10,9 +15,6 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.Ae2ReflectClient; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiFluidPatternTerminalCraftingStatus extends GuiCraftingStatus { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java index 052a83eb..39472059 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPatternTerminalEx.java @@ -1,17 +1,20 @@ package com.glodblock.github.client.gui; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.StatCollector; + +import org.lwjgl.input.Mouse; + import appeng.api.config.*; import appeng.api.storage.ITerminalHost; import appeng.client.gui.widgets.GuiImgButton; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.base.FCGuiEncodeTerminal; import com.glodblock.github.client.gui.container.ContainerFluidPatternTerminalEx; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.StatCollector; -import org.lwjgl.input.Mouse; public class GuiFluidPatternTerminalEx extends FCGuiEncodeTerminal { @@ -27,22 +30,34 @@ public class GuiFluidPatternTerminalEx extends FCGuiEncodeTerminal { super.initGui(); this.substitutionsEnabledBtn = new GuiImgButton( - this.guiLeft + 97, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.ENABLED); + this.guiLeft + 97, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ItemSubstitution.ENABLED); this.substitutionsEnabledBtn.setHalfSize(true); this.buttonList.add(this.substitutionsEnabledBtn); this.substitutionsDisabledBtn = new GuiImgButton( - this.guiLeft + 97, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.DISABLED); + this.guiLeft + 97, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ItemSubstitution.DISABLED); this.substitutionsDisabledBtn.setHalfSize(true); this.buttonList.add(this.substitutionsDisabledBtn); - this.fluidPrioritizedEnabledBtn = - new GuiFCImgButton(this.guiLeft + 97, this.guiTop + this.ySize - 114, "FORCE_PRIO", "DO_PRIO"); + this.fluidPrioritizedEnabledBtn = new GuiFCImgButton( + this.guiLeft + 97, + this.guiTop + this.ySize - 114, + "FORCE_PRIO", + "DO_PRIO"); this.fluidPrioritizedEnabledBtn.setHalfSize(true); this.buttonList.add(this.fluidPrioritizedEnabledBtn); - this.fluidPrioritizedDisabledBtn = - new GuiFCImgButton(this.guiLeft + 97, this.guiTop + this.ySize - 114, "NOT_PRIO", "DONT_PRIO"); + this.fluidPrioritizedDisabledBtn = new GuiFCImgButton( + this.guiLeft + 97, + this.guiTop + this.ySize - 114, + "NOT_PRIO", + "DONT_PRIO"); this.fluidPrioritizedDisabledBtn.setHalfSize(true); this.buttonList.add(this.fluidPrioritizedDisabledBtn); @@ -55,33 +70,51 @@ public class GuiFluidPatternTerminalEx extends FCGuiEncodeTerminal { this.buttonList.add(this.invertBtn); this.clearBtn = new GuiImgButton( - this.guiLeft + 87, this.guiTop + this.ySize - 163, Settings.ACTIONS, ActionItems.CLOSE); + this.guiLeft + 87, + this.guiTop + this.ySize - 163, + Settings.ACTIONS, + ActionItems.CLOSE); this.clearBtn.setHalfSize(true); this.buttonList.add(this.clearBtn); this.encodeBtn = new GuiImgButton( - this.guiLeft + 147, this.guiTop + this.ySize - 142, Settings.ACTIONS, ActionItems.ENCODE); + this.guiLeft + 147, + this.guiTop + this.ySize - 142, + Settings.ACTIONS, + ActionItems.ENCODE); this.buttonList.add(this.encodeBtn); if (ModAndClassUtil.isDoubleButton) { this.doubleBtn = new GuiImgButton( - this.guiLeft + 97, this.guiTop + this.ySize - 153, Settings.ACTIONS, ActionItems.DOUBLE); + this.guiLeft + 97, + this.guiTop + this.ySize - 153, + Settings.ACTIONS, + ActionItems.DOUBLE); this.doubleBtn.setHalfSize(true); this.buttonList.add(this.doubleBtn); } - this.combineEnableBtn = - new GuiFCImgButton(this.guiLeft + 87, this.guiTop + this.ySize - 114, "FORCE_COMBINE", "DO_COMBINE"); + this.combineEnableBtn = new GuiFCImgButton( + this.guiLeft + 87, + this.guiTop + this.ySize - 114, + "FORCE_COMBINE", + "DO_COMBINE"); this.combineEnableBtn.setHalfSize(true); this.buttonList.add(this.combineEnableBtn); - this.combineDisableBtn = - new GuiFCImgButton(this.guiLeft + 87, this.guiTop + this.ySize - 114, "NOT_COMBINE", "DONT_COMBINE"); + this.combineDisableBtn = new GuiFCImgButton( + this.guiLeft + 87, + this.guiTop + this.ySize - 114, + "NOT_COMBINE", + "DONT_COMBINE"); this.combineDisableBtn.setHalfSize(true); this.buttonList.add(this.combineDisableBtn); if (ModAndClassUtil.isBeSubstitutionsButton) { this.beSubstitutionsEnabledBtn = new GuiImgButton( - this.guiLeft + 87, this.guiTop + this.ySize - 103, Settings.ACTIONS, PatternBeSubstitution.ENABLED); + this.guiLeft + 87, + this.guiTop + this.ySize - 103, + Settings.ACTIONS, + PatternBeSubstitution.ENABLED); this.beSubstitutionsEnabledBtn.setHalfSize(true); this.buttonList.add(this.beSubstitutionsEnabledBtn); @@ -173,7 +206,9 @@ public class GuiFluidPatternTerminalEx extends FCGuiEncodeTerminal { } private void changeActivePage() { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.ActivePage", String.valueOf(this.processingScrollBar.getCurrentScroll()))); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.ActivePage", + String.valueOf(this.processingScrollBar.getCurrentScroll()))); } } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java new file mode 100644 index 00000000..7f04ccde --- /dev/null +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidPortableCell.java @@ -0,0 +1,25 @@ +package com.glodblock.github.client.gui; + +import net.minecraft.entity.player.InventoryPlayer; + +import appeng.container.slot.AppEngSlot; + +import com.glodblock.github.client.gui.container.ContainerFluidPortableCell; +import com.glodblock.github.inventory.item.IFluidPortableCell; + +public class GuiFluidPortableCell extends GuiFluidTerminal { + + public GuiFluidPortableCell(final InventoryPlayer inventoryPlayer, final IFluidPortableCell te) { + super(inventoryPlayer, te, new ContainerFluidPortableCell(inventoryPlayer, te)); + } + + @Override + protected void repositionSlot(final AppEngSlot s) { + s.yDisplayPosition = s.getY() + this.ySize - 78 - 5; + } + + @Override + protected int getMaxRows() { + return 3; + } +} diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java index 43b43d69..b36c4b66 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidStorageBus.java @@ -1,5 +1,11 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; + +import org.lwjgl.input.Mouse; + import appeng.api.config.AccessRestriction; import appeng.api.config.ActionItems; import appeng.api.config.Settings; @@ -11,6 +17,7 @@ import appeng.core.localization.GuiColors; import appeng.core.localization.GuiText; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketConfigButton; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidStorageBus; import com.glodblock.github.common.parts.PartFluidStorageBus; @@ -18,10 +25,6 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.NameConst; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import org.lwjgl.input.Mouse; public class GuiFluidStorageBus extends GuiUpgradeable { @@ -40,10 +43,17 @@ public class GuiFluidStorageBus extends GuiUpgradeable { protected void addButtons() { this.clear = new GuiImgButton(this.guiLeft - 18, this.guiTop + 8, Settings.ACTIONS, ActionItems.CLOSE); this.partition = new GuiImgButton(this.guiLeft - 18, this.guiTop + 28, Settings.ACTIONS, ActionItems.WRENCH); - this.rwMode = - new GuiImgButton(this.guiLeft - 18, this.guiTop + 48, Settings.ACCESS, AccessRestriction.READ_WRITE); - this.priority = - new GuiTabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), itemRender); + this.rwMode = new GuiImgButton( + this.guiLeft - 18, + this.guiTop + 48, + Settings.ACCESS, + AccessRestriction.READ_WRITE); + this.priority = new GuiTabButton( + this.guiLeft + 154, + this.guiTop, + 2 + 4 * 16, + GuiText.Priority.getLocal(), + itemRender); this.buttonList.add(this.priority); this.buttonList.add(this.rwMode); @@ -59,7 +69,10 @@ public class GuiFluidStorageBus extends GuiUpgradeable { 6, GuiColors.StorageBusTitle.getColor()); this.fontRendererObj.drawString( - GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, GuiColors.StorageBusInventory.getColor()); + GuiText.inventory.getLocal(), + 8, + this.ySize - 96 + 3, + GuiColors.StorageBusInventory.getColor()); if (this.rwMode != null) { this.rwMode.set(((ContainerFluidStorageBus) this.cvb).getReadWriteMode()); @@ -80,7 +93,7 @@ public class GuiFluidStorageBus extends GuiUpgradeable { } else if (btn == this.clear) { FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns("StorageBus.Action", "Clear")); } else if (btn == this.priority) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY_PART)); + FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(GuiType.PRIORITY)); } else if (btn == this.rwMode) { NetworkHandler.instance.sendToServer(new PacketConfigButton(this.rwMode.getSetting(), backwards)); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java index 1b0d98c5..59549c32 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidTerminal.java @@ -1,21 +1,8 @@ package com.glodblock.github.client.gui; -import appeng.api.storage.ITerminalHost; -import appeng.api.storage.data.IAEFluidStack; -import appeng.api.storage.data.IAEItemStack; -import appeng.client.me.SlotME; -import appeng.client.render.AppEngRenderItem; -import appeng.container.slot.AppEngSlot; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.client.gui.container.ContainerFluidMonitor; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.inventory.InventoryHandler; -import com.glodblock.github.inventory.gui.GuiType; -import com.glodblock.github.network.CPacketFluidUpdate; -import com.glodblock.github.util.Ae2ReflectClient; -import com.glodblock.github.util.Util; import java.util.HashMap; import java.util.Map; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.texture.TextureMap; @@ -25,9 +12,27 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; + import org.lwjgl.opengl.GL11; +import appeng.api.storage.ITerminalHost; +import appeng.api.storage.data.IAEFluidStack; +import appeng.api.storage.data.IAEItemStack; +import appeng.client.me.SlotME; +import appeng.client.render.AppEngRenderItem; +import appeng.container.slot.AppEngSlot; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.client.gui.container.ContainerFluidMonitor; +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.inventory.InventoryHandler; +import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.network.CPacketFluidUpdate; +import com.glodblock.github.util.Ae2ReflectClient; +import com.glodblock.github.util.Util; + public class GuiFluidTerminal extends GuiFluidMonitor { + private final AppEngRenderItem stackSizeRenderer = Ae2ReflectClient.getStackSizeRenderer(this); protected EntityPlayer player; public ContainerFluidMonitor container; @@ -39,6 +44,14 @@ public class GuiFluidTerminal extends GuiFluidMonitor { this.showViewBtn = false; } + public GuiFluidTerminal(final InventoryPlayer inventoryPlayer, final ITerminalHost te, + final ContainerFluidMonitor c) { + super(inventoryPlayer, te, c); + this.container = c; + this.player = inventoryPlayer.player; + this.showViewBtn = false; + } + @Override protected void repositionSlot(final AppEngSlot s) { if (s.isPlayerSide()) { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiIngredientBuffer.java b/src/main/java/com/glodblock/github/client/gui/GuiIngredientBuffer.java index 63c154bb..43c040ad 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiIngredientBuffer.java @@ -1,8 +1,17 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; + +import org.lwjgl.opengl.GL11; + import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.AEBaseGui; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerIngredientBuffer; import com.glodblock.github.common.tile.TileIngredientBuffer; @@ -12,12 +21,6 @@ import com.glodblock.github.inventory.gui.MouseRegionManager; import com.glodblock.github.inventory.gui.TankMouseHandler; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; -import org.lwjgl.opengl.GL11; public class GuiIngredientBuffer extends AEBaseGui { @@ -40,7 +43,11 @@ public class GuiIngredientBuffer extends AEBaseGui { TANK_HEIGHT, new TankMouseHandler(cont.getTile().getInternalFluid(), i)); mouseRegions.addRegion( - TANK_X + 10 + 22 * i, TANK_Y + TANK_HEIGHT + 2, 7, 7, ButtonMouseHandler.dumpTank(cont, i)); + TANK_X + 10 + 22 * i, + TANK_Y + TANK_HEIGHT + 2, + 7, + 7, + ButtonMouseHandler.dumpTank(cont, i)); } } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiItemMonitor.java b/src/main/java/com/glodblock/github/client/gui/GuiItemMonitor.java index af4336f4..4bacec6c 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiItemMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiItemMonitor.java @@ -1,16 +1,19 @@ package com.glodblock.github.client.gui; +import java.util.List; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEItemStack; import appeng.client.me.ItemRepo; import appeng.core.AEConfig; import appeng.core.localization.GuiText; + import com.glodblock.github.client.gui.base.FCGuiMonitor; import com.glodblock.github.client.gui.container.ContainerItemMonitor; import com.glodblock.github.util.ModAndClassUtil; -import java.util.List; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiItemMonitor extends FCGuiMonitor { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiLargeIngredientBuffer.java b/src/main/java/com/glodblock/github/client/gui/GuiLargeIngredientBuffer.java index 415b54c7..3940d88a 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiLargeIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiLargeIngredientBuffer.java @@ -1,8 +1,17 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; + +import org.lwjgl.opengl.GL11; + import appeng.api.storage.data.IAEFluidStack; import appeng.client.gui.AEBaseGui; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerLargeIngredientBuffer; import com.glodblock.github.common.tile.TileLargeIngredientBuffer; @@ -12,12 +21,6 @@ import com.glodblock.github.inventory.gui.MouseRegionManager; import com.glodblock.github.inventory.gui.TankMouseHandler; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.RenderUtil; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; -import org.lwjgl.opengl.GL11; public class GuiLargeIngredientBuffer extends AEBaseGui { @@ -40,7 +43,11 @@ public class GuiLargeIngredientBuffer extends AEBaseGui { TANK_HEIGHT, new TankMouseHandler(cont.getTile().getInternalFluid(), i)); mouseRegions.addRegion( - TANK_X + 10 + 22 * i, TANK_Y + TANK_HEIGHT + 2, 7, 7, ButtonMouseHandler.dumpTank(cont, i)); + TANK_X + 10 + 22 * i, + TANK_Y + TANK_HEIGHT + 2, + 7, + 7, + ButtonMouseHandler.dumpTank(cont, i)); } } @@ -59,8 +66,8 @@ public class GuiLargeIngredientBuffer extends AEBaseGui { @Override public void drawFG(int offsetX, int offsetY, int mouseX, int mouseY) { - fontRendererObj.drawString( - getGuiDisplayName(I18n.format(NameConst.GUI_LARGE_INGREDIENT_BUFFER)), 8, 6, 0x404040); + fontRendererObj + .drawString(getGuiDisplayName(I18n.format(NameConst.GUI_LARGE_INGREDIENT_BUFFER)), 8, 6, 0x404040); fontRendererObj.drawString(GuiText.inventory.getLocal(), 8, ySize - 94, 0x404040); GL11.glColor4f(1F, 1F, 1F, 1F); diff --git a/src/main/java/com/glodblock/github/client/gui/GuiLevelMaintainer.java b/src/main/java/com/glodblock/github/client/gui/GuiLevelMaintainer.java index 552b1610..ea94077b 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiLevelMaintainer.java @@ -1,5 +1,21 @@ package com.glodblock.github.client.gui; +import java.awt.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.input.Keyboard; + import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.AEBaseGui; import appeng.client.render.AppEngRenderItem; @@ -10,6 +26,7 @@ import codechicken.nei.VisiblityData; import codechicken.nei.api.INEIGuiHandler; import codechicken.nei.api.TaggedInventoryArea; import cofh.core.render.CoFHFontRenderer; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerLevelMaintainer; import com.glodblock.github.common.tile.TileLevelMaintainer; @@ -20,19 +37,6 @@ import com.glodblock.github.network.CPacketLevelMaintainer; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.Optional; -import java.awt.*; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.input.Keyboard; @Optional.Interface(modid = "NotEnoughItems", iface = "codechicken.nei.api.INEIGuiHandler") public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { @@ -146,8 +150,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { if (stack == null) return true; IAEItemStack fake = stack.copy(); if (this.component[slot.getSlotIndex()].getQty().textField.getText().matches("[0-9]+")) { - fake.setStackSize(Long.parseLong( - this.component[slot.getSlotIndex()].getQty().textField.getText())); + fake.setStackSize(Long.parseLong(this.component[slot.getSlotIndex()].getQty().textField.getText())); } else { fake.setStackSize(0); } @@ -209,9 +212,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { @Override protected void handleMouseClick(final Slot slot, final int slotIdx, final int ctrlDown, final int mouseButton) { if (slot instanceof SlotFluidConvertingFake && this.cont.getPlayerInv().getItemStack() != null) { - this.component[slot.getSlotIndex()] - .getQty() - .textField + this.component[slot.getSlotIndex()].getQty().textField .setText(String.valueOf(this.cont.getPlayerInv().getItemStack().stackSize)); return; } @@ -276,6 +277,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { } private class Component { + public boolean isEnable = true; private final Widget qty; private final Widget batch; @@ -285,14 +287,8 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { private final FCGuiLineField line; private TileLevelMaintainer.State state; - public Component( - Widget qtyInput, - Widget batchInput, - GuiFCImgButton submitBtn, - GuiFCImgButton enableBtn, - GuiFCImgButton disableBtn, - FCGuiLineField line, - List buttonList) { + public Component(Widget qtyInput, Widget batchInput, GuiFCImgButton submitBtn, GuiFCImgButton enableBtn, + GuiFCImgButton disableBtn, FCGuiLineField line, List buttonList) { this.qty = qtyInput; this.batch = batchInput; this.enable = enableBtn; @@ -315,8 +311,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { private boolean send(Widget widget) { if (((SlotFluidConvertingFake) cont.inventorySlots.get(widget.idx)).getHasStack()) { - if (!widget.textField.getText().isEmpty() - && widget.textField.getText().matches("^[0-9]+")) { + if (!widget.textField.getText().isEmpty() && widget.textField.getText().matches("^[0-9]+")) { String str = widget.textField.getText().replaceAll("^(0+)", ""); widget.textField.setText(str.isEmpty() ? "0" : str); FluidCraft.proxy.netHandler.sendToServer( @@ -337,12 +332,12 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { if (this.send(this.getQty())) this.send(this.getBatch()); didSomething = true; } else if (this.enable == btn) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketLevelMaintainer("TileLevelMaintainer.Enable", this.getIndex())); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketLevelMaintainer("TileLevelMaintainer.Enable", this.getIndex())); didSomething = true; } else if (this.disable == btn) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketLevelMaintainer("TileLevelMaintainer.Disable", this.getIndex())); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketLevelMaintainer("TileLevelMaintainer.Disable", this.getIndex())); didSomething = true; } return didSomething; @@ -374,23 +369,27 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { switch (this.state) { case Idling: this.line.setColor(0xFF55FF55); - message.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) - + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_IDLE)); + message.add( + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) + + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_IDLE)); break; case Crafting: this.line.setColor(0xFFFFFF55); - message.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) - + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_LINK)); + message.add( + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) + + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_LINK)); break; case Exporting: this.line.setColor(0xFFAA00AA); - message.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) - + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_EXPORT)); + message.add( + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) + + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_EXPORT)); break; default: this.line.setColor(0); - message.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) - + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_NONE)); + message.add( + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_CURRENT) + + NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_NONE)); } message.add(""); if (isShiftKeyDown()) { @@ -421,6 +420,7 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { } private class Widget { + public final int idx; public final String action; private final FCGuiTextField textField; @@ -440,9 +440,11 @@ public class GuiLevelMaintainer extends AEBaseGui implements INEIGuiHandler { if (isShiftKeyDown()) { this.setTooltip(render.wrapFormattedStringToWidth(NameConst.i18n(this.tooltip), xSize / 2)); } else { - this.setTooltip(render.wrapFormattedStringToWidth( - NameConst.i18n(this.tooltip, "\n", false) + "\n" + NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE), - (int) Math.floor(xSize * 0.8))); + this.setTooltip( + render.wrapFormattedStringToWidth( + NameConst.i18n(this.tooltip, "\n", false) + "\n" + + NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE), + (int) Math.floor(xSize * 0.8))); } this.textField.drawTextBox(); } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiOCPatternEditor.java b/src/main/java/com/glodblock/github/client/gui/GuiOCPatternEditor.java index 26a75fbd..3b38081a 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiOCPatternEditor.java @@ -1,14 +1,16 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + import appeng.client.gui.AEBaseGui; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerOCPatternEditor; import com.glodblock.github.common.tile.TileOCPatternEditor; import com.glodblock.github.util.NameConst; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; public class GuiOCPatternEditor extends AEBaseGui { diff --git a/src/main/java/com/glodblock/github/client/gui/GuiPatternValueAmount.java b/src/main/java/com/glodblock/github/client/gui/GuiPatternValueAmount.java index 0b55a291..c415670f 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiPatternValueAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiPatternValueAmount.java @@ -1,7 +1,12 @@ package com.glodblock.github.client.gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ITerminalHost; import appeng.core.localization.GuiText; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.base.FCGuiAmount; import com.glodblock.github.client.gui.container.ContainerPatternValueAmount; @@ -10,9 +15,6 @@ import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.network.CPacketPatternValueSet; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; public class GuiPatternValueAmount extends FCGuiAmount { @@ -48,10 +50,11 @@ public class GuiPatternValueAmount extends FCGuiAmount { super.actionPerformed(btn); try { if (btn == this.submit && btn.enabled) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketPatternValueSet( - originalGui.ordinal(), - getAmount(), - ((ContainerPatternValueAmount) this.inventorySlots).getValueIndex())); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketPatternValueSet( + originalGui.ordinal(), + getAmount(), + ((ContainerPatternValueAmount) this.inventorySlots).getValueIndex())); } } catch (final NumberFormatException e) { this.amountBox.setText("1"); diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java index 64cf6c38..65eb25f8 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java @@ -1,5 +1,10 @@ package com.glodblock.github.client.gui.base; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; + import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiTabButton; import appeng.container.AEBaseContainer; @@ -7,13 +12,10 @@ import appeng.core.AEConfig; import appeng.core.localization.GuiText; import appeng.util.calculators.ArithHelper; import appeng.util.calculators.Calculator; + import com.glodblock.github.FluidCraft; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.network.CPacketSwitchGuis; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiTextField; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; public abstract class FCGuiAmount extends AEBaseGui { @@ -61,11 +63,19 @@ public abstract class FCGuiAmount extends AEBaseGui { if (this.originalGui != null && this.myIcon != null) { this.buttonList.add( this.originalGuiBtn = new GuiTabButton( - this.guiLeft + 154, this.guiTop, this.myIcon, this.myIcon.getDisplayName(), itemRender)); + this.guiLeft + 154, + this.guiTop, + this.myIcon, + this.myIcon.getDisplayName(), + itemRender)); } this.amountBox = new GuiTextField( - this.fontRendererObj, this.guiLeft + 62, this.guiTop + 57, 59, this.fontRendererObj.FONT_HEIGHT); + this.fontRendererObj, + this.guiLeft + 62, + this.guiTop + 57, + 59, + this.fontRendererObj.FONT_HEIGHT); this.amountBox.setEnableBackgroundDrawing(false); this.amountBox.setMaxStringLength(16); this.amountBox.setTextColor(0xFFFFFF); @@ -97,8 +107,9 @@ public abstract class FCGuiAmount extends AEBaseGui { FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis(this.originalGui)); } final boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000; - final boolean isMinus = - btn == this.minus1 || btn == this.minus10 || btn == this.minus100 || btn == this.minus1000; + final boolean isMinus = btn == this.minus1 || btn == this.minus10 + || btn == this.minus100 + || btn == this.minus1000; if (isPlus || isMinus) { this.addQty(this.getQty(btn)); @@ -117,8 +128,7 @@ public abstract class FCGuiAmount extends AEBaseGui { } String out = Long.toString(resultI); this.amountBox.setText(out); - } catch (final NumberFormatException ignore) { - } + } catch (final NumberFormatException ignore) {} } protected abstract void setOriginGUI(Object target); diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java index 9ed9a69a..289afee7 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiEncodeTerminal.java @@ -1,5 +1,11 @@ package com.glodblock.github.client.gui.base; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +import org.lwjgl.input.Keyboard; + import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.widgets.GuiImgButton; @@ -9,6 +15,7 @@ import appeng.client.render.AppEngRenderItem; import appeng.container.slot.AppEngSlot; import appeng.container.slot.SlotFake; import appeng.util.item.AEItemStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.GuiFCImgButton; import com.glodblock.github.client.gui.GuiItemMonitor; @@ -20,10 +27,6 @@ import com.glodblock.github.inventory.slot.SlotSingleItem; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.ModAndClassUtil; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import org.lwjgl.input.Keyboard; public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { @@ -51,8 +54,8 @@ public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { protected final GuiScrollbar processingScrollBar = new GuiScrollbar(); protected final AppEngRenderItem stackSizeRenderer = Ae2ReflectClient.getStackSizeRenderer(this); - public FCGuiEncodeTerminal( - final InventoryPlayer inventoryPlayer, final ITerminalHost te, final FCContainerEncodeTerminal c) { + public FCGuiEncodeTerminal(final InventoryPlayer inventoryPlayer, final ITerminalHost te, + final FCContainerEncodeTerminal c) { super(inventoryPlayer, te, c); this.container = (FCContainerEncodeTerminal) this.inventorySlots; c.setGui(this); @@ -65,35 +68,46 @@ public abstract class FCGuiEncodeTerminal extends GuiItemMonitor { if (btn == craftingStatusBtn) { InventoryHandler.switchGui(GuiType.CRAFTING_STATUS); } else if (this.tabCraftButton == btn || this.tabProcessButton == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.CraftMode", this.tabProcessButton == btn ? MODE_CRAFTING : MODE_PROCESSING)); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.CraftMode", + this.tabProcessButton == btn ? MODE_CRAFTING : MODE_PROCESSING)); } else if (this.encodeBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Encode", (isCtrlKeyDown() ? 1 : 0) << 1 | (isShiftKeyDown() ? 1 : 0))); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Encode", + (isCtrlKeyDown() ? 1 : 0) << 1 | (isShiftKeyDown() ? 1 : 0))); } else if (this.clearBtn == btn) { FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns("PatternTerminal.Clear", "1")); } else if (this.substitutionsEnabledBtn == btn || this.substitutionsDisabledBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Substitute", - this.substitutionsEnabledBtn == btn ? SUBSTITUTION_DISABLE : SUBSTITUTION_ENABLE)); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Substitute", + this.substitutionsEnabledBtn == btn ? SUBSTITUTION_DISABLE : SUBSTITUTION_ENABLE)); } else if (this.fluidPrioritizedEnabledBtn == btn || this.fluidPrioritizedDisabledBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Prioritize", container.prioritize ? PRIORITY_DISABLE : PRIORITY_ENABLE)); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Prioritize", + container.prioritize ? PRIORITY_DISABLE : PRIORITY_ENABLE)); } else if (this.invertBtn == btn) { FluidCraft.proxy.netHandler.sendToServer( new CPacketFluidPatternTermBtns("PatternTerminal.Invert", container.inverted ? "0" : "1")); } else if (this.combineDisableBtn == btn || this.combineEnableBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Combine", this.combineDisableBtn == btn ? "1" : "0")); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Combine", + this.combineDisableBtn == btn ? "1" : "0")); } else if (ModAndClassUtil.isDoubleButton && doubleBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer(new CPacketFluidPatternTermBtns( - "PatternTerminal.Double", Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) ? "1" : "0")); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketFluidPatternTermBtns( + "PatternTerminal.Double", + Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) ? "1" : "0")); } else if (ModAndClassUtil.isBeSubstitutionsButton && beSubstitutionsDisabledBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketFluidPatternTermBtns("PatternTerminal.beSubstitute", "1")); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketFluidPatternTermBtns("PatternTerminal.beSubstitute", "1")); } else if (ModAndClassUtil.isBeSubstitutionsButton && beSubstitutionsEnabledBtn == btn) { - FluidCraft.proxy.netHandler.sendToServer( - new CPacketFluidPatternTermBtns("PatternTerminal.beSubstitute", "0")); + FluidCraft.proxy.netHandler + .sendToServer(new CPacketFluidPatternTermBtns("PatternTerminal.beSubstitute", "0")); } } diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java index a7a83f43..028e8e30 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java @@ -1,5 +1,20 @@ package com.glodblock.github.client.gui.base; +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; + import appeng.api.config.*; import appeng.api.implementations.tiles.IViewCellStorage; import appeng.api.storage.ITerminalHost; @@ -32,24 +47,13 @@ import appeng.util.Platform; import appeng.util.item.AEItemStack; import codechicken.nei.LayoutManager; import codechicken.nei.util.TextHistory; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.FCGuiTextField; import com.glodblock.github.client.gui.container.base.FCContainerMonitor; import com.glodblock.github.network.CPacketInventoryAction; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.ModAndClassUtil; -import java.io.IOException; -import java.lang.reflect.Field; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; public abstract class FCGuiMonitor> extends AEBaseMEGui implements ISortSource, IConfigManagerHost, IDropToFillTextField { @@ -98,9 +102,10 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui protected void setScrollBar() { this.getScrollBar().setTop(18).setLeft(175).setHeight(this.rows * 18 - 2); - this.getScrollBar() - .setRange( - 0, (this.repo.size() + this.perRow - 1) / this.perRow - this.rows, Math.max(1, this.rows / 6)); + this.getScrollBar().setRange( + 0, + (this.repo.size() + this.perRow - 1) / this.perRow - this.rows, + Math.max(1, this.rows / 6)); } @Override @@ -114,8 +119,7 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui final GuiImgButton iBtn = (GuiImgButton) btn; if (iBtn.getSetting() != Settings.ACTIONS) { final Enum cv = iBtn.getCurrentValue(); - final Enum next = - Platform.rotateEnum(cv, backwards, iBtn.getSetting().getPossibleValues()); + final Enum next = Platform.rotateEnum(cv, backwards, iBtn.getSetting().getPossibleValues()); if (btn == this.terminalStyleBox) { AEConfig.instance.settings.putSetting(iBtn.getSetting(), next); } else if (btn == this.searchBoxSettings) { @@ -124,8 +128,8 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui AEConfig.instance.preserveSearchBar = next == YesNo.YES; } else { try { - NetworkHandler.instance.sendToServer( - new PacketValueConfig(iBtn.getSetting().name(), next.name())); + NetworkHandler.instance + .sendToServer(new PacketValueConfig(iBtn.getSetting().name(), next.name())); } catch (final IOException e) { AELog.debug(e); } @@ -149,8 +153,7 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui Keyboard.enableRepeatEvents(true); this.maxRows = this.getMaxRows(); - this.perRow = AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) != TerminalStyle.FULL - ? 9 + this.perRow = AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) != TerminalStyle.FULL ? 9 : 9 + ((this.width - this.standardSize) / 18); final boolean hasNEI = IntegrationRegistry.INSTANCE.isEnabled(IntegrationType.NEI); @@ -202,7 +205,10 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui if (this.customSortOrder) { this.buttonList.add( this.SortByBox = new GuiImgButton( - this.guiLeft - 18, offset, Settings.SORT_BY, this.configSrc.getSetting(Settings.SORT_BY))); + this.guiLeft - 18, + offset, + Settings.SORT_BY, + this.configSrc.getSetting(Settings.SORT_BY))); offset += 20; } if (this.showViewBtn) { @@ -250,7 +256,11 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui offset += 20; this.searchField = new FCGuiTextField( - this.fontRendererObj, this.guiLeft + Math.max(80, this.offsetX), this.guiTop + 4, 90, 12); + this.fontRendererObj, + this.guiLeft + Math.max(80, this.offsetX), + this.guiTop + 4, + 90, + 12); this.searchField.setEnableBackgroundDrawing(false); this.searchField.setMaxStringLength(25); this.searchField.setTextColor(0xFFFFFF); @@ -259,11 +269,8 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui searchField.setMessage(ButtonToolTips.SearchStringTooltip.getLocal()); if (this.viewCell) { - if (ModAndClassUtil.isCraftStatus - && AEConfig.instance - .getConfigManager() - .getSetting(Settings.CRAFTING_STATUS) - .equals(CraftingStatus.BUTTON)) { + if (ModAndClassUtil.isCraftStatus && AEConfig.instance.getConfigManager() + .getSetting(Settings.CRAFTING_STATUS).equals(CraftingStatus.BUTTON)) { this.buttonList.add( this.craftingStatusImgBtn = new GuiImgButton( this.guiLeft - 18, @@ -356,15 +363,12 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui } else { direction = TextHistory.Direction.NEXT; } - history.get(direction, this.searchField.getText()) - .map(newText -> { - setSearchString(newText, true); - return true; - }) - .orElse(false); + history.get(direction, this.searchField.getText()).map(newText -> { + setSearchString(newText, true); + return true; + }).orElse(false); return; - } catch (NoSuchFieldException | IllegalAccessException ignore) { - } + } catch (NoSuchFieldException | IllegalAccessException ignore) {} } } super.handleMouseInput(); @@ -391,8 +395,8 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui } if (slot instanceof SlotFake) { - InventoryAction action = - ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN; + InventoryAction action = ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE + : InventoryAction.PICKUP_OR_SET_DOWN; if (Keyboard.isKeyDown(Keyboard.KEY_LMENU) || Keyboard.isKeyDown(Keyboard.KEY_RMENU)) { if (action == InventoryAction.SPLIT_OR_PLACE_SINGLE) { action = InventoryAction.MOVE_REGION; @@ -457,13 +461,12 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui InventoryAction action = null; switch (mouseButton) { case 0: // pickup / set-down. - { - ItemStack heldStack = player.inventory.getItemStack(); - if (slot.getStack() == null && heldStack != null) - action = InventoryAction.SPLIT_OR_PLACE_SINGLE; - else if (slot.getStack() != null && (heldStack == null || heldStack.stackSize <= 1)) - action = InventoryAction.PICKUP_OR_SET_DOWN; - } + { + ItemStack heldStack = player.inventory.getItemStack(); + if (slot.getStack() == null && heldStack != null) action = InventoryAction.SPLIT_OR_PLACE_SINGLE; + else if (slot.getStack() != null && (heldStack == null || heldStack.stackSize <= 1)) + action = InventoryAction.PICKUP_OR_SET_DOWN; + } break; case 1: action = ctrlDown == 1 ? InventoryAction.PICKUP_SINGLE : InventoryAction.SHIFT_CLICK; @@ -494,8 +497,7 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui case 0: // pickup / set-down. action = ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN; stack = ((SlotME) slot).getAEStack(); - if (stack != null - && action == InventoryAction.PICKUP_OR_SET_DOWN + if (stack != null && action == InventoryAction.PICKUP_OR_SET_DOWN && stack.getStackSize() == 0 && player.inventory.getItemStack() == null) { action = InventoryAction.AUTO_CRAFT; @@ -523,12 +525,14 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui } if (action == InventoryAction.AUTO_CRAFT) { ((AEBaseContainer) this.inventorySlots).setTargetStack(stack); - FluidCraft.proxy.netHandler.sendToServer(new CPacketInventoryAction( - action, Ae2ReflectClient.getInventorySlots(this).size(), 0, stack)); + FluidCraft.proxy.netHandler.sendToServer( + new CPacketInventoryAction(action, Ae2ReflectClient.getInventorySlots(this).size(), 0, stack)); } else if (action != null) { ((AEBaseContainer) this.inventorySlots).setTargetStack(stack); final PacketInventoryAction p = new PacketInventoryAction( - action, Ae2ReflectClient.getInventorySlots(this).size(), 0); + action, + Ae2ReflectClient.getInventorySlots(this).size(), + 0); NetworkHandler.instance.sendToServer(p); } @@ -575,11 +579,9 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui if (this.viewCell) { boolean update = false; for (int i = 0; i < 5; i++) { - if (this.myCurrentViewCells[i] - != this.monitorableContainer.getCellViewSlot(i).getStack()) { + if (this.myCurrentViewCells[i] != this.monitorableContainer.getCellViewSlot(i).getStack()) { update = true; - this.myCurrentViewCells[i] = - this.monitorableContainer.getCellViewSlot(i).getStack(); + this.myCurrentViewCells[i] = this.monitorableContainer.getCellViewSlot(i).getStack(); } } if (update) { @@ -601,8 +603,7 @@ public abstract class FCGuiMonitor> extends AEBaseMEGui } protected int getMaxRows() { - return AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) == TerminalStyle.SMALL - ? 6 + return AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) == TerminalStyle.SMALL ? 6 : Integer.MAX_VALUE; } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java index 77baccaf..5dd30cbf 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerDualInterface.java @@ -1,21 +1,27 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.api.config.Settings; import appeng.api.config.SidelessMode; import appeng.api.util.IConfigManager; import appeng.container.guisync.GuiSync; import appeng.container.implementations.ContainerInterface; import appeng.helpers.IInterfaceHost; -import net.minecraft.entity.player.InventoryPlayer; + +import com.glodblock.github.common.tile.TileFluidInterface; public class ContainerDualInterface extends ContainerInterface { @GuiSync(10) public SidelessMode sidelessMode; + private final boolean isTile; + public ContainerDualInterface(InventoryPlayer ip, IInterfaceHost te) { super(ip, te); this.sidelessMode = SidelessMode.SIDELESS; + this.isTile = te instanceof TileFluidInterface; } public SidelessMode getSidelessMode() { @@ -25,6 +31,6 @@ public class ContainerDualInterface extends ContainerInterface { @Override protected void loadSettingsFromHost(IConfigManager cm) { super.loadSettingsFromHost(cm); - this.sidelessMode = (SidelessMode) cm.getSetting(Settings.SIDELESS_MODE); + this.sidelessMode = this.isTile ? (SidelessMode) cm.getSetting(Settings.SIDELESS_MODE) : SidelessMode.SIDELESS; } } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java index ba552dba..1ab648bc 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidCraftConfirm.java @@ -1,5 +1,19 @@ package com.glodblock.github.client.gui.container; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Objects; +import java.util.concurrent.Future; + +import javax.annotation.Nonnull; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.SecurityPermissions; @@ -21,6 +35,7 @@ import appeng.container.guisync.GuiSync; import appeng.container.implementations.CraftingCPURecord; import appeng.core.AELog; import appeng.util.Platform; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.parts.PartFluidPatternTerminal; import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; @@ -30,17 +45,6 @@ import com.glodblock.github.network.SPacketMEInventoryUpdate; import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.BlockPos; import com.google.common.collect.ImmutableSet; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Objects; -import java.util.concurrent.Future; -import javax.annotation.Nonnull; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; public class ContainerFluidCraftConfirm extends AEBaseContainer { @@ -162,8 +166,8 @@ public class ContainerFluidCraftConfirm extends AEBaseContainer { final SPacketMEInventoryUpdate a = new SPacketMEInventoryUpdate((byte) 0); final SPacketMEInventoryUpdate b = new SPacketMEInventoryUpdate((byte) 1); - final SPacketMEInventoryUpdate c = - this.result.isSimulation() ? new SPacketMEInventoryUpdate((byte) 2) : null; + final SPacketMEInventoryUpdate c = this.result.isSimulation() ? new SPacketMEInventoryUpdate((byte) 2) + : null; final IItemList plan = AEApi.instance().storage().createItemList(); this.result.populatePlan(plan); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidIO.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidIO.java index 3b09273a..0efe9383 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidIO.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidIO.java @@ -1,16 +1,19 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.api.config.Settings; import appeng.api.config.YesNo; import appeng.api.util.IConfigManager; import appeng.tile.inventory.AppEngInternalAEInventory; + import com.glodblock.github.client.gui.container.base.FCContainerFluidConfigurable; import com.glodblock.github.common.parts.PartFluidExportBus; import com.glodblock.github.common.parts.base.FCSharedFluidBus; import com.glodblock.github.util.Ae2Reflect; -import net.minecraft.entity.player.InventoryPlayer; public class ContainerFluidIO extends FCContainerFluidConfigurable { + private final FCSharedFluidBus bus; public ContainerFluidIO(InventoryPlayer ip, FCSharedFluidBus te) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidInterface.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidInterface.java index 4998e57e..5bf5dcc4 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidInterface.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidInterface.java @@ -1,20 +1,23 @@ package com.glodblock.github.client.gui.container; +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; + import appeng.api.storage.data.IAEFluidStack; import appeng.container.AEBaseContainer; import appeng.container.slot.IOptionalSlotHost; import appeng.util.item.AEFluidStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.IDualHost; import com.glodblock.github.inventory.slot.OptionalFluidSlotFakeTypeOnly; import com.glodblock.github.network.SPacketFluidUpdate; -import java.util.HashMap; -import java.util.Map; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; public class ContainerFluidInterface extends AEBaseContainer implements IOptionalSlotHost { @@ -27,8 +30,8 @@ public class ContainerFluidInterface extends AEBaseContainer implements IOptiona final int y = 35; final int x = 35; for (int i = 0; i < 6; i++) { - addSlotToContainer(new OptionalFluidSlotFakeTypeOnly( - inv, tile.getDualityFluid().getConfig(), this, i, x, y, i, 0, 0)); + addSlotToContainer( + new OptionalFluidSlotFakeTypeOnly(inv, tile.getDualityFluid().getConfig(), this, i, x, y, i, 0, 0)); } bindPlayerInventory(ipl, 0, 149); } @@ -50,10 +53,7 @@ public class ContainerFluidInterface extends AEBaseContainer implements IOptiona tmp.put(i, tile.getInternalFluid().getFluidInSlot(i)); } for (int i = 0; i < tile.getConfig().getSizeInventory(); i++) { - tmp.put( - i + 100, - AEFluidStack.create( - ItemFluidPacket.getFluidStack(tile.getConfig().getStackInSlot(i)))); + tmp.put(i + 100, AEFluidStack.create(ItemFluidPacket.getFluidStack(tile.getConfig().getStackInSlot(i)))); } for (final Object g : this.crafters) { if (g instanceof EntityPlayer) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidLevelEmitter.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidLevelEmitter.java index e4dcdcb9..f6a82218 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidLevelEmitter.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidLevelEmitter.java @@ -1,22 +1,26 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; + import appeng.api.config.*; import appeng.api.implementations.IUpgradeableHost; import appeng.container.guisync.GuiSync; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; + import com.glodblock.github.client.gui.container.base.FCContainerFluidConfigurable; import com.glodblock.github.common.parts.PartFluidLevelEmitter; import com.glodblock.github.inventory.slot.OptionalFluidSlotFakeTypeOnly; import com.glodblock.github.util.Ae2Reflect; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiTextField; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; public class ContainerFluidLevelEmitter extends FCContainerFluidConfigurable { + private final PartFluidLevelEmitter lvlEmitter; @SideOnly(Side.CLIENT) @@ -81,8 +85,9 @@ public class ContainerFluidLevelEmitter extends FCContainerFluidConfigurable { if (Platform.isServer()) { this.EmitterValue = this.lvlEmitter.getReportingValue(); - this.setRedStoneMode((RedstoneMode) - Ae2Reflect.getUpgradeableHost(this).getConfigManager().getSetting(Settings.REDSTONE_EMITTER)); + this.setRedStoneMode( + (RedstoneMode) Ae2Reflect.getUpgradeableHost(this).getConfigManager() + .getSetting(Settings.REDSTONE_EMITTER)); } this.standardDetectAndSendChanges(); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java index 11e2fa42..201f6095 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidMonitor.java @@ -1,5 +1,21 @@ package com.glodblock.github.client.gui.container; +import java.nio.BufferOverflowException; +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.IFluidContainerItem; + +import org.apache.commons.lang3.tuple.MutablePair; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.implementations.guiobjects.IPortableCell; @@ -22,43 +38,35 @@ import appeng.me.helpers.ChannelPowerSrc; import appeng.util.Platform; import appeng.util.item.AEFluidStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.base.FCContainerMonitor; import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.inventory.item.IFluidPortableCell; import com.glodblock.github.network.CPacketFluidUpdate; import com.glodblock.github.network.SPacketFluidUpdate; import com.glodblock.github.network.SPacketMEInventoryUpdate; import com.glodblock.github.util.Util; -import java.nio.BufferOverflowException; -import java.util.HashMap; -import java.util.Map; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.IFluidContainerItem; -import org.apache.commons.lang3.tuple.MutablePair; public class ContainerFluidMonitor extends FCContainerMonitor { + private final IItemList fluids = AEApi.instance().storage().createFluidList(); public ContainerFluidMonitor(final InventoryPlayer ip, final ITerminalHost monitorable) { this(ip, monitorable, true); } - protected ContainerFluidMonitor( - final InventoryPlayer ip, final ITerminalHost monitorable, final boolean bindInventory) { + protected ContainerFluidMonitor(final InventoryPlayer ip, final ITerminalHost monitorable, + final boolean bindInventory) { super(ip, monitorable, bindInventory); if (Platform.isServer()) { this.serverCM = monitorable.getConfigManager(); this.monitor = monitorable.getFluidInventory(); if (this.monitor != null) { this.monitor.addListener(this, null); - if (monitorable instanceof IPortableCell) { + if (monitorable instanceof IFluidPortableCell) { + this.setPowerSource((IEnergySource) monitorable); + } else if (monitorable instanceof IPortableCell) { this.setPowerSource((IEnergySource) monitorable); } else if (monitorable instanceof IMEChest) { this.setPowerSource((IEnergySource) monitorable); @@ -103,8 +111,7 @@ public class ContainerFluidMonitor extends FCContainerMonitor { public ItemStack transferStackInSlot(final EntityPlayer p, final int idx) { if (Platform.isClient()) { Slot clickSlot = (Slot) this.inventorySlots.get(idx); - if ((clickSlot instanceof SlotPlayerInv || clickSlot instanceof SlotPlayerHotBar) - && clickSlot.getHasStack() + if ((clickSlot instanceof SlotPlayerInv || clickSlot instanceof SlotPlayerHotBar) && clickSlot.getHasStack() && Util.FluidUtil.isFluidContainer(clickSlot.getStack())) { ItemStack tis = clickSlot.getStack(); Map tmp = new HashMap<>(); @@ -169,8 +176,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { } @Override - public void postChange( - IBaseMonitor monitor, Iterable change, BaseActionSource actionSource) { + public void postChange(IBaseMonitor monitor, Iterable change, + BaseActionSource actionSource) { for (final IAEFluidStack is : change) { this.fluids.add(is); } @@ -204,8 +211,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { this.dropItem(is); } - public void postChange( - Iterable change, ItemStack fluidContainer, EntityPlayer player, int slotIndex) { + public void postChange(Iterable change, ItemStack fluidContainer, EntityPlayer player, + int slotIndex) { for (IAEFluidStack fluid : change) { IAEFluidStack nfluid = this.monitor.getStorageList().findPrecise(fluid); ItemStack out = fluidContainer.copy(); @@ -217,8 +224,7 @@ public class ContainerFluidMonitor extends FCContainerMonitor { MutablePair fillStack = Util.FluidUtil.fillStack(out, toExtract.getFluidStack()); if (fillStack.right == null || fillStack.left <= 0) continue; toExtract.setStackSize((long) fillStack.left * fluidContainer.stackSize); - IAEFluidStack tmp = this.host - .getFluidInventory() + IAEFluidStack tmp = this.host.getFluidInventory() .extractItems(toExtract, Actionable.SIMULATE, this.getActionSource()); if (tmp == null) continue; fillStack.right.stackSize = (int) (tmp.getStackSize() / fillStack.left); @@ -229,7 +235,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { if ((int) (tmp.getStackSize() % fillStack.left) > 0) { this.dropItem( Util.FluidUtil.setFluidContainerAmount( - fillStack.right, (int) (tmp.getStackSize() % fillStack.left)), + fillStack.right, + (int) (tmp.getStackSize() % fillStack.left)), 1); out.stackSize++; } @@ -242,11 +249,10 @@ public class ContainerFluidMonitor extends FCContainerMonitor { AEFluidStack fluidStack = Util.getAEFluidFromItem(fluidContainer); final IAEFluidStack aeFluidStack = fluidStack.copy(); // simulate result is incorrect. so I'm using other solution and ec2 both mod have same issues - final IAEFluidStack notInserted = this.host - .getFluidInventory() + final IAEFluidStack notInserted = this.host.getFluidInventory() .injectItems(aeFluidStack, Actionable.MODULATE, this.getActionSource()); - MutablePair drainStack = - Util.FluidUtil.drainStack(out.copy(), aeFluidStack.getFluidStack()); + MutablePair drainStack = Util.FluidUtil + .drainStack(out.copy(), aeFluidStack.getFluidStack()); if (notInserted != null && notInserted.getStackSize() > 0) { if (fluidStack.getStackSize() == notInserted.getStackSize()) continue; aeFluidStack.decStackSize(notInserted.getStackSize()); @@ -254,14 +260,14 @@ public class ContainerFluidMonitor extends FCContainerMonitor { if (drainStack.left > aeFluidStack.getStackSize() && FluidContainerRegistry.isContainer(drainStack.right)) { aeFluidStack.setStackSize(drainStack.left - aeFluidStack.getStackSize()); - this.host - .getFluidInventory() + this.host.getFluidInventory() .extractItems(aeFluidStack, Actionable.MODULATE, this.getActionSource()); continue; } - this.dropItem( - drainStack.right, (int) (aeFluidStack.getStackSize() / drainStack.left)); // drop empty item + this.dropItem(drainStack.right, (int) (aeFluidStack.getStackSize() / drainStack.left)); // drop + // empty + // item out.stackSize = (int) (notInserted.getStackSize() / drainStack.left); if (drainStack.right.getItem() instanceof IFluidContainerItem) { if (notInserted.getStackSize() % drainStack.left > 0) { @@ -273,8 +279,7 @@ public class ContainerFluidMonitor extends FCContainerMonitor { } else if (FluidContainerRegistry.isContainer(drainStack.right)) { if (notInserted.getStackSize() % drainStack.left > 0) { aeFluidStack.setStackSize(aeFluidStack.getStackSize() % drainStack.left); - this.host - .getFluidInventory() + this.host.getFluidInventory() .extractItems(aeFluidStack, Actionable.MODULATE, this.getActionSource()); out.stackSize++; } @@ -284,8 +289,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { if (slotIndex == -1) { out.stackSize = fluidContainer.stackSize; } else { - out.stackSize = - (int) (fluidContainer.stackSize - (aeFluidStack.getStackSize() / drainStack.left)); + out.stackSize = (int) (fluidContainer.stackSize + - (aeFluidStack.getStackSize() / drainStack.left)); } this.dropItem(drainStack.right, fluidContainer.stackSize); // drop empty item } @@ -300,8 +305,8 @@ public class ContainerFluidMonitor extends FCContainerMonitor { (EntityPlayerMP) player); } else { player.inventory.setItemStack(null); - FluidCraft.proxy.netHandler.sendTo( - new SPacketFluidUpdate(new HashMap<>()), (EntityPlayerMP) player); + FluidCraft.proxy.netHandler + .sendTo(new SPacketFluidUpdate(new HashMap<>()), (EntityPlayerMP) player); } } else { player.inventory.setInventorySlotContents(slotIndex, out.stackSize > 0 ? out : null); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPacketDecoder.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPacketDecoder.java index fe8b9963..3ab7ba1c 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPacketDecoder.java @@ -2,10 +2,12 @@ package com.glodblock.github.client.gui.container; import static com.glodblock.github.loader.ItemAndBlockHolder.PACKET; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.container.AEBaseContainer; + import com.glodblock.github.common.tile.TileFluidPacketDecoder; import com.glodblock.github.inventory.slot.FCSlotRestrictedInput; -import net.minecraft.entity.player.InventoryPlayer; public class ContainerFluidPacketDecoder extends AEBaseContainer { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternEncoder.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternEncoder.java index d35849a2..37fe4d81 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternEncoder.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternEncoder.java @@ -1,10 +1,20 @@ package com.glodblock.github.client.gui.container; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + import appeng.api.AEApi; import appeng.api.storage.data.IAEItemStack; import appeng.container.AEBaseContainer; import appeng.container.slot.SlotRestrictedInput; import appeng.helpers.InventoryAction; + import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidEncodedPattern; import com.glodblock.github.common.item.ItemFluidPacket; @@ -16,13 +26,6 @@ import com.glodblock.github.inventory.slot.SlotFluidConvertingFake; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.FluidPatternDetails; import com.glodblock.github.util.Util; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPatternConsumer { @@ -39,10 +42,22 @@ public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPa } addSlotToContainer(new SlotFluidConvertingFake(output, y, 113, 17 + y * 18)); } - addSlotToContainer(new SlotRestrictedInput( - SlotRestrictedInput.PlacableItemType.BLANK_PATTERN, tile.getInventory(), 0, 138, 20, ipl)); - addSlotToContainer(new SlotRestrictedInput( - SlotRestrictedInput.PlacableItemType.ENCODED_PATTERN, tile.getInventory(), 1, 138, 50, ipl)); + addSlotToContainer( + new SlotRestrictedInput( + SlotRestrictedInput.PlacableItemType.BLANK_PATTERN, + tile.getInventory(), + 0, + 138, + 20, + ipl)); + addSlotToContainer( + new SlotRestrictedInput( + SlotRestrictedInput.PlacableItemType.ENCODED_PATTERN, + tile.getInventory(), + 1, + 138, + 50, + ipl)); bindPlayerInventory(ipl, 0, 84); } @@ -51,9 +66,8 @@ public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPa } private static boolean isNotPattern(ItemStack stack) { - return stack == null - || !(AEApi.instance().definitions().materials().blankPattern().isSameAs(stack) - || (stack.getItem() instanceof ItemFluidEncodedPattern)); + return stack == null || !(AEApi.instance().definitions().materials().blankPattern().isSameAs(stack) + || (stack.getItem() instanceof ItemFluidEncodedPattern)); } public boolean canEncodePattern() { @@ -61,8 +75,7 @@ public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPa && isNotPattern(tile.getInventory().getStackInSlot(1))) { return false; } - find_input: - { + find_input: { for (IAEItemStack stack : tile.getCraftingSlots()) { if (stack != null && stack.getStackSize() > 0) { break find_input; @@ -136,8 +149,10 @@ public class ContainerFluidPatternEncoder extends AEBaseContainer implements IPa if (stack == null) { slot.putStack(Util.copyStackWithSize(inSlot, Math.max(1, inSlot.stackSize - 1))); } else if (stack.isItemEqual(inSlot)) { - slot.putStack(Util.copyStackWithSize( - inSlot, Math.min(inSlot.getMaxStackSize(), inSlot.stackSize + 1))); + slot.putStack( + Util.copyStackWithSize( + inSlot, + Math.min(inSlot.getMaxStackSize(), inSlot.stackSize + 1))); } else { ((SlotFluidConvertingFake) slot) .putConvertedStack(Objects.requireNonNull(Util.copyStackWithSize(stack, 1))); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java index 88f382fa..3a07166a 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java @@ -1,18 +1,20 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; + import appeng.api.storage.ITerminalHost; import appeng.container.slot.OptionalSlotFake; import appeng.container.slot.SlotFakeCraftingMatrix; import appeng.container.slot.SlotPatternOutputs; import appeng.container.slot.SlotPatternTerm; import appeng.util.Platform; + import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; public class ContainerFluidPatternTerminal extends FCContainerEncodeTerminal { @@ -25,8 +27,11 @@ public class ContainerFluidPatternTerminal extends FCContainerEncodeTerminal { for (int y = 0; y < 3; y++) { for (int x = 0; x < 3; x++) { this.addSlotToContainer( - this.craftingSlots[x + y * 3] = - new SlotFakeCraftingMatrix(this.crafting, x + y * 3, 18 + x * 18, -76 + y * 18)); + this.craftingSlots[x + y * 3] = new SlotFakeCraftingMatrix( + this.crafting, + x + y * 3, + 18 + x * 18, + -76 + y * 18)); } } @@ -101,7 +106,7 @@ public class ContainerFluidPatternTerminal extends FCContainerEncodeTerminal { if (this.isCraftingMode()) { final ItemStack out = this.getAndUpdateOutput(); if (out != null && out.stackSize > 0) { - return new ItemStack[] {out}; + return new ItemStack[] { out }; } } return super.getOutputs(); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java index 6c281306..d9aeb692 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java @@ -1,15 +1,17 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; + import appeng.api.storage.ITerminalHost; import appeng.container.slot.IOptionalSlotHost; import appeng.container.slot.OptionalSlotFake; import appeng.helpers.InventoryAction; import appeng.util.Platform; + import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; public class ContainerFluidPatternTerminalEx extends FCContainerEncodeTerminal { @@ -27,8 +29,8 @@ public class ContainerFluidPatternTerminalEx extends FCContainerEncodeTerminal { for (int y = 0; y < CRAFTING_GRID_HEIGHT; y++) { for (int x = 0; x < CRAFTING_GRID_WIDTH; x++) { this.addSlotToContainer( - this.craftingSlots[x + y * CRAFTING_GRID_WIDTH + page * CRAFTING_GRID_SLOTS] = - new ProcessingSlotFake( + this.craftingSlots[x + y * CRAFTING_GRID_WIDTH + + page * CRAFTING_GRID_SLOTS] = new ProcessingSlotFake( crafting, this, x + y * CRAFTING_GRID_WIDTH + page * CRAFTING_GRID_SLOTS, @@ -42,8 +44,8 @@ public class ContainerFluidPatternTerminalEx extends FCContainerEncodeTerminal { for (int x = 0; x < CRAFTING_GRID_WIDTH; x++) { for (int y = 0; y < CRAFTING_GRID_HEIGHT; y++) { this.addSlotToContainer( - this.outputSlots[x * CRAFTING_GRID_HEIGHT + y + page * CRAFTING_GRID_SLOTS] = - new ProcessingSlotFake( + this.outputSlots[x * CRAFTING_GRID_HEIGHT + y + + page * CRAFTING_GRID_SLOTS] = new ProcessingSlotFake( output, this, x * CRAFTING_GRID_HEIGHT + y + page * CRAFTING_GRID_SLOTS, @@ -135,15 +137,8 @@ public class ContainerFluidPatternTerminalEx extends FCContainerEncodeTerminal { private static final int POSITION_SHIFT = 9000; private boolean hidden = false; - public ProcessingSlotFake( - IInventory inv, - IOptionalSlotHost containerBus, - int idx, - int x, - int y, - int offX, - int offY, - int groupNum) { + public ProcessingSlotFake(IInventory inv, IOptionalSlotHost containerBus, int idx, int x, int y, int offX, + int offY, int groupNum) { super(inv, containerBus, idx, x, y, offX, offY, groupNum); this.setRenderDisabled(false); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java new file mode 100644 index 00000000..ae94e6b8 --- /dev/null +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPortableCell.java @@ -0,0 +1,71 @@ +package com.glodblock.github.client.gui.container; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + +import appeng.api.config.Actionable; +import appeng.api.config.PowerMultiplier; +import appeng.util.Platform; + +import com.glodblock.github.inventory.item.IFluidPortableCell; + +public class ContainerFluidPortableCell extends ContainerFluidMonitor { + + private double powerMultiplier = 0.5; + private final IFluidPortableCell civ; + private int ticks = 0; + private final int slot; + + public ContainerFluidPortableCell(final InventoryPlayer ip, final IFluidPortableCell monitorable) { + super(ip, monitorable, false); + if (monitorable != null) { + final int slotIndex = monitorable.getInventorySlot(); + this.lockPlayerInventorySlot(slotIndex); + this.slot = slotIndex; + } else { + this.slot = -1; + this.lockPlayerInventorySlot(ip.currentItem); + } + this.civ = monitorable; + this.bindPlayerInventory(ip, 0, 0); + } + + @Override + public void detectAndSendChanges() { + final ItemStack currentItem = this.slot < 0 ? this.getPlayerInv().getCurrentItem() + : this.getPlayerInv().getStackInSlot(this.slot); + if (this.civ != null) { + if (currentItem != this.civ.getItemStack()) { + if (currentItem != null) { + if (Platform.isSameItem(this.civ.getItemStack(), currentItem)) { + this.getPlayerInv() + .setInventorySlotContents(this.getPlayerInv().currentItem, this.civ.getItemStack()); + } else { + this.setValidContainer(false); + } + } else { + this.setValidContainer(false); + } + } + } else { + this.setValidContainer(false); + } + this.ticks++; + if (this.ticks > 10 && this.civ != null) { + this.civ.extractAEPower( + this.getPowerMultiplier() * this.ticks, + Actionable.MODULATE, + PowerMultiplier.CONFIG); + this.ticks = 0; + } + super.detectAndSendChanges(); + } + + private double getPowerMultiplier() { + return this.powerMultiplier; + } + + void setPowerMultiplier(final double powerMultiplier) { + this.powerMultiplier = powerMultiplier; + } +} diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidStorageBus.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidStorageBus.java index 9ad964df..3adb9246 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidStorageBus.java @@ -1,5 +1,10 @@ package com.glodblock.github.client.gui.container; +import java.util.Iterator; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; + import appeng.api.AEApi; import appeng.api.config.*; import appeng.api.storage.IMEInventory; @@ -10,14 +15,12 @@ import appeng.container.slot.SlotRestrictedInput; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; import appeng.util.iterators.NullIterator; + import com.glodblock.github.client.gui.container.base.FCContainerFluidConfigurable; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.PartFluidStorageBus; import com.glodblock.github.inventory.slot.OptionalFluidSlotFakeTypeOnly; import com.glodblock.github.util.Ae2Reflect; -import java.util.Iterator; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; public class ContainerFluidStorageBus extends FCContainerFluidConfigurable { @@ -51,41 +54,46 @@ public class ContainerFluidStorageBus extends FCContainerFluidConfigurable { new OptionalFluidSlotFakeTypeOnly(config, null, this, y * 9 + x, xo, yo, x, y, y)); } } - this.addSlotToContainer((new SlotRestrictedInput( - SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 0, 187, 8, this.getInventoryPlayer())) - .setNotDraggable()); - this.addSlotToContainer((new SlotRestrictedInput( + this.addSlotToContainer( + (new SlotRestrictedInput( + SlotRestrictedInput.PlacableItemType.UPGRADES, + upgrades, + 0, + 187, + 8, + this.getInventoryPlayer())).setNotDraggable()); + this.addSlotToContainer( + (new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 1, 187, 8 + 18, - this.getInventoryPlayer())) - .setNotDraggable()); - this.addSlotToContainer((new SlotRestrictedInput( + this.getInventoryPlayer())).setNotDraggable()); + this.addSlotToContainer( + (new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 2, 187, 8 + 18 * 2, - this.getInventoryPlayer())) - .setNotDraggable()); - this.addSlotToContainer((new SlotRestrictedInput( + this.getInventoryPlayer())).setNotDraggable()); + this.addSlotToContainer( + (new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 3, 187, 8 + 18 * 3, - this.getInventoryPlayer())) - .setNotDraggable()); - this.addSlotToContainer((new SlotRestrictedInput( + this.getInventoryPlayer())).setNotDraggable()); + this.addSlotToContainer( + (new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.UPGRADES, upgrades, 4, 187, 8 + 18 * 4, - this.getInventoryPlayer())) - .setNotDraggable()); + this.getInventoryPlayer())).setNotDraggable()); } @Override @@ -113,10 +121,11 @@ public class ContainerFluidStorageBus extends FCContainerFluidConfigurable { this.verifyPermissions(SecurityPermissions.BUILD, false); if (Platform.isServer()) { - this.setReadWriteMode((AccessRestriction) - Ae2Reflect.getUpgradeList(this).getConfigManager().getSetting(Settings.ACCESS)); - this.setStorageFilter((StorageFilter) - Ae2Reflect.getUpgradeList(this).getConfigManager().getSetting(Settings.STORAGE_FILTER)); + this.setReadWriteMode( + (AccessRestriction) Ae2Reflect.getUpgradeList(this).getConfigManager().getSetting(Settings.ACCESS)); + this.setStorageFilter( + (StorageFilter) Ae2Reflect.getUpgradeList(this).getConfigManager() + .getSetting(Settings.STORAGE_FILTER)); } this.standardDetectAndSendChanges(); @@ -142,8 +151,8 @@ public class ContainerFluidStorageBus extends FCContainerFluidConfigurable { final IMEInventory cellInv = this.bus.getInternalHandler(); Iterator i = new NullIterator<>(); if (cellInv != null) { - final IItemList list = - cellInv.getAvailableItems(AEApi.instance().storage().createFluidList()); + final IItemList list = cellInv + .getAvailableItems(AEApi.instance().storage().createFluidList()); i = list.iterator(); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerIngredientBuffer.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerIngredientBuffer.java index 37c95813..1ac9a816 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerIngredientBuffer.java @@ -1,19 +1,22 @@ package com.glodblock.github.client.gui.container; -import appeng.api.storage.data.IAEFluidStack; -import appeng.container.AEBaseContainer; -import appeng.container.slot.SlotNormal; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.client.gui.ITankDump; -import com.glodblock.github.common.tile.TileIngredientBuffer; -import com.glodblock.github.network.SPacketFluidUpdate; import java.util.HashMap; import java.util.Map; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; +import appeng.api.storage.data.IAEFluidStack; +import appeng.container.AEBaseContainer; +import appeng.container.slot.SlotNormal; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.client.gui.ITankDump; +import com.glodblock.github.common.tile.TileIngredientBuffer; +import com.glodblock.github.network.SPacketFluidUpdate; + public class ContainerIngredientBuffer extends AEBaseContainer implements ITankDump { private final TileIngredientBuffer tile; diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerItemMonitor.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerItemMonitor.java index a27245f2..154717ee 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerItemMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerItemMonitor.java @@ -1,5 +1,13 @@ package com.glodblock.github.client.gui.container; +import java.nio.BufferOverflowException; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.AEApi; import appeng.api.implementations.guiobjects.IPortableCell; import appeng.api.implementations.tiles.IMEChest; @@ -17,25 +25,21 @@ import appeng.api.storage.data.IItemList; import appeng.container.slot.SlotRestrictedInput; import appeng.me.helpers.ChannelPowerSrc; import appeng.util.Platform; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.base.FCContainerMonitor; import com.glodblock.github.network.SPacketMEInventoryUpdate; -import java.nio.BufferOverflowException; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraftforge.common.util.ForgeDirection; public class ContainerItemMonitor extends FCContainerMonitor { + private final IItemList items = AEApi.instance().storage().createItemList(); public ContainerItemMonitor(final InventoryPlayer ip, final ITerminalHost monitorable) { this(ip, monitorable, true); } - protected ContainerItemMonitor( - final InventoryPlayer ip, final ITerminalHost monitorable, final boolean bindInventory) { + protected ContainerItemMonitor(final InventoryPlayer ip, final ITerminalHost monitorable, + final boolean bindInventory) { super(ip, monitorable, bindInventory); if (Platform.isServer()) { this.serverCM = monitorable.getConfigManager(); @@ -140,9 +144,7 @@ public class ContainerItemMonitor extends FCContainerMonitor { } @Override - public void postChange( - final IBaseMonitor monitor, - final Iterable change, + public void postChange(final IBaseMonitor monitor, final Iterable change, final BaseActionSource source) { for (final IAEItemStack is : change) { this.items.add(is); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerLargeIngredientBuffer.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerLargeIngredientBuffer.java index 9bad2a7f..9a872422 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerLargeIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerLargeIngredientBuffer.java @@ -1,10 +1,12 @@ package com.glodblock.github.client.gui.container; -import appeng.container.slot.SlotNormal; -import com.glodblock.github.common.tile.TileLargeIngredientBuffer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; +import appeng.container.slot.SlotNormal; + +import com.glodblock.github.common.tile.TileLargeIngredientBuffer; + public class ContainerLargeIngredientBuffer extends ContainerIngredientBuffer { public ContainerLargeIngredientBuffer(InventoryPlayer ipl, TileLargeIngredientBuffer tile) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerLevelMaintainer.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerLevelMaintainer.java index 109db93a..10ff6353 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerLevelMaintainer.java @@ -1,16 +1,19 @@ package com.glodblock.github.client.gui.container; -import appeng.container.AEBaseContainer; -import appeng.util.item.AEItemStack; -import com.glodblock.github.common.tile.TileLevelMaintainer; -import com.glodblock.github.inventory.AeItemStackHandler; -import com.glodblock.github.inventory.slot.SlotFluidConvertingFake; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import appeng.container.AEBaseContainer; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.common.tile.TileLevelMaintainer; +import com.glodblock.github.inventory.AeItemStackHandler; +import com.glodblock.github.inventory.slot.SlotFluidConvertingFake; + public class ContainerLevelMaintainer extends AEBaseContainer { + private final TileLevelMaintainer tile; private final SlotFluidConvertingFake[] requestSlots = new SlotFluidConvertingFake[TileLevelMaintainer.REQ_COUNT]; diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerOCPatternEditor.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerOCPatternEditor.java index cb1f00b7..ef33c846 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerOCPatternEditor.java @@ -1,9 +1,11 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; + import appeng.container.AEBaseContainer; import appeng.container.slot.SlotRestrictedInput; + import com.glodblock.github.common.tile.TileOCPatternEditor; -import net.minecraft.entity.player.InventoryPlayer; public class ContainerOCPatternEditor extends AEBaseContainer { @@ -11,13 +13,14 @@ public class ContainerOCPatternEditor extends AEBaseContainer { super(ipl, tile); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - addSlotToContainer(new SlotRestrictedInput( - SlotRestrictedInput.PlacableItemType.PATTERN, - tile.getInternalInventory(), - j * 4 + i, - 55 + i * 18, - 17 + j * 18, - ipl)); + addSlotToContainer( + new SlotRestrictedInput( + SlotRestrictedInput.PlacableItemType.PATTERN, + tile.getInternalInventory(), + j * 4 + i, + 55 + i * 18, + 17 + j * 18, + ipl)); } } bindPlayerInventory(ipl, 0, 104); diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerPatternValueAmount.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerPatternValueAmount.java index 7c3d9350..525a3f22 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerPatternValueAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerPatternValueAmount.java @@ -1,13 +1,14 @@ package com.glodblock.github.client.gui.container; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + import appeng.api.config.SecurityPermissions; import appeng.api.storage.ITerminalHost; import appeng.container.AEBaseContainer; import appeng.container.guisync.GuiSync; import appeng.container.slot.SlotInaccessible; import appeng.tile.inventory.AppEngInternalInventory; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; public class ContainerPatternValueAmount extends AEBaseContainer { diff --git a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java index b9a5a368..d51fb67b 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerEncodeTerminal.java @@ -1,5 +1,22 @@ package com.glodblock.github.client.gui.container.base; +import java.util.*; +import java.util.stream.Collectors; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; + import appeng.api.AEApi; import appeng.api.definitions.IDefinitions; import appeng.api.storage.ITerminalHost; @@ -14,6 +31,7 @@ import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.InvOperation; import appeng.util.Platform; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.gui.container.ContainerItemMonitor; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidEncodedPattern; @@ -23,21 +41,6 @@ import com.glodblock.github.inventory.IPatternConsumer; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.FluidPatternDetails; import com.glodblock.github.util.Util; -import java.util.*; -import java.util.stream.Collectors; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidContainerItem; public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor implements IAEAppEngInventory, IOptionalSlotHost, IContainerCraftingPacket, IPatternConsumer { @@ -154,8 +157,7 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor public ItemStack transferStackInSlot(EntityPlayer p, int idx) { Slot clickSlot = (Slot) this.inventorySlots.get(idx); ItemStack is = clickSlot.getStack(); - if (is != null - && !patternSlotOUT.getHasStack() + if (is != null && !patternSlotOUT.getHasStack() && is.stackSize == 1 && (is.getItem() instanceof ItemFluidEncodedPattern || is.getItem() instanceof ItemEncodedPattern)) { ItemStack output = is.copy(); @@ -173,20 +175,16 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor } protected static boolean canDoubleStacks(SlotFake[] slots) { - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); - long emptySlots = - enabledSlots.stream().filter(s -> s.getStack() == null).count(); - long fullSlots = enabledSlots.stream() - .filter(s -> s.getStack() != null && s.getStack().stackSize * 2 > 127) + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + long emptySlots = enabledSlots.stream().filter(s -> s.getStack() == null).count(); + long fullSlots = enabledSlots.stream().filter(s -> s.getStack() != null && s.getStack().stackSize * 2 > 127) .count(); return fullSlots <= emptySlots; } protected static void doubleStacksInternal(SlotFake[] slots) { List overFlowStacks = new ArrayList<>(); - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); for (final Slot s : enabledSlots) { ItemStack st = s.getStack(); if (st == null) continue; @@ -214,26 +212,20 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor } protected static boolean containsItem(SlotFake[] slots) { - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); - long item = enabledSlots.stream() - .filter(s -> s.getStack() != null && !Util.isFluidPacket(s.getStack())) + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + long item = enabledSlots.stream().filter(s -> s.getStack() != null && !Util.isFluidPacket(s.getStack())) .count(); return item > 0; } protected static boolean containsFluid(SlotFake[] slots) { - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); - long fluid = enabledSlots.stream() - .filter(s -> Util.isFluidPacket(s.getStack())) - .count(); + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + long fluid = enabledSlots.stream().filter(s -> Util.isFluidPacket(s.getStack())).count(); return fluid > 0; } protected static boolean nonNullSlot(SlotFake[] slots) { - List enabledSlots = - Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); + List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); long object = enabledSlots.stream().filter(s -> s.getStack() != null).count(); return object > 0; } @@ -296,12 +288,8 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { // NO-OP } @@ -377,22 +365,14 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor } // add a new encoded pattern. - for (final ItemStack encodedPatternStack : AEApi.instance() - .definitions() - .items() - .encodedPattern() - .maybeStack(1) - .asSet()) { + for (final ItemStack encodedPatternStack : AEApi.instance().definitions().items().encodedPattern() + .maybeStack(1).asSet()) { output = encodedPatternStack; this.patternSlotOUT.putStack(output); } } else if (output.getItem() instanceof ItemFluidEncodedPattern) { - for (final ItemStack encodedPatternStack : AEApi.instance() - .definitions() - .items() - .encodedPattern() - .maybeStack(1) - .asSet()) { + for (final ItemStack encodedPatternStack : AEApi.instance().definitions().items().encodedPattern() + .maybeStack(1).asSet()) { output = encodedPatternStack; this.patternSlotOUT.putStack(output); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerFluidConfigurable.java b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerFluidConfigurable.java index ba43e25b..43620cc1 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerFluidConfigurable.java +++ b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerFluidConfigurable.java @@ -1,5 +1,15 @@ package com.glodblock.github.client.gui.container.base; +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.config.Upgrades; import appeng.api.implementations.IUpgradeableHost; import appeng.api.storage.data.IAEFluidStack; @@ -8,20 +18,13 @@ import appeng.container.slot.AppEngSlot; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; import appeng.util.item.AEFluidStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.slot.OptionalFluidSlotFakeTypeOnly; import com.glodblock.github.network.SPacketFluidUpdate; import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.Util; -import java.util.HashMap; -import java.util.Map; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; public abstract class FCContainerFluidConfigurable extends ContainerUpgradeable { @@ -99,9 +102,9 @@ public abstract class FCContainerFluidConfigurable extends ContainerUpgradeable final AppEngInternalAEInventory inv = this.getFakeFluidInv(); final Map tmp = new HashMap<>(); for (int i = 0; i < inv.getSizeInventory(); ++i) { - if (inv.getStackInSlot(i) != null - && !this.isValidForConfig( - i, AEFluidStack.create(ItemFluidPacket.getFluidStack(inv.getStackInSlot(i))))) { + if (inv.getStackInSlot(i) != null && !this.isValidForConfig( + i, + AEFluidStack.create(ItemFluidPacket.getFluidStack(inv.getStackInSlot(i))))) { inv.setInventorySlotContents(i, null); } tmp.put(i, AEFluidStack.create(ItemFluidPacket.getFluidStack(inv.getStackInSlot(i)))); diff --git a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java index 79073665..6217f96e 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java @@ -1,5 +1,16 @@ package com.glodblock.github.client.gui.container.base; +import java.io.IOException; + +import javax.annotation.Nonnull; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + import appeng.api.config.*; import appeng.api.networking.IGridNode; import appeng.api.networking.energy.IEnergyGrid; @@ -20,14 +31,6 @@ import appeng.helpers.WirelessTerminalGuiObject; import appeng.util.ConfigManager; import appeng.util.IConfigManagerHost; import appeng.util.Platform; -import java.io.IOException; -import javax.annotation.Nonnull; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; public abstract class FCContainerMonitor> extends AEBaseContainer implements IConfigManagerHost, IConfigurableObject, IMEMonitorHandlerReceiver { @@ -51,8 +54,8 @@ public abstract class FCContainerMonitor> extends AEBaseCo this(ip, monitorable, true); } - protected FCContainerMonitor( - final InventoryPlayer ip, final ITerminalHost monitorable, final boolean bindInventory) { + protected FCContainerMonitor(final InventoryPlayer ip, final ITerminalHost monitorable, + final boolean bindInventory) { super( ip, monitorable instanceof TileEntity ? (TileEntity) monitorable : null, @@ -83,7 +86,8 @@ public abstract class FCContainerMonitor> extends AEBaseCo for (final Object crafter : this.crafters) { try { NetworkHandler.instance.sendTo( - new PacketValueConfig(set.name(), sideLocal.name()), (EntityPlayerMP) crafter); + new PacketValueConfig(set.name(), sideLocal.name()), + (EntityPlayerMP) crafter); } catch (final IOException e) { AELog.debug(e); } @@ -93,8 +97,8 @@ public abstract class FCContainerMonitor> extends AEBaseCo processItemList(); this.updatePowerStatus(); final boolean oldAccessible = this.canAccessViewCells; - this.canAccessViewCells = - this.host instanceof WirelessTerminalGuiObject || this.hasAccess(SecurityPermissions.BUILD, false); + this.canAccessViewCells = this.host instanceof WirelessTerminalGuiObject + || this.hasAccess(SecurityPermissions.BUILD, false); if (this.canAccessViewCells != oldAccessible) { for (int y = 0; y < 5; y++) { if (this.cellView[y] != null) { @@ -122,8 +126,7 @@ public abstract class FCContainerMonitor> extends AEBaseCo this.setPowered( this.getPowerSource().extractAEPower(1, Actionable.SIMULATE, PowerMultiplier.CONFIG) > 0.8); } - } catch (final Throwable ignore) { - } + } catch (final Throwable ignore) {} } @Override diff --git a/src/main/java/com/glodblock/github/client/me/FluidRepo.java b/src/main/java/com/glodblock/github/client/me/FluidRepo.java index ebeb9010..c6b759ca 100644 --- a/src/main/java/com/glodblock/github/client/me/FluidRepo.java +++ b/src/main/java/com/glodblock/github/client/me/FluidRepo.java @@ -1,23 +1,25 @@ /* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . + * This file is part of Applied Energistics 2. Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. Applied + * Energistics 2 is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General + * Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any + * later version. Applied Energistics 2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + * Public License for more details. You should have received a copy of the GNU Lesser General Public License along with + * Applied Energistics 2. If not, see . */ package com.glodblock.github.client.me; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.regex.Pattern; + +import javax.annotation.Nonnull; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; + import appeng.api.AEApi; import appeng.api.config.*; import appeng.api.storage.data.IAEItemStack; @@ -28,17 +30,11 @@ import appeng.client.me.ItemRepo; import appeng.core.AEConfig; import appeng.items.storage.ItemViewCell; import appeng.util.prioitylist.IPartitionList; + import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.util.FluidSorters; import com.glodblock.github.util.Util; import cpw.mods.fml.relauncher.ReflectionHelper; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.regex.Pattern; -import javax.annotation.Nonnull; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; public class FluidRepo extends ItemRepo { @@ -186,8 +182,8 @@ public class FluidRepo extends ItemRepo { private void updateNEI(final String filter) { try { if (this.NEIWord == null || !this.NEIWord.equals(filter)) { - final Class c = - ReflectionHelper.getClass(this.getClass().getClassLoader(), "codechicken.nei.LayoutManager"); + final Class c = ReflectionHelper + .getClass(this.getClass().getClassLoader(), "codechicken.nei.LayoutManager"); final Field fldSearchField = c.getField("searchField"); final Object searchField = fldSearchField.get(c); diff --git a/src/main/java/com/glodblock/github/client/render/ItemDropRender.java b/src/main/java/com/glodblock/github/client/render/ItemDropRender.java index 3f13fb11..c259063e 100644 --- a/src/main/java/com/glodblock/github/client/render/ItemDropRender.java +++ b/src/main/java/com/glodblock/github/client/render/ItemDropRender.java @@ -1,12 +1,8 @@ package com.glodblock.github.client.render; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.RenderUtil; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.HashMap; import java.util.Map; + import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; @@ -18,8 +14,16 @@ import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; + import org.lwjgl.opengl.GL11; +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.RenderUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + @SideOnly(Side.CLIENT) public class ItemDropRender implements IItemRenderer { @@ -91,8 +95,7 @@ public class ItemDropRender implements IItemRenderer { if (colour == 0xFFFFFF) { TextureAtlasSprite sprite; try { - sprite = Minecraft.getMinecraft() - .getTextureMapBlocks() + sprite = Minecraft.getMinecraft().getTextureMapBlocks() .getTextureExtry(fluid.getStillIcon().getIconName()); } catch (NullPointerException e) { colourCache.put(fluid.getName(), colour); diff --git a/src/main/java/com/glodblock/github/client/render/ItemPacketRender.java b/src/main/java/com/glodblock/github/client/render/ItemPacketRender.java index 252b4683..b4f7bb6d 100644 --- a/src/main/java/com/glodblock/github/client/render/ItemPacketRender.java +++ b/src/main/java/com/glodblock/github/client/render/ItemPacketRender.java @@ -1,10 +1,5 @@ package com.glodblock.github.client.render; -import com.glodblock.github.common.item.ItemFluidPacket; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.RenderUtil; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; @@ -13,8 +8,16 @@ import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; + import org.lwjgl.opengl.GL11; +import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.RenderUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + @SideOnly(Side.CLIENT) public class ItemPacketRender implements IItemRenderer { @@ -45,9 +48,7 @@ public class ItemPacketRender implements IItemRenderer { if (fluid != null) { RGB = fluid.getFluid().getColor(fluid); } - IIcon icon = fluid == null - ? FluidRegistry.WATER.getStillIcon() - : fluid.getFluid().getStillIcon(); + IIcon icon = fluid == null ? FluidRegistry.WATER.getStillIcon() : fluid.getFluid().getStillIcon(); if (RGB != 0xFFFFFF) { GL11.glColor3f((RGB >> 16 & 0xFF) / 255.0F, (RGB >> 8 & 0xFF) / 255.0F, (RGB & 0xFF) / 255.0F); diff --git a/src/main/java/com/glodblock/github/client/render/ItemWalrusRender.java b/src/main/java/com/glodblock/github/client/render/ItemWalrusRender.java index c4dade1f..bc09137e 100644 --- a/src/main/java/com/glodblock/github/client/render/ItemWalrusRender.java +++ b/src/main/java/com/glodblock/github/client/render/ItemWalrusRender.java @@ -1,9 +1,5 @@ package com.glodblock.github.client.render; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.tile.TileWalrus; -import com.glodblock.github.loader.ItemAndBlockHolder; -import cpw.mods.fml.client.registry.ClientRegistry; import net.minecraft.client.Minecraft; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -12,9 +8,16 @@ import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; + import org.lwjgl.opengl.GL11; +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.tile.TileWalrus; +import com.glodblock.github.loader.ItemAndBlockHolder; +import cpw.mods.fml.client.registry.ClientRegistry; + public class ItemWalrusRender implements IItemRenderer { + IModelCustom modelWalrus = AdvancedModelLoader.loadModel(FluidCraft.resource("models/walrus.obj")); ResourceLocation textureWalrus = FluidCraft.resource("textures/blocks/walrus.png"); @@ -54,8 +57,8 @@ public class ItemWalrusRender implements IItemRenderer { } @Override - public boolean shouldUseRenderHelper( - IItemRenderer.ItemRenderType type, ItemStack item, IItemRenderer.ItemRendererHelper helper) { + public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType type, ItemStack item, + IItemRenderer.ItemRendererHelper helper) { return true; } } diff --git a/src/main/java/com/glodblock/github/client/render/RenderBlockFluidBuffer.java b/src/main/java/com/glodblock/github/client/render/RenderBlockFluidBuffer.java index 098a81e8..173059ec 100644 --- a/src/main/java/com/glodblock/github/client/render/RenderBlockFluidBuffer.java +++ b/src/main/java/com/glodblock/github/client/render/RenderBlockFluidBuffer.java @@ -1,9 +1,5 @@ package com.glodblock.github.client.render; -import appeng.client.render.BaseBlockRender; -import appeng.client.render.BlockRenderInfo; -import com.glodblock.github.common.block.BlockFluidBuffer; -import com.glodblock.github.common.tile.TileFluidBuffer; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; @@ -11,8 +7,15 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; + import org.lwjgl.opengl.GL11; +import appeng.client.render.BaseBlockRender; +import appeng.client.render.BlockRenderInfo; + +import com.glodblock.github.common.block.BlockFluidBuffer; +import com.glodblock.github.common.tile.TileFluidBuffer; + public class RenderBlockFluidBuffer extends BaseBlockRender { public RenderBlockFluidBuffer() { @@ -20,13 +23,8 @@ public class RenderBlockFluidBuffer extends BaseBlockRender { public RenderBlockFluidInterface() { @@ -18,20 +20,20 @@ public class RenderBlockFluidInterface extends BaseBlockRender { public RenderBlockLevelMaintainer() { @@ -16,13 +18,8 @@ public class RenderBlockLevelMaintainer extends BaseBlockRender toolTip, boolean advancedToolTips) {} + public void addInformation(ItemStack itemStack, EntityPlayer player, List toolTip, + boolean advancedToolTips) {} } diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidBuffer.java b/src/main/java/com/glodblock/github/common/block/BlockFluidBuffer.java index 5dfb9707..7992d6eb 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidBuffer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidBuffer.java @@ -2,8 +2,18 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; +import java.util.List; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.storage.data.IAEFluidStack; import appeng.util.Platform; + import com.glodblock.github.client.render.RenderBlockFluidBuffer; import com.glodblock.github.common.item.FCBaseItemBlock; import com.glodblock.github.common.tabs.FluidCraftingTabs; @@ -11,16 +21,10 @@ import com.glodblock.github.common.tile.TileFluidBuffer; import com.glodblock.github.crossmod.waila.Tooltip; import com.glodblock.github.util.NameConst; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.List; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; -import net.minecraftforge.fluids.FluidStack; public class BlockFluidBuffer extends FCBaseBlock { @@ -33,8 +37,8 @@ public class BlockFluidBuffer extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { ItemStack itemStack = player.inventory.getCurrentItem(); FluidStack fs = Util.getFluidFromItem(itemStack); if (Platform.isServer()) { @@ -43,8 +47,9 @@ public class BlockFluidBuffer extends FCBaseBlock { if (player.isSneaking() && itemStack == null) return !tile.setFluid(null); IAEFluidStack ias = tile.getAEStoreFluidStack(); if (fs == null && ias != null) { - player.addChatMessage(new ChatComponentText( - Tooltip.fluidFormat(ias.getFluid().getLocalizedName(), ias.getStackSize()))); + player.addChatMessage( + new ChatComponentText( + Tooltip.fluidFormat(ias.getFluid().getLocalizedName(), ias.getStackSize()))); return false; } else { tile.setFluid(fs); @@ -70,10 +75,7 @@ public class BlockFluidBuffer extends FCBaseBlock { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown()) { toolTip.add(NameConst.i18n(NameConst.TT_FLUID_BUFFER_DESC)); diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java b/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java index d56180ce..1826b038 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidDiscretizer.java @@ -2,17 +2,21 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; +import java.util.List; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + import com.glodblock.github.common.item.FCBaseItemBlock; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileFluidDiscretizer; import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.List; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; public class BlockFluidDiscretizer extends FCBaseBlock { @@ -33,14 +37,11 @@ public class BlockFluidDiscretizer extends FCBaseBlock { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown()) { - toolTip.addAll(this.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_FLUID_DISCRETIZER_DESC))); + toolTip.addAll(RenderUtil.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_FLUID_DISCRETIZER_DESC))); } else { toolTip.add(NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE)); } diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java b/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java index 3edb5f9e..c17e18b0 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java @@ -1,10 +1,18 @@ package com.glodblock.github.common.block; +import java.util.EnumSet; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.util.IOrientable; import appeng.block.AEBaseItemBlock; import appeng.core.features.AEFeature; import appeng.tile.misc.TileInterface; import appeng.util.Platform; + import com.glodblock.github.client.render.RenderBlockFluidInterface; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileFluidInterface; @@ -12,14 +20,10 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.EnumSet; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockFluidInterface extends FCBaseBlock { @@ -38,16 +42,8 @@ public class BlockFluidInterface extends FCBaseBlock { } @Override - public boolean onActivated( - final World world, - final int x, - final int y, - final int z, - final EntityPlayer player, - final int facing, - final float hitX, - final float hitY, - final float hitZ) { + public boolean onActivated(final World world, final int x, final int y, final int z, final EntityPlayer player, + final int facing, final float hitX, final float hitY, final float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java b/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java index 4b972429..418c283c 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidPacketDecoder.java @@ -2,6 +2,14 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; +import java.util.List; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import com.glodblock.github.common.item.FCBaseItemBlock; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileFluidPacketDecoder; @@ -9,15 +17,11 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.List; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockFluidPacketDecoder extends FCBaseBlock { @@ -29,8 +33,8 @@ public class BlockFluidPacketDecoder extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } @@ -59,13 +63,11 @@ public class BlockFluidPacketDecoder extends FCBaseBlock { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown()) { - toolTip.addAll(this.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_FLUID_PACKET_DECODER_DESC))); + toolTip.addAll( + RenderUtil.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_FLUID_PACKET_DECODER_DESC))); } else { toolTip.add(NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE)); } diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidPatternEncoder.java b/src/main/java/com/glodblock/github/common/block/BlockFluidPatternEncoder.java index 83761e81..13b99220 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidPatternEncoder.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidPatternEncoder.java @@ -1,6 +1,12 @@ package com.glodblock.github.common.block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.block.AEBaseItemBlock; + import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileFluidPatternEncoder; import com.glodblock.github.inventory.InventoryHandler; @@ -8,10 +14,6 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockFluidPatternEncoder extends FCBaseBlock { @@ -23,8 +25,8 @@ public class BlockFluidPatternEncoder extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockIngredientBuffer.java b/src/main/java/com/glodblock/github/common/block/BlockIngredientBuffer.java index 30f357fe..8f337a6b 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockIngredientBuffer.java @@ -1,6 +1,12 @@ package com.glodblock.github.common.block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.block.AEBaseItemBlock; + import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileIngredientBuffer; import com.glodblock.github.inventory.InventoryHandler; @@ -8,10 +14,6 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockIngredientBuffer extends FCBaseBlock { @@ -24,8 +26,8 @@ public class BlockIngredientBuffer extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockLargeIngredientBuffer.java b/src/main/java/com/glodblock/github/common/block/BlockLargeIngredientBuffer.java index 991b1220..fd9ec5a4 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockLargeIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockLargeIngredientBuffer.java @@ -1,6 +1,12 @@ package com.glodblock.github.common.block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.block.AEBaseItemBlock; + import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileLargeIngredientBuffer; import com.glodblock.github.inventory.InventoryHandler; @@ -8,10 +14,6 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockLargeIngredientBuffer extends FCBaseBlock { @@ -24,8 +26,8 @@ public class BlockLargeIngredientBuffer extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java b/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java index b668f3ae..eb18c398 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/common/block/BlockLevelMaintainer.java @@ -3,8 +3,18 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isCtrlKeyDown; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; +import java.util.List; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.config.SecurityPermissions; import appeng.util.Platform; + import com.glodblock.github.client.render.RenderBlockLevelMaintainer; import com.glodblock.github.common.item.FCBaseItemBlock; import com.glodblock.github.common.tabs.FluidCraftingTabs; @@ -13,17 +23,12 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.List; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockLevelMaintainer extends FCBaseBlock { @@ -49,8 +54,8 @@ public class BlockLevelMaintainer extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } @@ -75,15 +80,12 @@ public class BlockLevelMaintainer extends FCBaseBlock { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown() && isCtrlKeyDown()) { toolTip.add(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_WHO_AM_I)); } else if (isShiftKeyDown()) { - toolTip.addAll(this.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_DESC))); + toolTip.addAll(RenderUtil.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_LEVEL_MAINTAINER_DESC))); } else { toolTip.add(NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE)); } diff --git a/src/main/java/com/glodblock/github/common/block/BlockOCPatternEditor.java b/src/main/java/com/glodblock/github/common/block/BlockOCPatternEditor.java index 4ef7ae33..3be2dbf9 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/common/block/BlockOCPatternEditor.java @@ -1,6 +1,12 @@ package com.glodblock.github.common.block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.block.AEBaseItemBlock; + import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.common.tile.TileOCPatternEditor; import com.glodblock.github.inventory.InventoryHandler; @@ -9,10 +15,6 @@ import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockOCPatternEditor extends FCBaseBlock { @@ -24,8 +26,8 @@ public class BlockOCPatternEditor extends FCBaseBlock { } @Override - public boolean onActivated( - World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hitZ) { + public boolean onActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, + float hitY, float hitZ) { if (player.isSneaking()) { return false; } diff --git a/src/main/java/com/glodblock/github/common/block/BlockWalrus.java b/src/main/java/com/glodblock/github/common/block/BlockWalrus.java index 1aa75393..91eeb052 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockWalrus.java +++ b/src/main/java/com/glodblock/github/common/block/BlockWalrus.java @@ -2,14 +2,8 @@ package com.glodblock.github.common.block; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; -import com.glodblock.github.common.item.BaseItemBlockContainer; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.common.tile.TileWalrus; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; + import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -20,6 +14,15 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import com.glodblock.github.common.item.BaseItemBlockContainer; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.common.tile.TileWalrus; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class BlockWalrus extends BaseBlockContainer { public BlockWalrus() { @@ -100,10 +103,7 @@ public class BlockWalrus extends BaseBlockContainer { @Override @SideOnly(Side.CLIENT) - public void addInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { if (isShiftKeyDown()) { diff --git a/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java b/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java index e5dd49f0..03969baf 100644 --- a/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java +++ b/src/main/java/com/glodblock/github/common/block/FCBaseBlock.java @@ -1,19 +1,22 @@ package com.glodblock.github.common.block; -import appeng.block.AEBaseTileBlock; -import appeng.core.features.AEFeature; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.loader.IRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.EnumSet; import java.util.List; + import net.minecraft.block.material.Material; -import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import appeng.block.AEBaseTileBlock; +import appeng.core.features.AEFeature; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.loader.IRegister; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public abstract class FCBaseBlock extends AEBaseTileBlock implements IRegister { public FCBaseBlock(Material mat, String name) { @@ -41,19 +44,11 @@ public abstract class FCBaseBlock extends AEBaseTileBlock implements IRegister toolTip, + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) {} - @SuppressWarnings("unchecked") - protected final List listFormattedStringToWidth(String str) { - return Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(str, 150); - } - - public void addCheckedInformation( - ItemStack itemStack, EntityPlayer player, List toolTip, boolean advancedToolTips) { + public void addCheckedInformation(ItemStack itemStack, EntityPlayer player, List toolTip, + boolean advancedToolTips) { this.addInformation(itemStack, player, toolTip, advancedToolTips); } diff --git a/src/main/java/com/glodblock/github/common/item/BaseItemBlockContainer.java b/src/main/java/com/glodblock/github/common/item/BaseItemBlockContainer.java index 37538233..02f4b248 100644 --- a/src/main/java/com/glodblock/github/common/item/BaseItemBlockContainer.java +++ b/src/main/java/com/glodblock/github/common/item/BaseItemBlockContainer.java @@ -1,15 +1,19 @@ package com.glodblock.github.common.item; -import com.glodblock.github.common.block.BaseBlockContainer; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; + import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import com.glodblock.github.common.block.BaseBlockContainer; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class BaseItemBlockContainer extends ItemBlock { + private final BaseBlockContainer blockType; public BaseItemBlockContainer(Block id) { @@ -20,8 +24,8 @@ public class BaseItemBlockContainer extends ItemBlock { @Override @SideOnly(Side.CLIENT) @SuppressWarnings("unchecked") - public void addInformation( - final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { + public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, + final boolean advancedToolTips) { blockType.addInformation(itemStack, player, toolTip, advancedToolTips); } } diff --git a/src/main/java/com/glodblock/github/common/item/FCBaseItem.java b/src/main/java/com/glodblock/github/common/item/FCBaseItem.java index 78f72400..a54ac758 100644 --- a/src/main/java/com/glodblock/github/common/item/FCBaseItem.java +++ b/src/main/java/com/glodblock/github/common/item/FCBaseItem.java @@ -1,9 +1,10 @@ package com.glodblock.github.common.item; -import com.glodblock.github.loader.IRegister; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import com.glodblock.github.loader.IRegister; + public abstract class FCBaseItem extends Item implements IRegister { public ItemStack stack(int size, int meta) { diff --git a/src/main/java/com/glodblock/github/common/item/FCBaseItemBlock.java b/src/main/java/com/glodblock/github/common/item/FCBaseItemBlock.java index 0c63d0e8..220e1b62 100644 --- a/src/main/java/com/glodblock/github/common/item/FCBaseItemBlock.java +++ b/src/main/java/com/glodblock/github/common/item/FCBaseItemBlock.java @@ -1,15 +1,20 @@ package com.glodblock.github.common.item; -import appeng.block.AEBaseItemBlock; -import com.glodblock.github.common.block.FCBaseBlock; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; + import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import appeng.block.AEBaseItemBlock; + +import com.glodblock.github.common.block.FCBaseBlock; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class FCBaseItemBlock extends AEBaseItemBlock { + private final FCBaseBlock blockType; public FCBaseItemBlock(Block id) { @@ -18,10 +23,7 @@ public class FCBaseItemBlock extends AEBaseItemBlock { } @SideOnly(Side.CLIENT) - public void addCheckedInformation( - final ItemStack itemStack, - final EntityPlayer player, - final List toolTip, + public void addCheckedInformation(final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedToolTips) { blockType.addCheckedInformation(itemStack, player, toolTip, advancedToolTips); super.addCheckedInformation(itemStack, player, toolTip, advancedToolTips); diff --git a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java index a20c1a53..d0cb0824 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java @@ -1,5 +1,22 @@ package com.glodblock.github.common.item; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.event.ForgeEventFactory; + import appeng.api.AEApi; import appeng.api.config.FuzzyMode; import appeng.api.config.IncludeExclude; @@ -18,6 +35,7 @@ import appeng.items.contents.CellUpgrades; import appeng.util.InventoryAdaptor; import appeng.util.Platform; import appeng.util.ReadableNumberConverter; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.storage.CellType; @@ -29,26 +47,14 @@ import com.glodblock.github.loader.IRegister; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; import com.google.common.base.Optional; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.List; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.ForgeEventFactory; public class ItemBasicFluidStorageCell extends AEBaseItem implements IStorageFluidCell, IRegister { + private final CellType component; private final int totalBytes; private final int perType; @@ -94,6 +100,10 @@ public class ItemBasicFluidStorageCell extends AEBaseItem this.idleDrain = 3.5; this.perType = 8; break; + case Cell16384kPart: + this.idleDrain = 4.0; + this.perType = 8; + break; default: this.idleDrain = 0.0; this.perType = 8; @@ -106,7 +116,10 @@ public class ItemBasicFluidStorageCell extends AEBaseItem @Override public String getItemStackDisplayName(ItemStack stack) { - return StatCollector.translateToLocalFormatted("item.fluid_storage." + this.totalBytes / 1024 + ".name"); + return StatCollector.translateToLocalFormatted( + "item.fluid_storage." + this.totalBytes / 1024 + ".name", + CellType.getTypeColor(this.component), + EnumChatFormatting.RESET); } @Override @@ -114,8 +127,8 @@ public class ItemBasicFluidStorageCell extends AEBaseItem public void registerIcons(IIconRegister iconRegister) { icon.put( this.totalBytes / 1024, - iconRegister.registerIcon( - NameConst.RES_KEY + NameConst.ITEM_FLUID_STORAGE + "." + this.totalBytes / 1024)); + iconRegister + .registerIcon(NameConst.RES_KEY + NameConst.ITEM_FLUID_STORAGE + "." + this.totalBytes / 1024)); } @Override @@ -126,31 +139,49 @@ public class ItemBasicFluidStorageCell extends AEBaseItem } @Override - public void addCheckedInformation( - final ItemStack stack, final EntityPlayer player, final List lines, final boolean displayMoreInfo) { - final IMEInventoryHandler inventory = - AEApi.instance().registries().cell().getCellInventory(stack, null, StorageChannel.FLUIDS); + public void addCheckedInformation(final ItemStack stack, final EntityPlayer player, final List lines, + final boolean displayMoreInfo) { + final IMEInventoryHandler inventory = AEApi.instance().registries().cell() + .getCellInventory(stack, null, StorageChannel.FLUIDS); if (inventory instanceof IFluidCellInventoryHandler) { final IFluidCellInventoryHandler handler = (IFluidCellInventoryHandler) inventory; final IFluidCellInventory cellInventory = handler.getCellInv(); if (cellInventory != null) { - lines.add(cellInventory.getUsedBytes() + " " + GuiText.Of.getLocal() + ' ' - + cellInventory.getTotalBytes() + ' ' + GuiText.BytesUsed.getLocal()); - - lines.add(cellInventory.getStoredFluidTypes() + " " + GuiText.Of.getLocal() + ' ' - + cellInventory.getTotalFluidTypes() + ' ' + GuiText.Types.getLocal()); + lines.add( + EnumChatFormatting.WHITE + String.valueOf(cellInventory.getUsedBytes()) + + EnumChatFormatting.GRAY + + " " + + GuiText.Of.getLocal() + + " " + + EnumChatFormatting.DARK_GREEN + + cellInventory.getTotalBytes() + + " " + + EnumChatFormatting.GRAY + + GuiText.BytesUsed.getLocal()); + lines.add( + EnumChatFormatting.WHITE + String.valueOf(cellInventory.getStoredFluidTypes()) + + EnumChatFormatting.GRAY + + " " + + GuiText.Of.getLocal() + + " " + + EnumChatFormatting.DARK_GREEN + + cellInventory.getTotalFluidTypes() + + " " + + EnumChatFormatting.GRAY + + GuiText.Types.getLocal()); if (GuiScreen.isCtrlKeyDown()) { if (cellInventory.getStoredFluidTypes() > 0) { lines.add(StatCollector.translateToLocal(NameConst.TT_CELL_CONTENTS)); for (IAEFluidStack fluid : cellInventory.getContents()) { if (fluid != null) { - lines.add(String.format( - " %s x%smB", - fluid.getFluidStack().getLocalizedName(), - format.toWideReadableForm(fluid.getStackSize()))); + lines.add( + String.format( + " %s x%s mB", + fluid.getFluidStack().getLocalizedName(), + format.toWideReadableForm(fluid.getStackSize()))); } } } else { @@ -161,17 +192,14 @@ public class ItemBasicFluidStorageCell extends AEBaseItem } if (handler.isPreformatted()) { - final String list = (handler.getIncludeExcludeMode() == IncludeExclude.WHITELIST - ? GuiText.Included - : GuiText.Excluded) - .getLocal(); + final String list = (handler.getIncludeExcludeMode() == IncludeExclude.WHITELIST ? GuiText.Included + : GuiText.Excluded).getLocal(); lines.add(GuiText.Partitioned.getLocal() + " - " + list + ' ' + GuiText.Precise.getLocal()); if (GuiScreen.isShiftKeyDown()) { lines.add(GuiText.Filter.getLocal() + ": "); for (IAEFluidStack aeFluidStack : handler.getPartitionInv()) { - if (aeFluidStack != null) - lines.add(" " + aeFluidStack.getFluidStack().getLocalizedName()); + if (aeFluidStack != null) lines.add(" " + aeFluidStack.getFluidStack().getLocalizedName()); } } else { lines.add(StatCollector.translateToLocal(NameConst.TT_SHIFT_FOR_MORE)); @@ -249,14 +277,6 @@ public class ItemBasicFluidStorageCell extends AEBaseItem Platform.openNbtData(is).setString("FuzzyMode", fzMode.name()); } - public String getOreFilter(ItemStack is) { - return Platform.openNbtData(is).getString("OreFilter"); - } - - public void setOreFilter(ItemStack is, String filter) { - Platform.openNbtData(is).setString("OreFilter", filter); - } - @Override public ItemStack onItemRightClick(final ItemStack stack, final World world, final EntityPlayer player) { this.disassembleDrive(stack, world, player); @@ -270,8 +290,8 @@ public class ItemBasicFluidStorageCell extends AEBaseItem return false; } final InventoryPlayer playerInventory = player.inventory; - final IMEInventoryHandler inv = - AEApi.instance().registries().cell().getCellInventory(stack, null, StorageChannel.FLUIDS); + final IMEInventoryHandler inv = AEApi.instance().registries().cell() + .getCellInventory(stack, null, StorageChannel.FLUIDS); if (inv != null && playerInventory.getCurrentItem() == stack) { final InventoryAdaptor ia = InventoryAdaptor.getAdaptor(player, ForgeDirection.UNKNOWN); final IItemList list = inv.getAvailableItems(StorageChannel.FLUIDS.createList()); @@ -295,12 +315,8 @@ public class ItemBasicFluidStorageCell extends AEBaseItem } // drop empty storage cell case - for (final ItemStack storageCellStack : AEApi.instance() - .definitions() - .materials() - .emptyStorageCell() - .maybeStack(1) - .asSet()) { + for (final ItemStack storageCellStack : AEApi.instance().definitions().materials() + .emptyStorageCell().maybeStack(1).asSet()) { final ItemStack extraA = ia.addItems(storageCellStack); if (extraA != null) { player.dropPlayerItemWithRandomChoice(extraA, false); @@ -317,28 +333,15 @@ public class ItemBasicFluidStorageCell extends AEBaseItem } @Override - public boolean onItemUseFirst( - final ItemStack stack, - final EntityPlayer player, - final World world, - final int x, - final int y, - final int z, - final int side, - final float hitX, - final float hitY, - final float hitZ) { + public boolean onItemUseFirst(final ItemStack stack, final EntityPlayer player, final World world, final int x, + final int y, final int z, final int side, final float hitX, final float hitY, final float hitZ) { if (ForgeEventFactory.onItemUseStart(player, stack, 1) <= 0) return true; return this.disassembleDrive(stack, world, player); } @Override public ItemStack getContainerItem(final ItemStack itemStack) { - for (final ItemStack stack : AEApi.instance() - .definitions() - .materials() - .emptyStorageCell() - .maybeStack(1) + for (final ItemStack stack : AEApi.instance().definitions().materials().emptyStorageCell().maybeStack(1) .asSet()) { return stack; } diff --git a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java index 6c331c84..bbbfd526 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStoragePart.java @@ -1,24 +1,29 @@ package com.glodblock.github.common.item; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.Config; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.HashMap; import java.util.List; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.Config; +import com.glodblock.github.common.storage.CellType; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemBasicFluidStoragePart extends FCBaseItem { - public static final int types = 7; + public static final int types = 8; private static final HashMap icon = new HashMap<>(); public ItemBasicFluidStoragePart() { @@ -39,7 +44,10 @@ public class ItemBasicFluidStoragePart extends FCBaseItem { @Override public String getItemStackDisplayName(ItemStack stack) { int meta = stack.getItemDamage(); - return StatCollector.translateToLocalFormatted("item.fluid_part." + meta + ".name"); + return StatCollector.translateToLocalFormatted( + "item.fluid_part." + meta + ".name", + CellType.getTypeColor(meta), + EnumChatFormatting.RESET); } @Override diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidConversionMonitor.java b/src/main/java/com/glodblock/github/common/item/ItemFluidConversionMonitor.java index 454f1b7e..1324c804 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidConversionMonitor.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidConversionMonitor.java @@ -1,19 +1,22 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidConversionMonitor; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidConversionMonitor; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemFluidConversionMonitor extends FCBaseItem implements IPartItem { public ItemFluidConversionMonitor() { @@ -23,17 +26,8 @@ public class ItemFluidConversionMonitor extends FCBaseItem implements IPartItem } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java b/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java index f050dc36..2441ff20 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidDrop.java @@ -1,18 +1,10 @@ package com.glodblock.github.common.item; -import appeng.api.storage.data.IAEFluidStack; -import appeng.api.storage.data.IAEItemStack; -import appeng.util.item.AEFluidStack; -import appeng.util.item.AEItemStack; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; import java.util.Objects; + import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -27,6 +19,19 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import appeng.api.storage.data.IAEFluidStack; +import appeng.api.storage.data.IAEItemStack; +import appeng.util.item.AEFluidStack; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemFluidDrop extends FCBaseItem { @SideOnly(Side.CLIENT) @@ -48,8 +53,8 @@ public class ItemFluidDrop extends FCBaseItem { if (ItemFluidPacket.isDisplay(stack)) { return fluid != null ? fluid.getLocalizedName() : StatCollector.translateToLocalFormatted("error.unknown"); } - return StatCollector.translateToLocalFormatted( - "item.fluid_drop.name", fluid == null ? "???" : fluid.getLocalizedName()); + return StatCollector + .translateToLocalFormatted("item.fluid_drop.name", fluid == null ? "???" : fluid.getLocalizedName()); } @Override diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidEncodedPattern.java b/src/main/java/com/glodblock/github/common/item/ItemFluidEncodedPattern.java index e2cb5b40..afe3b433 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidEncodedPattern.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidEncodedPattern.java @@ -1,14 +1,16 @@ package com.glodblock.github.common.item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.items.misc.ItemEncodedPattern; + import com.glodblock.github.FluidCraft; import com.glodblock.github.loader.IRegister; import com.glodblock.github.util.FluidPatternDetails; import com.glodblock.github.util.NameConst; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; public class ItemFluidEncodedPattern extends ItemEncodedPattern implements IRegister { diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidExportBus.java b/src/main/java/com/glodblock/github/common/item/ItemFluidExportBus.java index 1871dafc..454a511e 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidExportBus.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidExportBus.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; +import javax.annotation.Nullable; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + import appeng.api.AEApi; import appeng.api.parts.IPartItem; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.parts.PartFluidExportBus; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.util.NameConst; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; public class ItemFluidExportBus extends FCBaseItem implements IPartItem { @@ -31,17 +35,8 @@ public class ItemFluidExportBus extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidImportBus.java b/src/main/java/com/glodblock/github/common/item/ItemFluidImportBus.java index 1428d0ab..14faece8 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidImportBus.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidImportBus.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; +import javax.annotation.Nullable; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + import appeng.api.AEApi; import appeng.api.parts.IPartItem; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.parts.PartFluidImportBus; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.util.NameConst; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; public class ItemFluidImportBus extends FCBaseItem implements IPartItem { @@ -31,17 +35,8 @@ public class ItemFluidImportBus extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidLevelEmitter.java b/src/main/java/com/glodblock/github/common/item/ItemFluidLevelEmitter.java index 814b816a..8204c465 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidLevelEmitter.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidLevelEmitter.java @@ -1,21 +1,25 @@ package com.glodblock.github.common.item; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import org.jetbrains.annotations.Nullable; + import appeng.api.AEApi; import appeng.api.parts.IPart; import appeng.api.parts.IPartItem; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.parts.PartFluidLevelEmitter; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.util.NameConst; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; public class ItemFluidLevelEmitter extends FCBaseItem implements IPartItem { @@ -32,17 +36,8 @@ public class ItemFluidLevelEmitter extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java b/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java index ec320639..29fa9867 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java @@ -1,17 +1,10 @@ package com.glodblock.github.common.item; -import appeng.api.storage.data.IAEFluidStack; -import appeng.api.storage.data.IAEItemStack; -import appeng.util.item.AEItemStack; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; import java.util.Objects; + import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -23,6 +16,18 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import appeng.api.storage.data.IAEFluidStack; +import appeng.api.storage.data.IAEItemStack; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemFluidPacket extends FCBaseItem { public ItemFluidPacket() { @@ -34,8 +39,8 @@ public class ItemFluidPacket extends FCBaseItem { if (stack == null || !stack.hasTagCompound()) { return null; } - FluidStack fluid = FluidStack.loadFluidStackFromNBT( - Objects.requireNonNull(stack.getTagCompound()).getCompoundTag("FluidStack")); + FluidStack fluid = FluidStack + .loadFluidStackFromNBT(Objects.requireNonNull(stack.getTagCompound()).getCompoundTag("FluidStack")); return (fluid != null && fluid.amount > 0) ? fluid : null; } @@ -46,8 +51,7 @@ public class ItemFluidPacket extends FCBaseItem { if (display) { return fluid != null ? fluid.getLocalizedName() : super.getItemStackDisplayName(stack); } - return fluid != null - ? String.format("%s, %,d mB", fluid.getLocalizedName(), fluid.amount) + return fluid != null ? String.format("%s, %,d mB", fluid.getLocalizedName(), fluid.amount) : super.getItemStackDisplayName(stack); } @@ -65,8 +69,7 @@ public class ItemFluidPacket extends FCBaseItem { boolean display = isDisplay(stack); if (display) return; if (fluid != null) { - for (String line : StatCollector.translateToLocalFormatted(NameConst.TT_FLUID_PACKET) - .split("\\\\n")) { + for (String line : StatCollector.translateToLocalFormatted(NameConst.TT_FLUID_PACKET).split("\\\\n")) { tooltip.add(EnumChatFormatting.GRAY + line); } } else { diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidStorageMonitor.java b/src/main/java/com/glodblock/github/common/item/ItemFluidStorageMonitor.java index d1be434b..4a6e25a7 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidStorageMonitor.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidStorageMonitor.java @@ -1,19 +1,22 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidStorageMonitor; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidStorageMonitor; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemFluidStorageMonitor extends FCBaseItem implements IPartItem { public ItemFluidStorageMonitor() { @@ -23,17 +26,8 @@ public class ItemFluidStorageMonitor extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidInterface.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidInterface.java index 72e8180a..6d3080cb 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidInterface.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidInterface; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidInterface; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidInterface extends FCBaseItem implements IPartItem { public ItemPartFluidInterface() { @@ -30,17 +34,8 @@ public class ItemPartFluidInterface extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminal.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminal.java index f4309868..11fb6f3a 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminal.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidPatternTerminal; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidPatternTerminal; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidPatternTerminal extends FCBaseItem implements IPartItem { public ItemPartFluidPatternTerminal() { @@ -30,17 +34,8 @@ public class ItemPartFluidPatternTerminal extends FCBaseItem implements IPartIte } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminalEx.java index 89679e6c..72b888c8 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidPatternTerminalEx.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidPatternTerminalEx extends FCBaseItem implements IPartItem { public ItemPartFluidPatternTerminalEx() { @@ -30,17 +34,8 @@ public class ItemPartFluidPatternTerminalEx extends FCBaseItem implements IPartI } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidStorageBus.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidStorageBus.java index 221ab3a7..2b2b9270 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidStorageBus.java @@ -1,20 +1,24 @@ package com.glodblock.github.common.item; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidStorageBus; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidStorageBus; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidStorageBus extends FCBaseItem implements IPartItem { public ItemPartFluidStorageBus() { @@ -30,17 +34,8 @@ public class ItemPartFluidStorageBus extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPartFluidTerminal.java b/src/main/java/com/glodblock/github/common/item/ItemPartFluidTerminal.java index 1b975475..606805fe 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPartFluidTerminal.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPartFluidTerminal.java @@ -2,23 +2,29 @@ package com.glodblock.github.common.item; import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; -import appeng.api.AEApi; -import appeng.api.parts.IPartItem; -import com.glodblock.github.FluidCraft; -import com.glodblock.github.common.parts.PartFluidTerminal; -import com.glodblock.github.common.tabs.FluidCraftingTabs; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import appeng.api.AEApi; +import appeng.api.parts.IPartItem; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.parts.PartFluidTerminal; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class ItemPartFluidTerminal extends FCBaseItem implements IPartItem { + public ItemPartFluidTerminal() { this.setMaxStackSize(64); this.setUnlocalizedName(NameConst.ITEM_PART_FLUID_TERMINAL); @@ -32,17 +38,8 @@ public class ItemPartFluidTerminal extends FCBaseItem implements IPartItem { } @Override - public boolean onItemUse( - ItemStack stack, - EntityPlayer player, - World world, - int x, - int y, - int z, - int side, - float xOffset, - float yOffset, - float zOffset) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, + float xOffset, float yOffset, float zOffset) { return AEApi.instance().partHelper().placeBus(player.getHeldItem(), x, y, z, side, player, world); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java b/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java new file mode 100644 index 00000000..492cafb8 --- /dev/null +++ b/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java @@ -0,0 +1,202 @@ +package com.glodblock.github.common.item; + +import java.util.EnumSet; +import java.util.List; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import appeng.api.AEApi; +import appeng.api.config.FuzzyMode; +import appeng.api.storage.IMEInventoryHandler; +import appeng.api.storage.StorageChannel; +import appeng.api.storage.data.IAEFluidStack; +import appeng.core.features.AEFeature; +import appeng.core.localization.GuiText; +import appeng.items.contents.CellConfig; +import appeng.items.contents.CellUpgrades; +import appeng.items.tools.powered.powersink.AEBasePoweredItem; +import appeng.util.Platform; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.Config; +import com.glodblock.github.common.storage.IFluidCellInventory; +import com.glodblock.github.common.storage.IFluidCellInventoryHandler; +import com.glodblock.github.common.storage.IStorageFluidCell; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.inventory.InventoryHandler; +import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.inventory.item.IItemInventory; +import com.glodblock.github.inventory.item.PortableFluidCellInventory; +import com.glodblock.github.loader.IRegister; +import com.glodblock.github.util.BlockPos; +import com.glodblock.github.util.ModAndClassUtil; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; +import com.google.common.base.Optional; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemPortableFluidCell extends AEBasePoweredItem + implements IStorageFluidCell, IItemInventory, IRegister { + + public ItemPortableFluidCell() { + super(Config.portableCellBattery, Optional.absent()); + setUnlocalizedName(NameConst.ITEM_FLUID_PORTABLE_CELL); + setTextureName(FluidCraft.resource(NameConst.ITEM_FLUID_PORTABLE_CELL).toString()); + this.setFeature(EnumSet.of(AEFeature.PortableCell, AEFeature.StorageCells, AEFeature.PoweredTools)); + } + + @Override + public ItemStack onItemRightClick(final ItemStack item, final World w, final EntityPlayer player) { + InventoryHandler.openGui( + player, + w, + new BlockPos(player.inventory.currentItem, 0, 0), + ForgeDirection.UNKNOWN, + GuiType.PORTABLE_FLUID_CELL); + return item; + } + + @SideOnly(Side.CLIENT) + @Override + public boolean isFull3D() { + return false; + } + + @SideOnly(Side.CLIENT) + @Override + public void addCheckedInformation(final ItemStack stack, final EntityPlayer player, final List lines, + final boolean displayMoreInfo) { + super.addCheckedInformation(stack, player, lines, displayMoreInfo); + final IMEInventoryHandler inventory = AEApi.instance().registries().cell() + .getCellInventory(stack, null, StorageChannel.FLUIDS); + if (inventory instanceof IFluidCellInventoryHandler) { + final IFluidCellInventoryHandler handler = (IFluidCellInventoryHandler) inventory; + final IFluidCellInventory cellInventory = handler.getCellInv(); + if (cellInventory != null) { + lines.add( + EnumChatFormatting.WHITE + String.valueOf(cellInventory.getUsedBytes()) + + EnumChatFormatting.GRAY + + " " + + GuiText.Of.getLocal() + + " " + + EnumChatFormatting.DARK_GREEN + + cellInventory.getTotalBytes() + + " " + + EnumChatFormatting.GRAY + + GuiText.BytesUsed.getLocal()); + lines.add( + EnumChatFormatting.WHITE + String.valueOf(cellInventory.getStoredFluidTypes()) + + EnumChatFormatting.GRAY + + " " + + GuiText.Of.getLocal() + + " " + + EnumChatFormatting.DARK_GREEN + + cellInventory.getTotalFluidTypes() + + " " + + EnumChatFormatting.GRAY + + GuiText.Types.getLocal()); + } + } + if (GuiScreen.isShiftKeyDown()) { + lines.addAll( + RenderUtil.listFormattedStringToWidth( + StatCollector.translateToLocalFormatted(NameConst.TT_CELL_PORTABLE))); + } else { + lines.add(StatCollector.translateToLocal(NameConst.TT_SHIFT_FOR_MORE)); + } + } + + @Override + public int getBytes(final ItemStack cellItem) { + return 256; + } + + @Override + public int getBytesPerType(final ItemStack cellItem) { + return 8; + } + + @Override + public int getTotalTypes(final ItemStack cellItem) { + return 5; + } + + @Override + public boolean isBlackListed(ItemStack cellItem, IAEFluidStack requestedAddition) { + if (Config.blacklistEssentiaGas && ModAndClassUtil.ThE && requestedAddition != null) { + return ModAndClassUtil.essentiaGas.isInstance(requestedAddition.getFluid()); + } + return false; + } + + @Override + public boolean storableInStorageCell() { + return false; + } + + @Override + public boolean isStorageCell(final ItemStack i) { + return true; + } + + @Override + public double getIdleDrain() { + return 0.5; + } + + @Override + public boolean isEditable(final ItemStack is) { + return true; + } + + @Override + public IInventory getUpgradesInventory(final ItemStack is) { + return new CellUpgrades(is, 0); + } + + @Override + public IInventory getConfigInventory(final ItemStack is) { + return new CellConfig(is); + } + + @Override + public FuzzyMode getFuzzyMode(final ItemStack is) { + final String fz = Platform.openNbtData(is).getString("FuzzyMode"); + try { + return FuzzyMode.valueOf(fz); + } catch (final Throwable t) { + return FuzzyMode.IGNORE_ALL; + } + } + + @Override + public void setFuzzyMode(final ItemStack is, final FuzzyMode fzMode) { + Platform.openNbtData(is).setString("FuzzyMode", fzMode.name()); + } + + @Override + public ItemPortableFluidCell register() { + GameRegistry.registerItem(this, NameConst.ITEM_FLUID_PORTABLE_CELL, FluidCraft.MODID); + setCreativeTab(FluidCraftingTabs.INSTANCE); + return this; + } + + @Override + public Object getInventory(ItemStack stack, World world, int x, int y, int z) { + return new PortableFluidCellInventory(stack, x); + } + + public ItemStack stack() { + return new ItemStack(this, 1); + } +} diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidConversionMonitor.java b/src/main/java/com/glodblock/github/common/parts/PartFluidConversionMonitor.java index b9c6b934..f2c7e7af 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidConversionMonitor.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidConversionMonitor.java @@ -1,5 +1,19 @@ package com.glodblock.github.common.parts; +import java.util.Collections; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; + +import org.apache.commons.lang3.tuple.MutablePair; + import appeng.api.config.Actionable; import appeng.api.networking.energy.IEnergySource; import appeng.api.networking.security.PlayerSource; @@ -8,21 +22,12 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.me.GridAccessException; import appeng.util.InventoryAdaptor; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.util.Util; -import java.util.Collections; -import java.util.List; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidContainerItem; -import org.apache.commons.lang3.tuple.MutablePair; public class PartFluidConversionMonitor extends PartFluidStorageMonitor { + public PartFluidConversionMonitor(ItemStack is) { super(is); } @@ -47,8 +52,7 @@ public class PartFluidConversionMonitor extends PartFluidStorageMonitor { } else { fluidStack = Util.FluidUtil.getFluidFromContainer(item); } - if (this.getDisplayed() == null - || fluidStack == null + if (this.getDisplayed() == null || fluidStack == null || fluidStack.getFluid() != ((IAEFluidStack) this.getDisplayed()).getFluid()) { return false; } @@ -59,18 +63,16 @@ public class PartFluidConversionMonitor extends PartFluidStorageMonitor { } final IEnergySource energy = this.getProxy().getEnergy(); final IMEMonitor cell = this.getProxy().getStorage().getFluidInventory(); - final IAEFluidStack input = - (IAEFluidStack) this.getDisplayed().copy().setStackSize(fluidStack.amount); - final IAEFluidStack failedToInsert = - Platform.poweredInsert(energy, cell, input, new PlayerSource(player, this)); + final IAEFluidStack input = (IAEFluidStack) this.getDisplayed().copy().setStackSize(fluidStack.amount); + final IAEFluidStack failedToInsert = Platform + .poweredInsert(energy, cell, input, new PlayerSource(player, this)); if (failedToInsert != null && failedToInsert.getStackSize() == input.getStackSize()) { return false; } else if (failedToInsert == null || failedToInsert.getStackSize() != input.getStackSize()) { if (item.getItem() instanceof ItemFluidPacket) { if (failedToInsert != null) { player.getCurrentEquippedItem() - .setTagCompound( - ItemFluidPacket.newStack(failedToInsert).getTagCompound()); + .setTagCompound(ItemFluidPacket.newStack(failedToInsert).getTagCompound()); return true; } } else { @@ -85,9 +87,7 @@ public class PartFluidConversionMonitor extends PartFluidStorageMonitor { } else if (FluidContainerRegistry.isContainer(tmp)) { IAEFluidStack insertedFluid = input.copy(); insertedFluid.decStackSize(failedToInsert.getStackSize()); - this.getProxy() - .getStorage() - .getFluidInventory() + this.getProxy().getStorage().getFluidInventory() .extractItems(insertedFluid, Actionable.MODULATE, new PlayerSource(player, this)); return false; } @@ -119,15 +119,14 @@ public class PartFluidConversionMonitor extends PartFluidStorageMonitor { } final IEnergySource energy = this.getProxy().getEnergy(); - final IMEMonitor cell = - this.getProxy().getStorage().getFluidInventory(); + final IMEMonitor cell = this.getProxy().getStorage().getFluidInventory(); ItemStack tank = eq.copy(); tank.stackSize = 1; MutablePair fillStack = Util.FluidUtil.fillStack(tank, input.getFluidStack()); input.setStackSize(fillStack.left); - final IAEFluidStack retrieved = - Platform.poweredExtraction(energy, cell, input, new PlayerSource(player, this)); + final IAEFluidStack retrieved = Platform + .poweredExtraction(energy, cell, input, new PlayerSource(player, this)); if (retrieved != null) { if (!player.inventory.addItemStackToInventory(fillStack.right)) { player.entityDropItem(fillStack.right.copy(), 0); diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidExportBus.java b/src/main/java/com/glodblock/github/common/parts/PartFluidExportBus.java index dca50e24..93d4bbeb 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidExportBus.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidExportBus.java @@ -1,5 +1,11 @@ package com.glodblock.github.common.parts; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.*; import appeng.api.networking.IGridNode; import appeng.api.networking.crafting.ICraftingGrid; @@ -22,19 +28,16 @@ import appeng.me.GridAccessException; import appeng.util.InventoryAdaptor; import appeng.util.item.AEFluidStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.base.FCSharedFluidBus; import com.glodblock.github.inventory.FluidConvertingInventoryAdaptor; import com.google.common.collect.ImmutableSet; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.fluids.IFluidHandler; public class PartFluidExportBus extends FCSharedFluidBus implements ICraftingRequester { @@ -83,12 +86,11 @@ public class PartFluidExportBus extends FCSharedFluidBus implements ICraftingReq final InventoryAdaptor destination = this.getHandler(te); final ICraftingGrid cg = this.getProxy().getCrafting(); final IFluidHandler fh = (IFluidHandler) te; - final IMEMonitor inv = - this.getProxy().getStorage().getFluidInventory(); + final IMEMonitor inv = this.getProxy().getStorage().getFluidInventory(); for (int i = 0; i < this.getInventoryByName("config").getSizeInventory(); i++) { - IAEFluidStack fluid = AEFluidStack.create(ItemFluidPacket.getFluidStack( - this.getInventoryByName("config").getStackInSlot(i))); + IAEFluidStack fluid = AEFluidStack + .create(ItemFluidPacket.getFluidStack(this.getInventoryByName("config").getStackInSlot(i))); if (fluid != null) { boolean isAllowed = true; @@ -175,8 +177,8 @@ public class PartFluidExportBus extends FCSharedFluidBus implements ICraftingReq @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); rh.setTexture( CableBusTextures.PartExportSides.getIcon(), @@ -228,9 +230,7 @@ public class PartFluidExportBus extends FCSharedFluidBus implements ICraftingReq } protected InventoryAdaptor getHandler(TileEntity target) { - return target != null - ? FluidConvertingInventoryAdaptor.wrap(target, this.getSide().getOpposite()) - : null; + return target != null ? FluidConvertingInventoryAdaptor.wrap(target, this.getSide().getOpposite()) : null; } @Override diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidImportBus.java b/src/main/java/com/glodblock/github/common/parts/PartFluidImportBus.java index e9c983c9..5045a42f 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidImportBus.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidImportBus.java @@ -1,5 +1,13 @@ package com.glodblock.github.common.parts; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.*; import appeng.api.networking.IGridNode; import appeng.api.networking.security.BaseActionSource; @@ -13,18 +21,13 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.client.texture.CableBusTextures; import appeng.me.GridAccessException; import appeng.util.item.AEFluidStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.base.FCSharedFluidBus; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; public class PartFluidImportBus extends FCSharedFluidBus { @@ -65,8 +68,7 @@ public class PartFluidImportBus extends FCSharedFluidBus { if (te instanceof IFluidHandler) { try { final IFluidHandler fh = (IFluidHandler) te; - final IMEMonitor inv = - this.getProxy().getStorage().getFluidInventory(); + final IMEMonitor inv = this.getProxy().getStorage().getFluidInventory(); int maxDrain = this.calculateAmountToSend(); boolean drained = false; @@ -84,8 +86,8 @@ public class PartFluidImportBus extends FCSharedFluidBus { final AEFluidStack aeFluidStack = AEFluidStack.create(fluidStack); if (aeFluidStack != null) { - final IAEFluidStack notInserted = - inv.injectItems(aeFluidStack, Actionable.MODULATE, this.source); + final IAEFluidStack notInserted = inv + .injectItems(aeFluidStack, Actionable.MODULATE, this.source); if (notInserted != null && notInserted.getStackSize() > 0) { aeFluidStack.decStackSize(notInserted.getStackSize()); @@ -113,8 +115,8 @@ public class PartFluidImportBus extends FCSharedFluidBus { private boolean isInFilter(FluidStack fluid) { for (int i = 0; i < this.getInventoryByName("config").getSizeInventory(); i++) { - final IAEFluidStack stack = AEFluidStack.create(ItemFluidPacket.getFluidStack( - this.getInventoryByName("config").getStackInSlot(i))); + final IAEFluidStack stack = AEFluidStack + .create(ItemFluidPacket.getFluidStack(this.getInventoryByName("config").getStackInSlot(i))); if (stack != null && stack.getFluidStack().equals(fluid)) { return true; } @@ -124,8 +126,8 @@ public class PartFluidImportBus extends FCSharedFluidBus { private boolean filterEnabled() { for (int i = 0; i < this.getInventoryByName("config").getSizeInventory(); i++) { - final IAEFluidStack stack = AEFluidStack.create(ItemFluidPacket.getFluidStack( - this.getInventoryByName("config").getStackInSlot(i))); + final IAEFluidStack stack = AEFluidStack + .create(ItemFluidPacket.getFluidStack(this.getInventoryByName("config").getStackInSlot(i))); if (stack != null) { return true; } @@ -168,8 +170,8 @@ public class PartFluidImportBus extends FCSharedFluidBus { @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); rh.setTexture( CableBusTextures.PartImportSides.getIcon(), diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java b/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java index 0bb88fef..bd07a48d 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidInterface.java @@ -1,5 +1,18 @@ package com.glodblock.github.common.parts; +import java.io.IOException; +import java.util.Objects; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; + import appeng.api.config.Actionable; import appeng.api.config.Upgrades; import appeng.api.networking.IGridNode; @@ -21,6 +34,7 @@ import appeng.parts.misc.PartInterface; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; import appeng.util.item.AEFluidStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.AEFluidInventory; @@ -31,21 +45,11 @@ import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.DualityFluidInterface; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.Objects; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; public class PartFluidInterface extends PartInterface implements IDualHost { @@ -59,8 +63,8 @@ public class PartFluidInterface extends PartInterface implements IDualHost { @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), @@ -122,11 +126,13 @@ public class PartFluidInterface extends PartInterface implements IDualHost { @MENetworkEventSubscribe public void stateChange(final MENetworkChannelsChanged c) { fluidDuality.onChannelStateChange(c); + super.stateChange(c); } @MENetworkEventSubscribe public void stateChange(final MENetworkPowerStatusChange c) { fluidDuality.onPowerStateChange(c); + super.stateChange(c); } @Override @@ -198,10 +204,7 @@ public class PartFluidInterface extends PartInterface implements IDualHost { private IMEMonitor getFluidGrid() { try { - return getProxy() - .getGrid() - .getCache(IStorageGrid.class) - .getFluidInventory(); + return getProxy().getGrid().getCache(IStorageGrid.class).getFluidInventory(); } catch (GridAccessException e) { return null; } @@ -266,7 +269,7 @@ public class PartFluidInterface extends PartInterface implements IDualHost { this.getHost().getTile().getWorldObj(), new BlockPos(this.getHost().getTile()), Objects.requireNonNull(this.getSide()), - GuiType.DUAL_INTERFACE_PART); + GuiType.DUAL_INTERFACE); } return true; } @@ -282,7 +285,8 @@ public class PartFluidInterface extends PartInterface implements IDualHost { public void setConfig(int id, IAEFluidStack fluid) { if (id >= 0 && id < 6) { config.setInventorySlotContents( - id, ItemFluidPacket.newDisplayStack(fluid == null ? null : fluid.getFluidStack())); + id, + ItemFluidPacket.newDisplayStack(fluid == null ? null : fluid.getFluidStack())); fluidDuality.getConfig().setFluidInSlot(id, fluidDuality.getStandardFluid(fluid)); } } diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidLevelEmitter.java b/src/main/java/com/glodblock/github/common/parts/PartFluidLevelEmitter.java index a5077e89..b59ba039 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidLevelEmitter.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidLevelEmitter.java @@ -1,5 +1,22 @@ package com.glodblock.github.common.parts; +import java.util.Objects; +import java.util.Random; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.config.*; import appeng.api.networking.IGridNode; import appeng.api.networking.crafting.*; @@ -33,28 +50,15 @@ import appeng.parts.automation.PartUpgradeable; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.tile.inventory.InvOperation; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.Util; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.Objects; -import java.util.Random; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatcherHost, ICraftingWatcherHost, IMEMonitorHandlerReceiver, IGridTickable { @@ -127,10 +131,9 @@ public class PartFluidLevelEmitter extends PartUpgradeable return false; } - final boolean flipState = - this.getConfigManager().getSetting(Settings.REDSTONE_EMITTER) == RedstoneMode.LOW_SIGNAL; - return flipState - ? this.reportingValue >= this.lastReportedValue + 1 + final boolean flipState = this.getConfigManager().getSetting(Settings.REDSTONE_EMITTER) + == RedstoneMode.LOW_SIGNAL; + return flipState ? this.reportingValue >= this.lastReportedValue + 1 : this.reportingValue < this.lastReportedValue + 1; } @@ -211,12 +214,8 @@ public class PartFluidLevelEmitter extends PartUpgradeable } @Override - public void onStackChange( - final IItemList o, - final IAEStack fullStack, - final IAEStack diffStack, - final BaseActionSource src, - final StorageChannel chan) { + public void onStackChange(final IItemList o, final IAEStack fullStack, final IAEStack diffStack, + final BaseActionSource src, final StorageChannel chan) { if (chan == StorageChannel.FLUIDS && fullStack.equals(this.getIAEFluidStack())) { this.lastReportedValue = fullStack.getStackSize(); this.updateState(); @@ -257,9 +256,7 @@ public class PartFluidLevelEmitter extends PartUpgradeable } @Override - public void postChange( - final IBaseMonitor monitor, - final Iterable change, + public void postChange(final IBaseMonitor monitor, final Iterable change, final BaseActionSource actionSource) { if (canDoWork()) { if (delayedUpdatesQueued) { @@ -504,8 +501,8 @@ public class PartFluidLevelEmitter extends PartUpgradeable @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { rh.setTexture(this.getItemStack().getIconIndex()); // rh.setTexture( CableBusTextures.ItemPartLevelEmitterOn.getIcon() ); @@ -518,8 +515,7 @@ public class PartFluidLevelEmitter extends PartUpgradeable renderer.renderAllFaces = true; final Tessellator tess = Tessellator.instance; - tess.setBrightness(rh.getBlock() - .getMixedBrightnessForBlock(this.getHost().getTile().getWorldObj(), x, y, z)); + tess.setBrightness(rh.getBlock().getMixedBrightnessForBlock(this.getHost().getTile().getWorldObj(), x, y, z)); tess.setColorOpaque_F(1.0F, 1.0F, 1.0F); this.renderTorchAtAngle(x, y, z); @@ -584,12 +580,8 @@ public class PartFluidLevelEmitter extends PartUpgradeable } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { if (inv == this.config) { this.configureWatchers(); } diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminal.java b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminal.java index 76a3889a..d3759126 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminal.java @@ -1,18 +1,20 @@ package com.glodblock.github.common.parts; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + import appeng.api.implementations.ICraftingPatternItem; import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.storage.data.IAEItemStack; import appeng.tile.inventory.BiggerAppEngInventory; import appeng.tile.inventory.InvOperation; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.base.FCFluidEncodeTerminal; import com.glodblock.github.inventory.gui.GuiType; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class PartFluidPatternTerminal extends FCFluidEncodeTerminal { @@ -35,18 +37,14 @@ public class PartFluidPatternTerminal extends FCFluidEncodeTerminal { } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { if (inv == this.pattern && slot == 1) { final ItemStack is = inv.getStackInSlot(1); if (is != null && is.getItem() instanceof ICraftingPatternItem) { final ICraftingPatternItem pattern = (ICraftingPatternItem) is.getItem(); - final ICraftingPatternDetails details = - pattern.getPatternForItem(is, this.getHost().getTile().getWorldObj()); + final ICraftingPatternDetails details = pattern + .getPatternForItem(is, this.getHost().getTile().getWorldObj()); if (details != null) { final IAEItemStack[] inItems = details.getInputs(); final IAEItemStack[] outItems = details.getOutputs(); @@ -70,8 +68,8 @@ public class PartFluidPatternTerminal extends FCFluidEncodeTerminal { if (inItems[i] != null) { final IAEItemStack item = inItems[i]; if (item != null && item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.crafting.setInventorySlotContents(i, packet); } else this.crafting.setInventorySlotContents(i, item == null ? null : item.getItemStack()); } @@ -81,8 +79,8 @@ public class PartFluidPatternTerminal extends FCFluidEncodeTerminal { if (outItems[i] != null) { final IAEItemStack item = outItems[i]; if (item != null && item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.output.setInventorySlotContents(i, packet); } else this.output.setInventorySlotContents(i, item == null ? null : item.getItemStack()); } diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java index 16feb55d..adc4b07e 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidPatternTerminalEx.java @@ -1,18 +1,20 @@ package com.glodblock.github.common.parts; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + import appeng.api.implementations.ICraftingPatternItem; import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.storage.data.IAEItemStack; import appeng.tile.inventory.BiggerAppEngInventory; import appeng.tile.inventory.InvOperation; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.base.FCFluidEncodeTerminal; import com.glodblock.github.inventory.gui.GuiType; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { @@ -33,19 +35,15 @@ public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { if (inv == this.pattern && slot == 1) { final ItemStack is = inv.getStackInSlot(1); if (is != null && is.getItem() instanceof ICraftingPatternItem) { final ICraftingPatternItem pattern = (ICraftingPatternItem) is.getItem(); - final ICraftingPatternDetails details = - pattern.getPatternForItem(is, this.getHost().getTile().getWorldObj()); + final ICraftingPatternDetails details = pattern + .getPatternForItem(is, this.getHost().getTile().getWorldObj()); if (details != null) { final IAEItemStack[] inItems = details.getInputs(); @@ -84,8 +82,8 @@ public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { final IAEItemStack item = inItems[i]; if (item != null) { if (item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.crafting.setInventorySlotContents(i, packet); } else this.crafting.setInventorySlotContents(i, item.getItemStack()); } @@ -96,8 +94,8 @@ public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { final IAEItemStack item = outItems[i]; if (item != null) { if (item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.output.setInventorySlotContents(i, packet); } else this.output.setInventorySlotContents(i, item.getItemStack()); } @@ -107,8 +105,8 @@ public class PartFluidPatternTerminalEx extends FCFluidEncodeTerminal { final IAEItemStack item = outItems[i]; if (item != null) { if (item.getItem() instanceof ItemFluidDrop) { - ItemStack packet = - ItemFluidPacket.newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); + ItemStack packet = ItemFluidPacket + .newStack(ItemFluidDrop.getFluidStack(item.getItemStack())); this.output.setInventorySlotContents(i >= 4 ? 12 + i : i, packet); } else this.output.setInventorySlotContents(i >= 4 ? 12 + i : i, item.getItemStack()); } diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java index 00f69598..5b39f025 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageBus.java @@ -1,5 +1,18 @@ package com.glodblock.github.common.parts; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.AEApi; import appeng.api.config.*; import appeng.api.networking.IGridNode; @@ -36,6 +49,7 @@ import appeng.tile.networking.TileCableBus; import appeng.util.Platform; import appeng.util.item.AEFluidStack; import appeng.util.prioitylist.PrecisePriorityList; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.tile.TileFluidInterface; @@ -43,19 +57,10 @@ import com.glodblock.github.inventory.*; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.ModAndClassUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import extracells.tileentity.TileEntityFluidInterface; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; public class PartFluidStorageBus extends PartUpgradeable implements IGridTickable, ICellContainer, IMEMonitorHandlerReceiver, IPriorityHost { @@ -149,12 +154,8 @@ public class PartFluidStorageBus extends PartUpgradeable } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { super.onChangeInventory(inv, slot, mc, removedStack, newStack); if (inv == this.config) { @@ -163,8 +164,7 @@ public class PartFluidStorageBus extends PartUpgradeable } protected void resetCache(final boolean fullReset) { - if (this.getHost() == null - || this.getHost().getTile() == null + if (this.getHost() == null || this.getHost().getTile() == null || this.getHost().getTile().getWorldObj() == null || this.getHost().getTile().getWorldObj().isRemote) { return; @@ -178,8 +178,7 @@ public class PartFluidStorageBus extends PartUpgradeable try { this.getProxy().getTick().alertDevice(this.getProxy().getNode()); - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} } protected void resetCache() { @@ -190,8 +189,8 @@ public class PartFluidStorageBus extends PartUpgradeable IItemList before = AEApi.instance().storage().createFluidList(); if (in != null) { if (accessChanged) { - AccessRestriction currentAccess = - (AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS); + AccessRestriction currentAccess = (AccessRestriction) this.getConfigManager() + .getSetting(Settings.ACCESS); if (!currentAccess.hasPermission(AccessRestriction.READ)) { readOncePass = true; } @@ -225,21 +224,16 @@ public class PartFluidStorageBus extends PartUpgradeable } @Override - public void postChange( - final IBaseMonitor monitor, - final Iterable change, + public void postChange(final IBaseMonitor monitor, final Iterable change, final BaseActionSource source) { if (this.getProxy().isActive()) { - AccessRestriction currentAccess = - (AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS); + AccessRestriction currentAccess = (AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS); if (readOncePass) { readOncePass = false; try { - this.getProxy() - .getStorage() + this.getProxy().getStorage() .postAlterationOfStoredItems(StorageChannel.FLUIDS, change, this.source); - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} return; } if (!currentAccess.hasPermission(AccessRestriction.READ)) { @@ -247,8 +241,7 @@ public class PartFluidStorageBus extends PartUpgradeable } try { this.getProxy().getStorage().postAlterationOfStoredItems(StorageChannel.FLUIDS, change, source); - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} } } @@ -289,6 +282,9 @@ public class PartFluidStorageBus extends PartUpgradeable this.resetCache(true); this.resetCache(); } + } else if (te instanceof IFluidHandler) { + this.resetCache(true); + this.resetCache(); } else { this.resetCache(false); } @@ -326,7 +322,7 @@ public class PartFluidStorageBus extends PartUpgradeable return TickRateModulation.SLEEP; } - @SuppressWarnings({"rawtypes", "unchecked"}) + @SuppressWarnings({ "rawtypes", "unchecked" }) public MEInventoryHandler getInternalHandler() { if (this.cached) { return this.handler; @@ -345,13 +341,11 @@ public class PartFluidStorageBus extends PartUpgradeable this.handler = null; this.monitor = null; if (target != null) { - final IExternalStorageHandler esh = AEApi.instance() - .registries() - .externalStorage() + final IExternalStorageHandler esh = AEApi.instance().registries().externalStorage() .getHandler(target, this.getSide().getOpposite(), StorageChannel.FLUIDS, this.source); if (esh != null) { - final IMEInventory inv = - esh.getInventory(target, this.getSide().getOpposite(), StorageChannel.FLUIDS, this.source); + final IMEInventory inv = esh + .getInventory(target, this.getSide().getOpposite(), StorageChannel.FLUIDS, this.source); if (inv instanceof MEMonitorIFluidHandler) { final MEMonitorIFluidHandler h = (MEMonitorIFluidHandler) inv; h.setMode((StorageFilter) this.getConfigManager().getSetting(Settings.STORAGE_FILTER)); @@ -360,18 +354,15 @@ public class PartFluidStorageBus extends PartUpgradeable } if (inv != null) { this.handler = new MEInventoryHandler(inv, StorageChannel.FLUIDS); - this.handler.setBaseAccess( - (AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS)); + this.handler.setBaseAccess((AccessRestriction) this.getConfigManager().getSetting(Settings.ACCESS)); this.handler.setWhitelist( - this.getInstalledUpgrades(Upgrades.INVERTER) > 0 - ? IncludeExclude.BLACKLIST + this.getInstalledUpgrades(Upgrades.INVERTER) > 0 ? IncludeExclude.BLACKLIST : IncludeExclude.WHITELIST); this.handler.setPriority(this.priority); if (inv instanceof IMEMonitor) { ((IBaseMonitor) inv).addListener(this, this.handler); } - final IItemList priorityList = - AEApi.instance().storage().createFluidList(); + final IItemList priorityList = AEApi.instance().storage().createFluidList(); final int slotsToUse = 18 + this.getInstalledUpgrades(Upgrades.CAPACITY) * 9; for (int x = 0; x < this.config.getSizeInventory() && x < slotsToUse; x++) { @@ -392,15 +383,13 @@ public class PartFluidStorageBus extends PartUpgradeable } else { tm.wakeDevice(this.getProxy().getNode()); } - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} } try { // force grid to update handlers... ((GridStorageCache) this.getProxy().getGrid().getCache(IStorageGrid.class)).cellUpdate(null); - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} return this.handler; } @@ -471,8 +460,8 @@ public class PartFluidStorageBus extends PartUpgradeable @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); rh.setTexture( CableBusTextures.PartStorageSides.getIcon(), diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageMonitor.java b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageMonitor.java index 8ffb6f58..5b6d8900 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidStorageMonitor.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidStorageMonitor.java @@ -1,17 +1,18 @@ package com.glodblock.github.common.parts; +import net.minecraft.item.ItemStack; + import appeng.client.texture.CableBusTextures; import appeng.helpers.Reflected; + import com.glodblock.github.common.parts.base.FCPartMonitor; -import net.minecraft.item.ItemStack; public class PartFluidStorageMonitor extends FCPartMonitor { private static final CableBusTextures FRONT_BRIGHT_ICON = CableBusTextures.PartStorageMonitor_Bright; private static final CableBusTextures FRONT_DARK_ICON = CableBusTextures.PartStorageMonitor_Dark; private static final CableBusTextures FRONT_COLORED_ICON = CableBusTextures.PartStorageMonitor_Colored; - private static final CableBusTextures FRONT_COLORED_ICON_LOCKED = - CableBusTextures.PartStorageMonitor_Colored_Locked; + private static final CableBusTextures FRONT_COLORED_ICON_LOCKED = CableBusTextures.PartStorageMonitor_Colored_Locked; @Reflected public PartFluidStorageMonitor(final ItemStack is) { diff --git a/src/main/java/com/glodblock/github/common/parts/PartFluidTerminal.java b/src/main/java/com/glodblock/github/common/parts/PartFluidTerminal.java index 77d305f3..9b42bea4 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartFluidTerminal.java +++ b/src/main/java/com/glodblock/github/common/parts/PartFluidTerminal.java @@ -1,11 +1,13 @@ package com.glodblock.github.common.parts; +import net.minecraft.item.ItemStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.parts.base.FCPart; import com.glodblock.github.inventory.gui.GuiType; -import net.minecraft.item.ItemStack; public class PartFluidTerminal extends FCPart { + private static final FCPartsTexture FRONT_BRIGHT_ICON = FCPartsTexture.PartFluidTerminal_Bright; private static final FCPartsTexture FRONT_DARK_ICON = FCPartsTexture.PartFluidTerminal_Colored; private static final FCPartsTexture FRONT_COLORED_ICON = FCPartsTexture.PartFluidTerminal_Dark; diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java b/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java index 7febe665..4b91a4be 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCFluidEncodeTerminal.java @@ -1,12 +1,14 @@ package com.glodblock.github.common.parts.base; -import appeng.api.storage.data.IAEItemStack; -import appeng.tile.inventory.AppEngInternalInventory; import java.util.List; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import appeng.api.storage.data.IAEItemStack; +import appeng.tile.inventory.AppEngInternalInventory; + public abstract class FCFluidEncodeTerminal extends FCPart { protected AppEngInternalInventory crafting; diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCPart.java b/src/main/java/com/glodblock/github/common/parts/base/FCPart.java index de0f7519..7584b0d1 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCPart.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCPart.java @@ -1,5 +1,22 @@ package com.glodblock.github.common.parts.base; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.config.*; import appeng.api.implementations.IPowerChannelState; import appeng.api.implementations.tiles.IViewCellStorage; @@ -24,29 +41,16 @@ import appeng.tile.inventory.InvOperation; import appeng.util.ConfigManager; import appeng.util.IConfigManagerHost; import appeng.util.Platform; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.Util; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.List; -import java.util.Objects; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; public abstract class FCPart extends AEBasePart implements IPowerChannelState, ITerminalHost, IConfigManagerHost, IViewCellStorage, IAEAppEngInventory { @@ -247,12 +251,10 @@ public abstract class FCPart extends AEBasePart private int blockLight(final int emit) { if (this.opacity < 0) { final TileEntity te = this.getTile(); - this.opacity = 255 - - te.getWorldObj() - .getBlockLightOpacity( - te.xCoord + this.getSide().offsetX, - te.yCoord + this.getSide().offsetY, - te.zCoord + this.getSide().offsetZ); + this.opacity = 255 - te.getWorldObj().getBlockLightOpacity( + te.xCoord + this.getSide().offsetX, + te.yCoord + this.getSide().offsetY, + te.zCoord + this.getSide().offsetZ); } return (int) (emit * (this.opacity / 255.0f)); } @@ -299,12 +301,8 @@ public abstract class FCPart extends AEBasePart } @Override - public void onChangeInventory( - final IInventory inv, - final int slot, - final InvOperation mc, - final ItemStack removedStack, - final ItemStack newStack) { + public void onChangeInventory(final IInventory inv, final int slot, final InvOperation mc, + final ItemStack removedStack, final ItemStack newStack) { this.getHost().markForSave(); } @@ -358,8 +356,8 @@ public abstract class FCPart extends AEBasePart @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); final IIcon sideTexture = CableBusTextures.PartMonitorSides.getIcon(); @@ -381,8 +379,8 @@ public abstract class FCPart extends AEBasePart Tessellator.instance.setBrightness(l << 20 | l << 4); } - renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = - renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = this.getSpin(); + renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = this + .getSpin(); Tessellator.instance.setColorOpaque_I(this.getColor().whiteVariant); rh.renderFace(x, y, z, this.getFrontBright().getIcon(), ForgeDirection.SOUTH, renderer); @@ -393,8 +391,7 @@ public abstract class FCPart extends AEBasePart Tessellator.instance.setColorOpaque_I(this.getColor().blackVariant); rh.renderFace(x, y, z, this.getFrontColored().getIcon(), ForgeDirection.SOUTH, renderer); - renderer.uvRotateBottom = renderer.uvRotateEast = - renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; + renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; final IIcon sideStatusTexture = CableBusTextures.PartMonitorSidesStatus.getIcon(); diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCPartMonitor.java b/src/main/java/com/glodblock/github/common/parts/base/FCPartMonitor.java index 0d8ab321..f7f2070f 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCPartMonitor.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCPartMonitor.java @@ -1,5 +1,25 @@ package com.glodblock.github.common.parts.base; +import java.io.IOException; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + import appeng.api.implementations.parts.IPartStorageMonitor; import appeng.api.networking.security.BaseActionSource; import appeng.api.networking.storage.IStackWatcher; @@ -22,31 +42,17 @@ import appeng.util.IWideReadableNumberConverter; import appeng.util.Platform; import appeng.util.ReadableNumberConverter; import appeng.util.item.AEFluidStack; + import com.glodblock.github.client.textures.FCPartsTexture; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.util.Util; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.GLAllocation; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; public abstract class FCPartMonitor extends AbstractPartDisplay implements IPartStorageMonitor, IStackWatcherHost { + private static final IWideReadableNumberConverter NUMBER_CONVERTER = ReadableNumberConverter.INSTANCE; private IAEFluidStack configuredFluid; @@ -197,8 +203,8 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart @Override @SideOnly(Side.CLIENT) - public void renderDynamic( - final double x, final double y, final double z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderDynamic(final double x, final double y, final double z, final IPartRenderHelper rh, + final RenderBlocks renderer) { if (this.dspList == null) { this.dspList = GLAllocation.generateDisplayLists(1); } @@ -325,12 +331,8 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart } @Override - public void onStackChange( - final IItemList o, - final IAEStack fullStack, - final IAEStack diffStack, - final BaseActionSource src, - final StorageChannel chan) { + public void onStackChange(final IItemList o, final IAEStack fullStack, final IAEStack diffStack, + final BaseActionSource src, final StorageChannel chan) { if (this.configuredFluid != null) { if (fullStack == null) { this.configuredFluid.setStackSize(0); @@ -385,8 +387,8 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart @Override @SideOnly(Side.CLIENT) - public void renderStatic( - final int x, final int y, final int z, final IPartRenderHelper rh, final RenderBlocks renderer) { + public void renderStatic(final int x, final int y, final int z, final IPartRenderHelper rh, + final RenderBlocks renderer) { this.setRenderCache(rh.useSimplifiedRendering(x, y, z, this, this.getRenderCache())); final IIcon sideTexture = CableBusTextures.PartMonitorSides.getIcon(); @@ -408,8 +410,8 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart Tessellator.instance.setBrightness(l << 20 | l << 4); } - renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = - renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = this.getSpin(); + renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = this + .getSpin(); Tessellator.instance.setColorOpaque_I(this.getColor().whiteVariant); rh.renderFace(x, y, z, this.getFrontBright().getIcon(), ForgeDirection.SOUTH, renderer); @@ -420,8 +422,7 @@ public abstract class FCPartMonitor extends AbstractPartDisplay implements IPart Tessellator.instance.setColorOpaque_I(this.getColor().blackVariant); rh.renderFace(x, y, z, this.getFrontColored().getIcon(), ForgeDirection.SOUTH, renderer); - renderer.uvRotateBottom = renderer.uvRotateEast = - renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; + renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; final IIcon sideStatusTexture = CableBusTextures.PartMonitorSidesStatus.getIcon(); diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCSharedFluidBus.java b/src/main/java/com/glodblock/github/common/parts/base/FCSharedFluidBus.java index 86c5e994..1dc811ce 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCSharedFluidBus.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCSharedFluidBus.java @@ -1,5 +1,16 @@ package com.glodblock.github.common.parts.base; +import java.util.Objects; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + import appeng.api.config.RedstoneMode; import appeng.api.config.Upgrades; import appeng.api.networking.ticking.IGridTickable; @@ -11,19 +22,11 @@ import appeng.me.GridAccessException; import appeng.parts.automation.PartUpgradeable; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; -import java.util.Objects; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; public abstract class FCSharedFluidBus extends PartUpgradeable implements IGridTickable { diff --git a/src/main/java/com/glodblock/github/common/storage/CellType.java b/src/main/java/com/glodblock/github/common/storage/CellType.java index d52b4dfc..6b997088 100644 --- a/src/main/java/com/glodblock/github/common/storage/CellType.java +++ b/src/main/java/com/glodblock/github/common/storage/CellType.java @@ -1,18 +1,23 @@ package com.glodblock.github.common.storage; -import appeng.core.features.AEFeature; import java.util.EnumSet; + import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +import appeng.core.features.AEFeature; public enum CellType { + Cell1kPart(0, AEFeature.StorageCells), Cell4kPart(1, AEFeature.StorageCells), Cell16kPart(2, AEFeature.StorageCells), Cell64kPart(3, AEFeature.StorageCells), Cell256kPart(4, AEFeature.StorageCells), Cell1024kPart(5, AEFeature.StorageCells), - Cell4096kPart(6, AEFeature.StorageCells); + Cell4096kPart(6, AEFeature.StorageCells), + Cell16384kPart(7, AEFeature.StorageCells); private final EnumSet features; private int damageValue; @@ -46,4 +51,30 @@ public enum CellType { public void setItemInstance(final Item itemInstance) { this.itemInstance = itemInstance; } + + public static EnumChatFormatting getTypeColor(int type) { + return getTypeColor(CellType.values()[type % CellType.values().length]); + } + + public static EnumChatFormatting getTypeColor(CellType type) { + switch (type) { + case Cell1kPart: + return EnumChatFormatting.GOLD; + case Cell4kPart: + return EnumChatFormatting.YELLOW; + case Cell16kPart: + return EnumChatFormatting.GREEN; + case Cell64kPart: + return EnumChatFormatting.AQUA; + case Cell256kPart: + return EnumChatFormatting.BLUE; + case Cell1024kPart: + return EnumChatFormatting.LIGHT_PURPLE; + case Cell4096kPart: + return EnumChatFormatting.RED; + case Cell16384kPart: + return EnumChatFormatting.DARK_PURPLE; + } + return EnumChatFormatting.WHITE; + } } diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java b/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java index 92f08d1a..648ead69 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellHandler.java @@ -1,16 +1,17 @@ package com.glodblock.github.common.storage; -import appeng.api.implementations.tiles.IChestOrDrive; -import appeng.api.implementations.tiles.IMEChest; -import appeng.api.networking.security.PlayerSource; -import appeng.api.storage.*; -import appeng.client.texture.ExtraBlockTextures; -import com.glodblock.github.util.ModAndClassUtil; -import extracells.network.GuiHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; + +import appeng.api.implementations.tiles.IChestOrDrive; +import appeng.api.storage.*; +import appeng.client.texture.ExtraBlockTextures; + +import com.glodblock.github.inventory.InventoryHandler; +import com.glodblock.github.inventory.gui.GuiType; +import com.glodblock.github.util.BlockPos; public class FluidCellHandler implements ICellHandler { @@ -20,8 +21,9 @@ public class FluidCellHandler implements ICellHandler { } @Override - public IMEInventoryHandler getCellInventory( - final ItemStack is, final ISaveProvider container, final StorageChannel channel) { + @SuppressWarnings("rawtypes") + public IMEInventoryHandler getCellInventory(final ItemStack is, final ISaveProvider container, + final StorageChannel channel) { if (channel == StorageChannel.FLUIDS) { return FluidCellInventory.getCell(is, container); } @@ -44,24 +46,13 @@ public class FluidCellHandler implements ICellHandler { } @Override - public void openChestGui( - final EntityPlayer player, - final IChestOrDrive chest, - final ICellHandler cellHandler, - final IMEInventoryHandler inv, - final ItemStack is, - final StorageChannel chan) { - if (ModAndClassUtil.EC2) { - if (chan == StorageChannel.FLUIDS) { - IStorageMonitorable monitorable = null; - if (chest != null) { - monitorable = - ((IMEChest) chest).getMonitorable(ForgeDirection.UNKNOWN, new PlayerSource(player, chest)); - } - if (monitorable != null) { - GuiHandler.launchGui( - GuiHandler.getGuiId(0), player, new Object[] {monitorable.getFluidInventory()}); - } + public void openChestGui(final EntityPlayer player, final IChestOrDrive chest, final ICellHandler cellHandler, + final IMEInventoryHandler inv, final ItemStack is, final StorageChannel chan) { + if (chan == StorageChannel.FLUIDS) { + if (chest instanceof TileEntity) { + TileEntity te = (TileEntity) chest; + InventoryHandler + .openGui(player, te.getWorldObj(), new BlockPos(te), chest.getUp(), GuiType.FLUID_TERMINAL); } } } diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java index 47028642..13885381 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java @@ -1,5 +1,15 @@ package com.glodblock.github.common.storage; +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.exceptions.AppEngException; @@ -11,14 +21,6 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IItemList; import appeng.util.Platform; import appeng.util.item.AEFluidStack; -import java.util.ArrayList; -import java.util.List; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.FluidStack; public class FluidCellInventory implements IFluidCellInventory { @@ -31,7 +33,7 @@ public class FluidCellInventory implements IFluidCellInventory { private static String[] fluidSlotCount; private final ItemStack cellItem; private final ISaveProvider container; - private final int MAX_TYPE = 1; + private final int MAX_TYPE = 63; private long storedFluidCount; private short storedFluids; private IItemList cellFluids; @@ -39,6 +41,22 @@ public class FluidCellInventory implements IFluidCellInventory { public static final int singleByteAmount = 256 * 8; public FluidCellInventory(final ItemStack o, final ISaveProvider container) throws AppEngException { + if (o == null) { + throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); + } + this.cellType = null; + this.cellItem = o; + final Item type = this.cellItem.getItem(); + if (type instanceof IStorageFluidCell) { + this.cellType = (IStorageFluidCell) this.cellItem.getItem(); + } + if (this.cellType == null) { + throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); + } + if (!this.cellType.isStorageCell(this.cellItem)) { + throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); + } + if (fluidSlots == null) { fluidSlots = new String[MAX_TYPE]; fluidSlotCount = new String[MAX_TYPE]; @@ -49,27 +67,6 @@ public class FluidCellInventory implements IFluidCellInventory { } } - if (o == null) { - throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); - } - - this.cellType = null; - this.cellItem = o; - - final Item type = this.cellItem.getItem(); - - if (type instanceof IStorageFluidCell) { - this.cellType = (IStorageFluidCell) this.cellItem.getItem(); - } - - if (this.cellType == null) { - throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); - } - - if (!this.cellType.isStorageCell(this.cellItem)) { - throw new AppEngException("ItemStack was used as a cell, but was not a cell!"); - } - this.container = container; this.tagCompound = Platform.openNbtData(o); this.storedFluids = this.tagCompound.getShort(FLUID_TYPE_TAG); @@ -120,7 +117,7 @@ public class FluidCellInventory implements IFluidCellInventory { public boolean canHoldNewFluid() { final long bytesFree = this.getFreeBytes(); return (bytesFree > this.getBytesPerType() - || (bytesFree == this.getBytesPerType() && this.getUnusedFluidCount() > 0)) + || (bytesFree == this.getBytesPerType() && this.getUnusedFluidCount() > 0)) && this.getRemainingFluidTypes() > 0; } @@ -142,7 +139,7 @@ public class FluidCellInventory implements IFluidCellInventory { @Override public long getTotalFluidTypes() { - return MAX_TYPE; + return this.cellType.getTotalTypes(this.cellItem); } @Override @@ -305,8 +302,8 @@ public class FluidCellInventory implements IFluidCellInventory { if (this.canHoldNewFluid()) // room for new type, and for at least one item! { - final long remainingFluidCount = - this.getRemainingFluidCount() - ((long) this.getBytesPerType() * singleByteAmount); + final long remainingFluidCount = this.getRemainingFluidCount() + - ((long) this.getBytesPerType() * singleByteAmount); if (remainingFluidCount > 0) { if (input.getStackSize() > remainingFluidCount) { diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java b/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java index 2ad00711..334a0cea 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java @@ -1,5 +1,8 @@ package com.glodblock.github.common.storage; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + import appeng.api.AEApi; import appeng.api.config.IncludeExclude; import appeng.api.storage.IMEInventory; @@ -10,10 +13,9 @@ import appeng.me.storage.MEInventoryHandler; import appeng.me.storage.MEPassThrough; import appeng.util.item.AEFluidStack; import appeng.util.prioitylist.PrecisePriorityList; + import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.Util; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; public class FluidCellInventoryHandler extends MEInventoryHandler implements IFluidCellInventoryHandler { @@ -25,8 +27,7 @@ public class FluidCellInventoryHandler extends MEInventoryHandler if (ci != null) { final IInventory config = ci.getConfigInventory(); - final IItemList priorityList = - AEApi.instance().storage().createFluidList(); + final IItemList priorityList = AEApi.instance().storage().createFluidList(); for (int x = 0; x < config.getSizeInventory(); x++) { final ItemStack is = config.getStackInSlot(x); if (Util.getFluidFromItem(is) != null) { diff --git a/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java index 89e91489..e48739c3 100644 --- a/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java @@ -1,10 +1,12 @@ package com.glodblock.github.common.storage; +import java.util.List; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + import appeng.api.storage.IMEInventory; import appeng.api.storage.data.IAEFluidStack; -import java.util.List; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; public interface IFluidCellInventory extends IMEInventory { diff --git a/src/main/java/com/glodblock/github/common/storage/IStorageFluidCell.java b/src/main/java/com/glodblock/github/common/storage/IStorageFluidCell.java index 90d076b9..7ed2134b 100644 --- a/src/main/java/com/glodblock/github/common/storage/IStorageFluidCell.java +++ b/src/main/java/com/glodblock/github/common/storage/IStorageFluidCell.java @@ -1,8 +1,9 @@ package com.glodblock.github.common.storage; +import net.minecraft.item.ItemStack; + import appeng.api.storage.ICellWorkbenchItem; import appeng.api.storage.data.IAEFluidStack; -import net.minecraft.item.ItemStack; public interface IStorageFluidCell extends ICellWorkbenchItem { diff --git a/src/main/java/com/glodblock/github/common/tabs/FluidCraftingTabs.java b/src/main/java/com/glodblock/github/common/tabs/FluidCraftingTabs.java index 56e5e195..e54b3f0b 100644 --- a/src/main/java/com/glodblock/github/common/tabs/FluidCraftingTabs.java +++ b/src/main/java/com/glodblock/github/common/tabs/FluidCraftingTabs.java @@ -1,9 +1,10 @@ package com.glodblock.github.common.tabs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + import com.glodblock.github.FluidCraft; import com.glodblock.github.loader.ItemAndBlockHolder; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; public class FluidCraftingTabs extends CreativeTabs { diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidBuffer.java b/src/main/java/com/glodblock/github/common/tile/TileFluidBuffer.java index e10b77b4..a82caa72 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidBuffer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidBuffer.java @@ -1,5 +1,12 @@ package com.glodblock.github.common.tile; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.api.implementations.IPowerChannelState; @@ -15,16 +22,11 @@ import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; import appeng.tile.grid.AENetworkTile; import appeng.util.item.AEFluidStack; + import com.glodblock.github.inventory.AEFluidInventory; import com.glodblock.github.inventory.IAEFluidInventory; import com.glodblock.github.inventory.IAEFluidTank; import io.netty.buffer.ByteBuf; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, IFluidHandler, IPowerChannelState { @@ -44,10 +46,7 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, return false; } try { - IAEFluidStack ias = this.getProxy() - .getStorage() - .getFluidInventory() - .getStorageList() + IAEFluidStack ias = this.getProxy().getStorage().getFluidInventory().getStorageList() .findPrecise(AEFluidStack.create(fs)); this.invFluids.setFluidInSlot(0, ias); if (ias != null) return true; @@ -62,13 +61,10 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, IAEFluidStack ifs = this.getAEFluidStack(); if (ifs != null && ifs.getFluid() == fluidStack.getFluid()) { try { - IAEFluidStack notInserted = this.getProxy() - .getStorage() - .getFluidInventory() - .injectItems( - AEFluidStack.create(fluidStack), - b ? Actionable.MODULATE : Actionable.SIMULATE, - this.source); + IAEFluidStack notInserted = this.getProxy().getStorage().getFluidInventory().injectItems( + AEFluidStack.create(fluidStack), + b ? Actionable.MODULATE : Actionable.SIMULATE, + this.source); if (notInserted != null) return fluidStack.amount -= notInserted.getStackSize(); return fluidStack.amount; } catch (final GridAccessException e) { @@ -92,8 +88,8 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, if (fs == null || fs.amount <= 0) return null; try { IAEFluidStack ias = AEFluidStack.create(fs); - IAEFluidStack extracted = - this.getProxy().getStorage().getFluidInventory().extractItems(ias, actionable, this.source); + IAEFluidStack extracted = this.getProxy().getStorage().getFluidInventory() + .extractItems(ias, actionable, this.source); if (extracted == null) return null; return extracted.getFluidStack(); } catch (final GridAccessException e) { @@ -115,10 +111,7 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, public IAEFluidStack getAEStoreFluidStack() { try { - return this.getProxy() - .getStorage() - .getFluidInventory() - .getStorageList() + return this.getProxy().getStorage().getFluidInventory().getStorageList() .findPrecise(this.getAEFluidStack()); } catch (final GridAccessException e) { // :P @@ -205,8 +198,7 @@ public class TileFluidBuffer extends AENetworkTile implements IAEFluidInventory, newState = this.getProxy().isActive() && this.getProxy().getEnergy().extractAEPower(1, Actionable.SIMULATE, PowerMultiplier.CONFIG) > 0.0001; - } catch (final GridAccessException ignored) { - } + } catch (final GridAccessException ignored) {} if (newState != this.isPowered) { this.isPowered = newState; this.markForUpdate(); diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java b/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java index ec0212fd..850f1ae7 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidDiscretizer.java @@ -1,5 +1,9 @@ package com.glodblock.github.common.tile; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.networking.GridFlags; @@ -20,10 +24,8 @@ import appeng.me.GridAccessException; import appeng.me.cache.CraftingGridCache; import appeng.me.storage.MEInventoryHandler; import appeng.tile.grid.AENetworkTile; + import com.glodblock.github.common.item.ItemFluidDrop; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost, ICellContainer { @@ -87,10 +89,7 @@ public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost private IMEMonitor getFluidGrid() { try { - return getProxy() - .getGrid() - .getCache(IStorageGrid.class) - .getFluidInventory(); + return getProxy().getGrid().getCache(IStorageGrid.class).getFluidInventory(); } catch (GridAccessException e) { return null; } @@ -211,12 +210,12 @@ public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost @Override public boolean isValid(Object verificationToken) { IMEMonitor fluidGrid = getFluidGrid(); - return fluidGrid != null && fluidGrid == verificationToken /*&& !conflict*/; + return fluidGrid != null && fluidGrid == verificationToken /* && !conflict */; } @Override - public void postChange( - IBaseMonitor monitor, Iterable change, BaseActionSource actionSource) { + public void postChange(IBaseMonitor monitor, Iterable change, + BaseActionSource actionSource) { itemCache = null; try { List mappedChanges = new ArrayList<>(); @@ -226,9 +225,7 @@ public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost mappedChanges.add(itemStack); } } - getProxy() - .getGrid() - .getCache(IStorageGrid.class) + getProxy().getGrid().getCache(IStorageGrid.class) .postAlterationOfStoredItems(getChannel(), mappedChanges, ownActionSource); } catch (GridAccessException e) { // NO-OP diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidInterface.java b/src/main/java/com/glodblock/github/common/tile/TileFluidInterface.java index 4edb1866..e6e745f6 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidInterface.java @@ -1,5 +1,16 @@ package com.glodblock.github.common.tile; +import java.io.IOException; + +import javax.annotation.Nullable; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; + import appeng.api.config.Settings; import appeng.api.config.SidelessMode; import appeng.api.config.Upgrades; @@ -15,6 +26,7 @@ import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.tile.misc.TileInterface; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.AEFluidInventory; import com.glodblock.github.inventory.IAEFluidTank; @@ -22,22 +34,16 @@ import com.glodblock.github.inventory.IDualHost; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.DualityFluidInterface; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.network.ByteBufUtils; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import javax.annotation.Nullable; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; public class TileFluidInterface extends TileInterface implements IDualHost { private final IConfigManager dualityConfigManager = getInterfaceDuality().getConfigManager(); private final DualityFluidInterface fluidDuality = new DualityFluidInterface(this.getProxy(), this) { + @Override public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { SidelessMode mode = (SidelessMode) dualityConfigManager.getSetting(Settings.SIDELESS_MODE); @@ -201,7 +207,8 @@ public class TileFluidInterface extends TileInterface implements IDualHost { public void setConfig(int id, IAEFluidStack fluid) { if (id >= 0 && id < 6) { config.setInventorySlotContents( - id, ItemFluidPacket.newDisplayStack(fluid == null ? null : fluid.getFluidStack())); + id, + ItemFluidPacket.newDisplayStack(fluid == null ? null : fluid.getFluidStack())); fluidDuality.getConfig().setFluidInSlot(id, fluidDuality.getStandardFluid(fluid)); } } diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java b/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java index c0477b48..0500fd32 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java @@ -1,5 +1,11 @@ package com.glodblock.github.common.tile; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.networking.GridFlags; import appeng.api.networking.IGridNode; import appeng.api.networking.energy.IEnergyGrid; @@ -21,12 +27,8 @@ import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.InvOperation; import appeng.util.Platform; import appeng.util.item.AEFluidStack; + import com.glodblock.github.common.item.ItemFluidPacket; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.FluidStack; public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickable, IAEAppEngInventory, IInventory { @@ -66,8 +68,8 @@ public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickab } IAEFluidStack aeFluid = AEFluidStack.create(fluid.copy()); IEnergyGrid energyGrid = node.getGrid().getCache(IEnergyGrid.class); - IMEMonitor fluidGrid = - node.getGrid().getCache(IStorageGrid.class).getFluidInventory(); + IMEMonitor fluidGrid = node.getGrid().getCache(IStorageGrid.class) + .getFluidInventory(); IAEFluidStack remaining = Platform.poweredInsert(energyGrid, fluidGrid, aeFluid, ownActionSource); if (remaining != null) { if (remaining.getStackSize() == aeFluid.getStackSize()) { @@ -83,8 +85,8 @@ public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickab } @Override - public void onChangeInventory( - IInventory inv, int slot, InvOperation mc, ItemStack removedStack, ItemStack newStack) { + public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removedStack, + ItemStack newStack) { try { getProxy().getTick().alertDevice(getProxy().getNode()); } catch (GridAccessException e) { diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidPatternEncoder.java b/src/main/java/com/glodblock/github/common/tile/TileFluidPatternEncoder.java index cbaae436..3b708be1 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidPatternEncoder.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidPatternEncoder.java @@ -1,5 +1,12 @@ package com.glodblock.github.common.tile; +import java.util.List; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.tile.AEBaseTile; @@ -8,19 +15,17 @@ import appeng.tile.events.TileEventType; import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.InvOperation; + import com.glodblock.github.inventory.AeStackInventory; import com.glodblock.github.inventory.AeStackInventoryImpl; -import java.util.List; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; public class TileFluidPatternEncoder extends AEBaseTile implements IAEAppEngInventory { private final AppEngInternalInventory patternInv = new AppEngInternalInventory(this, 2); - private final AeStackInventoryImpl crafting = - new AeStackInventoryImpl<>(StorageChannel.ITEMS, 9, this); + private final AeStackInventoryImpl crafting = new AeStackInventoryImpl<>( + StorageChannel.ITEMS, + 9, + this); private final AeStackInventoryImpl output = new AeStackInventoryImpl<>(StorageChannel.ITEMS, 3, this); public IInventory getInventory() { @@ -65,6 +70,6 @@ public class TileFluidPatternEncoder extends AEBaseTile implements IAEAppEngInve } @Override - public void onChangeInventory( - IInventory inv, int slot, InvOperation mc, ItemStack removedStack, ItemStack newStack) {} + public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removedStack, + ItemStack newStack) {} } diff --git a/src/main/java/com/glodblock/github/common/tile/TileIngredientBuffer.java b/src/main/java/com/glodblock/github/common/tile/TileIngredientBuffer.java index cc472fdb..47177cb1 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileIngredientBuffer.java @@ -1,17 +1,9 @@ package com.glodblock.github.common.tile; -import appeng.tile.AEBaseInvTile; -import appeng.tile.TileEvent; -import appeng.tile.events.TileEventType; -import appeng.tile.inventory.AppEngInternalInventory; -import appeng.tile.inventory.InvOperation; -import com.glodblock.github.inventory.AEFluidInventory; -import com.glodblock.github.inventory.IAEFluidInventory; -import com.glodblock.github.inventory.IAEFluidTank; -import cpw.mods.fml.common.network.ByteBufUtils; -import io.netty.buffer.ByteBuf; import java.io.IOException; + import javax.annotation.Nonnull; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -21,6 +13,19 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; +import appeng.tile.AEBaseInvTile; +import appeng.tile.TileEvent; +import appeng.tile.events.TileEventType; +import appeng.tile.inventory.AppEngInternalInventory; +import appeng.tile.inventory.InvOperation; + +import com.glodblock.github.inventory.AEFluidInventory; +import com.glodblock.github.inventory.IAEFluidInventory; +import com.glodblock.github.inventory.IAEFluidTank; + +import cpw.mods.fml.common.network.ByteBufUtils; +import io.netty.buffer.ByteBuf; + public class TileIngredientBuffer extends AEBaseInvTile implements IAEFluidInventory, IFluidHandler { protected AppEngInternalInventory invItems; @@ -49,7 +54,7 @@ public class TileIngredientBuffer extends AEBaseInvTile implements IAEFluidInven @Override public int[] getAccessibleSlotsBySide(ForgeDirection whichSide) { - return new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8}; + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; } @Override diff --git a/src/main/java/com/glodblock/github/common/tile/TileLargeIngredientBuffer.java b/src/main/java/com/glodblock/github/common/tile/TileLargeIngredientBuffer.java index 07ff536d..0c0a42dd 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileLargeIngredientBuffer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileLargeIngredientBuffer.java @@ -1,9 +1,11 @@ package com.glodblock.github.common.tile; -import appeng.tile.inventory.AppEngInternalInventory; -import com.glodblock.github.inventory.AEFluidInventory; import net.minecraftforge.common.util.ForgeDirection; +import appeng.tile.inventory.AppEngInternalInventory; + +import com.glodblock.github.inventory.AEFluidInventory; + public class TileLargeIngredientBuffer extends TileIngredientBuffer { public TileLargeIngredientBuffer() { @@ -13,9 +15,8 @@ public class TileLargeIngredientBuffer extends TileIngredientBuffer { @Override public int[] getAccessibleSlotsBySide(ForgeDirection whichSide) { - return new int[] { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 - }; + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26 }; } @Override diff --git a/src/main/java/com/glodblock/github/common/tile/TileLevelMaintainer.java b/src/main/java/com/glodblock/github/common/tile/TileLevelMaintainer.java index 443ab6d5..ffc0885d 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/common/tile/TileLevelMaintainer.java @@ -1,5 +1,11 @@ package com.glodblock.github.common.tile; +import java.util.concurrent.Future; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -34,16 +40,13 @@ import appeng.tile.grid.AENetworkTile; import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.InvOperation; import appeng.util.item.AEItemStack; + import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.inventory.AeItemStackHandler; import com.glodblock.github.inventory.AeStackInventory; import com.glodblock.github.inventory.AeStackInventoryImpl; import com.google.common.collect.ImmutableSet; import io.netty.buffer.ByteBuf; -import java.util.concurrent.Future; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class TileLevelMaintainer extends AENetworkTile implements IAEAppEngInventory, IGridTickable, ICraftingRequester, IPowerChannelState { @@ -83,13 +86,11 @@ public class TileLevelMaintainer extends AENetworkTile try { if (this.getProxy().isActive()) { final IEnergyGrid energy = this.getProxy().getEnergy(); - final double power = Math.ceil( - ItemFluidDrop.isFluidStack(items) ? items.getStackSize() / 1000D : items.getStackSize()); + final double power = Math + .ceil(ItemFluidDrop.isFluidStack(items) ? items.getStackSize() / 1000D : items.getStackSize()); if (energy.extractAEPower(power, mode, PowerMultiplier.CONFIG) > power - 0.01) { if (ItemFluidDrop.isFluidStack(items)) { - IAEFluidStack notInserted = this.getProxy() - .getStorage() - .getFluidInventory() + IAEFluidStack notInserted = this.getProxy().getStorage().getFluidInventory() .injectItems(ItemFluidDrop.getAeFluidStack(items), mode, this.source); if (notInserted != null) { items.setStackSize(notInserted.getStackSize()); @@ -140,19 +141,18 @@ public class TileLevelMaintainer extends AENetworkTile try { ICraftingGrid cg = this.getProxy().getCrafting(); IGrid grid = this.getProxy().getGrid(); - final IItemList inv = - this.getProxy().getStorage().getItemInventory().getStorageList(); + final IItemList inv = this.getProxy().getStorage().getItemInventory().getStorageList(); for (int i = 0; i < REQ_COUNT; i++) { IAEItemStack is = requests.getRequestQtyStack(i); if (is != null && requests.getBatchSize(i) > 0) { IAEItemStack craftItem = requests.getCraftItem(i); if (this.requests.isDone(i)) this.requests.setState(i, State.Idling); - if (cg.canEmitFor(craftItem) - || cg.isRequesting(craftItem) + if (cg.canEmitFor(craftItem) || cg.isRequesting(craftItem) || inv.findPrecise(is) == null || !inv.findPrecise(is).isCraftable() || inv.findPrecise(is).getStackSize() >= is.getStackSize() - || !this.requests.isDone(i)) continue; + || !this.requests.isDone(i)) + continue; // do crafting Future jobTask = requests.getJobs()[i]; if (jobTask == null) { @@ -176,8 +176,7 @@ public class TileLevelMaintainer extends AENetworkTile } } } - } catch (final GridAccessException ignore) { - } + } catch (final GridAccessException ignore) {} return didSomething ? TickRateModulation.FASTER : TickRateModulation.SLOWER; } @@ -187,8 +186,8 @@ public class TileLevelMaintainer extends AENetworkTile } @Override - public void onChangeInventory( - IInventory inv, int slot, InvOperation mc, ItemStack removedStack, ItemStack newStack) { + public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removedStack, + ItemStack newStack) { try { getProxy().getTick().alertDevice(getProxy().getNode()); } catch (GridAccessException e) { @@ -244,8 +243,7 @@ public class TileLevelMaintainer extends AENetworkTile if (!this.requests.isDone(i)) this.requests.setState(i, State.Crafting); } } - } catch (Exception ignore) { - } + } catch (Exception ignore) {} } private NBTTagCompound writeLinkToNBT(NBTTagCompound data) { @@ -322,6 +320,7 @@ public class TileLevelMaintainer extends AENetworkTile } public static class InventoryRequest { + private final AeStackInventoryImpl requestStacks; private final AeStackInventoryImpl requestBatches; private final AeStackInventoryImpl requestQtys; diff --git a/src/main/java/com/glodblock/github/common/tile/TileOCPatternEditor.java b/src/main/java/com/glodblock/github/common/tile/TileOCPatternEditor.java index 79472e18..ea2c7063 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/common/tile/TileOCPatternEditor.java @@ -1,12 +1,13 @@ package com.glodblock.github.common.tile; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.items.misc.ItemEncodedPattern; import appeng.tile.AEBaseInvTile; import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.InvOperation; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; public class TileOCPatternEditor extends AEBaseInvTile { @@ -24,7 +25,7 @@ public class TileOCPatternEditor extends AEBaseInvTile { @Override public int[] getAccessibleSlotsBySide(ForgeDirection whichSide) { - return new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; } @Override diff --git a/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java b/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java index a9edaf5d..93dcd167 100644 --- a/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java @@ -1,11 +1,13 @@ package com.glodblock.github.coremod; -import com.glodblock.github.coremod.transform.*; import net.minecraft.launchwrapper.IClassTransformer; + import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; +import com.glodblock.github.coremod.transform.*; + public class FCClassTransformer implements IClassTransformer { @Override diff --git a/src/main/java/com/glodblock/github/coremod/FluidCraftCore.java b/src/main/java/com/glodblock/github/coremod/FluidCraftCore.java index b75a8940..28c0caa2 100644 --- a/src/main/java/com/glodblock/github/coremod/FluidCraftCore.java +++ b/src/main/java/com/glodblock/github/coremod/FluidCraftCore.java @@ -1,9 +1,11 @@ package com.glodblock.github.coremod; -import cpw.mods.fml.relauncher.IFMLLoadingPlugin; import java.util.Map; + import javax.annotation.Nullable; +import cpw.mods.fml.relauncher.IFMLLoadingPlugin; + @IFMLLoadingPlugin.Name("FluidCraftCore") @IFMLLoadingPlugin.MCVersion("1.7.10") @IFMLLoadingPlugin.TransformerExclusions("com.glodblock.github.coremod") @@ -11,7 +13,7 @@ public class FluidCraftCore implements IFMLLoadingPlugin { @Override public String[] getASMTransformerClass() { - return new String[] {FluidCraftCore.class.getPackage().getName() + ".FCClassTransformer"}; + return new String[] { FluidCraftCore.class.getPackage().getName() + ".FCClassTransformer" }; } @Nullable diff --git a/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java b/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java index 19a0b6d8..80075f50 100644 --- a/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java +++ b/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java @@ -1,5 +1,17 @@ package com.glodblock.github.coremod.hooker; +import java.util.HashSet; +import java.util.Set; + +import javax.annotation.Nullable; + +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.config.Actionable; import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; @@ -15,6 +27,7 @@ import appeng.me.cluster.implementations.CraftingCPUCluster; import appeng.parts.misc.PartInterface; import appeng.tile.misc.TileInterface; import appeng.util.InventoryAdaptor; + import com.glodblock.github.client.gui.GuiFluidCraftConfirm; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; @@ -26,21 +39,14 @@ import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.SetBackedMachineSet; import com.google.common.collect.Sets; -import java.util.HashSet; -import java.util.Set; -import javax.annotation.Nullable; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; public class CoreModHooks { public static InventoryCrafting wrapCraftingBuffer(InventoryCrafting inv) { return new FluidConvertingInventoryCrafting( - inv.eventHandler, inv.inventoryWidth, inv.getSizeInventory() / inv.inventoryWidth); + inv.eventHandler, + inv.inventoryWidth, + inv.getSizeInventory() / inv.inventoryWidth); } public static IAEItemStack wrapFluidPacketStack(IAEItemStack stack) { @@ -69,8 +75,7 @@ public class CoreModHooks { } public static long getCraftingByteCost(IAEItemStack stack) { - return stack.getItem() instanceof ItemFluidDrop - ? (long) Math.ceil(stack.getStackSize() / 1000D) + return stack.getItem() instanceof ItemFluidDrop ? (long) Math.ceil(stack.getStackSize() / 1000D) : stack.getStackSize(); } diff --git a/src/main/java/com/glodblock/github/coremod/transform/ContainerInterfaceTerminalTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/ContainerInterfaceTerminalTransformer.java index 99c02401..adaff102 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/ContainerInterfaceTerminalTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/ContainerInterfaceTerminalTransformer.java @@ -1,10 +1,11 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class ContainerInterfaceTerminalTransformer extends FCClassTransformer.ClassMapper { public static final ContainerInterfaceTerminalTransformer INSTANCE = new ContainerInterfaceTerminalTransformer(); @@ -28,7 +29,8 @@ public class ContainerInterfaceTerminalTransformer extends FCClassTransformer.Cl public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { if (name.equals("detectAndSendChanges") || name.equals("func_75142_b") || name.equals("regenList")) { return new TransformDetectAndSendChanges( - api, super.visitMethod(access, name, desc, signature, exceptions)); + api, + super.visitMethod(access, name, desc, signature, exceptions)); } return super.visitMethod(access, name, desc, signature, exceptions); } @@ -42,8 +44,7 @@ public class ContainerInterfaceTerminalTransformer extends FCClassTransformer.Cl @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (opcode == Opcodes.INVOKEINTERFACE - && owner.equals("appeng/api/networking/IGrid") + if (opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/networking/IGrid") && name.equals("getMachines")) { super.visitMethodInsn( Opcodes.INVOKESTATIC, diff --git a/src/main/java/com/glodblock/github/coremod/transform/CraftingCpuTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/CraftingCpuTransformer.java index 7973bc48..348fada5 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/CraftingCpuTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/CraftingCpuTransformer.java @@ -1,11 +1,12 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { public static final CraftingCpuTransformer INSTANCE = new CraftingCpuTransformer(); @@ -47,8 +48,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { @Override public void visitFieldInsn(int opcode, String owner, String name, String desc) { - if (opcode == Opcodes.GETFIELD - && owner.equals("appeng/me/cluster/implementations/CraftingCPUCluster") + if (opcode == Opcodes.GETFIELD && owner.equals("appeng/me/cluster/implementations/CraftingCPUCluster") && name.equals("inventory")) { gotInventory = true; } @@ -72,8 +72,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { if (reach_stack == 1) { - if (opcode == Opcodes.INVOKEINTERFACE - && owner.equals("appeng/api/storage/data/IAEItemStack") + if (opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/storage/data/IAEItemStack") && name.equals("getStackSize")) { reach_stack = 2; super.visitMethodInsn( @@ -85,8 +84,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { return; } } - if (opcode == Opcodes.INVOKEVIRTUAL - && owner.equals("net/minecraft/inventory/InventoryCrafting") + if (opcode == Opcodes.INVOKEVIRTUAL && owner.equals("net/minecraft/inventory/InventoryCrafting") && (name.equals("getStackInSlot") || name.equals("func_70301_a"))) { super.visitMethodInsn( Opcodes.INVOKESTATIC, @@ -98,8 +96,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { } super.visitMethodInsn(opcode, owner, name, desc, itf); if (gotInventory) { - if (opcode == Opcodes.INVOKESTATIC - && owner.equals("appeng/util/item/AEItemStack") + if (opcode == Opcodes.INVOKESTATIC && owner.equals("appeng/util/item/AEItemStack") && name.equals("create")) { gotInventory = false; super.visitMethodInsn( @@ -109,16 +106,15 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { "(Lappeng/api/storage/data/IAEItemStack;)Lappeng/api/storage/data/IAEItemStack;", false); } - } else if (opcode == Opcodes.INVOKESPECIAL - && owner.equals("net/minecraft/inventory/InventoryCrafting") + } else if (opcode == Opcodes.INVOKESPECIAL && owner.equals("net/minecraft/inventory/InventoryCrafting") && name.equals("")) { - super.visitMethodInsn( - Opcodes.INVOKESTATIC, - "com/glodblock/github/coremod/hooker/CoreModHooks", - "wrapCraftingBuffer", - "(Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/inventory/InventoryCrafting;", - false); - } + super.visitMethodInsn( + Opcodes.INVOKESTATIC, + "com/glodblock/github/coremod/hooker/CoreModHooks", + "wrapCraftingBuffer", + "(Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/inventory/InventoryCrafting;", + false); + } } } @@ -130,8 +126,7 @@ public class CraftingCpuTransformer extends FCClassTransformer.ClassMapper { @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (opcode == Opcodes.INVOKESPECIAL - && owner.equals("appeng/me/cluster/implementations/CraftingCPUCluster") + if (opcode == Opcodes.INVOKESPECIAL && owner.equals("appeng/me/cluster/implementations/CraftingCPUCluster") && name.equals("storeItems")) { super.visitMethodInsn( Opcodes.INVOKESTATIC, diff --git a/src/main/java/com/glodblock/github/coremod/transform/CraftingTreeNodeTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/CraftingTreeNodeTransformer.java index 5fe6ed38..99d52ebd 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/CraftingTreeNodeTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/CraftingTreeNodeTransformer.java @@ -1,11 +1,12 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class CraftingTreeNodeTransformer extends FCClassTransformer.ClassMapper { public static final CraftingTreeNodeTransformer INSTANCE = new CraftingTreeNodeTransformer(); @@ -45,8 +46,7 @@ public class CraftingTreeNodeTransformer extends FCClassTransformer.ClassMapper @Override public void visitFieldInsn(int opcode, String owner, String name, String desc) { - if (opcode == Opcodes.GETFIELD - && owner.equals("appeng/crafting/CraftingTreeNode") + if (opcode == Opcodes.GETFIELD && owner.equals("appeng/crafting/CraftingTreeNode") && name.equals("bytes")) { writingBytes = true; } @@ -61,8 +61,7 @@ public class CraftingTreeNodeTransformer extends FCClassTransformer.ClassMapper @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (writingBytes - && opcode == Opcodes.INVOKEINTERFACE + if (writingBytes && opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/storage/data/IAEItemStack") && name.equals("getStackSize")) { writingBytes = false; diff --git a/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java index fc74c26d..2563f253 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java @@ -1,10 +1,11 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class DualityInterfaceTransformer extends FCClassTransformer.ClassMapper { public static final DualityInterfaceTransformer INSTANCE = new DualityInterfaceTransformer(); @@ -31,7 +32,8 @@ public class DualityInterfaceTransformer extends FCClassTransformer.ClassMapper case "pushPattern": case "isBusy": return new TransformInvAdaptorCalls( - api, super.visitMethod(access, name, desc, signature, exceptions)); + api, + super.visitMethod(access, name, desc, signature, exceptions)); default: return super.visitMethod(access, name, desc, signature, exceptions); } @@ -46,8 +48,7 @@ public class DualityInterfaceTransformer extends FCClassTransformer.ClassMapper @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (opcode == Opcodes.INVOKESTATIC - && owner.equals("appeng/util/InventoryAdaptor") + if (opcode == Opcodes.INVOKESTATIC && owner.equals("appeng/util/InventoryAdaptor") && name.equals("getAdaptor")) { super.visitMethodInsn( Opcodes.INVOKESTATIC, diff --git a/src/main/java/com/glodblock/github/coremod/transform/ExternalStorageRegistryTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/ExternalStorageRegistryTransformer.java index f9357278..6c175b15 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/ExternalStorageRegistryTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/ExternalStorageRegistryTransformer.java @@ -1,8 +1,9 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.*; +import com.glodblock.github.coremod.FCClassTransformer; + public class ExternalStorageRegistryTransformer extends FCClassTransformer.ClassMapper { public static final ExternalStorageRegistryTransformer INSTANCE = new ExternalStorageRegistryTransformer(); diff --git a/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java index 4cc3568d..1c625f16 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java @@ -1,10 +1,11 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class GuiCraftingTransformer extends FCClassTransformer.ClassMapper { public static final GuiCraftingTransformer INSTANCE = new GuiCraftingTransformer(); @@ -41,8 +42,7 @@ public class GuiCraftingTransformer extends FCClassTransformer.ClassMapper { @Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { - if (opcode == Opcodes.INVOKEINTERFACE - && owner.equals("appeng/api/storage/data/IAEItemStack") + if (opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/storage/data/IAEItemStack") && name.equals("getItemStack")) { super.visitMethodInsn( Opcodes.INVOKESTATIC, diff --git a/src/main/java/com/glodblock/github/coremod/transform/NEITransfermer.java b/src/main/java/com/glodblock/github/coremod/transform/NEITransfermer.java index bf216e71..4a3a068d 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/NEITransfermer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/NEITransfermer.java @@ -1,10 +1,11 @@ package com.glodblock.github.coremod.transform; -import com.glodblock.github.coremod.FCClassTransformer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; +import com.glodblock.github.coremod.FCClassTransformer; + public class NEITransfermer extends FCClassTransformer.ClassMapper { public static final NEITransfermer INSTANCE = new NEITransfermer(); @@ -29,7 +30,8 @@ public class NEITransfermer extends FCClassTransformer.ClassMapper { switch (name) { case "getStackUnderMouse": return new TransformStackUnderMouse( - api, super.visitMethod(access, name, desc, signature, exceptions)); + api, + super.visitMethod(access, name, desc, signature, exceptions)); case "shouldShowTooltip": return new TransformShowTooltip(api, super.visitMethod(access, name, desc, signature, exceptions)); default: diff --git a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java index 257020e6..c6781060 100644 --- a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java +++ b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverDualFluidInterface.java @@ -1,12 +1,5 @@ package com.glodblock.github.crossmod.opencomputers; -import appeng.api.parts.IPartHost; -import com.glodblock.github.common.parts.PartFluidInterface; -import com.glodblock.github.common.tile.TileFluidInterface; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.DualityFluidInterface; -import com.glodblock.github.util.NameConst; -import com.glodblock.github.util.Util; import li.cil.oc.api.driver.EnvironmentProvider; import li.cil.oc.api.driver.NamedBlock; import li.cil.oc.api.driver.SidedBlock; @@ -18,12 +11,22 @@ import li.cil.oc.api.network.ManagedEnvironment; import li.cil.oc.api.network.Node; import li.cil.oc.integration.ManagedTileEntityEnvironment; import li.cil.oc.server.network.Component; + import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import appeng.api.parts.IPartHost; + +import com.glodblock.github.common.parts.PartFluidInterface; +import com.glodblock.github.common.tile.TileFluidInterface; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.DualityFluidInterface; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.Util; + public class DriverDualFluidInterface implements SidedBlock { @Override @@ -45,20 +48,18 @@ public class DriverDualFluidInterface implements SidedBlock { } @Callback( - doc = - "function(index:number):table -- Get the configuration of the dual fluid interface on the specified slot.") + doc = "function(index:number):table -- Get the configuration of the dual fluid interface on the specified slot.") public Object[] getFluidInterfaceConfiguration(Context context, Arguments args) { int index = args.checkInteger(0); if (index >= 0 && index < DualityFluidInterface.NUMBER_OF_TANKS) { FluidStack fluid = tileEntity.getConfig().getFluidStackInSlot(index); - return new Object[] {fluid == null ? null : new FluidStack(fluid.getFluid(), 1000)}; + return new Object[] { fluid == null ? null : new FluidStack(fluid.getFluid(), 1000) }; } throw new IllegalArgumentException("invalid slot"); } @Callback( - doc = - "function(index:number[, database:address, entry:number]):boolean -- Configure the filter in fluid interface on the specified slot.") + doc = "function(index:number[, database:address, entry:number]):boolean -- Configure the filter in fluid interface on the specified slot.") public Object[] setFluidInterfaceConfiguration(Context context, Arguments args) { int index = args.checkInteger(0); String address; @@ -69,7 +70,7 @@ public class DriverDualFluidInterface implements SidedBlock { } else { tileEntity.getConfig().setFluidInSlot(index, null); context.pause(0.5); - return new Object[] {true}; + return new Object[] { true }; } Node node = node().network().node(address); if (!(node instanceof Component)) throw new IllegalArgumentException("no such component"); @@ -84,7 +85,7 @@ public class DriverDualFluidInterface implements SidedBlock { tileEntity.getConfig().setFluidInSlot(index, tileEntity.getStandardFluid(fluid)); } context.pause(0.5); - return new Object[] {true}; + return new Object[] { true }; } throw new IllegalArgumentException("invalid slot"); } @@ -125,13 +126,13 @@ public class DriverDualFluidInterface implements SidedBlock { } public static class Provider implements EnvironmentProvider { + Provider() {} @Override public Class getEnvironment(ItemStack itemStack) { - if (itemStack != null - && (itemStack.isItemEqual(ItemAndBlockHolder.FLUID_INTERFACE.stack()) - || itemStack.isItemEqual(ItemAndBlockHolder.INTERFACE.stack()))) { + if (itemStack != null && (itemStack.isItemEqual(ItemAndBlockHolder.FLUID_INTERFACE.stack()) + || itemStack.isItemEqual(ItemAndBlockHolder.INTERFACE.stack()))) { return DriverDualFluidInterface.Environment.class; } return null; diff --git a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverLevelMaintainer.java b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverLevelMaintainer.java index fa4c9c9b..dbc46030 100644 --- a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverLevelMaintainer.java @@ -1,14 +1,8 @@ package com.glodblock.github.crossmod.opencomputers; -import appeng.util.item.AEItemStack; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.common.tile.TileLevelMaintainer; -import com.glodblock.github.inventory.AeItemStackHandler; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.NameConst; -import cpw.mods.fml.common.registry.GameRegistry; import java.util.HashMap; import java.util.Map; + import li.cil.oc.api.driver.EnvironmentProvider; import li.cil.oc.api.driver.NamedBlock; import li.cil.oc.api.internal.Database; @@ -20,12 +14,23 @@ import li.cil.oc.api.network.ManagedEnvironment; import li.cil.oc.api.network.Node; import li.cil.oc.api.prefab.DriverSidedTileEntity; import li.cil.oc.integration.ManagedTileEntityEnvironment; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.common.tile.TileLevelMaintainer; +import com.glodblock.github.inventory.AeItemStackHandler; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.NameConst; +import cpw.mods.fml.common.registry.GameRegistry; + public class DriverLevelMaintainer extends DriverSidedTileEntity { + @Override public Class getTileEntityClass() { return TileLevelMaintainer.class; @@ -100,18 +105,16 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { result.put("hasTag", stack.hasTagCompound()); result.put("label", stack.getDisplayName()); result.put("maxDamage", stack.getMaxDamage()); - result.put( - "name", - GameRegistry.findUniqueIdentifierFor(stack.getItem()).toString()); + result.put("name", GameRegistry.findUniqueIdentifierFor(stack.getItem()).toString()); result.put("quantity", tileEntity.requests.getQuantity(slot)); result.put("batch", tileEntity.requests.getBatchSize(slot)); result.put("isFluid", ItemFluidDrop.isFluidStack(stack)); if (ItemFluidDrop.isFluidStack(stack)) result.put("fluid", ItemFluidDrop.getFluidStack(stack)); result.put("isEnable", tileEntity.requests.isEnable(slot)); result.put("isDone", tileEntity.requests.isDone(slot)); - return new Object[] {result}; + return new Object[] { result }; } - return new Object[] {null}; + return new Object[] { null }; } private void setSlot(int slot, String address, int index) { @@ -123,8 +126,7 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { throw new IllegalArgumentException("Invalid slot"); } dbStack.stackSize = 1; - ((AeItemStackHandler) tileEntity.getInventory()) - .getAeInventory() + ((AeItemStackHandler) tileEntity.getInventory()).getAeInventory() .setStack(slot, AEItemStack.create(dbStack)); } else { throw new IllegalArgumentException("Not a database"); @@ -135,8 +137,7 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { } @Callback( - doc = - "function(slot:number[,database:address[,index:number]],quantity:number,batch:number):boolean -- Configuration the slot.") + doc = "function(slot:number[,database:address[,index:number]],quantity:number,batch:number):boolean -- Configuration the slot.") public Object[] setSlot(Context context, Arguments args) { int slot; String address; @@ -162,7 +163,7 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { } else { throw new IllegalArgumentException("Invalid args"); } - return new Object[] {true}; + return new Object[] { true }; } private boolean isActive() { @@ -171,22 +172,22 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { @Callback(doc = "function(slot:number):boolean -- Get the crafting task state.") public Object[] isDone(Context context, Arguments args) { - return new Object[] {this.isDone(args)}; + return new Object[] { this.isDone(args) }; } @Callback(doc = "function(slot:number):boolean -- Get the crafting state of slot.") public Object[] isEnable(Context context, Arguments args) { - return new Object[] {this.isEnable(args)}; + return new Object[] { this.isEnable(args) }; } @Callback(doc = "function(slot:number,value:boolean):boolean -- Set the crafting state of slot.") public Object[] setEnable(Context context, Arguments args) { - return new Object[] {this.setEnable(args)}; + return new Object[] { this.setEnable(args) }; } @Callback(doc = "function():boolean Get Level Maintainer state") public Object[] active(Context context, Arguments args) { - return new Object[] {this.isActive()}; + return new Object[] { this.isActive() }; } @Override @@ -201,6 +202,7 @@ public class DriverLevelMaintainer extends DriverSidedTileEntity { } public static class Provider implements EnvironmentProvider { + Provider() {} @Override diff --git a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverOCPatternEditor.java b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverOCPatternEditor.java index d61a45e9..935cd8af 100644 --- a/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverOCPatternEditor.java +++ b/src/main/java/com/glodblock/github/crossmod/opencomputers/DriverOCPatternEditor.java @@ -1,13 +1,5 @@ package com.glodblock.github.crossmod.opencomputers; -import appeng.items.misc.ItemEncodedPattern; -import appeng.util.item.AEItemStack; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.common.item.ItemFluidEncodedPattern; -import com.glodblock.github.common.tile.TileOCPatternEditor; -import com.glodblock.github.loader.ItemAndBlockHolder; -import com.glodblock.github.util.NameConst; -import com.glodblock.github.util.Util; import li.cil.oc.api.driver.EnvironmentProvider; import li.cil.oc.api.driver.NamedBlock; import li.cil.oc.api.internal.Database; @@ -19,6 +11,7 @@ import li.cil.oc.api.network.ManagedEnvironment; import li.cil.oc.api.network.Node; import li.cil.oc.api.prefab.DriverSidedTileEntity; import li.cil.oc.integration.ManagedTileEntityEnvironment; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -27,6 +20,16 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import appeng.items.misc.ItemEncodedPattern; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.common.item.ItemFluidEncodedPattern; +import com.glodblock.github.common.tile.TileOCPatternEditor; +import com.glodblock.github.loader.ItemAndBlockHolder; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.Util; + public class DriverOCPatternEditor extends DriverSidedTileEntity { public DriverOCPatternEditor() {} @@ -134,7 +137,7 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { inv.setInventorySlotContents(slot, null); inv.setInventorySlotContents(slot, pattern); context.pause(0.1); - return new Object[] {true}; + return new Object[] { true }; } else { throw new IllegalArgumentException("Not Fluid Encoded pattern!"); } @@ -170,7 +173,7 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { inv.setInventorySlotContents(slot, null); inv.setInventorySlotContents(slot, pattern); context.pause(0.1); - return new Object[] {true}; + return new Object[] { true }; } else { throw new IllegalArgumentException("Not Fluid Encoded pattern!"); } @@ -184,18 +187,17 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { if (!validPattern(stack)) { throw new IllegalArgumentException("Not Fluid Encoded pattern!"); } - return new Object[] {stack}; + return new Object[] { stack }; } @Callback( - doc = - "function([slot:number][, database:address, entry:number[, size:number]]):boolean -- Configure the interface.") + doc = "function([slot:number][, database:address, entry:number[, size:number]]):boolean -- Configure the interface.") public Object[] setInterfaceConfiguration(Context context, Arguments args) { IInventory config = tileEntity.getInternalInventory(); int slot = args.isString(0) ? 0 : optSlot(args, config, 0, 0); config.setInventorySlotContents(slot, getStack(args)); context.pause(0.5); - return new Object[] {true}; + return new Object[] { true }; } @Callback(doc = "function([slot:number]):table -- Get the given pattern in the interface.") @@ -203,33 +205,29 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { IInventory inv = tileEntity.getInternalInventory(); int slot = optSlot(args, inv, 0, 0); ItemStack stack = inv.getStackInSlot(slot); - return new Object[] {stack}; + return new Object[] { stack }; } @Callback( - doc = - "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern item input at the given index.") + doc = "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern item input at the given index.") public Object[] setInterfacePatternItemInput(Context context, Arguments args) { return setPatternSlot(context, args, "in", false); } @Callback( - doc = - "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern item output at the given index.") + doc = "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern item output at the given index.") public Object[] setInterfacePatternItemOutput(Context context, Arguments args) { return setPatternSlot(context, args, "out", false); } @Callback( - doc = - "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern fluid input at the given index.") + doc = "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern fluid input at the given index.") public Object[] setInterfacePatternFluidInput(Context context, Arguments args) { return setPatternSlot(context, args, "in", true); } @Callback( - doc = - "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern fluid output at the given index.") + doc = "function(slot:number, database:address, entry:number, size:number, index:number):boolean -- Set the pattern fluid output at the given index.") public Object[] setInterfacePatternFluidOutput(Context context, Arguments args) { return setPatternSlot(context, args, "out", true); } @@ -256,6 +254,7 @@ public class DriverOCPatternEditor extends DriverSidedTileEntity { } public static class Provider implements EnvironmentProvider { + Provider() {} @Override diff --git a/src/main/java/com/glodblock/github/crossmod/waila/FCTooltipHandlerWaila.java b/src/main/java/com/glodblock/github/crossmod/waila/FCTooltipHandlerWaila.java index 88af835e..5452498e 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/FCTooltipHandlerWaila.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/FCTooltipHandlerWaila.java @@ -1,24 +1,28 @@ package com.glodblock.github.crossmod.waila; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.util.Util; import java.util.List; + import mcp.mobius.waila.handlers.nei.TooltipHandlerWaila; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.util.Util; + public class FCTooltipHandlerWaila extends TooltipHandlerWaila { + @Override public List handleItemDisplayName(GuiContainer arg0, ItemStack itemstack, List currenttip) { return currenttip; } @Override - public List handleItemTooltip( - GuiContainer arg0, ItemStack itemstack, int arg2, int arg3, List currenttip) { + public List handleItemTooltip(GuiContainer arg0, ItemStack itemstack, int arg2, int arg3, + List currenttip) { if (itemstack != null && itemstack.getItem() instanceof ItemFluidDrop && currenttip.size() > 0) { FluidStack fs = ItemFluidDrop.getFluidStack(itemstack); if (fs == null) return currenttip; @@ -27,10 +31,7 @@ public class FCTooltipHandlerWaila extends TooltipHandlerWaila { currenttip.set( 1, EnumChatFormatting.GRAY - + String.format( - "%s:%s", - Util.getFluidModID(fs.getFluid()), - fs.getFluid().getName()) + + String.format("%s:%s", Util.getFluidModID(fs.getFluid()), fs.getFluid().getName()) + EnumChatFormatting.RESET); } String modName = Util.getFluidModName(fs.getFluid()); diff --git a/src/main/java/com/glodblock/github/crossmod/waila/PartWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/PartWailaDataProvider.java index 07159c84..a562eb29 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/PartWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/PartWailaDataProvider.java @@ -1,18 +1,11 @@ package com.glodblock.github.crossmod.waila; -import appeng.api.parts.IPart; -import appeng.integration.modules.waila.part.IPartWailaDataProvider; -import appeng.integration.modules.waila.part.PartAccessor; -import appeng.integration.modules.waila.part.Tracer; -import com.glodblock.github.crossmod.waila.part.FluidInvWailaDataProvider; -import com.glodblock.github.crossmod.waila.part.FluidMonitorWailaDataProvider; -import com.glodblock.github.crossmod.waila.part.SpeedWailaDataProvider; -import com.google.common.base.Optional; -import com.google.common.collect.Lists; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; import mcp.mobius.waila.api.IWailaDataProvider; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -20,7 +13,19 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import appeng.api.parts.IPart; +import appeng.integration.modules.waila.part.IPartWailaDataProvider; +import appeng.integration.modules.waila.part.PartAccessor; +import appeng.integration.modules.waila.part.Tracer; + +import com.glodblock.github.crossmod.waila.part.FluidInvWailaDataProvider; +import com.glodblock.github.crossmod.waila.part.FluidMonitorWailaDataProvider; +import com.glodblock.github.crossmod.waila.part.SpeedWailaDataProvider; +import com.google.common.base.Optional; +import com.google.common.collect.Lists; + public class PartWailaDataProvider implements IWailaDataProvider { + private final List providers; private final PartAccessor accessor = new PartAccessor(); private final Tracer tracer = new Tracer(); @@ -55,11 +60,8 @@ public class PartWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaHead( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaHead(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); final MovingObjectPosition mop = accessor.getPosition(); @@ -77,11 +79,8 @@ public class PartWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaBody( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); final MovingObjectPosition mop = accessor.getPosition(); @@ -99,11 +98,8 @@ public class PartWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaTail( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaTail(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); final MovingObjectPosition mop = accessor.getPosition(); @@ -121,14 +117,8 @@ public class PartWailaDataProvider implements IWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final TileEntity te, final NBTTagCompound tag, + final World world, final int x, final int y, final int z) { final MovingObjectPosition mop = this.tracer.retraceBlock(world, player, x, y, z); if (mop != null) { diff --git a/src/main/java/com/glodblock/github/crossmod/waila/TileWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/TileWailaDataProvider.java index 11fc32fb..c2222b94 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/TileWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/TileWailaDataProvider.java @@ -1,19 +1,23 @@ package com.glodblock.github.crossmod.waila; -import com.glodblock.github.crossmod.waila.tile.FluidInvWailaDataProvider; -import com.glodblock.github.crossmod.waila.tile.LevelMaintainerWailaDataProvide; -import com.google.common.collect.Lists; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; import mcp.mobius.waila.api.IWailaDataProvider; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import com.glodblock.github.crossmod.waila.tile.FluidInvWailaDataProvider; +import com.glodblock.github.crossmod.waila.tile.LevelMaintainerWailaDataProvide; +import com.google.common.collect.Lists; + public class TileWailaDataProvider implements IWailaDataProvider { + private final List providers; public TileWailaDataProvider() { @@ -28,11 +32,8 @@ public class TileWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaHead( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaHead(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { for (final IWailaDataProvider provider : this.providers) { provider.getWailaHead(itemStack, currentToolTip, accessor, config); } @@ -41,11 +42,8 @@ public class TileWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaBody( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { for (final IWailaDataProvider provider : this.providers) { provider.getWailaBody(itemStack, currentToolTip, accessor, config); } @@ -54,11 +52,8 @@ public class TileWailaDataProvider implements IWailaDataProvider { } @Override - public List getWailaTail( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaTail(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { for (final IWailaDataProvider provider : this.providers) { provider.getWailaTail(itemStack, currentToolTip, accessor, config); } @@ -67,14 +62,8 @@ public class TileWailaDataProvider implements IWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final TileEntity te, final NBTTagCompound tag, + final World world, final int x, final int y, final int z) { for (final IWailaDataProvider provider : this.providers) { provider.getNBTData(player, te, tag, world, x, y, z); } diff --git a/src/main/java/com/glodblock/github/crossmod/waila/Tooltip.java b/src/main/java/com/glodblock/github/crossmod/waila/Tooltip.java index ddc7d9dd..eba29442 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/Tooltip.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/Tooltip.java @@ -1,21 +1,23 @@ package com.glodblock.github.crossmod.waila; -import com.glodblock.github.util.NameConst; -import com.glodblock.github.util.Util; import java.text.NumberFormat; + import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.Util; + public class Tooltip { + public static String fluidFormat(String name, long amount) { return String.format("%s: %s mB", name, NumberFormat.getInstance().format(amount)); } public static String partFluidBusFormat(int amount) { - return String.format( - "%s: %s mB/t", - I18n.format(NameConst.WAILA_SPEED), NumberFormat.getInstance().format(amount)); + return String + .format("%s: %s mB/t", I18n.format(NameConst.WAILA_SPEED), NumberFormat.getInstance().format(amount)); } public static String tileFluidInterfaceFormat(String name, int amount, int face) { diff --git a/src/main/java/com/glodblock/github/crossmod/waila/WailaInit.java b/src/main/java/com/glodblock/github/crossmod/waila/WailaInit.java index 5434b07c..70186a9a 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/WailaInit.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/WailaInit.java @@ -1,12 +1,12 @@ package com.glodblock.github.crossmod.waila; +import mcp.mobius.waila.api.IWailaDataProvider; +import mcp.mobius.waila.api.IWailaRegistrar; import appeng.api.parts.IPartHost; import appeng.tile.AEBaseTile; import appeng.util.Platform; import codechicken.nei.guihook.GuiContainerManager; import cpw.mods.fml.common.event.FMLInterModComms; -import mcp.mobius.waila.api.IWailaDataProvider; -import mcp.mobius.waila.api.IWailaRegistrar; public class WailaInit { diff --git a/src/main/java/com/glodblock/github/crossmod/waila/part/FluidInvWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/part/FluidInvWailaDataProvider.java index a1162153..a4625e37 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/part/FluidInvWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/part/FluidInvWailaDataProvider.java @@ -1,26 +1,28 @@ package com.glodblock.github.crossmod.waila.part; -import appeng.api.parts.IPart; -import appeng.integration.modules.waila.part.BasePartWailaDataProvider; -import com.glodblock.github.crossmod.waila.Tooltip; -import com.glodblock.github.inventory.AEFluidInventory; -import com.glodblock.github.inventory.IAEFluidInventory; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; +import appeng.api.parts.IPart; +import appeng.integration.modules.waila.part.BasePartWailaDataProvider; + +import com.glodblock.github.crossmod.waila.Tooltip; +import com.glodblock.github.inventory.AEFluidInventory; +import com.glodblock.github.inventory.IAEFluidInventory; + public class FluidInvWailaDataProvider extends BasePartWailaDataProvider { + @Override - public List getWailaBody( - final IPart part, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final IPart part, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { if (part instanceof IAEFluidInventory) { ((IAEFluidInventory) part).getInternalFluid().readFromNBT(accessor.getNBTData(), "fluidInv"); AEFluidInventory fluidInventory = ((IAEFluidInventory) part).getInternalFluid(); @@ -34,15 +36,8 @@ public class FluidInvWailaDataProvider extends BasePartWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final IPart part, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final IPart part, final TileEntity te, + final NBTTagCompound tag, final World world, final int x, final int y, final int z) { if (part instanceof IAEFluidInventory) { ((IAEFluidInventory) part).getInternalFluid().writeToNBT(tag, "fluidInv"); } diff --git a/src/main/java/com/glodblock/github/crossmod/waila/part/FluidMonitorWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/part/FluidMonitorWailaDataProvider.java index edac637d..9f03c72a 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/part/FluidMonitorWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/part/FluidMonitorWailaDataProvider.java @@ -1,48 +1,41 @@ package com.glodblock.github.crossmod.waila.part; -import appeng.api.parts.IPart; -import appeng.api.storage.data.IAEFluidStack; -import appeng.integration.modules.waila.part.BasePartWailaDataProvider; -import com.glodblock.github.common.parts.base.FCPartMonitor; -import com.glodblock.github.crossmod.waila.Tooltip; -import com.glodblock.github.util.Util; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import appeng.api.parts.IPart; +import appeng.api.storage.data.IAEFluidStack; +import appeng.integration.modules.waila.part.BasePartWailaDataProvider; + +import com.glodblock.github.common.parts.base.FCPartMonitor; +import com.glodblock.github.crossmod.waila.Tooltip; +import com.glodblock.github.util.Util; + public class FluidMonitorWailaDataProvider extends BasePartWailaDataProvider { + private final String key = "fluidStore"; @Override - public List getWailaBody( - final IPart part, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final IPart part, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { if (part instanceof FCPartMonitor && accessor.getNBTData().hasKey(key)) { - IAEFluidStack iaeFluidStack = - Util.loadFluidStackFromNBT(accessor.getNBTData().getCompoundTag(key)); - if (iaeFluidStack != null) - currentToolTip.add( - Tooltip.fluidFormat(iaeFluidStack.getFluid().getLocalizedName(), iaeFluidStack.getStackSize())); + IAEFluidStack iaeFluidStack = Util.loadFluidStackFromNBT(accessor.getNBTData().getCompoundTag(key)); + if (iaeFluidStack != null) currentToolTip.add( + Tooltip.fluidFormat(iaeFluidStack.getFluid().getLocalizedName(), iaeFluidStack.getStackSize())); } return currentToolTip; } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final IPart part, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final IPart part, final TileEntity te, + final NBTTagCompound tag, final World world, final int x, final int y, final int z) { if (part instanceof FCPartMonitor && ((FCPartMonitor) part).getAEStoreFluidStack() != null) { NBTTagCompound data = new NBTTagCompound(); ((FCPartMonitor) part).getAEStoreFluidStack().writeToNBT(data); diff --git a/src/main/java/com/glodblock/github/crossmod/waila/part/SpeedWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/part/SpeedWailaDataProvider.java index 6835f344..fc38ee50 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/part/SpeedWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/part/SpeedWailaDataProvider.java @@ -1,25 +1,26 @@ package com.glodblock.github.crossmod.waila.part; -import appeng.api.parts.IPart; -import appeng.integration.modules.waila.part.BasePartWailaDataProvider; -import com.glodblock.github.common.parts.base.FCSharedFluidBus; -import com.glodblock.github.crossmod.waila.Tooltip; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import appeng.api.parts.IPart; +import appeng.integration.modules.waila.part.BasePartWailaDataProvider; + +import com.glodblock.github.common.parts.base.FCSharedFluidBus; +import com.glodblock.github.crossmod.waila.Tooltip; + public class SpeedWailaDataProvider extends BasePartWailaDataProvider { @Override - public List getWailaBody( - final IPart part, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final IPart part, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { if (part instanceof FCSharedFluidBus) { part.readFromNBT(accessor.getNBTData()); currentToolTip.add(Tooltip.partFluidBusFormat(((FCSharedFluidBus) part).calculateAmountToSend() / 5)); @@ -28,15 +29,8 @@ public class SpeedWailaDataProvider extends BasePartWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final IPart part, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final IPart part, final TileEntity te, + final NBTTagCompound tag, final World world, final int x, final int y, final int z) { if (part instanceof FCSharedFluidBus) { part.writeToNBT(tag); } diff --git a/src/main/java/com/glodblock/github/crossmod/waila/tile/FluidInvWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/tile/FluidInvWailaDataProvider.java index 33c41741..557af384 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/tile/FluidInvWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/tile/FluidInvWailaDataProvider.java @@ -1,16 +1,10 @@ package com.glodblock.github.crossmod.waila.tile; -import appeng.integration.modules.waila.BaseWailaDataProvider; -import com.glodblock.github.common.item.ItemFluidPacket; -import com.glodblock.github.common.tile.TileFluidBuffer; -import com.glodblock.github.common.tile.TileFluidInterface; -import com.glodblock.github.common.tile.TileFluidPacketDecoder; -import com.glodblock.github.crossmod.waila.Tooltip; -import com.glodblock.github.inventory.IAEFluidInventory; -import com.glodblock.github.inventory.IAEFluidTank; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -19,14 +13,21 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; +import appeng.integration.modules.waila.BaseWailaDataProvider; + +import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.common.tile.TileFluidBuffer; +import com.glodblock.github.common.tile.TileFluidInterface; +import com.glodblock.github.common.tile.TileFluidPacketDecoder; +import com.glodblock.github.crossmod.waila.Tooltip; +import com.glodblock.github.inventory.IAEFluidInventory; +import com.glodblock.github.inventory.IAEFluidTank; + public class FluidInvWailaDataProvider extends BaseWailaDataProvider { @Override - public List getWailaBody( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); if (te instanceof TileFluidInterface) { ((IAEFluidInventory) te).getInternalFluid().readFromNBT(accessor.getNBTData(), "fluidInv"); @@ -53,8 +54,7 @@ public class FluidInvWailaDataProvider extends BaseWailaDataProvider { if (ft.getFluidInSlot(i) == null) continue; FluidStack fs = ft.getFluidInSlot(i).getFluidStack(); if (prefix) { - currentToolTip.add( - Tooltip.tileFluidInterfaceFormat(fs.getFluid().getLocalizedName(), fs.amount, i)); + currentToolTip.add(Tooltip.tileFluidInterfaceFormat(fs.getFluid().getLocalizedName(), fs.amount, i)); } else { currentToolTip.add(Tooltip.fluidFormat(fs.getFluid().getLocalizedName(), fs.amount)); } @@ -66,14 +66,8 @@ public class FluidInvWailaDataProvider extends BaseWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final TileEntity te, final NBTTagCompound tag, + final World world, final int x, final int y, final int z) { if (te instanceof TileFluidBuffer) { ((TileFluidBuffer) te).updateFluidStore(); } diff --git a/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvide.java b/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvide.java index 77db3979..0c4efefe 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvide.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvide.java @@ -1,37 +1,39 @@ package com.glodblock.github.crossmod.waila.tile; -import appeng.api.storage.data.IAEItemStack; -import appeng.integration.modules.waila.BaseWailaDataProvider; -import com.glodblock.github.common.tile.TileLevelMaintainer; -import com.glodblock.github.crossmod.waila.Tooltip; import java.util.List; + import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; + import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import appeng.api.storage.data.IAEItemStack; +import appeng.integration.modules.waila.BaseWailaDataProvider; + +import com.glodblock.github.common.tile.TileLevelMaintainer; +import com.glodblock.github.crossmod.waila.Tooltip; + public class LevelMaintainerWailaDataProvide extends BaseWailaDataProvider { + @Override - public List getWailaBody( - final ItemStack itemStack, - final List currentToolTip, - final IWailaDataAccessor accessor, - final IWailaConfigHandler config) { + public List getWailaBody(final ItemStack itemStack, final List currentToolTip, + final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); if (te instanceof TileLevelMaintainer) { te.readFromNBT(accessor.getNBTData()); for (int i = 0; i < TileLevelMaintainer.REQ_COUNT; i++) { - IAEItemStack ias = - ((TileLevelMaintainer) te).requests.getRequestStacks().getStack(i); + IAEItemStack ias = ((TileLevelMaintainer) te).requests.getRequestStacks().getStack(i); if (ias != null) { - currentToolTip.add(Tooltip.tileLevelMaintainerFormat( - ias.getItemStack().getDisplayName(), - ((TileLevelMaintainer) te).requests.getQuantity(i), - ((TileLevelMaintainer) te).requests.getBatchSize(i), - ((TileLevelMaintainer) te).requests.isEnable(i))); + currentToolTip.add( + Tooltip.tileLevelMaintainerFormat( + ias.getItemStack().getDisplayName(), + ((TileLevelMaintainer) te).requests.getQuantity(i), + ((TileLevelMaintainer) te).requests.getBatchSize(i), + ((TileLevelMaintainer) te).requests.isEnable(i))); } } } @@ -39,14 +41,8 @@ public class LevelMaintainerWailaDataProvide extends BaseWailaDataProvider { } @Override - public NBTTagCompound getNBTData( - final EntityPlayerMP player, - final TileEntity te, - final NBTTagCompound tag, - final World world, - final int x, - final int y, - final int z) { + public NBTTagCompound getNBTData(final EntityPlayerMP player, final TileEntity te, final NBTTagCompound tag, + final World world, final int x, final int y, final int z) { if (te instanceof TileLevelMaintainer) { te.writeToNBT(tag); } diff --git a/src/main/java/com/glodblock/github/inventory/AEFluidInventory.java b/src/main/java/com/glodblock/github/inventory/AEFluidInventory.java index 52cdd74e..7d092b04 100644 --- a/src/main/java/com/glodblock/github/inventory/AEFluidInventory.java +++ b/src/main/java/com/glodblock/github/inventory/AEFluidInventory.java @@ -1,12 +1,7 @@ package com.glodblock.github.inventory; -import appeng.api.storage.data.IAEFluidStack; -import appeng.core.AELog; -import appeng.util.Platform; -import appeng.util.item.AEFluidStack; -import com.glodblock.github.util.Util; -import io.netty.buffer.ByteBuf; import java.io.IOException; + import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; @@ -14,7 +9,16 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidTank; +import appeng.api.storage.data.IAEFluidStack; +import appeng.core.AELog; +import appeng.util.Platform; +import appeng.util.item.AEFluidStack; + +import com.glodblock.github.util.Util; +import io.netty.buffer.ByteBuf; + public class AEFluidInventory implements IAEFluidTank { + private final IAEFluidStack[] fluids; private final IAEFluidInventory handler; private final int capacity; @@ -33,8 +37,7 @@ public class AEFluidInventory implements IAEFluidTank { @Override public void setFluidInSlot(final int slot, final IAEFluidStack fluid) { if (slot >= 0 && slot < this.getSlots()) { - if (fluid != null - && this.fluids[slot] != null + if (fluid != null && this.fluids[slot] != null && fluid.getFluidStack().isFluidEqual(this.fluids[slot].getFluidStack())) { if (fluid.getStackSize() != this.fluids[slot].getStackSize()) { this.fluids[slot].setStackSize(Math.min(fluid.getStackSize(), this.capacity)); @@ -299,8 +302,7 @@ public class AEFluidInventory implements IAEFluidTank { } target.setTag("#" + x, c); - } catch (final Exception ignored) { - } + } catch (final Exception ignored) {} } } @@ -327,6 +329,7 @@ public class AEFluidInventory implements IAEFluidTank { } private class FluidTankPropertiesWrapper implements IFluidTank { + private final int slot; public FluidTankPropertiesWrapper(final int slot) { @@ -335,8 +338,7 @@ public class AEFluidInventory implements IAEFluidTank { @Override public FluidStack getFluid() { - return AEFluidInventory.this.fluids[this.slot] == null - ? null + return AEFluidInventory.this.fluids[this.slot] == null ? null : AEFluidInventory.this.fluids[this.slot].getFluidStack(); } @@ -366,9 +368,8 @@ public class AEFluidInventory implements IAEFluidTank { acc = Math.max(resource.amount, getCapacity() - getFluid().amount); } if (doFill) { - if (getFluid() == null) - AEFluidInventory.this.setFluidInSlot( - this.slot, AEFluidStack.create(new FluidStack(resource.getFluid(), acc))); + if (getFluid() == null) AEFluidInventory.this + .setFluidInSlot(this.slot, AEFluidStack.create(new FluidStack(resource.getFluid(), acc))); else getFluid().amount += acc; } return acc; diff --git a/src/main/java/com/glodblock/github/inventory/AeItemStackHandler.java b/src/main/java/com/glodblock/github/inventory/AeItemStackHandler.java index c0d2640e..17d23903 100644 --- a/src/main/java/com/glodblock/github/inventory/AeItemStackHandler.java +++ b/src/main/java/com/glodblock/github/inventory/AeItemStackHandler.java @@ -1,10 +1,11 @@ package com.glodblock.github.inventory; -import appeng.api.storage.data.IAEItemStack; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import appeng.api.storage.data.IAEItemStack; + public class AeItemStackHandler implements IInventory { private final AeStackInventory inv; diff --git a/src/main/java/com/glodblock/github/inventory/AeStackInventory.java b/src/main/java/com/glodblock/github/inventory/AeStackInventory.java index aac67dc0..bb7eb36d 100644 --- a/src/main/java/com/glodblock/github/inventory/AeStackInventory.java +++ b/src/main/java/com/glodblock/github/inventory/AeStackInventory.java @@ -1,9 +1,11 @@ package com.glodblock.github.inventory; -import appeng.api.storage.data.IAEStack; import java.util.stream.Stream; + import javax.annotation.Nullable; +import appeng.api.storage.data.IAEStack; + public interface AeStackInventory> extends Iterable { int getSlotCount(); diff --git a/src/main/java/com/glodblock/github/inventory/AeStackInventoryImpl.java b/src/main/java/com/glodblock/github/inventory/AeStackInventoryImpl.java index d7eb896f..c97cd504 100644 --- a/src/main/java/com/glodblock/github/inventory/AeStackInventoryImpl.java +++ b/src/main/java/com/glodblock/github/inventory/AeStackInventoryImpl.java @@ -1,18 +1,22 @@ package com.glodblock.github.inventory; +import java.util.Arrays; +import java.util.Iterator; +import java.util.stream.Stream; + +import javax.annotation.Nullable; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraftforge.common.util.Constants; + import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEStack; import appeng.tile.inventory.IAEAppEngInventory; import appeng.util.item.AEItemStack; + import com.glodblock.github.util.ObjectArrayIterator; import com.glodblock.github.util.Util; -import java.util.Arrays; -import java.util.Iterator; -import java.util.stream.Stream; -import javax.annotation.Nullable; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.common.util.Constants; public class AeStackInventoryImpl> implements AeStackInventory { diff --git a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java index 8c219205..848e641e 100644 --- a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java +++ b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java @@ -1,5 +1,19 @@ package com.glodblock.github.inventory; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + +import javax.annotation.Nullable; + +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.FuzzyMode; import appeng.api.config.InsertionMode; import appeng.me.GridAccessException; @@ -9,6 +23,7 @@ import appeng.util.InventoryAdaptor; import appeng.util.inv.IInventoryDestination; import appeng.util.inv.ItemSlot; import cofh.api.transport.IItemDuct; + import com.glodblock.github.common.Config; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.parts.PartFluidExportBus; @@ -18,27 +33,11 @@ import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.Util; -import java.util.Collections; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import javax.annotation.Nullable; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { - public FluidConvertingInventoryAdaptor( - @Nullable InventoryAdaptor invItems, - @Nullable IFluidHandler invFluids, - ForgeDirection facing, - BlockPos pos, - boolean isOnmi, - Object eioConduct) { + public FluidConvertingInventoryAdaptor(@Nullable InventoryAdaptor invItems, @Nullable IFluidHandler invFluids, + ForgeDirection facing, BlockPos pos, boolean isOnmi, Object eioConduct) { this.invItems = invItems; this.invFluids = invFluids; this.side = facing; @@ -56,16 +55,13 @@ public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { public static InventoryAdaptor wrap(TileEntity capProvider, ForgeDirection face) { // sometimes i wish 1.7.10 has cap system. - TileEntity inter = capProvider - .getWorldObj() - .getTileEntity( - capProvider.xCoord + face.offsetX, - capProvider.yCoord + face.offsetY, - capProvider.zCoord + face.offsetZ); - if (!Config.noFluidPacket - && !(inter instanceof TileFluidInterface - || Util.getPart(inter, face.getOpposite()) instanceof PartFluidInterface - || Util.getPart(inter, face.getOpposite()) instanceof PartFluidExportBus)) + TileEntity inter = capProvider.getWorldObj().getTileEntity( + capProvider.xCoord + face.offsetX, + capProvider.yCoord + face.offsetY, + capProvider.zCoord + face.offsetZ); + if (!Config.noFluidPacket && !(inter instanceof TileFluidInterface + || Util.getPart(inter, face.getOpposite()) instanceof PartFluidInterface + || Util.getPart(inter, face.getOpposite()) instanceof PartFluidExportBus)) return InventoryAdaptor.getAdaptor(capProvider, face); InventoryAdaptor item = InventoryAdaptor.getAdaptor(capProvider, face); IFluidHandler fluid = capProvider instanceof IFluidHandler ? (IFluidHandler) capProvider : null; @@ -155,14 +151,14 @@ public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { } @Override - public ItemStack removeSimilarItems( - int amount, ItemStack filter, FuzzyMode fuzzyMode, IInventoryDestination destination) { + public ItemStack removeSimilarItems(int amount, ItemStack filter, FuzzyMode fuzzyMode, + IInventoryDestination destination) { return invItems != null ? invItems.removeSimilarItems(amount, filter, fuzzyMode, destination) : null; } @Override - public ItemStack simulateSimilarRemove( - int amount, ItemStack filter, FuzzyMode fuzzyMode, IInventoryDestination destination) { + public ItemStack simulateSimilarRemove(int amount, ItemStack filter, FuzzyMode fuzzyMode, + IInventoryDestination destination) { return invItems != null ? invItems.simulateSimilarRemove(amount, filter, fuzzyMode, destination) : null; } @@ -193,8 +189,7 @@ public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { if (target == null) continue; tankInfos.add(target.getTankInfo(p2p.getSide().getOpposite())); } - } catch (GridAccessException ignore) { - } + } catch (GridAccessException ignore) {} } else { tankInfos.add(invFluids.getTankInfo(this.side)); } diff --git a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryCrafting.java b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryCrafting.java index 1b64c4f2..1bd919eb 100644 --- a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryCrafting.java +++ b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryCrafting.java @@ -1,13 +1,14 @@ package com.glodblock.github.inventory; -import com.glodblock.github.common.item.ItemFluidDrop; -import com.glodblock.github.common.item.ItemFluidPacket; import net.minecraft.inventory.Container; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.common.item.ItemFluidDrop; +import com.glodblock.github.common.item.ItemFluidPacket; + public class FluidConvertingInventoryCrafting extends InventoryCrafting { public FluidConvertingInventoryCrafting(Container container, int width, int height) { @@ -23,7 +24,8 @@ public class FluidConvertingInventoryCrafting extends InventoryCrafting { } else { // wtf? super.setInventorySlotContents( - index, ItemFluidPacket.newStack(new FluidStack(FluidRegistry.WATER, 1000))); + index, + ItemFluidPacket.newStack(new FluidStack(FluidRegistry.WATER, 1000))); } } else { super.setInventorySlotContents(index, stack); diff --git a/src/main/java/com/glodblock/github/inventory/IAEFluidInventory.java b/src/main/java/com/glodblock/github/inventory/IAEFluidInventory.java index 26f3e2d1..6132beb8 100644 --- a/src/main/java/com/glodblock/github/inventory/IAEFluidInventory.java +++ b/src/main/java/com/glodblock/github/inventory/IAEFluidInventory.java @@ -1,6 +1,7 @@ package com.glodblock.github.inventory; public interface IAEFluidInventory { + void onFluidInventoryChanged(final IAEFluidTank inv, final int slot); AEFluidInventory getInternalFluid(); diff --git a/src/main/java/com/glodblock/github/inventory/IAEFluidTank.java b/src/main/java/com/glodblock/github/inventory/IAEFluidTank.java index 1f83e690..f48d94c7 100644 --- a/src/main/java/com/glodblock/github/inventory/IAEFluidTank.java +++ b/src/main/java/com/glodblock/github/inventory/IAEFluidTank.java @@ -1,9 +1,11 @@ package com.glodblock.github.inventory; -import appeng.api.storage.data.IAEFluidStack; import net.minecraftforge.fluids.IFluidHandler; +import appeng.api.storage.data.IAEFluidStack; + public interface IAEFluidTank extends IFluidHandler { + void setFluidInSlot(final int slot, final IAEFluidStack fluid); IAEFluidStack getFluidInSlot(final int slot); diff --git a/src/main/java/com/glodblock/github/inventory/IDualHost.java b/src/main/java/com/glodblock/github/inventory/IDualHost.java index f391fd3f..2d876982 100644 --- a/src/main/java/com/glodblock/github/inventory/IDualHost.java +++ b/src/main/java/com/glodblock/github/inventory/IDualHost.java @@ -1,9 +1,11 @@ package com.glodblock.github.inventory; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.storage.data.IAEFluidStack; import appeng.tile.inventory.AppEngInternalAEInventory; + import com.glodblock.github.util.DualityFluidInterface; -import net.minecraftforge.fluids.IFluidHandler; public interface IDualHost extends IFluidHandler, IAEFluidInventory { diff --git a/src/main/java/com/glodblock/github/inventory/InventoryHandler.java b/src/main/java/com/glodblock/github/inventory/InventoryHandler.java index c52ea935..05837223 100644 --- a/src/main/java/com/glodblock/github/inventory/InventoryHandler.java +++ b/src/main/java/com/glodblock/github/inventory/InventoryHandler.java @@ -1,16 +1,19 @@ package com.glodblock.github.inventory; +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + import com.glodblock.github.FluidCraft; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.network.CPacketSwitchGuis; import com.glodblock.github.util.BlockPos; + import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class InventoryHandler implements IGuiHandler { diff --git a/src/main/java/com/glodblock/github/inventory/MEMonitorIFluidHandler.java b/src/main/java/com/glodblock/github/inventory/MEMonitorIFluidHandler.java index 89b62c1e..022c2bc1 100644 --- a/src/main/java/com/glodblock/github/inventory/MEMonitorIFluidHandler.java +++ b/src/main/java/com/glodblock/github/inventory/MEMonitorIFluidHandler.java @@ -1,5 +1,12 @@ package com.glodblock.github.inventory; +import java.util.*; + +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -12,13 +19,9 @@ import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IItemList; import appeng.util.item.AEFluidStack; -import java.util.*; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; public class MEMonitorIFluidHandler implements IMEMonitor { + private final IFluidHandler handler; private final ForgeDirection side; private IItemList cache = AEApi.instance().storage().createFluidList(); diff --git a/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java b/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java index 76dd9fc9..19c88103 100644 --- a/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java +++ b/src/main/java/com/glodblock/github/inventory/external/AEFluidInterfaceHandler.java @@ -1,13 +1,15 @@ package com.glodblock.github.inventory.external; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.implementations.tiles.ITileStorageMonitorable; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; + import com.glodblock.github.util.Util; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; public class AEFluidInterfaceHandler implements IExternalStorageHandler { @@ -25,12 +27,14 @@ public class AEFluidInterfaceHandler implements IExternalStorageHandler { @SuppressWarnings("rawtypes") public IMEInventory getInventory(TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource src) { if (channel == StorageChannel.FLUIDS) { - if (te instanceof ITileStorageMonitorable) { + if (te instanceof ITileStorageMonitorable + && ((ITileStorageMonitorable) te).getMonitorable(d, src) != null) { return ((ITileStorageMonitorable) te).getMonitorable(d, src).getFluidInventory(); - } else if (Util.getPart(te, d.getOpposite()) instanceof ITileStorageMonitorable) { - ITileStorageMonitorable part = (ITileStorageMonitorable) Util.getPart(te, d.getOpposite()); - return part.getMonitorable(d, src).getFluidInventory(); - } + } else if (Util.getPart(te, d.getOpposite()) instanceof ITileStorageMonitorable + && ((ITileStorageMonitorable) Util.getPart(te, d.getOpposite())).getMonitorable(d, src) != null) { + ITileStorageMonitorable part = (ITileStorageMonitorable) Util.getPart(te, d.getOpposite()); + return part.getMonitorable(d, src).getFluidInventory(); + } } return null; } diff --git a/src/main/java/com/glodblock/github/inventory/external/AEFluidTankHandler.java b/src/main/java/com/glodblock/github/inventory/external/AEFluidTankHandler.java index 9ddb243b..b4280efa 100644 --- a/src/main/java/com/glodblock/github/inventory/external/AEFluidTankHandler.java +++ b/src/main/java/com/glodblock/github/inventory/external/AEFluidTankHandler.java @@ -1,13 +1,15 @@ package com.glodblock.github.inventory.external; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; + import com.glodblock.github.inventory.MEMonitorIFluidHandler; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.IFluidHandler; // This handler is too generic, so it will overlap other mods' fluid handler. // It will be injected into external handler by ASM to make sure it is executed at last. diff --git a/src/main/java/com/glodblock/github/inventory/gui/ButtonMouseHandler.java b/src/main/java/com/glodblock/github/inventory/gui/ButtonMouseHandler.java index 671481fa..674282e1 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/ButtonMouseHandler.java +++ b/src/main/java/com/glodblock/github/inventory/gui/ButtonMouseHandler.java @@ -1,13 +1,16 @@ package com.glodblock.github.inventory.gui; +import java.util.Collections; +import java.util.List; + +import javax.annotation.Nullable; + +import net.minecraft.client.resources.I18n; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.ITankDump; import com.glodblock.github.network.CPacketDumpTank; import com.glodblock.github.util.NameConst; -import java.util.Collections; -import java.util.List; -import javax.annotation.Nullable; -import net.minecraft.client.resources.I18n; public class ButtonMouseHandler implements MouseRegionManager.Handler { diff --git a/src/main/java/com/glodblock/github/inventory/gui/GuiType.java b/src/main/java/com/glodblock/github/inventory/gui/GuiType.java index 625218cc..774731e9 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/GuiType.java +++ b/src/main/java/com/glodblock/github/inventory/gui/GuiType.java @@ -1,25 +1,31 @@ package com.glodblock.github.inventory.gui; +import java.util.List; + +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayer; + import appeng.api.storage.ITerminalHost; import appeng.container.implementations.ContainerCraftAmount; import appeng.container.implementations.ContainerCraftingStatus; -import appeng.container.implementations.ContainerInterface; import appeng.container.implementations.ContainerPriority; +import appeng.helpers.IInterfaceHost; import appeng.helpers.IPriorityHost; + import com.glodblock.github.client.gui.*; import com.glodblock.github.client.gui.container.*; -import com.glodblock.github.common.parts.PartFluidInterface; import com.glodblock.github.common.parts.PartFluidLevelEmitter; import com.glodblock.github.common.parts.PartFluidStorageBus; import com.glodblock.github.common.parts.base.FCPart; import com.glodblock.github.common.parts.base.FCSharedFluidBus; import com.glodblock.github.common.tile.*; +import com.glodblock.github.inventory.IDualHost; +import com.glodblock.github.inventory.item.IFluidPortableCell; import com.google.common.collect.ImmutableList; -import java.util.List; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayer; public enum GuiType { + FLUID_AUTO_FILLER(new TileGuiFactory(TileFluidAutoFiller.class) { @Override protected Object createServerGui(EntityPlayer player, TileFluidAutoFiller inv) { @@ -31,7 +37,9 @@ public enum GuiType { return new GuiFluidAutoFiller(player.inventory, inv); } }), + FLUID_LEVEL_EMITTER(new PartGuiFactory(PartFluidLevelEmitter.class) { + @Override protected Object createServerGui(EntityPlayer player, PartFluidLevelEmitter inv) { return new ContainerFluidLevelEmitter(player.inventory, inv); @@ -42,7 +50,9 @@ public enum GuiType { return new GuiFluidLevelEmitter(player.inventory, inv); } }), + LEVEL_MAINTAINER(new TileGuiFactory(TileLevelMaintainer.class) { + @Override protected Object createServerGui(EntityPlayer player, TileLevelMaintainer inv) { return new ContainerLevelMaintainer(player.inventory, inv); @@ -53,7 +63,9 @@ public enum GuiType { return new GuiLevelMaintainer(player.inventory, inv); } }), + OC_PATTERN_EDITOR(new TileGuiFactory(TileOCPatternEditor.class) { + @Override protected Object createServerGui(EntityPlayer player, TileOCPatternEditor inv) { return new ContainerOCPatternEditor(player.inventory, inv); @@ -65,67 +77,34 @@ public enum GuiType { } }), - DUAL_INTERFACE_PART(new PartGuiFactory(PartFluidInterface.class) { - @Override - protected Object createServerGui(EntityPlayer player, PartFluidInterface inv) { - return new ContainerInterface(player.inventory, inv); - } + DUAL_INTERFACE(new TileOrPartGuiFactory(IInterfaceHost.class) { @Override - protected Object createClientGui(EntityPlayer player, PartFluidInterface inv) { - return new GuiDualInterface(player.inventory, inv); - } - }), - - DUAL_INTERFACE_FLUID_PART(new PartGuiFactory(PartFluidInterface.class) { - @Override - protected Object createServerGui(EntityPlayer player, PartFluidInterface inv) { - return new ContainerFluidInterface(player.inventory, inv); - } - - @Override - protected Object createClientGui(EntityPlayer player, PartFluidInterface inv) { - return new GuiFluidInterface(player.inventory, inv); - } - }), - - DUAL_INTERFACE(new TileGuiFactory(TileFluidInterface.class) { - @Override - protected Object createServerGui(EntityPlayer player, TileFluidInterface inv) { + protected Object createServerGui(EntityPlayer player, IInterfaceHost inv) { return new ContainerDualInterface(player.inventory, inv); } @Override - protected Object createClientGui(EntityPlayer player, TileFluidInterface inv) { + protected Object createClientGui(EntityPlayer player, IInterfaceHost inv) { return new GuiDualInterface(player.inventory, inv); } }), - DUAL_INTERFACE_FLUID(new TileGuiFactory(TileFluidInterface.class) { + DUAL_INTERFACE_FLUID(new TileOrPartGuiFactory(IDualHost.class) { + @Override - protected Object createServerGui(EntityPlayer player, TileFluidInterface inv) { + protected Object createServerGui(EntityPlayer player, IDualHost inv) { return new ContainerFluidInterface(player.inventory, inv); } @Override - protected Object createClientGui(EntityPlayer player, TileFluidInterface inv) { + protected Object createClientGui(EntityPlayer player, IDualHost inv) { return new GuiFluidInterface(player.inventory, inv); } }), - PRIORITY_PART(new PartGuiFactory(IPriorityHost.class) { - @Override - protected Object createServerGui(EntityPlayer player, IPriorityHost inv) { - return new ContainerPriority(player.inventory, inv); - } + PRIORITY(new TileOrPartGuiFactory(IPriorityHost.class) { - @Override - protected Object createClientGui(EntityPlayer player, IPriorityHost inv) { - return new GuiFCPriority(player.inventory, inv); - } - }), - - PRIORITY_TILE(new TileGuiFactory(IPriorityHost.class) { @Override protected Object createServerGui(EntityPlayer player, IPriorityHost inv) { return new ContainerPriority(player.inventory, inv); @@ -138,6 +117,7 @@ public enum GuiType { }), FLUID_BUS_IO(new PartGuiFactory(FCSharedFluidBus.class) { + @Override protected Object createServerGui(EntityPlayer player, FCSharedFluidBus inv) { return new ContainerFluidIO(player.inventory, inv); @@ -150,6 +130,7 @@ public enum GuiType { }), FLUID_STORAGE_BUS(new PartGuiFactory(PartFluidStorageBus.class) { + @Override protected Object createServerGui(EntityPlayer player, PartFluidStorageBus inv) { return new ContainerFluidStorageBus(player.inventory, inv); @@ -162,6 +143,7 @@ public enum GuiType { }), INGREDIENT_BUFFER(new TileGuiFactory(TileIngredientBuffer.class) { + @Override protected Object createServerGui(EntityPlayer player, TileIngredientBuffer inv) { return new ContainerIngredientBuffer(player.inventory, inv); @@ -174,6 +156,7 @@ public enum GuiType { }), LARGE_INGREDIENT_BUFFER(new TileGuiFactory(TileLargeIngredientBuffer.class) { + @Override protected Object createServerGui(EntityPlayer player, TileLargeIngredientBuffer inv) { return new ContainerLargeIngredientBuffer(player.inventory, inv); @@ -186,6 +169,7 @@ public enum GuiType { }), CRAFTING_STATUS(new PartGuiFactory(FCPart.class) { + @Override protected Object createServerGui(EntityPlayer player, FCPart inv) { return new ContainerCraftingStatus(player.inventory, inv); @@ -197,7 +181,8 @@ public enum GuiType { } }), - FLUID_TERMINAL(new PartGuiFactory(ITerminalHost.class) { + FLUID_TERMINAL(new TileOrPartGuiFactory(ITerminalHost.class) { + @Override protected Object createServerGui(EntityPlayer player, ITerminalHost inv) { return new ContainerFluidMonitor(player.inventory, inv); @@ -209,7 +194,21 @@ public enum GuiType { } }), + PORTABLE_FLUID_CELL(new ItemGuiFactory(IFluidPortableCell.class) { + + @Override + protected Object createServerGui(EntityPlayer player, IFluidPortableCell inv) { + return new ContainerFluidPortableCell(player.inventory, inv); + } + + @Override + protected Object createClientGui(EntityPlayer player, IFluidPortableCell inv) { + return new GuiFluidPortableCell(player.inventory, inv); + } + }), + FLUID_PATTERN_TERMINAL(new PartGuiFactory(ITerminalHost.class) { + @Override protected Object createServerGui(EntityPlayer player, ITerminalHost inv) { return new ContainerFluidPatternTerminal(player.inventory, inv); @@ -222,6 +221,7 @@ public enum GuiType { }), FLUID_PATTERN_TERMINAL_EX(new PartGuiFactory(ITerminalHost.class) { + @Override protected Object createServerGui(EntityPlayer player, ITerminalHost inv) { return new ContainerFluidPatternTerminalEx(player.inventory, inv); @@ -234,6 +234,7 @@ public enum GuiType { }), FLUID_PATTERN_ENCODER(new TileGuiFactory(TileFluidPatternEncoder.class) { + @Override protected Object createServerGui(EntityPlayer player, TileFluidPatternEncoder inv) { return new ContainerFluidPatternEncoder(player.inventory, inv); @@ -246,6 +247,7 @@ public enum GuiType { }), FLUID_CRAFTING_CONFIRM(new PartGuiFactory(FCPart.class) { + @Override protected Object createServerGui(EntityPlayer player, FCPart inv) { return new ContainerFluidCraftConfirm(player.inventory, inv); @@ -258,6 +260,7 @@ public enum GuiType { }), FLUID_CRAFTING_AMOUNT(new PartGuiFactory(FCPart.class) { + @Override protected Object createServerGui(EntityPlayer player, FCPart inv) { return new ContainerCraftAmount(player.inventory, inv); @@ -270,6 +273,7 @@ public enum GuiType { }), FLUID_PACKET_DECODER(new TileGuiFactory(TileFluidPacketDecoder.class) { + @Override protected Object createServerGui(EntityPlayer player, TileFluidPacketDecoder inv) { return new ContainerFluidPacketDecoder(player.inventory, inv); @@ -282,6 +286,7 @@ public enum GuiType { }), PATTERN_VALUE_SET(new PartGuiFactory(FCPart.class) { + @Override protected Object createServerGui(EntityPlayer player, FCPart inv) { return new ContainerPatternValueAmount(player.inventory, inv); diff --git a/src/main/java/com/glodblock/github/inventory/gui/IGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/IGuiFactory.java index 5a69f441..90777803 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/IGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/IGuiFactory.java @@ -1,12 +1,14 @@ package com.glodblock.github.inventory.gui; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import javax.annotation.Nullable; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public interface IGuiFactory { @Nullable diff --git a/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java new file mode 100644 index 00000000..01354288 --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/gui/ItemGuiFactory.java @@ -0,0 +1,68 @@ +package com.glodblock.github.inventory.gui; + +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import appeng.container.AEBaseContainer; +import appeng.container.ContainerOpenContext; + +import com.glodblock.github.inventory.item.IItemInventory; + +public abstract class ItemGuiFactory implements IGuiFactory { + + protected final Class invClass; + + ItemGuiFactory(Class invClass) { + this.invClass = invClass; + } + + @Nullable + protected T getInventory(Object inv) { + return invClass.isInstance(inv) ? invClass.cast(inv) : null; + } + + @Nullable + @Override + public Object createServerGui(EntityPlayer player, World world, int x, int y, int z, ForgeDirection face) { + ItemStack item = player.getHeldItem(); + if (item == null || !(item.getItem() instanceof IItemInventory)) { + return null; + } + T inv = getInventory(((IItemInventory) item.getItem()).getInventory(item, world, x, y, z)); + if (inv == null) { + return null; + } + Object gui = createServerGui(player, inv); + if (gui instanceof AEBaseContainer) { + ContainerOpenContext ctx = new ContainerOpenContext(inv); + ctx.setWorld(world); + ctx.setX(x); + ctx.setY(y); + ctx.setZ(z); + ctx.setSide(face); + ((AEBaseContainer) gui).setOpenContext(ctx); + } + return gui; + } + + @Nullable + protected abstract Object createServerGui(EntityPlayer player, T inv); + + @Nullable + @Override + public Object createClientGui(EntityPlayer player, World world, int x, int y, int z, ForgeDirection face) { + ItemStack item = player.getHeldItem(); + if (item == null || !(item.getItem() instanceof IItemInventory)) { + return null; + } + T inv = getInventory(((IItemInventory) item.getItem()).getInventory(item, world, x, y, z)); + return inv != null ? createClientGui(player, inv) : null; + } + + @Nullable + protected abstract Object createClientGui(EntityPlayer player, T inv); +} diff --git a/src/main/java/com/glodblock/github/inventory/gui/MouseRegionManager.java b/src/main/java/com/glodblock/github/inventory/gui/MouseRegionManager.java index 125d95ff..7dd9f674 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/MouseRegionManager.java +++ b/src/main/java/com/glodblock/github/inventory/gui/MouseRegionManager.java @@ -1,14 +1,18 @@ package com.glodblock.github.inventory.gui; -import appeng.client.gui.AEBaseGui; import java.util.ArrayList; import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.util.ResourceLocation; +import appeng.client.gui.AEBaseGui; + public class MouseRegionManager { + private final GuiContainer gui; private final List regions = new ArrayList<>(); @@ -25,8 +29,7 @@ public class MouseRegionManager { mY -= gui.guiTop; for (Region region : regions) { if (region.containsMouse(mX, mY) && region.handler.onClick(button)) { - gui.mc - .getSoundHandler() + gui.mc.getSoundHandler() .playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1F)); return false; } diff --git a/src/main/java/com/glodblock/github/inventory/gui/PartGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/PartGuiFactory.java index 335f58ef..d2a7508d 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/PartGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/PartGuiFactory.java @@ -1,10 +1,12 @@ package com.glodblock.github.inventory.gui; +import javax.annotation.Nullable; + +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; -import javax.annotation.Nullable; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; public abstract class PartGuiFactory extends TileGuiFactory { diff --git a/src/main/java/com/glodblock/github/inventory/gui/TankMouseHandler.java b/src/main/java/com/glodblock/github/inventory/gui/TankMouseHandler.java index fceb6b29..b8b61c60 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/TankMouseHandler.java +++ b/src/main/java/com/glodblock/github/inventory/gui/TankMouseHandler.java @@ -1,15 +1,19 @@ package com.glodblock.github.inventory.gui; -import appeng.api.storage.data.IAEFluidStack; -import com.glodblock.github.inventory.IAEFluidTank; -import com.glodblock.github.util.NameConst; import java.util.Arrays; import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.client.resources.I18n; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; +import appeng.api.storage.data.IAEFluidStack; + +import com.glodblock.github.inventory.IAEFluidTank; +import com.glodblock.github.util.NameConst; + public class TankMouseHandler implements MouseRegionManager.Handler { private final IAEFluidTank tank; @@ -26,10 +30,9 @@ public class TankMouseHandler implements MouseRegionManager.Handler { IAEFluidStack fluid = tank.getFluidInSlot(index); return Arrays.asList( fluid != null ? fluid.getFluidStack().getLocalizedName() : I18n.format(NameConst.TT_EMPTY), - EnumChatFormatting.GRAY - + String.format( - "%,d / %,d mB", - fluid != null ? fluid.getStackSize() : 0L, - tank.getTankInfo(ForgeDirection.UNKNOWN)[index].capacity)); + EnumChatFormatting.GRAY + String.format( + "%,d / %,d mB", + fluid != null ? fluid.getStackSize() : 0L, + tank.getTankInfo(ForgeDirection.UNKNOWN)[index].capacity)); } } diff --git a/src/main/java/com/glodblock/github/inventory/gui/TileGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/TileGuiFactory.java index df373940..abbbde34 100644 --- a/src/main/java/com/glodblock/github/inventory/gui/TileGuiFactory.java +++ b/src/main/java/com/glodblock/github/inventory/gui/TileGuiFactory.java @@ -1,13 +1,15 @@ package com.glodblock.github.inventory.gui; -import appeng.container.AEBaseContainer; -import appeng.container.ContainerOpenContext; import javax.annotation.Nullable; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import appeng.container.AEBaseContainer; +import appeng.container.ContainerOpenContext; + public abstract class TileGuiFactory implements IGuiFactory { protected final Class invClass; diff --git a/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java b/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java new file mode 100644 index 00000000..a3d4b35a --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/gui/TileOrPartGuiFactory.java @@ -0,0 +1,28 @@ +package com.glodblock.github.inventory.gui; + +import javax.annotation.Nullable; + +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +import appeng.api.parts.IPart; +import appeng.api.parts.IPartHost; + +public abstract class TileOrPartGuiFactory extends TileGuiFactory { + + TileOrPartGuiFactory(Class invClass) { + super(invClass); + } + + @Nullable + @Override + protected T getInventory(TileEntity tile, ForgeDirection face) { + if (tile instanceof IPartHost) { + IPart part = ((IPartHost) tile).getPart(face); + if (invClass.isInstance(part)) { + return invClass.cast(part); + } + } + return super.getInventory(tile, face); + } +} diff --git a/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java b/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java new file mode 100644 index 00000000..3058ccc9 --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/item/IFluidPortableCell.java @@ -0,0 +1,9 @@ +package com.glodblock.github.inventory.item; + +import appeng.api.implementations.guiobjects.IGuiItemObject; +import appeng.api.networking.energy.IEnergySource; +import appeng.api.storage.ITerminalHost; +import appeng.container.interfaces.IInventorySlotAware; + +public interface IFluidPortableCell extends ITerminalHost, IInventorySlotAware, IEnergySource, IGuiItemObject { +} diff --git a/src/main/java/com/glodblock/github/inventory/item/IItemInventory.java b/src/main/java/com/glodblock/github/inventory/item/IItemInventory.java new file mode 100644 index 00000000..e6b85ac4 --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/item/IItemInventory.java @@ -0,0 +1,9 @@ +package com.glodblock.github.inventory.item; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public interface IItemInventory { + + Object getInventory(ItemStack stack, World world, int x, int y, int z); +} diff --git a/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java b/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java new file mode 100644 index 00000000..e11f328b --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/item/PortableFluidCellInventory.java @@ -0,0 +1,74 @@ +package com.glodblock.github.inventory.item; + +import java.util.Objects; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +import appeng.api.config.*; +import appeng.api.implementations.items.IAEItemPowerStorage; +import appeng.api.storage.IMEMonitor; +import appeng.api.storage.MEMonitorHandler; +import appeng.api.storage.data.IAEFluidStack; +import appeng.api.storage.data.IAEItemStack; +import appeng.api.util.IConfigManager; +import appeng.util.ConfigManager; +import appeng.util.Platform; + +import com.glodblock.github.common.storage.FluidCellInventory; + +public class PortableFluidCellInventory extends MEMonitorHandler implements IFluidPortableCell { + + private final ItemStack target; + private final IAEItemPowerStorage ips; + private final int inventorySlot; + + public PortableFluidCellInventory(final ItemStack is, final int slot) { + super(Objects.requireNonNull(FluidCellInventory.getCell(is, null))); + this.ips = (IAEItemPowerStorage) is.getItem(); + this.target = is; + this.inventorySlot = slot; + } + + @Override + public int getInventorySlot() { + return this.inventorySlot; + } + + @Override + public ItemStack getItemStack() { + return this.target; + } + + @Override + public double extractAEPower(double amt, final Actionable mode, final PowerMultiplier usePowerMultiplier) { + amt = usePowerMultiplier.multiply(amt); + if (mode == Actionable.SIMULATE) { + return usePowerMultiplier.divide(Math.min(amt, this.ips.getAECurrentPower(this.target))); + } + return usePowerMultiplier.divide(this.ips.extractAEPower(this.target, amt)); + } + + @Override + public IMEMonitor getItemInventory() { + return null; + } + + @Override + public IMEMonitor getFluidInventory() { + return this; + } + + @Override + public IConfigManager getConfigManager() { + final ConfigManager out = new ConfigManager((manager, settingName, newValue) -> { + final NBTTagCompound data = Platform.openNbtData(PortableFluidCellInventory.this.target); + manager.writeToNBT(data); + }); + out.registerSetting(Settings.SORT_BY, SortOrder.NAME); + out.registerSetting(Settings.VIEW_MODE, ViewItems.ALL); + out.registerSetting(Settings.SORT_DIRECTION, SortDir.ASCENDING); + out.readFromNBT((NBTTagCompound) Platform.openNbtData(this.target).copy()); + return out; + } +} diff --git a/src/main/java/com/glodblock/github/inventory/slot/FCSlotRestrictedInput.java b/src/main/java/com/glodblock/github/inventory/slot/FCSlotRestrictedInput.java index ec81c5e1..f12906d7 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/FCSlotRestrictedInput.java +++ b/src/main/java/com/glodblock/github/inventory/slot/FCSlotRestrictedInput.java @@ -7,6 +7,8 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import org.apache.commons.lang3.tuple.MutablePair; +import appeng.container.slot.SlotRestrictedInput; + public class FCSlotRestrictedInput extends SlotRestrictedInput { @FunctionalInterface diff --git a/src/main/java/com/glodblock/github/inventory/slot/ISlotFluid.java b/src/main/java/com/glodblock/github/inventory/slot/ISlotFluid.java index 115180bb..e985f401 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/ISlotFluid.java +++ b/src/main/java/com/glodblock/github/inventory/slot/ISlotFluid.java @@ -1,8 +1,9 @@ package com.glodblock.github.inventory.slot; -import appeng.api.storage.data.IAEItemStack; import javax.annotation.Nullable; +import appeng.api.storage.data.IAEItemStack; + public interface ISlotFluid { @Nullable diff --git a/src/main/java/com/glodblock/github/inventory/slot/OptionalFluidSlotFakeTypeOnly.java b/src/main/java/com/glodblock/github/inventory/slot/OptionalFluidSlotFakeTypeOnly.java index c1e1d74b..3a4e99d3 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/OptionalFluidSlotFakeTypeOnly.java +++ b/src/main/java/com/glodblock/github/inventory/slot/OptionalFluidSlotFakeTypeOnly.java @@ -1,29 +1,23 @@ package com.glodblock.github.inventory.slot; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + import appeng.container.slot.IOptionalSlotHost; import appeng.container.slot.OptionalSlotFakeTypeOnly; import appeng.util.item.AEFluidStack; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.AEFluidInventory; import com.glodblock.github.util.Util; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; public class OptionalFluidSlotFakeTypeOnly extends OptionalSlotFakeTypeOnly { AEFluidInventory fluidInv; - public OptionalFluidSlotFakeTypeOnly( - IInventory inv, - AEFluidInventory fluidInv, - IOptionalSlotHost containerBus, - int idx, - int x, - int y, - int offX, - int offY, - int groupNum) { + public OptionalFluidSlotFakeTypeOnly(IInventory inv, AEFluidInventory fluidInv, IOptionalSlotHost containerBus, + int idx, int x, int y, int offX, int offY, int groupNum) { super(inv, containerBus, idx, x, y, offX, offY, groupNum); this.fluidInv = fluidInv; } diff --git a/src/main/java/com/glodblock/github/inventory/slot/SlotFluidConvertingFake.java b/src/main/java/com/glodblock/github/inventory/slot/SlotFluidConvertingFake.java index abb8a42f..5f6371fa 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/SlotFluidConvertingFake.java +++ b/src/main/java/com/glodblock/github/inventory/slot/SlotFluidConvertingFake.java @@ -1,17 +1,20 @@ package com.glodblock.github.inventory.slot; -import appeng.api.storage.data.IAEItemStack; -import appeng.container.slot.SlotFake; -import appeng.util.item.AEItemStack; -import com.glodblock.github.common.item.ItemFluidPacket; -import com.glodblock.github.inventory.AeItemStackHandler; -import com.glodblock.github.inventory.AeStackInventory; import javax.annotation.Nullable; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; +import appeng.api.storage.data.IAEItemStack; +import appeng.container.slot.SlotFake; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.inventory.AeItemStackHandler; +import com.glodblock.github.inventory.AeStackInventory; + public class SlotFluidConvertingFake extends SlotFake implements ISlotFluid { private final AeStackInventory inv; diff --git a/src/main/java/com/glodblock/github/inventory/slot/SlotSingleItem.java b/src/main/java/com/glodblock/github/inventory/slot/SlotSingleItem.java index b3b65890..f7ee976e 100644 --- a/src/main/java/com/glodblock/github/inventory/slot/SlotSingleItem.java +++ b/src/main/java/com/glodblock/github/inventory/slot/SlotSingleItem.java @@ -1,14 +1,16 @@ package com.glodblock.github.inventory.slot; -import com.glodblock.github.util.Util; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; +import com.glodblock.github.util.Util; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class SlotSingleItem extends Slot { private final Slot delegate; diff --git a/src/main/java/com/glodblock/github/loader/CalculatorV2PluginLoader.java b/src/main/java/com/glodblock/github/loader/CalculatorV2PluginLoader.java index b388512c..08deb888 100644 --- a/src/main/java/com/glodblock/github/loader/CalculatorV2PluginLoader.java +++ b/src/main/java/com/glodblock/github/loader/CalculatorV2PluginLoader.java @@ -4,9 +4,11 @@ import appeng.api.storage.data.IAEItemStack; import appeng.crafting.v2.CraftingCalculations; import appeng.crafting.v2.CraftingRequest; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidDrop; public class CalculatorV2PluginLoader { + private static long adjustByteCost(CraftingRequest request, Long originalAmount) { if (request.stack.getItem() instanceof ItemFluidDrop) { return Platform.ceilDiv(originalAmount, 1000L); diff --git a/src/main/java/com/glodblock/github/loader/ChannelLoader.java b/src/main/java/com/glodblock/github/loader/ChannelLoader.java index a8a7f2d2..1ecdaa0a 100644 --- a/src/main/java/com/glodblock/github/loader/ChannelLoader.java +++ b/src/main/java/com/glodblock/github/loader/ChannelLoader.java @@ -5,39 +5,46 @@ import com.glodblock.github.network.*; import cpw.mods.fml.relauncher.Side; public class ChannelLoader implements Runnable { + @Override @SuppressWarnings("all") public void run() { int id = 0; + FluidCraft.proxy.netHandler + .registerMessage(new CPacketSwitchGuis.Handler(), CPacketSwitchGuis.class, id++, Side.SERVER); FluidCraft.proxy.netHandler.registerMessage( - new CPacketSwitchGuis.Handler(), CPacketSwitchGuis.class, id++, Side.SERVER); + new CPacketFluidPatternTermBtns.Handler(), + CPacketFluidPatternTermBtns.class, + id++, + Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketEncodePattern.Handler(), CPacketEncodePattern.class, id++, Side.SERVER); FluidCraft.proxy.netHandler.registerMessage( - new CPacketFluidPatternTermBtns.Handler(), CPacketFluidPatternTermBtns.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketEncodePattern.Handler(), CPacketEncodePattern.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new SPacketMEInventoryUpdate.Handler(), SPacketMEInventoryUpdate.class, id++, Side.CLIENT); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketCraftRequest.Handler(), CPacketCraftRequest.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketInventoryAction.Handler(), CPacketInventoryAction.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketSwitchGuis.Handler(), CPacketSwitchGuis.class, id++, Side.CLIENT); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketTransferRecipe.Handler(), CPacketTransferRecipe.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketDumpTank.Handler(), CPacketDumpTank.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new SPacketFluidUpdate.Handler(), SPacketFluidUpdate.class, id++, Side.CLIENT); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketPatternValueSet.Handler(), CPacketPatternValueSet.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketValueConfig.Handler(), CPacketValueConfig.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketFluidUpdate.Handler(), CPacketFluidUpdate.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new CPacketLevelMaintainer.Handler(), CPacketLevelMaintainer.class, id++, Side.SERVER); - FluidCraft.proxy.netHandler.registerMessage( - new SPacketSetItemAmount.Handler(), SPacketSetItemAmount.class, id++, Side.CLIENT); + new SPacketMEInventoryUpdate.Handler(), + SPacketMEInventoryUpdate.class, + id++, + Side.CLIENT); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketCraftRequest.Handler(), CPacketCraftRequest.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketInventoryAction.Handler(), CPacketInventoryAction.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketSwitchGuis.Handler(), CPacketSwitchGuis.class, id++, Side.CLIENT); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketTransferRecipe.Handler(), CPacketTransferRecipe.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketDumpTank.Handler(), CPacketDumpTank.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new SPacketFluidUpdate.Handler(), SPacketFluidUpdate.class, id++, Side.CLIENT); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketPatternValueSet.Handler(), CPacketPatternValueSet.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketValueConfig.Handler(), CPacketValueConfig.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketFluidUpdate.Handler(), CPacketFluidUpdate.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new CPacketLevelMaintainer.Handler(), CPacketLevelMaintainer.class, id++, Side.SERVER); + FluidCraft.proxy.netHandler + .registerMessage(new SPacketSetItemAmount.Handler(), SPacketSetItemAmount.class, id++, Side.CLIENT); } } diff --git a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java index b60839f4..42e91167 100644 --- a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java +++ b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java @@ -30,19 +30,22 @@ public class ItemAndBlockHolder { public static ItemFluidLevelEmitter FLUID_LEVEL_EMITTER = new ItemFluidLevelEmitter().register(); public static ItemFluidStorageMonitor FLUID_STORAGE_MONITOR = new ItemFluidStorageMonitor().register(); public static ItemFluidConversionMonitor FLUID_CONVERSION_MONITOR = new ItemFluidConversionMonitor().register(); + public static ItemPortableFluidCell PORTABLE_FLUID_CELL = new ItemPortableFluidCell().register(); public static ItemFluidPacket PACKET = new ItemFluidPacket().register(); public static ItemBasicFluidStorageCell CELL1K = new ItemBasicFluidStorageCell(CellType.Cell1kPart, 1).register(); public static ItemBasicFluidStorageCell CELL4K = new ItemBasicFluidStorageCell(CellType.Cell4kPart, 4).register(); - public static ItemBasicFluidStorageCell CELL16K = - new ItemBasicFluidStorageCell(CellType.Cell16kPart, 16).register(); - public static ItemBasicFluidStorageCell CELL64K = - new ItemBasicFluidStorageCell(CellType.Cell64kPart, 64).register(); - public static ItemBasicFluidStorageCell CELL256K = - new ItemBasicFluidStorageCell(CellType.Cell256kPart, 256).register(); - public static ItemBasicFluidStorageCell CELL1024K = - new ItemBasicFluidStorageCell(CellType.Cell1024kPart, 1024).register(); - public static ItemBasicFluidStorageCell CELL4096K = - new ItemBasicFluidStorageCell(CellType.Cell4096kPart, 4096).register(); + public static ItemBasicFluidStorageCell CELL16K = new ItemBasicFluidStorageCell(CellType.Cell16kPart, 16) + .register(); + public static ItemBasicFluidStorageCell CELL64K = new ItemBasicFluidStorageCell(CellType.Cell64kPart, 64) + .register(); + public static ItemBasicFluidStorageCell CELL256K = new ItemBasicFluidStorageCell(CellType.Cell256kPart, 256) + .register(); + public static ItemBasicFluidStorageCell CELL1024K = new ItemBasicFluidStorageCell(CellType.Cell1024kPart, 1024) + .register(); + public static ItemBasicFluidStorageCell CELL4096K = new ItemBasicFluidStorageCell(CellType.Cell4096kPart, 4096) + .register(); + public static ItemBasicFluidStorageCell CELL16384K = new ItemBasicFluidStorageCell(CellType.Cell16384kPart, 16384) + .register(); public static ItemBasicFluidStoragePart CELL_PART = new ItemBasicFluidStoragePart().register(); public static void loadSetting() { @@ -54,5 +57,6 @@ public class ItemAndBlockHolder { CellType.Cell256kPart.setItemInstance(CELL_PART); CellType.Cell1024kPart.setItemInstance(CELL_PART); CellType.Cell4096kPart.setItemInstance(CELL_PART); + CellType.Cell16384kPart.setItemInstance(CELL_PART); } } diff --git a/src/main/java/com/glodblock/github/loader/RecipeLoader.java b/src/main/java/com/glodblock/github/loader/RecipeLoader.java index bbdf7fa3..b780e2dd 100644 --- a/src/main/java/com/glodblock/github/loader/RecipeLoader.java +++ b/src/main/java/com/glodblock/github/loader/RecipeLoader.java @@ -4,12 +4,6 @@ import static com.glodblock.github.loader.ItemAndBlockHolder.*; import static net.minecraft.init.Blocks.redstone_torch; import static net.minecraft.init.Items.fish; -import com.glodblock.github.common.Config; -import com.glodblock.github.common.item.ItemBasicFluidStorageCell; -import com.glodblock.github.common.storage.CellType; -import com.glodblock.github.util.ModAndClassUtil; -import cpw.mods.fml.common.registry.GameRegistry; -import extracells.registries.ItemEnum; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -17,68 +11,121 @@ import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; +import com.glodblock.github.common.Config; +import com.glodblock.github.common.item.ItemBasicFluidStorageCell; +import com.glodblock.github.common.storage.CellType; +import com.glodblock.github.util.ModAndClassUtil; + +import cpw.mods.fml.common.registry.GameRegistry; +import extracells.registries.ItemEnum; + public class RecipeLoader implements Runnable { - public static final ItemStack AE2_INTERFACE = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockInterface", 1); - public static final ItemStack AE2_PROCESS_ENG = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 24); - public static final ItemStack AE2_STORAGE_BUS = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), 1, 220); - public static final ItemStack AE2_CONDENSER = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockCondenser", 1); - public static final ItemStack AE2_GLASS_CABLE = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), 1, 16); - public static final ItemStack AE2_PROCESS_CAL = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 23); - public static final ItemStack AE2_WORK_BENCH = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockCellWorkbench", 1); - public static final ItemStack AE2_PATTERN_TERM = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), 1, 340); - public static final ItemStack AE2_PROCESS_LOG = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 22); - public static final ItemStack AE2_PURE_CERTUS = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 10); - public static final ItemStack AE2_QUARTZ_GLASS = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockQuartzGlass", 1); - public static final ItemStack AE2_LAMP_GLASS = - GameRegistry.findItemStack("appliedenergistics2", "tile.BlockQuartzLamp", 1); - public static final ItemStack AE2_CELL_HOUSING = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 39); - public static final ItemStack AE2_CELL_1K = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 35); - public static final ItemStack AE2_CORE_ANN = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 44); - public static final ItemStack AE2_CORE_FOM = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 43); + public static final ItemStack AE2_INTERFACE = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockInterface", 1); + public static final ItemStack AE2_PROCESS_ENG = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 24); + public static final ItemStack AE2_STORAGE_BUS = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), + 1, + 220); + public static final ItemStack AE2_CONDENSER = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockCondenser", 1); + public static final ItemStack AE2_GLASS_CABLE = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), + 1, + 16); + public static final ItemStack AE2_PROCESS_CAL = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 23); + public static final ItemStack AE2_WORK_BENCH = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockCellWorkbench", 1); + public static final ItemStack AE2_PATTERN_TERM = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), + 1, + 340); + public static final ItemStack AE2_PROCESS_LOG = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 22); + public static final ItemStack AE2_PURE_CERTUS = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 10); + public static final ItemStack AE2_QUARTZ_GLASS = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockQuartzGlass", 1); + public static final ItemStack AE2_LAMP_GLASS = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockQuartzLamp", 1); + public static final ItemStack AE2_CELL_HOUSING = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 39); + public static final ItemStack AE2_CELL_1K = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 35); + public static final ItemStack AE2_CORE_ANN = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 44); + public static final ItemStack AE2_CORE_FOM = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 43); public static final ItemStack PISTON = new ItemStack(Blocks.piston, 1); public static final ItemStack STICKY_PISTON = new ItemStack(Blocks.sticky_piston, 1); - public static final ItemStack AE2_BLANK_PATTERN = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 52); - public static final ItemStack AE2_TERMINAL = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), 1, 380); - public static final ItemStack AE2_CRAFTING_CP_UNIT = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "tile.BlockCraftingUnit"), 1, 1); - public static final ItemStack AE2_PATTERN_CAPACITY_CARD = - new ItemStack(GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), 1, 54); + public static final ItemStack AE2_BLANK_PATTERN = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 52); + public static final ItemStack AE2_TERMINAL = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiPart"), + 1, + 380); + public static final ItemStack AE2_CRAFTING_CP_UNIT = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "tile.BlockCraftingUnit"), + 1, + 1); + public static final ItemStack AE2_PATTERN_CAPACITY_CARD = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 54); + public static final ItemStack AE2_ME_CHEST = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockChest", 1); + public static final ItemStack AE2_ENERGY_CELL = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockEnergyCell", 1); public static final ItemStack BUCKET = new ItemStack(Items.bucket, 1); public static final ItemStack IRON_BAR = new ItemStack(Blocks.iron_bars, 1); @Override public void run() { - GameRegistry.addRecipe(new ShapedOreRecipe( - INTERFACE.stack(), - "IPI", - "GEG", - "IPI", - 'I', - "ingotIron", - 'P', - "dyeBlue", - 'G', - "blockGlass", - 'E', - AE2_INTERFACE)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + PORTABLE_FLUID_CELL.stack(), + "ABC", + 'A', + AE2_ME_CHEST, + 'B', + CellType.Cell1kPart.stack(1), + 'C', + AE2_ENERGY_CELL)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + INTERFACE.stack(), + "IPI", + "GEG", + "IPI", + 'I', + "ingotIron", + 'P', + "dyeBlue", + 'G', + "blockGlass", + 'E', + AE2_INTERFACE)); GameRegistry.addShapelessRecipe(FLUID_INTERFACE.stack(), INTERFACE.stack()); GameRegistry.addShapelessRecipe(INTERFACE.stack(), FLUID_INTERFACE.stack()); GameRegistry.addRecipe( @@ -127,209 +174,269 @@ public class RecipeLoader implements Runnable { AE2_WORK_BENCH)); GameRegistry.addShapelessRecipe(FLUID_STORAGE_BUS.stack(), FLUID_INTERFACE, STICKY_PISTON, PISTON); GameRegistry.addShapelessRecipe(FLUID_STORAGE_BUS.stack(), INTERFACE, STICKY_PISTON, PISTON); - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_STORAGE_MONITOR.stack(), - "EIP", - "P ", - 'I', - "itemIlluminatedPanel", - 'E', - FLUID_LEVEL_EMITTER, - 'P', - "dyeBlue")); - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_CONVERSION_MONITOR.stack(), - "ASF", - 'A', - AE2_CORE_ANN, - 'S', - FLUID_STORAGE_MONITOR, - 'F', - AE2_CORE_FOM)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_STORAGE_MONITOR.stack(), + "EIP", + "P ", + 'I', + "itemIlluminatedPanel", + 'E', + FLUID_LEVEL_EMITTER, + 'P', + "dyeBlue")); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_CONVERSION_MONITOR.stack(), + "ASF", + 'A', + AE2_CORE_ANN, + 'S', + FLUID_STORAGE_MONITOR, + 'F', + AE2_CORE_FOM)); GameRegistry.addShapelessRecipe(FLUID_TERMINAL.stack(), AE2_PATTERN_TERM, ENCODER); GameRegistry.addShapelessRecipe( - FLUID_TERMINAL_EX.stack(), FLUID_TERMINAL.stack(), AE2_PROCESS_CAL, AE2_PROCESS_ENG, AE2_PROCESS_LOG); - GameRegistry.addRecipe(new ShapedOreRecipe( - BUFFER.stack(), - "ILI", - "AGF", - "IBI", - 'I', - "ingotIron", - 'G', - AE2_QUARTZ_GLASS, - 'L', - AE2_CELL_1K, - 'A', - AE2_CORE_ANN, - 'F', - AE2_CORE_FOM, - 'B', - BUCKET)); + FLUID_TERMINAL_EX.stack(), + FLUID_TERMINAL.stack(), + AE2_PROCESS_CAL, + AE2_PROCESS_ENG, + AE2_PROCESS_LOG); + GameRegistry.addRecipe( + new ShapedOreRecipe( + BUFFER.stack(), + "ILI", + "AGF", + "IBI", + 'I', + "ingotIron", + 'G', + AE2_QUARTZ_GLASS, + 'L', + AE2_CELL_1K, + 'A', + AE2_CORE_ANN, + 'F', + AE2_CORE_FOM, + 'B', + BUCKET)); GameRegistry.addRecipe(new ShapedOreRecipe(WALRUS, "FFF", "F F", "FFF", 'F', fish)); - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_LEVEL_EMITTER.stack(), "RPD", 'R', redstone_torch, 'P', AE2_PROCESS_CAL, 'D', "dyeBlue")); - GameRegistry.addRecipe(new ShapedOreRecipe( - LARGE_BUFFER.stack(), - "BGB", - "GEG", - "BGB", - 'B', - BUFFER.stack(), - 'G', - AE2_QUARTZ_GLASS, - 'E', - AE2_PROCESS_ENG)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_LEVEL_EMITTER.stack(), + "RPD", + 'R', + redstone_torch, + 'P', + AE2_PROCESS_CAL, + 'D', + "dyeBlue")); + GameRegistry.addRecipe( + new ShapedOreRecipe( + LARGE_BUFFER.stack(), + "BGB", + "GEG", + "BGB", + 'B', + BUFFER.stack(), + 'G', + AE2_QUARTZ_GLASS, + 'E', + AE2_PROCESS_ENG)); GameRegistry.addShapelessRecipe(AE2_BLANK_PATTERN, PATTERN.stack()); GameRegistry.addShapelessRecipe(FLUID_TERM.stack(), AE2_TERMINAL, BUFFER); GameRegistry.addShapelessRecipe( FLUID_BUFFER.stack(), LARGE_BUFFER.stack(), - Config.fluidCells - ? CELL1K.getComponent() + Config.fluidCells ? CELL1K.getComponent() : ModAndClassUtil.EC2 ? ItemEnum.STORAGECOMPONENT.getDamagedStack(4) : null); - GameRegistry.addShapelessRecipe( - LEVEL_MAINTAINER.stack(), AE2_CRAFTING_CP_UNIT, ENCODER, AE2_PATTERN_CAPACITY_CARD); + GameRegistry + .addShapelessRecipe(LEVEL_MAINTAINER.stack(), AE2_CRAFTING_CP_UNIT, ENCODER, AE2_PATTERN_CAPACITY_CARD); if (Config.fluidCells) { OreDictionary.registerOre("anyCertusCrystal", AE2_PURE_CERTUS); for (ItemStack it : OreDictionary.getOres("crystalCertusQuartz")) OreDictionary.registerOre("anyCertusCrystal", it); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell1kPart.stack(1), - "DCD", - "CEC", - "DCD", - 'D', - "dyeBlue", - 'C', - "anyCertusCrystal", - 'E', - AE2_PROCESS_ENG)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell4kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeBlue", - 'C', - CellType.Cell1kPart.stack(1), - 'P', - AE2_PROCESS_CAL, - 'G', - AE2_QUARTZ_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell16kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeBlue", - 'C', - CellType.Cell4kPart.stack(1), - 'P', - AE2_PROCESS_LOG, - 'G', - AE2_QUARTZ_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell64kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeBlue", - 'C', - CellType.Cell16kPart.stack(1), - 'P', - AE2_PROCESS_ENG, - 'G', - AE2_QUARTZ_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell256kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeBlue", - 'C', - CellType.Cell64kPart.stack(1), - 'P', - AE2_PROCESS_CAL, - 'G', - AE2_LAMP_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell1024kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeBlue", - 'C', - CellType.Cell256kPart.stack(1), - 'P', - AE2_PROCESS_LOG, - 'G', - AE2_LAMP_GLASS)); - GameRegistry.addRecipe(new ShapedOreRecipe( - CellType.Cell4096kPart.stack(1), - "DPD", - "CGC", - "DCD", - 'D', - "dyeBlue", - 'C', - CellType.Cell1024kPart.stack(1), - 'P', - AE2_PROCESS_ENG, - 'G', - AE2_LAMP_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell1kPart.stack(1), + "DCD", + "CEC", + "DCD", + 'D', + "dyeRed", + 'C', + "anyCertusCrystal", + 'E', + AE2_PROCESS_ENG)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell4kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell1kPart.stack(1), + 'P', + AE2_PROCESS_CAL, + 'G', + AE2_QUARTZ_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell16kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell4kPart.stack(1), + 'P', + AE2_PROCESS_LOG, + 'G', + AE2_QUARTZ_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell64kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell16kPart.stack(1), + 'P', + AE2_PROCESS_ENG, + 'G', + AE2_QUARTZ_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell256kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell64kPart.stack(1), + 'P', + AE2_PROCESS_CAL, + 'G', + AE2_LAMP_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell1024kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell256kPart.stack(1), + 'P', + AE2_PROCESS_LOG, + 'G', + AE2_LAMP_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell4096kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell1024kPart.stack(1), + 'P', + AE2_PROCESS_CAL, + 'G', + AE2_LAMP_GLASS)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + CellType.Cell16384kPart.stack(1), + "DPD", + "CGC", + "DCD", + 'D', + "dyeRed", + 'C', + CellType.Cell4096kPart.stack(1), + 'P', + AE2_PROCESS_ENG, + 'G', + AE2_LAMP_GLASS)); - ItemBasicFluidStorageCell[] cells = - new ItemBasicFluidStorageCell[] {CELL1K, CELL4K, CELL16K, CELL64K, CELL256K, CELL1024K, CELL4096K}; + ItemBasicFluidStorageCell[] cells = new ItemBasicFluidStorageCell[] { CELL1K, CELL4K, CELL16K, CELL64K, + CELL256K, CELL1024K, CELL4096K, CELL16384K }; for (ItemBasicFluidStorageCell cell : cells) { - GameRegistry.addRecipe(new ShapedOreRecipe( - cell, - "GDG", - "DCD", - "III", - 'D', - "dustRedstone", - 'G', - AE2_QUARTZ_GLASS, - 'C', - cell.getComponent(), - 'I', - "ingotIron")); + GameRegistry.addRecipe( + new ShapedOreRecipe( + cell, + "GDG", + "DCD", + "III", + 'D', + "dustRedstone", + 'G', + AE2_QUARTZ_GLASS, + 'C', + cell.getComponent(), + 'I', + "ingotIron")); GameRegistry.addRecipe(new ShapelessOreRecipe(cell, AE2_CELL_HOUSING, cell.getComponent())); } } if (Config.fluidIOBus) { - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_EXPORT_BUS, "ICI", "BPB", 'B', "dyeBlue", 'I', "ingotIron", 'P', PISTON, 'C', AE2_CORE_FOM)); - GameRegistry.addRecipe(new ShapedOreRecipe( - FLUID_IMPORT_BUS, "BCB", "IPI", 'B', "dyeBlue", 'I', "ingotIron", 'P', PISTON, 'C', AE2_CORE_ANN)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_EXPORT_BUS, + "ICI", + "BPB", + 'B', + "dyeBlue", + 'I', + "ingotIron", + 'P', + PISTON, + 'C', + AE2_CORE_FOM)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + FLUID_IMPORT_BUS, + "BCB", + "IPI", + 'B', + "dyeBlue", + 'I', + "ingotIron", + 'P', + PISTON, + 'C', + AE2_CORE_ANN)); } if (ModAndClassUtil.OC) { ItemStack CHIP_T1 = new ItemStack(GameRegistry.findItem("OpenComputers", "item"), 1, 24); - GameRegistry.addRecipe(new ShapedOreRecipe( - OC_EDITOR, - "IMI", - "CBC", - "IPI", - 'I', - IRON_BAR, - 'M', - CHIP_T1, - 'C', - "oc:cable", - 'B', - BUCKET, - 'P', - AE2_BLANK_PATTERN)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + OC_EDITOR, + "IMI", + "CBC", + "IPI", + 'I', + IRON_BAR, + 'M', + CHIP_T1, + 'C', + "oc:cable", + 'B', + BUCKET, + 'P', + AE2_BLANK_PATTERN)); } } } diff --git a/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java b/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java index 5ea3fab6..b3d8662e 100644 --- a/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java +++ b/src/main/java/com/glodblock/github/nei/FluidPatternTerminalRecipeTransferHandler.java @@ -1,21 +1,23 @@ package com.glodblock.github.nei; +import java.util.HashSet; +import java.util.List; + +import net.minecraft.client.gui.inventory.GuiContainer; + import codechicken.nei.api.IOverlayHandler; import codechicken.nei.recipe.IRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.base.FCGuiEncodeTerminal; import com.glodblock.github.nei.object.OrderStack; import com.glodblock.github.nei.recipes.FluidRecipe; import com.glodblock.github.network.CPacketTransferRecipe; -import java.util.HashSet; -import java.util.List; -import net.minecraft.client.gui.inventory.GuiContainer; public class FluidPatternTerminalRecipeTransferHandler implements IOverlayHandler { - public static final FluidPatternTerminalRecipeTransferHandler INSTANCE = - new FluidPatternTerminalRecipeTransferHandler(); + public static final FluidPatternTerminalRecipeTransferHandler INSTANCE = new FluidPatternTerminalRecipeTransferHandler(); public static final HashSet notOtherSet = new HashSet<>(); public static final HashSet craftSet = new HashSet<>(); diff --git a/src/main/java/com/glodblock/github/nei/NEIGuiHandler.java b/src/main/java/com/glodblock/github/nei/NEIGuiHandler.java index 605ad1c6..c4ce6a83 100644 --- a/src/main/java/com/glodblock/github/nei/NEIGuiHandler.java +++ b/src/main/java/com/glodblock/github/nei/NEIGuiHandler.java @@ -1,9 +1,11 @@ package com.glodblock.github.nei; +import net.minecraft.client.gui.inventory.GuiContainer; + import codechicken.nei.api.INEIGuiAdapter; + import com.glodblock.github.client.gui.GuiFluidMonitor; import com.glodblock.github.client.gui.GuiItemMonitor; -import net.minecraft.client.gui.inventory.GuiContainer; public class NEIGuiHandler extends INEIGuiAdapter { diff --git a/src/main/java/com/glodblock/github/nei/NEIUtils.java b/src/main/java/com/glodblock/github/nei/NEIUtils.java index 52fe0db0..5044e451 100644 --- a/src/main/java/com/glodblock/github/nei/NEIUtils.java +++ b/src/main/java/com/glodblock/github/nei/NEIUtils.java @@ -1,14 +1,16 @@ package com.glodblock.github.nei; -import com.glodblock.github.nei.object.OrderStack; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.nei.object.OrderStack; + public class NEIUtils { public static List> compress(List> list) { diff --git a/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java b/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java index eec4eb04..0f9c0358 100644 --- a/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java +++ b/src/main/java/com/glodblock/github/nei/NEI_FC_Config.java @@ -2,6 +2,7 @@ package com.glodblock.github.nei; import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.GuiFluidPatternTerminal; import com.glodblock.github.client.gui.GuiFluidPatternTerminalEx; @@ -15,9 +16,13 @@ public class NEI_FC_Config implements IConfigureNEI { for (String identifier : FluidRecipe.getSupportRecipes()) { API.registerGuiOverlayHandler( - GuiFluidPatternTerminal.class, FluidPatternTerminalRecipeTransferHandler.INSTANCE, identifier); + GuiFluidPatternTerminal.class, + FluidPatternTerminalRecipeTransferHandler.INSTANCE, + identifier); API.registerGuiOverlayHandler( - GuiFluidPatternTerminalEx.class, FluidPatternTerminalRecipeTransferHandler.INSTANCE, identifier); + GuiFluidPatternTerminalEx.class, + FluidPatternTerminalRecipeTransferHandler.INSTANCE, + identifier); } } diff --git a/src/main/java/com/glodblock/github/nei/object/IRecipeExtractor.java b/src/main/java/com/glodblock/github/nei/object/IRecipeExtractor.java index 1ab41795..b6be1d31 100644 --- a/src/main/java/com/glodblock/github/nei/object/IRecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/object/IRecipeExtractor.java @@ -1,8 +1,9 @@ package com.glodblock.github.nei.object; +import java.util.List; + import codechicken.nei.PositionedStack; import codechicken.nei.recipe.IRecipeHandler; -import java.util.List; public interface IRecipeExtractor { @@ -14,8 +15,8 @@ public interface IRecipeExtractor { return getInputIngredients(rawInputs); } - default List> getOutputIngredients( - List rawOutputs, IRecipeHandler recipe, int index) { + default List> getOutputIngredients(List rawOutputs, IRecipeHandler recipe, + int index) { return getOutputIngredients(rawOutputs); } } diff --git a/src/main/java/com/glodblock/github/nei/object/OrderStack.java b/src/main/java/com/glodblock/github/nei/object/OrderStack.java index 877b359d..c887a90d 100644 --- a/src/main/java/com/glodblock/github/nei/object/OrderStack.java +++ b/src/main/java/com/glodblock/github/nei/object/OrderStack.java @@ -1,14 +1,17 @@ package com.glodblock.github.nei.object; -import codechicken.nei.PositionedStack; -import com.glodblock.github.util.Util; import javax.annotation.Nullable; + import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.util.Util; + public class OrderStack { private final T RealStack; diff --git a/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java b/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java index 20c1d246..7f7e0ea3 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java +++ b/src/main/java/com/glodblock/github/nei/recipes/DefaultExtractorLoader.java @@ -2,6 +2,7 @@ package com.glodblock.github.nei.recipes; import com.glodblock.github.nei.recipes.extractor.*; import com.glodblock.github.util.ModAndClassUtil; + import forestry.factory.recipes.nei.*; import gregapi.recipes.Recipe; import gregtech.api.util.GTPP_Recipe; @@ -20,8 +21,9 @@ public class DefaultExtractorLoader implements Runnable { for (GT_Recipe.GT_Recipe_Map tMap : GT_Recipe.GT_Recipe_Map.sMappings) { FluidRecipe.addRecipeMap( tMap.mNEIName, - new GregTech5RecipeExtractor(tMap.mNEIName.equals("gt.recipe.scanner") - || tMap.mNEIName.equals("gt.recipe.fakeAssemblylineProcess"))); + new GregTech5RecipeExtractor( + tMap.mNEIName.equals("gt.recipe.scanner") + || tMap.mNEIName.equals("gt.recipe.fakeAssemblylineProcess"))); } } diff --git a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java index 76f6608a..e5c62371 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java +++ b/src/main/java/com/glodblock/github/nei/recipes/FluidRecipe.java @@ -1,18 +1,21 @@ package com.glodblock.github.nei.recipes; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.IRecipeHandler; -import codechicken.nei.recipe.TemplateRecipeHandler; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.IRecipeExtractorLegacy; -import com.glodblock.github.nei.object.OrderStack; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.IRecipeHandler; +import codechicken.nei.recipe.TemplateRecipeHandler; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.IRecipeExtractorLegacy; +import com.glodblock.github.nei.object.OrderStack; + public final class FluidRecipe { private static final HashMap IdentifierMap = new HashMap<>(); diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/EnderIORecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/EnderIORecipeExtractor.java index 98321be5..e25446da 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/EnderIORecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/EnderIORecipeExtractor.java @@ -1,19 +1,23 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.IRecipeHandler; -import codechicken.nei.recipe.TemplateRecipeHandler; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; -import com.glodblock.github.util.Ae2Reflect; -import crazypants.enderio.machine.crusher.CrusherRecipeManager; -import crazypants.enderio.nei.VatRecipeHandler; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; + import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.IRecipeHandler; +import codechicken.nei.recipe.TemplateRecipeHandler; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; +import com.glodblock.github.util.Ae2Reflect; + +import crazypants.enderio.machine.crusher.CrusherRecipeManager; +import crazypants.enderio.nei.VatRecipeHandler; + public class EnderIORecipeExtractor implements IRecipeExtractor { public EnderIORecipeExtractor() {} @@ -56,8 +60,8 @@ public class EnderIORecipeExtractor implements IRecipeExtractor { } @Override - public List> getOutputIngredients( - List rawOutputs, IRecipeHandler recipe, int index) { + public List> getOutputIngredients(List rawOutputs, IRecipeHandler recipe, + int index) { TemplateRecipeHandler tRecipe = (TemplateRecipeHandler) recipe; List> tmp = new LinkedList<>(); if (tRecipe.arecipes.get(index) instanceof VatRecipeHandler.InnerVatRecipe) { diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/ExtractorUtil.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/ExtractorUtil.java index 3e4fed69..775dc866 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/ExtractorUtil.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/ExtractorUtil.java @@ -1,36 +1,32 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import com.glodblock.github.nei.object.OrderStack; import java.util.List; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.stream.Collectors; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.nei.object.OrderStack; + public final class ExtractorUtil { public static List> packItemStack(List items) { AtomicInteger index = new AtomicInteger(-1); - return items.stream() - .map(item -> { - index.getAndIncrement(); - return OrderStack.pack(item, index.get()); - }) - .filter(Objects::nonNull) - .collect(Collectors.toList()); + return items.stream().map(item -> { + index.getAndIncrement(); + return OrderStack.pack(item, index.get()); + }).filter(Objects::nonNull).collect(Collectors.toList()); } - public static List> packItemStack( - List items, Function transformer) { + public static List> packItemStack(List items, + Function transformer) { AtomicInteger index = new AtomicInteger(-1); - return items.stream() - .map(item -> { - index.getAndIncrement(); - Object o = transformer.apply(item); - return o != null ? new OrderStack<>(o, index.get()) : null; - }) - .filter(Objects::nonNull) - .collect(Collectors.toList()); + return items.stream().map(item -> { + index.getAndIncrement(); + Object o = transformer.apply(item); + return o != null ? new OrderStack<>(o, index.get()) : null; + }).filter(Objects::nonNull).collect(Collectors.toList()); } } diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/ForestryRecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/ForestryRecipeExtractor.java index 311eef33..39754df8 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/ForestryRecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/ForestryRecipeExtractor.java @@ -1,17 +1,21 @@ package com.glodblock.github.nei.recipes.extractor; +import java.util.ArrayList; +import java.util.List; + +import net.minecraftforge.fluids.FluidStack; + import codechicken.nei.PositionedStack; import codechicken.nei.recipe.IRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler; + import com.glodblock.github.nei.object.IRecipeExtractorLegacy; import com.glodblock.github.nei.object.OrderStack; + import forestry.core.recipes.nei.PositionedFluidTank; import forestry.core.recipes.nei.RecipeHandlerBase; import forestry.factory.recipes.nei.NEIHandlerFabricator; import forestry.factory.recipes.nei.NEIHandlerSqueezer; -import java.util.ArrayList; -import java.util.List; -import net.minecraftforge.fluids.FluidStack; public class ForestryRecipeExtractor implements IRecipeExtractorLegacy { @@ -42,8 +46,8 @@ public class ForestryRecipeExtractor implements IRecipeExtractorLegacy { List> tmp = new ArrayList<>(); if (tRecipe.arecipes.get(index) instanceof RecipeHandlerBase.CachedBaseRecipe) { tmp = getInputIngredients(rawInputs); - List tanks = - ((RecipeHandlerBase.CachedBaseRecipe) tRecipe.arecipes.get(index)).getFluidTanks(); + List tanks = ((RecipeHandlerBase.CachedBaseRecipe) tRecipe.arecipes.get(index)) + .getFluidTanks(); if (tanks.size() > 0 && !(handler instanceof NEIHandlerSqueezer)) { FluidStack fluid = tanks.get(0).tank.getFluid(); if (fluid != null) { @@ -55,15 +59,15 @@ public class ForestryRecipeExtractor implements IRecipeExtractorLegacy { } @Override - public List> getOutputIngredients( - List rawOutputs, IRecipeHandler recipe, int index) { + public List> getOutputIngredients(List rawOutputs, IRecipeHandler recipe, + int index) { TemplateRecipeHandler tRecipe = (TemplateRecipeHandler) recipe; removeGlass(rawOutputs); List> tmp = new ArrayList<>(); if (tRecipe.arecipes.get(index) instanceof RecipeHandlerBase.CachedBaseRecipe) { tmp = getOutputIngredients(rawOutputs); - List tanks = - ((RecipeHandlerBase.CachedBaseRecipe) tRecipe.arecipes.get(index)).getFluidTanks(); + List tanks = ((RecipeHandlerBase.CachedBaseRecipe) tRecipe.arecipes.get(index)) + .getFluidTanks(); if (tanks.size() > 0 && handler instanceof NEIHandlerSqueezer) { FluidStack fluid = tanks.get(0).tank.getFluid(); if (fluid != null) { diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech5RecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech5RecipeExtractor.java index cefbc501..37437ecf 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech5RecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech5RecipeExtractor.java @@ -1,16 +1,20 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; -import gregtech.api.enums.ItemList; -import gregtech.common.items.GT_FluidDisplayItem; import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; + +import gregtech.api.enums.ItemList; +import gregtech.common.items.GT_FluidDisplayItem; + public class GregTech5RecipeExtractor implements IRecipeExtractor { boolean removeSpecial; @@ -33,9 +37,8 @@ public class GregTech5RecipeExtractor implements IRecipeExtractor { private void removeSpecial(List list) { for (int i = list.size() - 1; i >= 0; i--) { PositionedStack positionedStack = list.get(i); - if (positionedStack != null - && (positionedStack.items[0].isItemEqual(ItemList.Tool_DataStick.get(1)) - || positionedStack.items[0].isItemEqual(ItemList.Tool_DataOrb.get(1)))) { + if (positionedStack != null && (positionedStack.items[0].isItemEqual(ItemList.Tool_DataStick.get(1)) + || positionedStack.items[0].isItemEqual(ItemList.Tool_DataOrb.get(1)))) { list.remove(i); break; } diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech6RecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech6RecipeExtractor.java index fe5c22d3..e3d63ce5 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech6RecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/GregTech6RecipeExtractor.java @@ -1,14 +1,18 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; -import gregapi.item.ItemFluidDisplay; -import gregapi.recipes.Recipe; import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; + +import gregapi.item.ItemFluidDisplay; +import gregapi.recipes.Recipe; + public class GregTech6RecipeExtractor implements IRecipeExtractor { private final Recipe.RecipeMap Recipes; diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/IndustrialCraftRecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/IndustrialCraftRecipeExtractor.java index 6a57bce5..add87431 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/IndustrialCraftRecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/IndustrialCraftRecipeExtractor.java @@ -1,21 +1,25 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.IRecipeHandler; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; -import com.glodblock.github.util.Ae2Reflect; -import ic2.neiIntegration.core.recipehandler.FluidCannerRecipeHandler; -import ic2.neiIntegration.core.recipehandler.OreWashingRecipeHandler; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; + import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.IRecipeHandler; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; +import com.glodblock.github.util.Ae2Reflect; + +import ic2.neiIntegration.core.recipehandler.FluidCannerRecipeHandler; +import ic2.neiIntegration.core.recipehandler.OreWashingRecipeHandler; + public class IndustrialCraftRecipeExtractor implements IRecipeExtractor { @Override @@ -33,9 +37,8 @@ public class IndustrialCraftRecipeExtractor implements IRecipeExtractor { List> stacks = new LinkedList<>(); if (recipe instanceof FluidCannerRecipeHandler) { - FluidCannerRecipeHandler.CachedFluidCannerRecipe cachedRecipe = - (FluidCannerRecipeHandler.CachedFluidCannerRecipe) - ((FluidCannerRecipeHandler) recipe).arecipes.get(index); + FluidCannerRecipeHandler.CachedFluidCannerRecipe cachedRecipe = (FluidCannerRecipeHandler.CachedFluidCannerRecipe) ((FluidCannerRecipeHandler) recipe).arecipes + .get(index); FluidStack input = ReflectIC2.getInputFluid(cachedRecipe); PositionedStack add = rawInputs.size() > 1 ? rawInputs.get(1) : null; stacks.add(OrderStack.pack(add, 0)); @@ -52,14 +55,13 @@ public class IndustrialCraftRecipeExtractor implements IRecipeExtractor { } @Override - public List> getOutputIngredients( - List rawOutputs, IRecipeHandler recipe, int index) { + public List> getOutputIngredients(List rawOutputs, IRecipeHandler recipe, + int index) { List> stacks = new LinkedList<>(); if (recipe instanceof FluidCannerRecipeHandler) { - FluidCannerRecipeHandler.CachedFluidCannerRecipe cachedRecipe = - (FluidCannerRecipeHandler.CachedFluidCannerRecipe) - ((FluidCannerRecipeHandler) recipe).arecipes.get(index); + FluidCannerRecipeHandler.CachedFluidCannerRecipe cachedRecipe = (FluidCannerRecipeHandler.CachedFluidCannerRecipe) ((FluidCannerRecipeHandler) recipe).arecipes + .get(index); FluidStack output = ReflectIC2.getOutputFluid(cachedRecipe); stacks.add(new OrderStack<>(output, 0)); } else { @@ -79,8 +81,8 @@ public class IndustrialCraftRecipeExtractor implements IRecipeExtractor { static { try { inputsF = Ae2Reflect.reflectField(FluidCannerRecipeHandler.CachedFluidCannerRecipe.class, "fluidInput"); - resultF = - Ae2Reflect.reflectField(FluidCannerRecipeHandler.CachedFluidCannerRecipe.class, "fluidOutput"); + resultF = Ae2Reflect + .reflectField(FluidCannerRecipeHandler.CachedFluidCannerRecipe.class, "fluidOutput"); oreWasherWater = Ae2Reflect.reflectMethod(OreWashingRecipeHandler.class, "getreqWater", int.class); } catch (NoSuchFieldException | NoSuchMethodException e) { throw new IllegalStateException("Failed to initialize IC2 reflection hacks!", e); diff --git a/src/main/java/com/glodblock/github/nei/recipes/extractor/VanillaRecipeExtractor.java b/src/main/java/com/glodblock/github/nei/recipes/extractor/VanillaRecipeExtractor.java index 08a85c14..0847bcc6 100644 --- a/src/main/java/com/glodblock/github/nei/recipes/extractor/VanillaRecipeExtractor.java +++ b/src/main/java/com/glodblock/github/nei/recipes/extractor/VanillaRecipeExtractor.java @@ -1,11 +1,13 @@ package com.glodblock.github.nei.recipes.extractor; -import codechicken.nei.PositionedStack; -import com.glodblock.github.nei.object.IRecipeExtractor; -import com.glodblock.github.nei.object.OrderStack; import java.util.LinkedList; import java.util.List; +import codechicken.nei.PositionedStack; + +import com.glodblock.github.nei.object.IRecipeExtractor; +import com.glodblock.github.nei.object.OrderStack; + public class VanillaRecipeExtractor implements IRecipeExtractor { private final boolean c; diff --git a/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java b/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java index c7a98720..e644dac1 100644 --- a/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java +++ b/src/main/java/com/glodblock/github/network/CPacketCraftRequest.java @@ -1,5 +1,14 @@ package com.glodblock.github.network; +import java.util.Objects; +import java.util.concurrent.Future; + +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; @@ -8,20 +17,16 @@ import appeng.api.networking.crafting.ICraftingJob; import appeng.container.ContainerOpenContext; import appeng.container.implementations.ContainerCraftAmount; import appeng.core.AELog; + import com.glodblock.github.client.gui.container.ContainerFluidCraftConfirm; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.util.Objects; -import java.util.concurrent.Future; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; public class CPacketCraftRequest implements IMessage { @@ -54,8 +59,8 @@ public class CPacketCraftRequest implements IMessage { public IMessage onMessage(CPacketCraftRequest message, MessageContext ctx) { if (ctx.getServerHandler().playerEntity.openContainer instanceof ContainerCraftAmount) { EntityPlayerMP player = ctx.getServerHandler().playerEntity; - final ContainerCraftAmount cca = - (ContainerCraftAmount) ctx.getServerHandler().playerEntity.openContainer; + final ContainerCraftAmount cca = (ContainerCraftAmount) ctx + .getServerHandler().playerEntity.openContainer; final Object target = cca.getTarget(); if (target instanceof IGridHost) { final IGridHost gh = (IGridHost) target; @@ -76,7 +81,11 @@ public class CPacketCraftRequest implements IMessage { try { final ICraftingGrid cg = g.getCache(ICraftingGrid.class); futureJob = cg.beginCraftingJob( - cca.getWorld(), cca.getGrid(), cca.getActionSrc(), cca.getItemToCraft(), null); + cca.getWorld(), + cca.getGrid(), + cca.getActionSrc(), + cca.getItemToCraft(), + null); final ContainerOpenContext context = cca.getOpenContext(); if (context != null) { @@ -90,8 +99,7 @@ public class CPacketCraftRequest implements IMessage { GuiType.FLUID_CRAFTING_CONFIRM); if (player.openContainer instanceof ContainerFluidCraftConfirm) { - final ContainerFluidCraftConfirm ccc = - (ContainerFluidCraftConfirm) player.openContainer; + final ContainerFluidCraftConfirm ccc = (ContainerFluidCraftConfirm) player.openContainer; ccc.setAutoStart(message.heldShift); ccc.setJob(futureJob); cca.detectAndSendChanges(); diff --git a/src/main/java/com/glodblock/github/network/CPacketDumpTank.java b/src/main/java/com/glodblock/github/network/CPacketDumpTank.java index 71ca0e94..f7a8e507 100644 --- a/src/main/java/com/glodblock/github/network/CPacketDumpTank.java +++ b/src/main/java/com/glodblock/github/network/CPacketDumpTank.java @@ -1,12 +1,15 @@ package com.glodblock.github.network; +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; + import com.glodblock.github.client.gui.ITankDump; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; public class CPacketDumpTank implements IMessage { diff --git a/src/main/java/com/glodblock/github/network/CPacketEncodePattern.java b/src/main/java/com/glodblock/github/network/CPacketEncodePattern.java index 3cd62fe3..8d0882c5 100644 --- a/src/main/java/com/glodblock/github/network/CPacketEncodePattern.java +++ b/src/main/java/com/glodblock/github/network/CPacketEncodePattern.java @@ -1,12 +1,15 @@ package com.glodblock.github.network; +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; + import com.glodblock.github.client.gui.container.ContainerFluidPatternEncoder; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; public class CPacketEncodePattern implements IMessage { diff --git a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java index f78bc299..7097f7d1 100644 --- a/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java +++ b/src/main/java/com/glodblock/github/network/CPacketFluidPatternTermBtns.java @@ -1,13 +1,15 @@ package com.glodblock.github.network; +import net.minecraft.inventory.Container; + import com.glodblock.github.client.gui.container.ContainerFluidCraftConfirm; import com.glodblock.github.client.gui.container.ContainerFluidStorageBus; import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import net.minecraft.inventory.Container; public class CPacketFluidPatternTermBtns implements IMessage { diff --git a/src/main/java/com/glodblock/github/network/CPacketFluidUpdate.java b/src/main/java/com/glodblock/github/network/CPacketFluidUpdate.java index 5602d58d..b421d7fd 100644 --- a/src/main/java/com/glodblock/github/network/CPacketFluidUpdate.java +++ b/src/main/java/com/glodblock/github/network/CPacketFluidUpdate.java @@ -1,21 +1,25 @@ package com.glodblock.github.network; -import appeng.api.storage.data.IAEFluidStack; -import appeng.util.item.AEItemStack; -import com.glodblock.github.client.gui.container.ContainerFluidMonitor; -import com.glodblock.github.util.Util; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; +import appeng.api.storage.data.IAEFluidStack; +import appeng.util.item.AEItemStack; + +import com.glodblock.github.client.gui.container.ContainerFluidMonitor; +import com.glodblock.github.util.Util; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; + public class CPacketFluidUpdate implements IMessage { private Map list; @@ -78,12 +82,11 @@ public class CPacketFluidUpdate implements IMessage { EntityPlayer player = ctx.getServerHandler().playerEntity; if (container instanceof ContainerFluidMonitor) { ItemStack item = player.inventory.getItemStack(); - ((ContainerFluidMonitor) container) - .postChange( - new ArrayList<>(message.list.values()), - message.itemStack == null ? item : message.itemStack, - player, - message.slotIndex); + ((ContainerFluidMonitor) container).postChange( + new ArrayList<>(message.list.values()), + message.itemStack == null ? item : message.itemStack, + player, + message.slotIndex); } return null; } diff --git a/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java b/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java index 449db017..4bfc95d6 100644 --- a/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java +++ b/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java @@ -1,27 +1,32 @@ package com.glodblock.github.network; +import java.io.IOException; +import java.util.Objects; + +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.storage.data.IAEItemStack; import appeng.container.AEBaseContainer; import appeng.container.ContainerOpenContext; import appeng.container.implementations.ContainerCraftAmount; import appeng.helpers.InventoryAction; import appeng.util.item.AEItemStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerPatternValueAmount; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.Objects; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.fluids.FluidStack; public class CPacketInventoryAction implements IMessage { @@ -95,14 +100,12 @@ public class CPacketInventoryAction implements IMessage { sender, te.getWorldObj(), new BlockPos(te), - Objects.requireNonNull( - baseContainer.getOpenContext().getSide()), + Objects.requireNonNull(baseContainer.getOpenContext().getSide()), GuiType.FLUID_CRAFTING_AMOUNT); if (sender.openContainer instanceof ContainerCraftAmount) { final ContainerCraftAmount cca = (ContainerCraftAmount) sender.openContainer; if (baseContainer.getTargetStack() != null) { - cca.getCraftingItem() - .putStack(baseContainer.getTargetStack().getItemStack()); + cca.getCraftingItem().putStack(baseContainer.getTargetStack().getItemStack()); cca.setItemToCraft(baseContainer.getTargetStack()); } cca.detectAndSendChanges(); @@ -116,8 +119,7 @@ public class CPacketInventoryAction implements IMessage { sender, te.getWorldObj(), new BlockPos(te), - Objects.requireNonNull( - baseContainer.getOpenContext().getSide()), + Objects.requireNonNull(baseContainer.getOpenContext().getSide()), GuiType.PATTERN_VALUE_SET); int amt = (int) message.stack.getStackSize(); if (message.stack.getItem() instanceof ItemFluidPacket) { @@ -129,8 +131,7 @@ public class CPacketInventoryAction implements IMessage { final ContainerPatternValueAmount cpv = (ContainerPatternValueAmount) sender.openContainer; if (baseContainer.getTargetStack() != null) { cpv.setValueIndex(message.slot); - cpv.getPatternValue() - .putStack(baseContainer.getTargetStack().getItemStack()); + cpv.getPatternValue().putStack(baseContainer.getTargetStack().getItemStack()); } cpv.detectAndSendChanges(); } diff --git a/src/main/java/com/glodblock/github/network/CPacketLevelMaintainer.java b/src/main/java/com/glodblock/github/network/CPacketLevelMaintainer.java index 927af1e6..e33b4a35 100644 --- a/src/main/java/com/glodblock/github/network/CPacketLevelMaintainer.java +++ b/src/main/java/com/glodblock/github/network/CPacketLevelMaintainer.java @@ -1,18 +1,22 @@ package com.glodblock.github.network; +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + import appeng.api.storage.data.IAEItemStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerLevelMaintainer; import com.glodblock.github.common.tile.TileLevelMaintainer; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class CPacketLevelMaintainer implements IMessage { @@ -82,6 +86,7 @@ public class CPacketLevelMaintainer implements IMessage { } public static class Handler implements IMessageHandler { + private void refresh(ContainerLevelMaintainer cca, EntityPlayerMP player) { SPacketMEInventoryUpdate piu = new SPacketMEInventoryUpdate(false); for (int i = 0; i < TileLevelMaintainer.REQ_COUNT; i++) { @@ -91,12 +96,13 @@ public class CPacketLevelMaintainer implements IMessage { if (is1 != null) { NBTTagCompound data; data = is1.getItemStack().getTagCompound(); - piu.appendItem(setTag( - is, - is1.getStackSize(), - i, - data.getBoolean("Enable"), - cca.getTile().requests.getState(i).ordinal())); + piu.appendItem( + setTag( + is, + is1.getStackSize(), + i, + data.getBoolean("Enable"), + cca.getTile().requests.getState(i).ordinal())); } else { piu.appendItem(setTag(is, 0, i, true, 0)); } @@ -111,8 +117,8 @@ public class CPacketLevelMaintainer implements IMessage { if (message.action.startsWith("TileLevelMaintainer.") && ctx.getServerHandler().playerEntity.openContainer instanceof ContainerLevelMaintainer) { EntityPlayerMP player = ctx.getServerHandler().playerEntity; - final ContainerLevelMaintainer cca = - (ContainerLevelMaintainer) ctx.getServerHandler().playerEntity.openContainer; + final ContainerLevelMaintainer cca = (ContainerLevelMaintainer) ctx + .getServerHandler().playerEntity.openContainer; switch (message.action) { case "TileLevelMaintainer.Quantity": cca.getTile().updateQuantity(message.slotIndex, message.size); diff --git a/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java b/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java index 307490ea..72980542 100644 --- a/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java +++ b/src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java @@ -1,8 +1,17 @@ package com.glodblock.github.network; +import java.util.Objects; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.fluids.FluidStack; + import appeng.api.networking.IGridHost; import appeng.container.ContainerOpenContext; import appeng.container.slot.SlotFake; + import com.glodblock.github.client.gui.container.ContainerPatternValueAmount; import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; import com.glodblock.github.common.item.ItemFluidPacket; @@ -10,16 +19,11 @@ import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.util.Objects; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.fluids.FluidStack; public class CPacketPatternValueSet implements IMessage { @@ -76,8 +80,7 @@ public class CPacketPatternValueSet implements IMessage { if (Util.isFluidPacket(stack)) { FluidStack fluidStack = ItemFluidPacket.getFluidStack(stack); if (fluidStack != null) { - fluidStack = ItemFluidPacket.getFluidStack(stack) - .copy(); + fluidStack = ItemFluidPacket.getFluidStack(stack).copy(); fluidStack.amount = message.amount; } slot.putStack(ItemFluidPacket.newStack(fluidStack)); diff --git a/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java b/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java index c152ed21..ed9bd861 100644 --- a/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java +++ b/src/main/java/com/glodblock/github/network/CPacketSwitchGuis.java @@ -1,19 +1,24 @@ package com.glodblock.github.network; +import java.util.Objects; + +import javax.annotation.Nullable; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.inventory.Container; +import net.minecraft.tileentity.TileEntity; + import appeng.container.AEBaseContainer; import appeng.container.ContainerOpenContext; + import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.util.BlockPos; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.util.Objects; -import javax.annotation.Nullable; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.inventory.Container; -import net.minecraft.tileentity.TileEntity; public class CPacketSwitchGuis implements IMessage { @@ -38,6 +43,7 @@ public class CPacketSwitchGuis implements IMessage { } public static class Handler implements IMessageHandler { + @Nullable @Override public IMessage onMessage(CPacketSwitchGuis message, MessageContext ctx) { diff --git a/src/main/java/com/glodblock/github/network/CPacketTransferRecipe.java b/src/main/java/com/glodblock/github/network/CPacketTransferRecipe.java index 235bcb02..4be86049 100644 --- a/src/main/java/com/glodblock/github/network/CPacketTransferRecipe.java +++ b/src/main/java/com/glodblock/github/network/CPacketTransferRecipe.java @@ -1,23 +1,27 @@ package com.glodblock.github.network; -import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; -import com.glodblock.github.common.item.ItemFluidPacket; -import com.glodblock.github.nei.NEIUtils; -import com.glodblock.github.nei.object.OrderStack; -import cpw.mods.fml.common.network.ByteBufUtils; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; import java.util.LinkedList; import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.client.gui.container.base.FCContainerEncodeTerminal; +import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.nei.NEIUtils; +import com.glodblock.github.nei.object.OrderStack; + +import cpw.mods.fml.common.network.ByteBufUtils; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; + public class CPacketTransferRecipe implements IMessage { private List> inputs; diff --git a/src/main/java/com/glodblock/github/network/CPacketValueConfig.java b/src/main/java/com/glodblock/github/network/CPacketValueConfig.java index a58beef1..26cf6a19 100644 --- a/src/main/java/com/glodblock/github/network/CPacketValueConfig.java +++ b/src/main/java/com/glodblock/github/network/CPacketValueConfig.java @@ -1,14 +1,17 @@ package com.glodblock.github.network; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; + import com.glodblock.github.client.gui.container.ContainerFluidLevelEmitter; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; public class CPacketValueConfig implements IMessage { + private long amount; private int valueIndex; diff --git a/src/main/java/com/glodblock/github/network/SPacketFluidUpdate.java b/src/main/java/com/glodblock/github/network/SPacketFluidUpdate.java index 457e5639..831dce1f 100644 --- a/src/main/java/com/glodblock/github/network/SPacketFluidUpdate.java +++ b/src/main/java/com/glodblock/github/network/SPacketFluidUpdate.java @@ -1,20 +1,24 @@ package com.glodblock.github.network; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.item.ItemStack; + import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.gui.*; import com.glodblock.github.util.Util; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.item.ItemStack; public class SPacketFluidUpdate implements IMessage { diff --git a/src/main/java/com/glodblock/github/network/SPacketMEInventoryUpdate.java b/src/main/java/com/glodblock/github/network/SPacketMEInventoryUpdate.java index e8d35f4c..8750931a 100644 --- a/src/main/java/com/glodblock/github/network/SPacketMEInventoryUpdate.java +++ b/src/main/java/com/glodblock/github/network/SPacketMEInventoryUpdate.java @@ -1,23 +1,27 @@ package com.glodblock.github.network; +import java.io.IOException; +import java.nio.BufferOverflowException; +import java.util.LinkedList; +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; + import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.util.item.AEFluidStack; import appeng.util.item.AEItemStack; + import com.glodblock.github.client.gui.GuiFluidCraftConfirm; import com.glodblock.github.client.gui.GuiFluidMonitor; import com.glodblock.github.client.gui.GuiItemMonitor; import com.glodblock.github.client.gui.GuiLevelMaintainer; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.nio.BufferOverflowException; -import java.util.LinkedList; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; public class SPacketMEInventoryUpdate implements IMessage { @@ -90,7 +94,7 @@ public class SPacketMEInventoryUpdate implements IMessage { public static class Handler implements IMessageHandler { @Override - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({ "unchecked", "rawtypes" }) public IMessage onMessage(SPacketMEInventoryUpdate message, MessageContext ctx) { final GuiScreen gs = Minecraft.getMinecraft().currentScreen; if (gs instanceof GuiFluidMonitor) { diff --git a/src/main/java/com/glodblock/github/network/SPacketSetItemAmount.java b/src/main/java/com/glodblock/github/network/SPacketSetItemAmount.java index c2350423..53c18234 100644 --- a/src/main/java/com/glodblock/github/network/SPacketSetItemAmount.java +++ b/src/main/java/com/glodblock/github/network/SPacketSetItemAmount.java @@ -1,13 +1,16 @@ package com.glodblock.github.network; +import javax.annotation.Nullable; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; + import com.glodblock.github.client.gui.GuiPatternValueAmount; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import javax.annotation.Nullable; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; public class SPacketSetItemAmount implements IMessage { @@ -32,6 +35,7 @@ public class SPacketSetItemAmount implements IMessage { } public static class Handler implements IMessageHandler { + @Nullable @Override public IMessage onMessage(SPacketSetItemAmount message, MessageContext ctx) { diff --git a/src/main/java/com/glodblock/github/proxy/ClientProxy.java b/src/main/java/com/glodblock/github/proxy/ClientProxy.java index 24f2cd17..06463694 100644 --- a/src/main/java/com/glodblock/github/proxy/ClientProxy.java +++ b/src/main/java/com/glodblock/github/proxy/ClientProxy.java @@ -4,6 +4,7 @@ import com.glodblock.github.loader.ListenerLoader; import com.glodblock.github.loader.RenderLoader; import com.glodblock.github.nei.recipes.DefaultExtractorLoader; import com.glodblock.github.util.ModAndClassUtil; + import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; diff --git a/src/main/java/com/glodblock/github/proxy/CommonProxy.java b/src/main/java/com/glodblock/github/proxy/CommonProxy.java index 2e94687b..ac106808 100644 --- a/src/main/java/com/glodblock/github/proxy/CommonProxy.java +++ b/src/main/java/com/glodblock/github/proxy/CommonProxy.java @@ -1,20 +1,23 @@ package com.glodblock.github.proxy; +import net.minecraft.item.ItemStack; + import appeng.api.AEApi; import appeng.api.IAppEngApi; import appeng.api.config.Upgrades; + import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.tile.TileWalrus; import com.glodblock.github.inventory.external.AEFluidInterfaceHandler; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.ModAndClassUtil; + import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import net.minecraft.item.ItemStack; public class CommonProxy { diff --git a/src/main/java/com/glodblock/github/util/Ae2Reflect.java b/src/main/java/com/glodblock/github/util/Ae2Reflect.java index 8f4d5e2f..0b6412a1 100644 --- a/src/main/java/com/glodblock/github/util/Ae2Reflect.java +++ b/src/main/java/com/glodblock/github/util/Ae2Reflect.java @@ -1,5 +1,11 @@ package com.glodblock.github.util; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.Arrays; + +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.implementations.IUpgradeableHost; import appeng.api.networking.IGrid; import appeng.api.networking.crafting.ICraftingCPU; @@ -16,10 +22,6 @@ import appeng.me.storage.MEPassThrough; import appeng.parts.p2p.PartP2PLiquids; import appeng.util.inv.ItemSlot; import appeng.util.prioitylist.IPartitionList; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.Arrays; -import net.minecraftforge.fluids.IFluidHandler; public class Ae2Reflect { @@ -53,8 +55,11 @@ public class Ae2Reflect { fContainerUpgradeable_upgradeable = Ae2Reflect.reflectField(ContainerUpgradeable.class, "upgradeable"); mItemSlot_setExtractable = reflectMethod(ItemSlot.class, "setExtractable", boolean.class); mCPU_getGrid = reflectMethod(CraftingCPUCluster.class, "getGrid"); - mCPU_postChange = - reflectMethod(CraftingCPUCluster.class, "postChange", IAEItemStack.class, BaseActionSource.class); + mCPU_postChange = reflectMethod( + CraftingCPUCluster.class, + "postChange", + IAEItemStack.class, + BaseActionSource.class); mCPU_markDirty = reflectMethod(CraftingCPUCluster.class, "markDirty"); mP2PLiquids_getTarget = reflectMethod(PartP2PLiquids.class, "getTarget"); } catch (Exception e) { @@ -75,8 +80,7 @@ public class Ae2Reflect { try { f = owner.getDeclaredField(name); if (f != null) break; - } catch (NoSuchFieldException ignore) { - } + } catch (NoSuchFieldException ignore) {} } if (f == null) throw new NoSuchFieldException("Can't find field from " + Arrays.toString(names)); f.setAccessible(true); diff --git a/src/main/java/com/glodblock/github/util/Ae2ReflectClient.java b/src/main/java/com/glodblock/github/util/Ae2ReflectClient.java index 04c2221f..a0e5bdf6 100644 --- a/src/main/java/com/glodblock/github/util/Ae2ReflectClient.java +++ b/src/main/java/com/glodblock/github/util/Ae2ReflectClient.java @@ -1,17 +1,19 @@ package com.glodblock.github.util; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.List; +import java.util.Set; + +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + import appeng.client.gui.AEBaseGui; import appeng.client.gui.implementations.GuiCraftingStatus; import appeng.client.gui.widgets.GuiTabButton; import appeng.client.render.AppEngRenderItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.List; -import java.util.Set; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; @SideOnly(Side.CLIENT) public class Ae2ReflectClient { diff --git a/src/main/java/com/glodblock/github/util/BlockPos.java b/src/main/java/com/glodblock/github/util/BlockPos.java index 92797088..22e268cc 100644 --- a/src/main/java/com/glodblock/github/util/BlockPos.java +++ b/src/main/java/com/glodblock/github/util/BlockPos.java @@ -1,7 +1,9 @@ package com.glodblock.github.util; import java.util.Objects; + import javax.annotation.Nonnull; + import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/com/glodblock/github/util/DualityFluidInterface.java b/src/main/java/com/glodblock/github/util/DualityFluidInterface.java index 3c69a361..3944bded 100644 --- a/src/main/java/com/glodblock/github/util/DualityFluidInterface.java +++ b/src/main/java/com/glodblock/github/util/DualityFluidInterface.java @@ -1,5 +1,16 @@ package com.glodblock.github.util; +import java.util.Objects; + +import net.minecraft.inventory.IInventory; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + import appeng.api.config.Actionable; import appeng.api.config.Upgrades; import appeng.api.implementations.IUpgradeableHost; @@ -30,28 +41,15 @@ import appeng.util.ConfigManager; import appeng.util.IConfigManagerHost; import appeng.util.Platform; import appeng.util.item.AEFluidStack; + import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.AEFluidInventory; import com.glodblock.github.inventory.IAEFluidInventory; import com.glodblock.github.inventory.IAEFluidTank; import com.glodblock.github.inventory.MEMonitorIFluidHandler; -import java.util.Objects; -import net.minecraft.inventory.IInventory; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; -public class DualityFluidInterface - implements IGridTickable, - IStorageMonitorable, - IAEFluidInventory, - IUpgradeableHost, - IConfigManagerHost, - IFluidHandler { +public class DualityFluidInterface implements IGridTickable, IStorageMonitorable, IAEFluidInventory, IUpgradeableHost, + IConfigManagerHost, IFluidHandler { public static final int NUMBER_OF_TANKS = 6; public static final long TANK_CAPACITY = 16000; @@ -64,10 +62,12 @@ public class DualityFluidInterface private final AEFluidInventory config = new AEFluidInventory(this, NUMBER_OF_TANKS, Integer.MAX_VALUE); private final IAEFluidStack[] requireWork; private int isWorking = -1; - private final MEMonitorPassThrough items = - new MEMonitorPassThrough(new NullInventory<>(), StorageChannel.ITEMS); - private final MEMonitorPassThrough fluids = - new MEMonitorPassThrough(new NullInventory<>(), StorageChannel.FLUIDS); + private final MEMonitorPassThrough items = new MEMonitorPassThrough( + new NullInventory<>(), + StorageChannel.ITEMS); + private final MEMonitorPassThrough fluids = new MEMonitorPassThrough( + new NullInventory<>(), + StorageChannel.FLUIDS); private boolean resetConfigCache = true; public DualityFluidInterface(final AENetworkProxy networkProxy, final IInterfaceHost ih) { @@ -147,10 +147,7 @@ public class DualityFluidInterface private IMEMonitor getFluidGrid() { try { - return gridProxy - .getGrid() - .getCache(IStorageGrid.class) - .getFluidInventory(); + return gridProxy.getGrid().getCache(IStorageGrid.class).getFluidInventory(); } catch (GridAccessException e) { return null; } @@ -178,7 +175,10 @@ public class DualityFluidInterface @Override public TickingRequest getTickingRequest(IGridNode node) { return new TickingRequest( - TickRates.Interface.getMin(), TickRates.Interface.getMax(), !this.hasWorkToDo(), true); + TickRates.Interface.getMin(), + TickRates.Interface.getMax(), + !this.hasWorkToDo(), + true); } @Override @@ -187,8 +187,7 @@ public class DualityFluidInterface return TickRateModulation.SLEEP; } else { boolean couldDoWork = this.updateStorage(); - return this.hasWorkToDo() - ? (couldDoWork ? TickRateModulation.URGENT : TickRateModulation.SLOWER) + return this.hasWorkToDo() ? (couldDoWork ? TickRateModulation.URGENT : TickRateModulation.SLOWER) : TickRateModulation.SLEEP; } } @@ -243,8 +242,7 @@ public class DualityFluidInterface } else { this.gridProxy.getTick().sleepDevice(this.gridProxy.getNode()); } - } catch (GridAccessException ignored) { - } + } catch (GridAccessException ignored) {} } } } @@ -303,8 +301,7 @@ public class DualityFluidInterface toStore.setStackSize(-toStore.getStackSize()); FluidStack canExtract = this.tanks.drain(slot, toStore.getFluidStack(), false); if (canExtract != null && (long) canExtract.amount == toStore.getStackSize()) { - IAEFluidStack notStored = dest.injectItems(toStore, Actionable.MODULATE, this.mySource); - ; + IAEFluidStack notStored = dest.injectItems(toStore, Actionable.MODULATE, this.mySource);; toStore.setStackSize(toStore.getStackSize() - (notStored == null ? 0L : notStored.getStackSize())); if (toStore.getStackSize() > 0L) { changed = true; @@ -361,8 +358,7 @@ public class DualityFluidInterface if (this.gridProxy.isActive()) { try { this.gridProxy.getTick().wakeDevice(this.gridProxy.getNode()); - } catch (GridAccessException ignored) { - } + } catch (GridAccessException ignored) {} } TileEntity te = this.iHost.getTileEntity(); if (te != null && te.getWorldObj() != null) { @@ -398,8 +394,7 @@ public class DualityFluidInterface } else { this.gridProxy.getTick().sleepDevice(this.gridProxy.getNode()); } - } catch (GridAccessException ignored) { - } + } catch (GridAccessException ignored) {} } this.notifyNeighbors(); @@ -445,6 +440,7 @@ public class DualityFluidInterface } private static class InterfaceInventory extends MEMonitorIFluidHandler { + InterfaceInventory(DualityFluidInterface tileInterface) { super(tileInterface.tanks); } diff --git a/src/main/java/com/glodblock/github/util/FluidPatternDetails.java b/src/main/java/com/glodblock/github/util/FluidPatternDetails.java index 85fc0fa1..ea47b1d9 100644 --- a/src/main/java/com/glodblock/github/util/FluidPatternDetails.java +++ b/src/main/java/com/glodblock/github/util/FluidPatternDetails.java @@ -1,12 +1,10 @@ package com.glodblock.github.util; -import appeng.api.networking.crafting.ICraftingPatternDetails; -import appeng.api.storage.data.IAEItemStack; -import appeng.helpers.PatternHelper; -import appeng.util.item.AEItemStack; import java.util.Arrays; import java.util.Objects; + import javax.annotation.Nullable; + import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -14,6 +12,11 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.Constants; +import appeng.api.networking.crafting.ICraftingPatternDetails; +import appeng.api.storage.data.IAEItemStack; +import appeng.helpers.PatternHelper; +import appeng.util.item.AEItemStack; + public class FluidPatternDetails implements ICraftingPatternDetails, Comparable { private final ItemStack patternStack; diff --git a/src/main/java/com/glodblock/github/util/FluidSorters.java b/src/main/java/com/glodblock/github/util/FluidSorters.java index 50a5c962..bc48429a 100644 --- a/src/main/java/com/glodblock/github/util/FluidSorters.java +++ b/src/main/java/com/glodblock/github/util/FluidSorters.java @@ -1,16 +1,20 @@ package com.glodblock.github.util; +import java.util.Comparator; + +import net.minecraftforge.fluids.Fluid; + import appeng.api.config.SortDir; import appeng.api.storage.data.IAEItemStack; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; import appeng.integration.abstraction.IInvTweaks; import appeng.util.Platform; + import com.glodblock.github.common.item.ItemFluidDrop; -import java.util.Comparator; -import net.minecraftforge.fluids.Fluid; public class FluidSorters { + private static SortDir Direction = SortDir.ASCENDING; public static final Comparator CONFIG_BASED_SORT_BY_MOD = new Comparator() { @@ -19,8 +23,8 @@ public class FluidSorters { final Fluid f1 = ItemFluidDrop.getAeFluidStack(o1).getFluid(); final Fluid f2 = ItemFluidDrop.getAeFluidStack(o2).getFluid(); if (getDirection() == SortDir.ASCENDING) { - return this.secondarySort( - Util.getFluidModName(f2).compareToIgnoreCase(Util.getFluidModName(f1)), f1, f2); + return this + .secondarySort(Util.getFluidModName(f2).compareToIgnoreCase(Util.getFluidModName(f1)), f1, f2); } return this.secondarySort(Util.getFluidModName(f1).compareToIgnoreCase(Util.getFluidModName(f2)), f2, f1); } diff --git a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java index dd665b0d..ea96a0d0 100644 --- a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java +++ b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java @@ -1,5 +1,7 @@ package com.glodblock.github.util; +import java.lang.reflect.Field; + import appeng.api.config.ActionItems; import appeng.api.config.Settings; import appeng.api.config.Upgrades; @@ -7,7 +9,6 @@ import appeng.core.AEConfig; import appeng.core.localization.ButtonToolTips; import appeng.core.localization.GuiText; import cpw.mods.fml.common.Loader; -import java.lang.reflect.Field; public final class ModAndClassUtil { diff --git a/src/main/java/com/glodblock/github/util/NameConst.java b/src/main/java/com/glodblock/github/util/NameConst.java index 48d6aa1e..c63698e0 100644 --- a/src/main/java/com/glodblock/github/util/NameConst.java +++ b/src/main/java/com/glodblock/github/util/NameConst.java @@ -1,10 +1,12 @@ package com.glodblock.github.util; -import com.glodblock.github.FluidCraft; import java.util.ArrayList; + import net.minecraft.client.resources.I18n; import net.minecraft.util.StatCollector; +import com.glodblock.github.FluidCraft; + public class NameConst { public static final String BLOCK_CERTUS_QUARTZ_TANK = "certus_quartz_tank"; @@ -33,6 +35,7 @@ public class NameConst { public static final String ITEM_PART_FLUID_LEVEL_EMITTER = "part_fluid_level_emitter"; public static final String ITEM_FLUID_PACKET = "fluid_packet"; public static final String ITEM_FLUID_STORAGE = "fluid_storage"; + public static final String ITEM_FLUID_PORTABLE_CELL = "portable_fluid_cell"; public static final String ITEM_FLUID_PART = "fluid_part"; public static final String TT_KEY = FluidCraft.MODID + ".tooltip."; @@ -68,6 +71,7 @@ public class NameConst { public static final String TT_LEVEL_MAINTAINER_EXPORT_DESC = TT_LEVEL_MAINTAINER + "export_desc"; public static final String TT_CELL_CONTENTS = TT_KEY + "cell_contents"; public static final String TT_CELL_EMPTY = TT_KEY + "cell_empty"; + public static final String TT_CELL_PORTABLE = TT_KEY + "cell_portable"; public static final String WAILA_KEY = FluidCraft.MODID + ".waila."; public static final String WAILA_ENABLE = WAILA_KEY + "enable"; diff --git a/src/main/java/com/glodblock/github/util/ObjectArrayIterator.java b/src/main/java/com/glodblock/github/util/ObjectArrayIterator.java index 4d27b3f6..7561d67e 100644 --- a/src/main/java/com/glodblock/github/util/ObjectArrayIterator.java +++ b/src/main/java/com/glodblock/github/util/ObjectArrayIterator.java @@ -6,17 +6,15 @@ import java.util.NoSuchElementException; /** * An {@link java.util.Iterator Iterator} over an array of objects. *

- * This iterator does not support {@link #remove}, as the object array cannot be - * structurally modified. + * This iterator does not support {@link #remove}, as the object array cannot be structurally modified. *

- * The iterator implements a {@link #reset} method, allowing the reset of the iterator - * back to the start if required. + * The iterator implements a {@link #reset} method, allowing the reset of the iterator back to the start if required. * * @param the type to iterate over * @since 3.0 * @version $Id: ObjectArrayIterator.java 1734648 2016-03-11 23:51:22Z ggregory $ */ -public class ObjectArrayIterator implements /*Resettable*/ Iterator { +public class ObjectArrayIterator implements /* Resettable */ Iterator { /** The array */ final E[] array; @@ -29,8 +27,7 @@ public class ObjectArrayIterator implements /*Resettable*/ Iterator { // ------------------------------------------------------------------------- /** - * Constructs an ObjectArrayIterator that will iterate over the values in the - * specified array. + * Constructs an ObjectArrayIterator that will iterate over the values in the specified array. * * @param array the array to iterate over * @throws NullPointerException if array is null @@ -41,12 +38,12 @@ public class ObjectArrayIterator implements /*Resettable*/ Iterator { } /** - * Constructs an ObjectArrayIterator that will iterate over the values in the - * specified array from a specific start index. + * Constructs an ObjectArrayIterator that will iterate over the values in the specified array from a specific start + * index. * - * @param array the array to iterate over - * @param start the index to start iterating at - * @throws NullPointerException if array is null + * @param array the array to iterate over + * @param start the index to start iterating at + * @throws NullPointerException if array is null * @throws IndexOutOfBoundsException if the start index is out of bounds */ public ObjectArrayIterator(final E array[], final int start) { @@ -54,15 +51,14 @@ public class ObjectArrayIterator implements /*Resettable*/ Iterator { } /** - * Construct an ObjectArrayIterator that will iterate over a range of values - * in the specified array. + * Construct an ObjectArrayIterator that will iterate over a range of values in the specified array. * - * @param array the array to iterate over - * @param start the index to start iterating at - * @param end the index (exclusive) to finish iterating at + * @param array the array to iterate over + * @param start the index to start iterating at + * @param end the index (exclusive) to finish iterating at * @throws IndexOutOfBoundsException if the start or end index is out of bounds - * @throws IllegalArgumentException if end index is before the start - * @throws NullPointerException if array is null + * @throws IllegalArgumentException if end index is before the start + * @throws NullPointerException if array is null */ public ObjectArrayIterator(final E array[], final int start, final int end) { super(); @@ -101,8 +97,7 @@ public class ObjectArrayIterator implements /*Resettable*/ Iterator { * Returns the next element in the array. * * @return the next element in the array - * @throws NoSuchElementException if all the elements in the array - * have already been returned + * @throws NoSuchElementException if all the elements in the array have already been returned */ @Override public E next() { diff --git a/src/main/java/com/glodblock/github/util/RenderUtil.java b/src/main/java/com/glodblock/github/util/RenderUtil.java index 14324486..c5a58544 100644 --- a/src/main/java/com/glodblock/github/util/RenderUtil.java +++ b/src/main/java/com/glodblock/github/util/RenderUtil.java @@ -1,30 +1,27 @@ package com.glodblock.github.util; -import appeng.api.storage.data.IAEFluidStack; +import java.util.List; + import javax.annotation.Nullable; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.util.IIcon; + import org.lwjgl.opengl.GL11; +import appeng.api.storage.data.IAEFluidStack; + public final class RenderUtil { public static void renderItemIcon(IIcon icon, double size, double z, float nx, float ny, float nz) { renderItemIcon(icon, 0.0D, 0.0D, size, size, z, nx, ny, nz); } - public static void renderItemIcon( - IIcon icon, - double xStart, - double yStart, - double xEnd, - double yEnd, - double z, - float nx, - float ny, - float nz) { + public static void renderItemIcon(IIcon icon, double xStart, double yStart, double xEnd, double yEnd, double z, + float nx, float ny, float nz) { if (icon == null) { return; } @@ -44,8 +41,8 @@ public final class RenderUtil { Tessellator.instance.draw(); } - public static void renderFluidIntoGui( - Gui gui, int x, int y, int width, int height, @Nullable IAEFluidStack aeFluidStack, int capacity) { + public static void renderFluidIntoGui(Gui gui, int x, int y, int width, int height, + @Nullable IAEFluidStack aeFluidStack, int capacity) { if (aeFluidStack != null) { GL11.glDisable(2896); GL11.glColor3f(1.0F, 1.0F, 1.0F); @@ -60,10 +57,19 @@ public final class RenderUtil { for (int th = 0; th <= hi; th += 16) { if (hi - th <= 0) break; gui.drawTexturedModelRectFromIcon( - x, y + height - Math.min(16, hi - th) - th, fluidIcon, width, Math.min(16, hi - th)); + x, + y + height - Math.min(16, hi - th) - th, + fluidIcon, + width, + Math.min(16, hi - th)); } GL11.glColor3f(1.0F, 1.0F, 1.0F); } } } + + @SuppressWarnings("unchecked") + public static List listFormattedStringToWidth(String str) { + return Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(str, 150); + } } diff --git a/src/main/java/com/glodblock/github/util/SetBackedMachineSet.java b/src/main/java/com/glodblock/github/util/SetBackedMachineSet.java index 2f905a03..7237db86 100644 --- a/src/main/java/com/glodblock/github/util/SetBackedMachineSet.java +++ b/src/main/java/com/glodblock/github/util/SetBackedMachineSet.java @@ -1,14 +1,16 @@ package com.glodblock.github.util; -import appeng.api.networking.IGridHost; -import appeng.api.networking.IGridNode; -import appeng.api.networking.IMachineSet; import java.util.Iterator; import java.util.Set; import java.util.Spliterator; import java.util.function.Consumer; + import javax.annotation.Nonnull; +import appeng.api.networking.IGridHost; +import appeng.api.networking.IGridNode; +import appeng.api.networking.IMachineSet; + public class SetBackedMachineSet implements IMachineSet { private final Class machineClass; @@ -37,7 +39,7 @@ public class SetBackedMachineSet implements IMachineSet { @Override public boolean contains(Object o) { - //noinspection SuspiciousMethodCalls + // noinspection SuspiciousMethodCalls return backingSet.contains(o); } diff --git a/src/main/java/com/glodblock/github/util/Util.java b/src/main/java/com/glodblock/github/util/Util.java index 414eed79..84863459 100644 --- a/src/main/java/com/glodblock/github/util/Util.java +++ b/src/main/java/com/glodblock/github/util/Util.java @@ -1,5 +1,18 @@ package com.glodblock.github.util; +import java.io.IOException; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.*; + +import org.apache.commons.lang3.tuple.MutablePair; + import appeng.api.AEApi; import appeng.api.config.SecurityPermissions; import appeng.api.networking.IGrid; @@ -10,24 +23,17 @@ import appeng.api.parts.IPart; import appeng.api.storage.data.IAEFluidStack; import appeng.tile.networking.TileCableBus; import appeng.util.item.AEFluidStack; + import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.inventory.IAEFluidTank; + import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.registry.GameData; import io.netty.buffer.ByteBuf; -import java.io.IOException; -import java.util.Map; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.*; -import org.apache.commons.lang3.tuple.MutablePair; public final class Util { + public static int findItemInPlayerInvSlot(EntityPlayer player, ItemStack itemStack) { for (int i = 0; i < player.inventory.mainInventory.length; i++) { if (player.inventory.mainInventory[i] != null && player.inventory.mainInventory[i] == itemStack) return i; @@ -43,8 +49,8 @@ public final class Util { return hasPermission(player, permission, host, ForgeDirection.UNKNOWN); } - public static boolean hasPermission( - EntityPlayer player, SecurityPermissions permission, IGridHost host, ForgeDirection side) { + public static boolean hasPermission(EntityPlayer player, SecurityPermissions permission, IGridHost host, + ForgeDirection side) { return host == null || hasPermission(player, permission, host.getGridNode(side)); } @@ -56,10 +62,9 @@ public final class Util { return part == null || hasPermission(player, permission, part.getGridNode()); } - public static boolean hasPermission( - EntityPlayer player, SecurityPermissions permission, ISecurityGrid securityGrid) { - return player == null - || permission == null + public static boolean hasPermission(EntityPlayer player, SecurityPermissions permission, + ISecurityGrid securityGrid) { + return player == null || permission == null || securityGrid == null || securityGrid.hasPermission(player, permission); } @@ -214,6 +219,7 @@ public final class Util { } public static class FluidUtil { + public static IAEFluidStack createAEFluidStack(Fluid fluid) { return createAEFluidStack(new FluidStack(fluid, FluidContainerRegistry.BUCKET_VOLUME)); } @@ -227,8 +233,7 @@ public final class Util { } public static IAEFluidStack createAEFluidStack(int fluidId, long amount) { - return createAEFluidStack(new FluidStack(FluidRegistry.getFluid(fluidId), 1)) - .setStackSize(amount); + return createAEFluidStack(new FluidStack(FluidRegistry.getFluid(fluidId), 1)).setStackSize(amount); } public static boolean isEmpty(ItemStack itemStack) { diff --git a/src/main/resources/assets/ae2fc/lang/en_US.lang b/src/main/resources/assets/ae2fc/lang/en_US.lang index 06881d12..a37d433d 100644 --- a/src/main/resources/assets/ae2fc/lang/en_US.lang +++ b/src/main/resources/assets/ae2fc/lang/en_US.lang @@ -10,21 +10,24 @@ item.part_fluid_storage_bus.name=ME Fluid Storage Bus item.part_fluid_level_emitter.name=ME Fluid Level Emitter item.part_fluid_storage_monitor.name=ME Fluid Storage Monitor item.part_fluid_conversion_monitor.name=ME Fluid Conversion Monitor +item.portable_fluid_cell.name=Portable Fluid Cell item.fluid_packet.name=Fluid Packet -item.fluid_storage.1.name=1k ME Fluid Storage Cell -item.fluid_storage.4.name=4k ME Fluid Storage Cell -item.fluid_storage.16.name=16k ME Fluid Storage Cell -item.fluid_storage.64.name=64k ME Fluid Storage Cell -item.fluid_storage.256.name=256k ME Fluid Storage Cell -item.fluid_storage.1024.name=1024k ME Fluid Storage Cell -item.fluid_storage.4096.name=4096k ME Fluid Storage Cell -item.fluid_part.0.name=1k ME Fluid Storage Component -item.fluid_part.1.name=4k ME Fluid Storage Component -item.fluid_part.2.name=16k ME Fluid Storage Component -item.fluid_part.3.name=64k ME Fluid Storage Component -item.fluid_part.4.name=256k ME Fluid Storage Component -item.fluid_part.5.name=1024k ME Fluid Storage Component -item.fluid_part.6.name=4096k ME Fluid Storage Component +item.fluid_storage.1.name=%s1k%s ME Fluid Storage Cell +item.fluid_storage.4.name=%s4k%s ME Fluid Storage Cell +item.fluid_storage.16.name=%s16k%s ME Fluid Storage Cell +item.fluid_storage.64.name=%s64k%s ME Fluid Storage Cell +item.fluid_storage.256.name=%s256k%s ME Fluid Storage Cell +item.fluid_storage.1024.name=%s1024k%s ME Fluid Storage Cell +item.fluid_storage.4096.name=%s4096k%s ME Fluid Storage Cell +item.fluid_storage.16384.name=%s16384k%s ME Fluid Storage Cell +item.fluid_part.0.name=%s1k%s ME Fluid Storage Component +item.fluid_part.1.name=%s4k%s ME Fluid Storage Component +item.fluid_part.2.name=%s16k%s ME Fluid Storage Component +item.fluid_part.3.name=%s64k%s ME Fluid Storage Component +item.fluid_part.4.name=%s256k%s ME Fluid Storage Component +item.fluid_part.5.name=%s1024k%s ME Fluid Storage Component +item.fluid_part.6.name=%s4096k%s ME Fluid Storage Component +item.fluid_part.7.name=%s16384k%s ME Fluid Storage Component tile.fluid_discretizer.name=Fluid Discretizer tile.fluid_pattern_encoder.name=Fluid Pattern Encoder @@ -67,6 +70,7 @@ ae2fc.tooltip.level_maintainer.request_size.hint=The count defines how many item ae2fc.tooltip.cell_contents=Contains Fluid: ae2fc.tooltip.cell_empty=Cell is empty +ae2fc.tooltip.cell_portable=Right click to open its GUI. It works like a backpack, but you need to charge it before using. ae2fc.tooltip.fluid_terminal=uh So we don't need EC2 anymore? ae2fc.tooltip.invalid_fluid=Invalid fluid! ae2fc.tooltip.encode_pattern=Encode Patter diff --git a/src/main/resources/assets/ae2fc/lang/ru_RU.lang b/src/main/resources/assets/ae2fc/lang/ru_RU.lang index 7e6d54d6..982ee0ff 100644 --- a/src/main/resources/assets/ae2fc/lang/ru_RU.lang +++ b/src/main/resources/assets/ae2fc/lang/ru_RU.lang @@ -6,20 +6,20 @@ item.part_fluid_interface.name=Жидкостный интерфейс item.part_fluid_import.name=МЭ жидкостная шина импорта item.part_fluid_export.name=МЭ жидкостная шина экспорта item.fluid_packet.name=Жидкостный пакет -item.fluid_storage.1.name=1К МЭ жидкостная ячейка хранения -item.fluid_storage.4.name=4К МЭ жидкостная ячейка хранения -item.fluid_storage.16.name=16К МЭ жидкостная ячейка хранения -item.fluid_storage.64.name=64К МЭ жидкостная ячейка хранения -item.fluid_storage.256.name=256К МЭ жидкостная ячейка хранения -item.fluid_storage.1024.name=1024К МЭ жидкостная ячейка хранения -item.fluid_storage.4096.name=4096К МЭ жидкостная ячейка хранения -item.fluid_part.0.name=1К МЭ жидкостный компонент хранения -item.fluid_part.1.name=4К МЭ жидкостный компонент хранения -item.fluid_part.2.name=16К МЭ жидкостный компонент хранения -item.fluid_part.3.name=64К МЭ жидкостный компонент хранения -item.fluid_part.4.name=256К МЭ жидкостный компонент хранения -item.fluid_part.5.name=1024К МЭ жидкостный компонент хранения -item.fluid_part.6.name=4096К МЭ жидкостный компонент хранения +item.fluid_storage.1.name=%s1К%s МЭ жидкостная ячейка хранения +item.fluid_storage.4.name=%s4К%s МЭ жидкостная ячейка хранения +item.fluid_storage.16.name=%s16К%s МЭ жидкостная ячейка хранения +item.fluid_storage.64.name=%s64К%s МЭ жидкостная ячейка хранения +item.fluid_storage.256.name=%s256К%s МЭ жидкостная ячейка хранения +item.fluid_storage.1024.name=%s1024К%s МЭ жидкостная ячейка хранения +item.fluid_storage.4096.name=%s4096К%s МЭ жидкостная ячейка хранения +item.fluid_part.0.name=%s1К%s МЭ жидкостный компонент хранения +item.fluid_part.1.name=%s4К%s МЭ жидкостный компонент хранения +item.fluid_part.2.name=%s16К%s МЭ жидкостный компонент хранения +item.fluid_part.3.name=%s64К%s МЭ жидкостный компонент хранения +item.fluid_part.4.name=%s256К%s МЭ жидкостный компонент хранения +item.fluid_part.5.name=%s1024К%s МЭ жидкостный компонент хранения +item.fluid_part.6.name=%s4096К%s МЭ жидкостный компонент хранения tile.fluid_discretizer.name=Дискретизатор жидкости tile.fluid_pattern_encoder.name=Кодировщик жидкостных шаблонов diff --git a/src/main/resources/assets/ae2fc/lang/zh_CN.lang b/src/main/resources/assets/ae2fc/lang/zh_CN.lang index bdb6bb67..1e1f56f8 100644 --- a/src/main/resources/assets/ae2fc/lang/zh_CN.lang +++ b/src/main/resources/assets/ae2fc/lang/zh_CN.lang @@ -11,20 +11,20 @@ item.part_fluid_level_emitter.name=ME流体发信器 item.part_fluid_storage_monitor.name=ME流体存储监控器 item.part_fluid_conversion_monitor.name=ME流体交换监控器 item.fluid_packet.name=流体封包 -item.fluid_storage.1.name=1k-ME流体存储元件 -item.fluid_storage.4.name=4k-ME流体存储元件 -item.fluid_storage.16.name=16k-ME流体存储元件 -item.fluid_storage.64.name=64k-ME流体存储元件 -item.fluid_storage.256.name=256k-ME流体存储元件 -item.fluid_storage.1024.name=1024k-ME流体存储元件 -item.fluid_storage.4096.name=4096k-ME流体存储元件 -item.fluid_part.0.name=1k-ME流体存储组件 -item.fluid_part.1.name=4k-ME流体存储组件 -item.fluid_part.2.name=16k-ME流体存储组件 -item.fluid_part.3.name=64k-ME流体存储组件 -item.fluid_part.4.name=256k-ME流体存储组件 -item.fluid_part.5.name=1024k-ME流体存储组件 -item.fluid_part.6.name=4096k-ME流体存储组件 +item.fluid_storage.1.name=%s1k%s-ME流体存储元件 +item.fluid_storage.4.name=%s4k%s-ME流体存储元件 +item.fluid_storage.16.name=%s16k%s-ME流体存储元件 +item.fluid_storage.64.name=%s64k%s-ME流体存储元件 +item.fluid_storage.256.name=%s256k%s-ME流体存储元件 +item.fluid_storage.1024.name=%s1024k%s-ME流体存储元件 +item.fluid_storage.4096.name=%s4096k%s-ME流体存储元件 +item.fluid_part.0.name=%s1k%s-ME流体存储组件 +item.fluid_part.1.name=%s4k%s-ME流体存储组件 +item.fluid_part.2.name=%s16k%s-ME流体存储组件 +item.fluid_part.3.name=%s64k%s-ME流体存储组件 +item.fluid_part.4.name=%s256k%s-ME流体存储组件 +item.fluid_part.5.name=%s1024k%s-ME流体存储组件 +item.fluid_part.6.name=%s4096k%s-ME流体存储组件 tile.fluid_discretizer.name=ME流体离散器 tile.fluid_pattern_encoder.name=流体适配型样板编码台 diff --git a/src/main/resources/assets/ae2fc/textures/items/fluid_part.7.png b/src/main/resources/assets/ae2fc/textures/items/fluid_part.7.png new file mode 100644 index 00000000..8fbf7332 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/items/fluid_part.7.png differ diff --git a/src/main/resources/assets/ae2fc/textures/items/fluid_storage.16384.png b/src/main/resources/assets/ae2fc/textures/items/fluid_storage.16384.png new file mode 100644 index 00000000..0b987302 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/items/fluid_storage.16384.png differ diff --git a/src/main/resources/assets/ae2fc/textures/items/fluid_storage.4096.png b/src/main/resources/assets/ae2fc/textures/items/fluid_storage.4096.png index 44dbdad8..407ed60d 100644 Binary files a/src/main/resources/assets/ae2fc/textures/items/fluid_storage.4096.png and b/src/main/resources/assets/ae2fc/textures/items/fluid_storage.4096.png differ diff --git a/src/main/resources/assets/ae2fc/textures/items/portable_fluid_cell.png b/src/main/resources/assets/ae2fc/textures/items/portable_fluid_cell.png new file mode 100644 index 00000000..fd8d7017 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/items/portable_fluid_cell.png differ