Update buildscript, apply spotless (#175)

This commit is contained in:
Raven Szewczyk authored and GitHub committed 2022-09-01 13:27:40 +02:00
1 parent 08d0ef617f
commit a40ee7424f
1220 files changed
+95126 -109823

No files matched your search

+41
View File
@@ -0,0 +1,41 @@
* text eol=lf
*.[jJ][aA][rR] binary
*.[pP][nN][gG] binary
*.[jJ][pP][gG] binary
*.[jJ][pP][eE][gG] binary
*.[gG][iI][fF] binary
*.[tT][iI][fF] binary
*.[tT][iI][fF][fF] binary
*.[iI][cC][oO] binary
*.[sS][vV][gG] text
*.[eE][pP][sS] binary
*.[kK][aA][rR] binary
*.[mM]4[aA] binary
*.[mM][iI][dD] binary
*.[mM][iI][dD][iI] binary
*.[mM][pP]3 binary
*.[oO][gG][gG] binary
*.[rR][aA] binary
*.7[zZ] binary
*.[gG][zZ] binary
*.[tT][aA][rR] binary
*.[tT][gG][zZ] binary
*.[zZ][iI][pP] binary
*.[tT][cC][nN] binary
*.[sS][oO] binary
*.[dD][lL][lL] binary
*.[dD][yY][lL][iI][bB] binary
*.[pP][sS][dD] binary
*.[pP][aA][tT][cC][hH] -text
*.[bB][aA][tT] text eol=crlf
*.[cC][mM][dD] text eol=crlf
*.[pP][sS]1 text eol=crlf
*[aA][uU][tT][oO][gG][eE][nN][eE][rR][aA][tT][eE][dD]* binary
+327 -106
View File
@@ -1,10 +1,9 @@
//version: 1650343995
//version: 1661114848
/*
DO NOT CHANGE THIS FILE!
Also, you may replace this file at any time if there is an update available.
Please check https://github.com/GTNewHorizons/ExampleMod1.7.10/blob/main/build.gradle for updates.
*/
DO NOT CHANGE THIS FILE!
Also, you may replace this file at any time if there is an update available.
Please check https://github.com/GTNewHorizons/ExampleMod1.7.10/blob/main/build.gradle for updates.
*/
import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
@@ -12,14 +11,26 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import org.gradle.internal.logging.text.StyledTextOutput.Style
import org.gradle.internal.logging.text.StyledTextOutputFactory
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 {
mavenCentral()
maven {
name 'forge'
url 'https://maven.minecraftforge.net'
}
maven {
// GTNH ForgeGradle Fork
name = "GTNH Maven"
url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/"
}
maven {
name 'sonatype'
url 'https://oss.sonatype.org/content/repositories/snapshots/'
@@ -28,30 +39,37 @@ buildscript {
name 'Scala CI dependencies'
url 'https://repo1.maven.org/maven2/'
}
maven {
name 'jitpack'
url 'https://jitpack.io'
}
}
dependencies {
classpath 'com.github.GTNewHorizons:ForgeGradle:1.2.7'
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2.9'
}
}
plugins {
id 'java-library'
id 'idea'
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 'org.ajoberstar.grgit' version '4.1.1'
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 '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 'com.diffplug.spotless' version '6.7.2' apply false
}
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'
@@ -77,7 +95,14 @@ idea {
}
}
if(JavaVersion.current() != JavaVersion.VERSION_1_8) {
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())
}
@@ -102,9 +127,11 @@ checkPropertyExists("containsMixinsAndOrCoreModOnly")
checkPropertyExists("usesShadowedDependencies")
checkPropertyExists("developmentEnvironmentUserName")
boolean noPublishedSources = project.findProperty("noPublishedSources") ? project.noPublishedSources.toBoolean() : false
boolean usesMixinDebug = project.findProperty('usesMixinDebug') ?: project.usesMixins.toBoolean()
boolean noPublishedSources = project.hasProperty("noPublishedSources") ? project.noPublishedSources.toBoolean() : false
boolean usesMixinDebug = project.hasProperty('usesMixinDebug') ?: project.usesMixins.toBoolean()
boolean forceEnableMixins = project.hasProperty('forceEnableMixins') ? project.forceEnableMixins.toBoolean() : false
String channel = project.hasProperty('channel') ? project.channel : 'stable'
String mappingsVersion = project.hasProperty('mappingsVersion') ? project.mappingsVersion : '12'
String javaSourceDir = "src/main/java/"
String scalaSourceDir = "src/main/scala/"
String kotlinSourceDir = "src/main/kotlin/"
@@ -112,53 +139,53 @@ String kotlinSourceDir = "src/main/kotlin/"
String targetPackageJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/")
String targetPackageScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/")
String targetPackageKotlin = kotlinSourceDir + modGroup.toString().replaceAll("\\.", "/")
if(!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) {
if (!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) {
throw new GradleException("Could not resolve \"modGroup\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin)
}
if(apiPackage) {
if (apiPackage) {
targetPackageJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/")
targetPackageScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/")
targetPackageKotlin = kotlinSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/")
if(!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) {
if (!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) {
throw new GradleException("Could not resolve \"apiPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin)
}
}
if(accessTransformersFile) {
if (accessTransformersFile) {
String targetFile = "src/main/resources/META-INF/" + accessTransformersFile
if(!getFile(targetFile).exists()) {
if (!getFile(targetFile).exists()) {
throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile)
}
}
if(usesMixins.toBoolean()) {
if(mixinsPackage.isEmpty() || mixinPlugin.isEmpty()) {
if (usesMixins.toBoolean()) {
if (mixinsPackage.isEmpty() || mixinPlugin.isEmpty()) {
throw new GradleException("\"mixinPlugin\" requires \"mixinsPackage\" and \"mixinPlugin\" to be set!")
}
targetPackageJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinsPackage.toString().replaceAll("\\.", "/")
targetPackageScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinsPackage.toString().replaceAll("\\.", "/")
targetPackageKotlin = kotlinSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinsPackage.toString().replaceAll("\\.", "/")
if(!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) {
throw new GradleException("Could not resolve \"mixinsPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin)
if (!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) {
throw new GradleException("Could not resolve \"mixinsPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin)
}
String targetFileJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinPlugin.toString().replaceAll("\\.", "/") + ".java"
String targetFileScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinPlugin.toString().replaceAll("\\.", "/") + ".scala"
String targetFileScalaJava = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinPlugin.toString().replaceAll("\\.", "/") + ".java"
String targetFileKotlin = kotlinSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinPlugin.toString().replaceAll("\\.", "/") + ".kt"
if(!(getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists() || getFile(targetFileKotlin).exists())) {
if (!(getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists() || getFile(targetFileKotlin).exists())) {
throw new GradleException("Could not resolve \"mixinPlugin\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava + " or " + targetFileKotlin)
}
}
if(coreModClass) {
if (coreModClass) {
String targetFileJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + coreModClass.toString().replaceAll("\\.", "/") + ".java"
String targetFileScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + coreModClass.toString().replaceAll("\\.", "/") + ".scala"
String targetFileScalaJava = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + coreModClass.toString().replaceAll("\\.", "/") + ".java"
String targetFileKotlin = kotlinSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + coreModClass.toString().replaceAll("\\.", "/") + ".kt"
if(!(getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists() || getFile(targetFileKotlin).exists())) {
if (!(getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists() || getFile(targetFileKotlin).exists())) {
throw new GradleException("Could not resolve \"coreModClass\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava + " or " + targetFileKotlin)
}
}
@@ -188,7 +215,7 @@ try {
catch (Exception ignored) {
out.style(Style.Failure).text(
'This mod must be version controlled by Git AND the repository must provide at least one tag,\n' +
'or the VERSION override must be set! ').style(Style.SuccessHeader).text('(Do NOT download from GitHub using the ZIP option, instead\n' +
'or the VERSION override must be set! ').style(Style.SuccessHeader).text('(Do NOT download from GitHub using the ZIP option, instead\n' +
'clone the repository, see ').style(Style.Info).text('https://gtnh.miraheze.org/wiki/Development').style(Style.SuccessHeader).println(' for details.)'
)
versionOverride = 'NO-GIT-TAG-SET'
@@ -199,22 +226,21 @@ ext {
modVersion = identifiedVersion
}
if(identifiedVersion == versionOverride) {
if (identifiedVersion == versionOverride) {
out.style(Style.Failure).text('Override version to ').style(Style.Identifier).text(modVersion).style(Style.Failure).println('!\7')
}
group = modGroup
if(project.hasProperty("customArchiveBaseName") && customArchiveBaseName) {
if (project.hasProperty("customArchiveBaseName") && customArchiveBaseName) {
archivesBaseName = customArchiveBaseName
}
else {
} else {
archivesBaseName = modId
}
def arguments = []
def jvmArguments = []
if (usesMixins.toBoolean()) {
if (usesMixins.toBoolean() || forceEnableMixins) {
arguments += [
"--tweakClass org.spongepowered.asm.launch.MixinTweaker"
]
@@ -233,16 +259,16 @@ minecraft {
if (replaceGradleTokenInFile) {
replaceIn replaceGradleTokenInFile
if(gradleTokenModId) {
if (gradleTokenModId) {
replace gradleTokenModId, modId
}
if(gradleTokenModName) {
if (gradleTokenModName) {
replace gradleTokenModName, modName
}
if(gradleTokenVersion) {
if (gradleTokenVersion) {
replace gradleTokenVersion, modVersion
}
if(gradleTokenGroupName) {
if (gradleTokenGroupName) {
replace gradleTokenGroupName, modGroup
}
}
@@ -251,7 +277,7 @@ minecraft {
args(arguments)
jvmArgs(jvmArguments)
if(developmentEnvironmentUserName) {
if (developmentEnvironmentUserName) {
args("--username", developmentEnvironmentUserName)
}
}
@@ -262,7 +288,7 @@ minecraft {
}
}
if(file('addon.gradle').exists()) {
if (file('addon.gradle').exists()) {
apply from: 'addon.gradle'
}
@@ -279,7 +305,7 @@ repositories {
name 'Overmind forge repo mirror'
url 'https://gregtech.overminddl1.com/'
}
if(usesMixins.toBoolean()) {
if (usesMixins.toBoolean() || forceEnableMixins) {
maven {
name 'sponge'
url 'https://repo.spongepowered.org/repository/maven-public'
@@ -291,11 +317,13 @@ repositories {
}
dependencies {
if(usesMixins.toBoolean()) {
if (usesMixins.toBoolean()) {
annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3')
annotationProcessor('com.google.guava:guava:24.1.1-jre')
annotationProcessor('com.google.code.gson:gson:2.8.6')
annotationProcessor('org.spongepowered:mixin:0.8-SNAPSHOT')
}
if (usesMixins.toBoolean() || forceEnableMixins) {
// using 0.8 to workaround a issue in 0.7 which fails mixin application
compile('com.github.GTNewHorizons:SpongePoweredMixin:0.7.12-GTNH') {
// Mixin includes a lot of dependencies that are too up-to-date
@@ -353,7 +381,10 @@ shadowJar {
}
minimize() // This will only allow shading for actually used classes
configurations = [project.configurations.shadowImplementation, project.configurations.shadowCompile]
configurations = [
project.configurations.shadowImplementation,
project.configurations.shadowCompile
]
dependsOn(relocateShadowJar)
}
@@ -368,38 +399,38 @@ jar {
attributes(getManifestAttributes())
}
if(usesShadowedDependencies.toBoolean()) {
if (usesShadowedDependencies.toBoolean()) {
dependsOn(shadowJar)
enabled = false
}
}
reobf {
if(usesMixins.toBoolean()) {
if (usesMixins.toBoolean()) {
addExtraSrgFile mixinSrg
}
}
afterEvaluate {
if(usesMixins.toBoolean()) {
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"
"-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) {
if (developmentEnvironmentUserName) {
arguments += [
"--username",
developmentEnvironmentUserName
"--username",
developmentEnvironmentUserName
]
}
@@ -414,9 +445,9 @@ runServer {
tasks.withType(JavaExec).configureEach {
javaLauncher.set(
javaToolchains.launcherFor {
languageVersion = projectJavaVersion
}
javaToolchains.launcherFor {
languageVersion = projectJavaVersion
}
)
}
@@ -424,6 +455,7 @@ processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
exclude("spotless.gradle")
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
@@ -436,43 +468,44 @@ processResources {
"modName": modName
}
if(usesMixins.toBoolean()) {
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() {
def manifestAttributes = [:]
if(!containsMixinsAndOrCoreModOnly.toBoolean() && (usesMixins.toBoolean() || coreModClass)) {
if (!containsMixinsAndOrCoreModOnly.toBoolean() && (usesMixins.toBoolean() || coreModClass)) {
manifestAttributes += ["FMLCorePluginContainsFMLMod": true]
}
if(accessTransformersFile) {
manifestAttributes += ["FMLAT" : accessTransformersFile.toString()]
if (accessTransformersFile) {
manifestAttributes += ["FMLAT": accessTransformersFile.toString()]
}
if(coreModClass) {
if (coreModClass) {
manifestAttributes += ["FMLCorePlugin": modGroup + "." + coreModClass]
}
if(usesMixins.toBoolean()) {
if (usesMixins.toBoolean()) {
manifestAttributes += [
"TweakClass" : "org.spongepowered.asm.launch.MixinTweaker",
"MixinConfigs" : "mixins." + modId + ".json",
"ForceLoadAsMod" : !containsMixinsAndOrCoreModOnly.toBoolean()
"TweakClass" : "org.spongepowered.asm.launch.MixinTweaker",
"MixinConfigs" : "mixins." + modId + ".json",
"ForceLoadAsMod": !containsMixinsAndOrCoreModOnly.toBoolean()
]
}
return manifestAttributes
}
task sourcesJar(type: Jar) {
from (sourceSets.main.allSource)
from (file("$projectDir/LICENSE"))
from(sourceSets.main.allSource)
from(file("$projectDir/LICENSE"))
getArchiveClassifier().set('sources')
}
@@ -491,7 +524,10 @@ task shadowDevJar(type: ShadowJar) {
}
minimize() // This will only allow shading for actually used classes
configurations = [project.configurations.shadowImplementation, project.configurations.shadowCompile]
configurations = [
project.configurations.shadowImplementation,
project.configurations.shadowCompile
]
}
task relocateShadowDevJar(type: ConfigureShadowRelocation) {
@@ -519,22 +555,22 @@ task devJar(type: Jar) {
attributes(getManifestAttributes())
}
if(usesShadowedDependencies.toBoolean()) {
if (usesShadowedDependencies.toBoolean()) {
dependsOn(circularResolverJar)
enabled = false
}
}
task apiJar(type: Jar) {
from (sourceSets.main.allSource) {
from(sourceSets.main.allSource) {
include modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/") + '/**'
}
from (sourceSets.main.output) {
from(sourceSets.main.output) {
include modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/") + '/**'
}
from (sourceSets.main.resources.srcDirs) {
from(sourceSets.main.resources.srcDirs) {
include("LICENSE")
}
@@ -542,11 +578,11 @@ task apiJar(type: Jar) {
}
artifacts {
if(!noPublishedSources) {
if (!noPublishedSources) {
archives sourcesJar
}
archives devJar
if(apiPackage) {
if (apiPackage) {
archives apiJar
}
}
@@ -564,10 +600,10 @@ publishing {
publications {
maven(MavenPublication) {
from components.java
if(usesShadowedDependencies.toBoolean()) {
if (usesShadowedDependencies.toBoolean()) {
artifact source: shadowJar, classifier: ""
}
if(!noPublishedSources) {
if (!noPublishedSources) {
artifact source: sourcesJar, classifier: "sources"
}
artifact source: usesShadowedDependencies.toBoolean() ? shadowDevJar : devJar, classifier: "dev"
@@ -582,8 +618,11 @@ publishing {
// remove extra garbage from minecraft and minecraftDeps configuration
pom.withXml {
def badArtifacts = [:].withDefault {[] as Set<String>}
for (configuration in [projectConfigs.minecraft, projectConfigs.minecraftDeps]) {
def badArtifacts = [:].withDefault { [] as Set<String> }
for (configuration in [
projectConfigs.minecraft,
projectConfigs.minecraftDeps
]) {
for (dependency in configuration.allDependencies) {
badArtifacts[dependency.group == null ? "" : dependency.group] += dependency.name
}
@@ -621,7 +660,7 @@ task updateBuildScript {
}
}
if (isNewBuildScriptVersionAvailable(projectDir.toString())) {
if (!project.getGradle().startParameter.isOffline() && isNewBuildScriptVersionAvailable(projectDir.toString())) {
if (autoUpdateBuildScript.toBoolean()) {
performBuildScriptUpdate(projectDir.toString())
} else {
@@ -630,7 +669,40 @@ if (isNewBuildScriptVersionAvailable(projectDir.toString())) {
}
static URL availableBuildScriptUrl() {
new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/main/build.gradle")
new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/build.gradle")
}
static URL exampleSettingsGradleUrl() {
new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/settings.gradle.example")
}
static URL exampleGitAttributesUrl() {
new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/.gitattributes")
}
boolean verifyGitAttributes() {
def gitattributesFile = getFile(".gitattributes")
if (!gitattributesFile.exists()) {
println("Downloading default .gitattributes")
exampleGitAttributesUrl().withInputStream { i -> gitattributesFile.withOutputStream { it << i } }
exec {
workingDir '.'
commandLine 'git', 'add', '--renormalize', '.'
}
return true
}
return false
}
boolean verifySettingsGradle() {
def settingsFile = getFile("settings.gradle")
if (!settingsFile.exists()) {
println("Downloading default settings.gradle")
exampleSettingsGradleUrl().withInputStream { i -> settingsFile.withOutputStream { it << i } }
return true
}
return false
}
boolean performBuildScriptUpdate(String projectDir) {
@@ -638,6 +710,10 @@ boolean performBuildScriptUpdate(String projectDir) {
def buildscriptFile = getFile("build.gradle")
availableBuildScriptUrl().withInputStream { i -> buildscriptFile.withOutputStream { it << i } }
out.style(Style.Success).print("Build script updated. Please REIMPORT the project or RESTART your IDE!")
boolean settingsupdated = verifySettingsGradle()
settingsupdated = verifyGitAttributes() || settingsupdated
if (settingsupdated)
throw new GradleException("Settings has been updated, please re-run task.")
return true
}
return false
@@ -657,7 +733,7 @@ boolean isNewBuildScriptVersionAvailable(String projectDir) {
static String getVersionHash(String buildScriptContent) {
String versionLine = buildScriptContent.find("^//version: [a-z0-9]*")
if(versionLine != null) {
if (versionLine != null) {
return versionLine.split(": ").last()
}
return ""
@@ -668,7 +744,103 @@ configure(updateBuildScript) {
description = 'Updates the build script to the latest version'
}
// Deobfuscation
// Parameter Deobfuscation
task deobfParams {
doLast {
String mcpDir = "$project.gradle.gradleUserHomeDir/caches/minecraft/de/oceanlabs/mcp/mcp_$channel/$mappingsVersion"
String mcpZIP = "$mcpDir/mcp_$channel-$mappingsVersion-${minecraftVersion}.zip"
String paramsCSV = "$mcpDir/params.csv"
download.run {
src "https://maven.minecraftforge.net/de/oceanlabs/mcp/mcp_$channel/$mappingsVersion-$minecraftVersion/mcp_$channel-$mappingsVersion-${minecraftVersion}.zip"
dest mcpZIP
overwrite false
}
if (!file(paramsCSV).exists()) {
println("Extracting MCP archive ...")
unzip(mcpZIP, mcpDir)
}
println("Parsing params.csv ...")
Map<String, String> params = new HashMap<>()
Files.lines(Paths.get(paramsCSV)).forEach { line ->
String[] cells = line.split(",")
if (cells.length > 2 && cells[0].matches("p_i?\\d+_\\d+_")) {
params.put(cells[0], cells[1])
}
}
out.style(Style.Success).println("Modified ${replaceParams(file("$projectDir/src/main/java"), params)} files!")
out.style(Style.Failure).println("Don't forget to verify that the code still works as before!\n It could be broken due to duplicate variables existing now\n or parameters taking priority over other variables.")
}
}
static int replaceParams(File file, Map<String, String> params) {
int fileCount = 0
if (file.isDirectory()) {
for (File f : file.listFiles()) {
fileCount += replaceParams(f, params)
}
return fileCount
}
println("Visiting ${file.getName()} ...")
try {
String content = new String(Files.readAllBytes(file.toPath()))
int hash = content.hashCode()
params.forEach { key, value ->
content = content.replaceAll(key, value)
}
if (hash != content.hashCode()) {
Files.write(file.toPath(), content.getBytes("UTF-8"))
return 1
}
} catch (Exception e) {
e.printStackTrace()
}
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) {
try {
@@ -677,42 +849,57 @@ def deobf(String sourceURL) {
//get rid of directories:
int lastSlash = fileName.lastIndexOf("/")
if(lastSlash > 0) {
if (lastSlash > 0) {
fileName = fileName.substring(lastSlash + 1)
}
//get rid of extension:
if(fileName.endsWith(".jar")) {
if (fileName.endsWith(".jar") || fileName.endsWith(".litemod")) {
fileName = fileName.substring(0, fileName.lastIndexOf("."))
}
String hostName = url.getHost()
if(hostName.startsWith("www.")) {
if (hostName.startsWith("www.")) {
hostName = hostName.substring(4)
}
List parts = Arrays.asList(hostName.split("\\."))
Collections.reverse(parts)
hostName = String.join(".", parts)
return deobf(sourceURL, hostName + "/" + fileName)
} catch(Exception e) {
return deobf(sourceURL, "deobf/" + String.valueOf(sourceURL.hashCode()))
return deobf(sourceURL, "$hostName/$fileName")
} catch (Exception e) {
return deobf(sourceURL, "deobf/${sourceURL.hashCode()}")
}
}
// 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 fileName) {
String cacheDir = System.getProperty("user.home") + "/.gradle/caches/"
String bon2Dir = cacheDir + "forge_gradle/deobf"
String bon2File = bon2Dir + "/BON2-2.5.0.jar"
String obfFile = cacheDir + "modules-2/files-2.1/" + fileName + ".jar"
String deobfFile = cacheDir + "modules-2/files-2.1/" + fileName + "-deobf.jar"
def deobf(String sourceURL, String rawFileName) {
String bon2Version = "2.5.1"
String fileName = URLDecoder.decode(rawFileName, "UTF-8")
String cacheDir = "$project.gradle.gradleUserHomeDir/caches"
String bon2Dir = "$cacheDir/forge_gradle/deobf"
String bon2File = "$bon2Dir/BON2-${bon2Version}.jar"
String obfFile = "$cacheDir/modules-2/files-2.1/${fileName}.jar"
String deobfFile = "$cacheDir/modules-2/files-2.1/${fileName}-deobf.jar"
if(file(deobfFile).exists()) {
if (file(deobfFile).exists()) {
return files(deobfFile)
}
String mappingsVer
String remoteMappings = project.hasProperty('remoteMappings') ? project.remoteMappings : 'https://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/'
if (remoteMappings) {
String id = "${forgeVersion.split("\\.")[3]}-$minecraftVersion"
String mappingsZIP = "$cacheDir/forge_gradle/maven_downloader/de/oceanlabs/mcp/mcp_snapshot_nodoc/$id/mcp_snapshot_nodoc-${id}.zip"
zipMappings(mappingsZIP, remoteMappings, bon2Dir)
mappingsVer = "snapshot_$id"
} else {
mappingsVer = "${channel}_$mappingsVersion"
}
download.run {
src 'https://github.com/GTNewHorizons/BON2/releases/download/2.5.0/BON2-2.5.0.CUSTOM-all.jar'
src "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases/com/github/parker8283/BON2/$bon2Version-CUSTOM/BON2-$bon2Version-CUSTOM-all.jar"
dest bon2File
quiet true
overwrite false
@@ -726,14 +913,48 @@ def deobf(String sourceURL, String fileName) {
}
exec {
commandLine 'java', '-jar', bon2File, '--inputJar', obfFile, '--outputJar', deobfFile, '--mcVer', '1.7.10', '--mappingsVer', 'stable_12', '--notch'
commandLine 'java', '-jar', bon2File, '--inputJar', obfFile, '--outputJar', deobfFile, '--mcVer', minecraftVersion, '--mappingsVer', mappingsVer, '--notch'
workingDir bon2Dir
standardOutput = new ByteArrayOutputStream()
standardOutput = new FileOutputStream("${deobfFile}.log")
}
return files(deobfFile)
}
def zipMappings(String zipPath, String url, String bon2Dir) {
File zipFile = new File(zipPath)
if (zipFile.exists()) {
return
}
String fieldsCache = "$bon2Dir/data/fields.csv"
String methodsCache = "$bon2Dir/data/methods.csv"
download.run {
src "${url}fields.csv"
dest fieldsCache
quiet true
}
download.run {
src "${url}methods.csv"
dest methodsCache
quiet true
}
zipFile.getParentFile().mkdirs()
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile))
zos.putNextEntry(new ZipEntry("fields.csv"))
Files.copy(Paths.get(fieldsCache), zos)
zos.closeEntry()
zos.putNextEntry(new ZipEntry("methods.csv"))
Files.copy(Paths.get(methodsCache), zos)
zos.closeEntry()
zos.close()
}
// Helper methods
def checkPropertyExists(String propertyName) {
+10 -10
View File
@@ -1,18 +1,18 @@
// Add your dependencies here
dependencies {
compile('com.github.GTNewHorizons:CodeChickenLib:1.1.5.3:dev')
compile('com.github.GTNewHorizons:NotEnoughItems:2.2.12-GTNH:dev')
compile('curse.maven:cofh-core-69162:2388751')
compile('com.github.GTNewHorizons:CodeChickenLib:1.1.5.5:dev')
compile('com.github.GTNewHorizons:NotEnoughItems:2.2.33-GTNH:dev')
compile('curse.maven:cofh-core-69162:2388751')
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.27:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:ForgeMultipart:1.2.7:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.40.34:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:Jabba:1.2.13:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:inventory-tweaks:1.5.14:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:OpenComputers:1.7.5.23-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:waila:1.5.19:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.13.6:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:ForgeMultipart:1.2.8:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.18:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:Jabba:1.2.21:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:inventory-tweaks:1.5.15:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:OpenComputers:1.7.5.32-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:waila:1.5.21:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.13.10:api') {transitive = false}
compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:api')
compileOnly('curse.maven:minefactory-reloaded-66672:2366150')
+10
View File
@@ -0,0 +1,10 @@
plugins {
id 'com.diffplug.blowdryerSetup' version '1.6.0'
}
apply plugin: 'com.diffplug.blowdryerSetup'
blowdryerSetup {
github('GTNewHorizons/ExampleMod1.7.10', 'tag', '0.1.5')
//devLocal '.' // Use this when testing config updates locally
}
+29 -40
View File
@@ -23,56 +23,45 @@
package appeng.api;
import appeng.api.exceptions.CoreInaccessibleException;
import java.lang.reflect.Field;
/**
* Entry point for api.
* <p>
* Available IMCs:
*/
public enum AEApi
{
;
public enum AEApi {
;
private static final String CORE_API_FQN = "appeng.core.Api";
private static final String CORE_API_FIELD = "INSTANCE";
private static final IAppEngApi HELD_API;
private static final String CORE_API_FQN = "appeng.core.Api";
private static final String CORE_API_FIELD = "INSTANCE";
private static final IAppEngApi HELD_API;
static
{
try
{
final Class<?> apiClass = Class.forName( CORE_API_FQN );
final Field apiField = apiClass.getField( CORE_API_FIELD );
static {
try {
final Class<?> apiClass = Class.forName(CORE_API_FQN);
final Field apiField = apiClass.getField(CORE_API_FIELD);
HELD_API = (IAppEngApi) apiField.get( apiClass );
}
catch( final ClassNotFoundException e )
{
throw new CoreInaccessibleException( "AE2 API tried to access the " + CORE_API_FQN + " class, without it being declared." );
}
catch( final NoSuchFieldException e )
{
throw new CoreInaccessibleException( "AE2 API tried to access the " + CORE_API_FIELD + " field in " + CORE_API_FQN + " without it being declared." );
}
catch( final IllegalAccessException e )
{
throw new CoreInaccessibleException( "AE2 API tried to access the " + CORE_API_FIELD + " field in " + CORE_API_FQN + " without enough access permissions." );
}
}
/**
* API Entry Point.
*
* @return the {@link IAppEngApi}
*/
public static IAppEngApi instance()
{
return HELD_API;
}
HELD_API = (IAppEngApi) apiField.get(apiClass);
} catch (final ClassNotFoundException e) {
throw new CoreInaccessibleException(
"AE2 API tried to access the " + CORE_API_FQN + " class, without it being declared.");
} catch (final NoSuchFieldException e) {
throw new CoreInaccessibleException("AE2 API tried to access the " + CORE_API_FIELD + " field in "
+ CORE_API_FQN + " without it being declared.");
} catch (final IllegalAccessException e) {
throw new CoreInaccessibleException("AE2 API tried to access the " + CORE_API_FIELD + " field in "
+ CORE_API_FQN + " without enough access permissions.");
}
}
/**
* API Entry Point.
*
* @return the {@link IAppEngApi}
*/
public static IAppEngApi instance() {
return HELD_API;
}
}
+57 -60
View File
@@ -23,7 +23,6 @@
package appeng.api;
import appeng.api.definitions.*;
import appeng.api.exceptions.FailedConnection;
import appeng.api.features.IRegistryContainer;
@@ -33,72 +32,70 @@ import appeng.api.networking.IGridNode;
import appeng.api.parts.IPartHelper;
import appeng.api.storage.IStorageHelper;
public interface IAppEngApi {
public interface IAppEngApi
{
/**
* @return Registry Container for the numerous registries in AE2.
*/
IRegistryContainer registries();
/**
* @return Registry Container for the numerous registries in AE2.
*/
IRegistryContainer registries();
/**
* @return helper for working with storage data types.
*/
IStorageHelper storage();
/**
* @return helper for working with storage data types.
*/
IStorageHelper storage();
/**
* @return helper for working with grids, and buses.
*/
IPartHelper partHelper();
/**
* @return helper for working with grids, and buses.
*/
IPartHelper partHelper();
/**
* @return an accessible list of all of AE's Items
* @deprecated use {@link appeng.api.definitions.IDefinitions#items()}
*/
@Deprecated
Items items();
/**
* @return an accessible list of all of AE's Items
* @deprecated use {@link appeng.api.definitions.IDefinitions#items()}
*/
@Deprecated
Items items();
/**
* @return an accessible list of all of AE's materials; materials are items
* @deprecated use {@link appeng.api.definitions.IDefinitions#materials()}
*/
@Deprecated
Materials materials();
/**
* @return an accessible list of all of AE's materials; materials are items
* @deprecated use {@link appeng.api.definitions.IDefinitions#materials()}
*/
@Deprecated
Materials materials();
/**
* @return an accessible list of all of AE's blocks
* @deprecated use {@link appeng.api.definitions.IDefinitions#blocks()}
*/
@Deprecated
Blocks blocks();
/**
* @return an accessible list of all of AE's blocks
* @deprecated use {@link appeng.api.definitions.IDefinitions#blocks()}
*/
@Deprecated
Blocks blocks();
/**
* @return an accessible list of all of AE's parts, parts are items
* @deprecated use {@link appeng.api.definitions.IDefinitions#parts()}
*/
@Deprecated
Parts parts();
/**
* @return an accessible list of all of AE's parts, parts are items
* @deprecated use {@link appeng.api.definitions.IDefinitions#parts()}
*/
@Deprecated
Parts parts();
/**
* @return an accessible list of all AE definitions
*/
IDefinitions definitions();
/**
* @return an accessible list of all AE definitions
*/
IDefinitions definitions();
/**
* create a grid node for your {@link appeng.api.networking.IGridHost}
*
* @param block grid block
* @return grid node of block
*/
IGridNode createGridNode(IGridBlock block);
/**
* create a grid node for your {@link appeng.api.networking.IGridHost}
*
* @param block grid block
* @return grid node of block
*/
IGridNode createGridNode( IGridBlock block );
/**
* create a connection between two {@link appeng.api.networking.IGridNode}
*
* @param a to be connected gridnode
* @param b to be connected gridnode
* @throws appeng.api.exceptions.FailedConnection
*/
IGridConnection createGridConnection( IGridNode a, IGridNode b ) throws FailedConnection;
}
/**
* create a connection between two {@link appeng.api.networking.IGridNode}
*
* @param a to be connected gridnode
* @param b to be connected gridnode
* @throws appeng.api.exceptions.FailedConnection
*/
IGridConnection createGridConnection(IGridNode a, IGridNode b) throws FailedConnection;
}
@@ -23,51 +23,45 @@
package appeng.api.config;
public enum AccessRestriction {
NO_ACCESS(0),
READ(1),
WRITE(2),
READ_WRITE(3);
public enum AccessRestriction
{
NO_ACCESS( 0 ), READ( 1 ), WRITE( 2 ), READ_WRITE( 3 );
private final int permissionBit;
private final int permissionBit;
AccessRestriction(final int v) {
this.permissionBit = v;
}
AccessRestriction( final int v )
{
this.permissionBit = v;
}
public boolean hasPermission(final AccessRestriction ar) {
return (this.permissionBit & ar.permissionBit) == ar.permissionBit;
}
public boolean hasPermission( final AccessRestriction ar )
{
return ( this.permissionBit & ar.permissionBit ) == ar.permissionBit;
}
public AccessRestriction restrictPermissions(final AccessRestriction ar) {
return this.getPermByBit(this.permissionBit & ar.permissionBit);
}
public AccessRestriction restrictPermissions( final AccessRestriction ar )
{
return this.getPermByBit( this.permissionBit & ar.permissionBit );
}
private AccessRestriction getPermByBit(final int bit) {
switch (bit) {
default:
case 0:
return NO_ACCESS;
case 1:
return READ;
case 2:
return WRITE;
case 3:
return READ_WRITE;
}
}
private AccessRestriction getPermByBit( final int bit )
{
switch( bit )
{
default:
case 0:
return NO_ACCESS;
case 1:
return READ;
case 2:
return WRITE;
case 3:
return READ_WRITE;
}
}
public AccessRestriction addPermissions(final AccessRestriction ar) {
return this.getPermByBit(this.permissionBit | ar.permissionBit);
}
public AccessRestriction addPermissions( final AccessRestriction ar )
{
return this.getPermByBit( this.permissionBit | ar.permissionBit );
}
public AccessRestriction removePermissions( final AccessRestriction ar )
{
return this.getPermByBit( this.permissionBit & ( ~ar.permissionBit ) );
}
}
public AccessRestriction removePermissions(final AccessRestriction ar) {
return this.getPermByBit(this.permissionBit & (~ar.permissionBit));
}
}
@@ -23,16 +23,20 @@
package appeng.api.config;
public enum ActionItems
{
WRENCH, CLOSE, STASH, ENCODE, SUBSTITUTION, SLOT_CONFIG, ORE_FILTER, DOUBLE,
MOLECULAR_ASSEMBLEERS_ON,
MOLECULAR_ASSEMBLEERS_OFF,
TOGGLE_SHOW_FULL_INTERFACES_ON,
TOGGLE_SHOW_FULL_INTERFACES_OFF,
TOGGLE_SHOW_ONLY_INVALID_PATTERN_ON,
TOGGLE_SHOW_ONLY_INVALID_PATTERN_OFF,
HIGHLIGHT_INTERFACE
}
public enum ActionItems {
WRENCH,
CLOSE,
STASH,
ENCODE,
SUBSTITUTION,
SLOT_CONFIG,
ORE_FILTER,
DOUBLE,
MOLECULAR_ASSEMBLEERS_ON,
MOLECULAR_ASSEMBLEERS_OFF,
TOGGLE_SHOW_FULL_INTERFACES_ON,
TOGGLE_SHOW_FULL_INTERFACES_OFF,
TOGGLE_SHOW_ONLY_INVALID_PATTERN_ON,
TOGGLE_SHOW_ONLY_INVALID_PATTERN_OFF,
HIGHLIGHT_INTERFACE
}
@@ -23,16 +23,14 @@
package appeng.api.config;
public enum Actionable {
/**
* Perform the intended action.
*/
MODULATE,
public enum Actionable
{
/**
* Perform the intended action.
*/
MODULATE,
/**
* Pretend to perform the action.
*/
SIMULATE
/**
* Pretend to perform the action.
*/
SIMULATE
}
@@ -23,16 +23,12 @@
package appeng.api.config;
public enum CondenserOutput {
TRASH, // 0
public enum CondenserOutput
{
MATTER_BALLS, // 256
TRASH, // 0
SINGULARITY; // 250,000
MATTER_BALLS, // 256
SINGULARITY; // 250,000
public int requiredPower = 0;
}
public int requiredPower = 0;
}
@@ -23,8 +23,7 @@
package appeng.api.config;
public enum CopyMode
{
CLEAR_ON_REMOVE, KEEP_ON_REMOVE
public enum CopyMode {
CLEAR_ON_REMOVE,
KEEP_ON_REMOVE
}
@@ -23,8 +23,8 @@
package appeng.api.config;
public enum FullnessMode
{
EMPTY, HALF, FULL
}
public enum FullnessMode {
EMPTY,
HALF,
FULL
}
+17 -18
View File
@@ -23,24 +23,23 @@
package appeng.api.config;
public enum FuzzyMode {
// Note that percentage damaged, is the inverse of percentage durability.
IGNORE_ALL(-1),
PERCENT_99(0),
PERCENT_75(25),
PERCENT_50(50),
PERCENT_25(75);
public enum FuzzyMode
{
// Note that percentage damaged, is the inverse of percentage durability.
IGNORE_ALL( -1 ), PERCENT_99( 0 ), PERCENT_75( 25 ), PERCENT_50( 50 ), PERCENT_25( 75 );
public final float breakPoint;
public final float percentage;
public final float breakPoint;
public final float percentage;
FuzzyMode(final float p) {
this.percentage = p;
this.breakPoint = p / 100.0f;
}
FuzzyMode( final float p )
{
this.percentage = p;
this.breakPoint = p / 100.0f;
}
public int calculateBreakPoint( final int maxDamage )
{
return (int) ( ( this.percentage * maxDamage ) / 100.0f );
}
}
public int calculateBreakPoint(final int maxDamage) {
return (int) ((this.percentage * maxDamage) / 100.0f);
}
}
@@ -23,8 +23,7 @@
package appeng.api.config;
public enum IncludeExclude
{
WHITELIST, BLACKLIST
}
public enum IncludeExclude {
WHITELIST,
BLACKLIST
}
@@ -1,6 +1,7 @@
package appeng.api.config;
public enum InsertionMode
{
DEFAULT, PREFER_EMPTY, ONLY_EMPTY;
public enum InsertionMode {
DEFAULT,
PREFER_EMPTY,
ONLY_EMPTY;
}
@@ -23,8 +23,7 @@
package appeng.api.config;
public enum ItemSubstitution
{
ENABLED, DISABLED
public enum ItemSubstitution {
ENABLED,
DISABLED
}
@@ -23,12 +23,8 @@
package appeng.api.config;
public enum LevelEmitterMode {
STORED_AMOUNT,
public enum LevelEmitterMode
{
STORED_AMOUNT,
STORABLE_AMOUNT
}
STORABLE_AMOUNT
}
@@ -23,12 +23,8 @@
package appeng.api.config;
public enum LevelType {
ITEM_LEVEL,
public enum LevelType
{
ITEM_LEVEL,
ENERGY_LEVEL
}
ENERGY_LEVEL
}
@@ -23,8 +23,4 @@
package appeng.api.config;
public enum ModSettings
{
}
public enum ModSettings {}
@@ -23,14 +23,10 @@
package appeng.api.config;
public enum NetworkEmitterMode {
POWER_LEVEL,
public enum NetworkEmitterMode
{
BOOTING,
POWER_LEVEL,
BOOTING,
CHANNEL_ERROR
}
CHANNEL_ERROR
}
@@ -23,8 +23,7 @@
package appeng.api.config;
public enum OperationMode
{
FILL, EMPTY
}
public enum OperationMode {
FILL,
EMPTY
}
@@ -23,8 +23,8 @@
package appeng.api.config;
public enum OutputMode
{
EXPORT_ONLY, EXPORT_OR_CRAFT, CRAFT_ONLY
public enum OutputMode {
EXPORT_ONLY,
EXPORT_OR_CRAFT,
CRAFT_ONLY
}
@@ -1,5 +1,6 @@
package appeng.api.config;
public enum PatternSlotConfig {
C_16_4, C_4_16
C_16_4,
C_4_16
}
@@ -23,23 +23,20 @@
package appeng.api.config;
public enum PowerMultiplier {
ONE,
CONFIG;
public enum PowerMultiplier
{
ONE, CONFIG;
/**
* please do not edit this value, it is set when AE loads its config files.
*/
public double multiplier = 1.0;
/**
* please do not edit this value, it is set when AE loads its config files.
*/
public double multiplier = 1.0;
public double multiply(final double in) {
return in * this.multiplier;
}
public double multiply( final double in )
{
return in * this.multiplier;
}
public double divide( final double in )
{
return in / this.multiplier;
}
public double divide(final double in) {
return in / this.multiplier;
}
}
+32 -37
View File
@@ -23,43 +23,38 @@
package appeng.api.config;
public enum PowerUnits {
AE("gui.appliedenergistics2.units.appliedenergstics"), // Native Units - AE Energy
EU("gui.appliedenergistics2.units.ic2"), // IndustrialCraft 2 - Energy Units
WA("gui.appliedenergistics2.units.rotarycraft"), // RotaryCraft - Watts
RF("gui.appliedenergistics2.units.thermalexpansion"), // ThermalExpansion - Redstone Flux
MK("gui.appliedenergistics2.units.mekanism"); // Mekanism - Joules
public enum PowerUnits
{
AE( "gui.appliedenergistics2.units.appliedenergstics" ), // Native Units - AE Energy
EU( "gui.appliedenergistics2.units.ic2" ), // IndustrialCraft 2 - Energy Units
WA( "gui.appliedenergistics2.units.rotarycraft" ), // RotaryCraft - Watts
RF( "gui.appliedenergistics2.units.thermalexpansion" ), // ThermalExpansion - Redstone Flux
MK( "gui.appliedenergistics2.units.mekanism" ); // Mekanism - Joules
/**
* unlocalized name for the power unit.
*/
public final String unlocalizedName;
/**
* please do not edit this value, it is set when AE loads its config files.
*/
public double conversionRatio = 1.0;
/**
* unlocalized name for the power unit.
*/
public final String unlocalizedName;
/**
* please do not edit this value, it is set when AE loads its config files.
*/
public double conversionRatio = 1.0;
PowerUnits(final String un) {
this.unlocalizedName = un;
}
PowerUnits( final String un )
{
this.unlocalizedName = un;
}
/**
* do power conversion using AE's conversion rates.
* <p>
* Example: PowerUnits.EU.convertTo( PowerUnits.AE, 32 );
* <p>
* will normally returns 64, as it will convert the EU, to AE with AE's power settings.
*
* @param target target power unit
* @param value value
* @return value converted to target units, from this units.
*/
public double convertTo( final PowerUnits target, final double value )
{
return ( value * this.conversionRatio ) / target.conversionRatio;
}
}
/**
* do power conversion using AE's conversion rates.
* <p>
* Example: PowerUnits.EU.convertTo( PowerUnits.AE, 32 );
* <p>
* will normally returns 64, as it will convert the EU, to AE with AE's power settings.
*
* @param target target power unit
* @param value value
* @return value converted to target units, from this units.
*/
public double convertTo(final PowerUnits target, final double value) {
return (value * this.conversionRatio) / target.conversionRatio;
}
}
@@ -23,8 +23,9 @@
package appeng.api.config;
public enum RedstoneMode
{
IGNORE, LOW_SIGNAL, HIGH_SIGNAL, SIGNAL_PULSE
}
public enum RedstoneMode {
IGNORE,
LOW_SIGNAL,
HIGH_SIGNAL,
SIGNAL_PULSE
}
@@ -23,8 +23,9 @@
package appeng.api.config;
public enum RelativeDirection
{
LEFT, RIGHT, UP, DOW
}
public enum RelativeDirection {
LEFT,
RIGHT,
UP,
DOW
}
@@ -23,8 +23,8 @@
package appeng.api.config;
public enum SchedulingMode
{
DEFAULT, ROUNDROBIN, RANDOM
public enum SchedulingMode {
DEFAULT,
ROUNDROBIN,
RANDOM
}
@@ -23,13 +23,9 @@
package appeng.api.config;
public enum SearchBoxMode
{
MANUAL_SEARCH, // -------
AUTOSEARCH, // autofocus
NEI_AUTOSEARCH, // autofocus + NEISync
NEI_MANUAL_SEARCH // NEISync
public enum SearchBoxMode {
MANUAL_SEARCH, // -------
AUTOSEARCH, // autofocus
NEI_AUTOSEARCH, // autofocus + NEISync
NEI_MANUAL_SEARCH // NEISync
}
@@ -23,49 +23,46 @@
package appeng.api.config;
/**
* Represent the security systems basic permissions, these are not for anti-griefing, they are part of the mod as a
* gameplay feature.
*/
public enum SecurityPermissions
{
/**
* required to insert items into the network via terminal ( also used for machines based on the owner of the
* network, which is determined by its Security Block. )
*/
INJECT,
public enum SecurityPermissions {
/**
* required to insert items into the network via terminal ( also used for machines based on the owner of the
* network, which is determined by its Security Block. )
*/
INJECT,
/**
* required to extract items from the network via terminal ( also used for machines based on the owner of the
* network, which is determined by its Security Block. )
*/
EXTRACT,
/**
* required to extract items from the network via terminal ( also used for machines based on the owner of the
* network, which is determined by its Security Block. )
*/
EXTRACT,
/**
* required to request crafting from the network via terminal.
*/
CRAFT,
/**
* required to request crafting from the network via terminal.
*/
CRAFT,
/**
* required to modify automation, and make modifications to the networks physical layout.
*/
BUILD,
/**
* required to modify automation, and make modifications to the networks physical layout.
*/
BUILD,
/**
* required to modify the security blocks settings.
*/
SECURITY;
/**
* required to modify the security blocks settings.
*/
SECURITY;
private final String unlocalizedName = "gui.appliedenergistics2.security." + this.name().toLowerCase();
private final String unlocalizedName =
"gui.appliedenergistics2.security." + this.name().toLowerCase();
public String getUnlocalizedName()
{
return this.unlocalizedName + ".name";
}
public String getUnlocalizedName() {
return this.unlocalizedName + ".name";
}
public String getUnlocalizedTip()
{
return this.unlocalizedName + ".tip";
}
public String getUnlocalizedTip() {
return this.unlocalizedName + ".tip";
}
}
+41 -34
View File
@@ -23,58 +23,65 @@
package appeng.api.config;
import javax.annotation.Nonnull;
import java.util.EnumSet;
import javax.annotation.Nonnull;
public enum Settings {
LEVEL_EMITTER_MODE(EnumSet.allOf(LevelEmitterMode.class)),
public enum Settings
{
LEVEL_EMITTER_MODE( EnumSet.allOf( LevelEmitterMode.class ) ),
REDSTONE_EMITTER(EnumSet.of(RedstoneMode.HIGH_SIGNAL, RedstoneMode.LOW_SIGNAL)),
REDSTONE_CONTROLLED(EnumSet.allOf(RedstoneMode.class)),
REDSTONE_EMITTER( EnumSet.of( RedstoneMode.HIGH_SIGNAL, RedstoneMode.LOW_SIGNAL ) ), REDSTONE_CONTROLLED( EnumSet.allOf( RedstoneMode.class ) ),
CONDENSER_OUTPUT(EnumSet.allOf(CondenserOutput.class)),
CONDENSER_OUTPUT( EnumSet.allOf( CondenserOutput.class ) ),
POWER_UNITS(EnumSet.allOf(PowerUnits.class)),
ACCESS(EnumSet.of(AccessRestriction.READ_WRITE, AccessRestriction.READ, AccessRestriction.WRITE)),
POWER_UNITS( EnumSet.allOf( PowerUnits.class ) ), ACCESS( EnumSet.of( AccessRestriction.READ_WRITE, AccessRestriction.READ, AccessRestriction.WRITE ) ),
SORT_DIRECTION(EnumSet.allOf(SortDir.class)),
SORT_BY(EnumSet.allOf(SortOrder.class)),
SORT_DIRECTION( EnumSet.allOf( SortDir.class ) ), SORT_BY( EnumSet.allOf( SortOrder.class ) ),
SEARCH_TOOLTIPS(EnumSet.of(YesNo.YES, YesNo.NO)),
VIEW_MODE(EnumSet.allOf(ViewItems.class)),
SEARCH_MODE(EnumSet.allOf(SearchBoxMode.class)),
SEARCH_TOOLTIPS( EnumSet.of( YesNo.YES, YesNo.NO ) ), VIEW_MODE( EnumSet.allOf( ViewItems.class ) ), SEARCH_MODE( EnumSet.allOf( SearchBoxMode.class ) ),
ACTIONS(EnumSet.allOf(ActionItems.class)),
IO_DIRECTION(EnumSet.of(RelativeDirection.LEFT, RelativeDirection.RIGHT)),
ACTIONS( EnumSet.allOf( ActionItems.class ) ), IO_DIRECTION( EnumSet.of( RelativeDirection.LEFT, RelativeDirection.RIGHT ) ),
BLOCK(EnumSet.of(YesNo.YES, YesNo.NO)),
OPERATION_MODE(EnumSet.allOf(OperationMode.class)),
BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) ), OPERATION_MODE( EnumSet.allOf( OperationMode.class ) ),
FULLNESS_MODE(EnumSet.allOf(FullnessMode.class)),
CRAFT_ONLY(EnumSet.of(YesNo.YES, YesNo.NO)),
FULLNESS_MODE( EnumSet.allOf( FullnessMode.class ) ), CRAFT_ONLY( EnumSet.of( YesNo.YES, YesNo.NO ) ),
FUZZY_MODE(EnumSet.allOf(FuzzyMode.class)),
LEVEL_TYPE(EnumSet.allOf(LevelType.class)),
FUZZY_MODE( EnumSet.allOf( FuzzyMode.class ) ), LEVEL_TYPE( EnumSet.allOf( LevelType.class ) ),
TERMINAL_STYLE(EnumSet.of(TerminalStyle.TALL, TerminalStyle.SMALL)),
COPY_MODE(EnumSet.allOf(CopyMode.class)),
TERMINAL_STYLE( EnumSet.of( TerminalStyle.TALL, TerminalStyle.SMALL ) ), COPY_MODE( EnumSet.allOf( CopyMode.class ) ),
INTERFACE_TERMINAL(EnumSet.of(YesNo.YES, YesNo.NO)),
CRAFT_VIA_REDSTONE(EnumSet.of(YesNo.YES, YesNo.NO)),
INTERFACE_TERMINAL( EnumSet.of( YesNo.YES, YesNo.NO ) ), CRAFT_VIA_REDSTONE( EnumSet.of( YesNo.YES, YesNo.NO ) ),
STORAGE_FILTER(EnumSet.allOf(StorageFilter.class)),
PLACE_BLOCK(EnumSet.of(YesNo.YES, YesNo.NO)),
STORAGE_FILTER( EnumSet.allOf( StorageFilter.class ) ), PLACE_BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) ),
SCHEDULING_MODE(EnumSet.allOf(SchedulingMode.class)),
SAVE_SEARCH(EnumSet.of(YesNo.YES, YesNo.NO)),
CRAFTING_STATUS(EnumSet.allOf(CraftingStatus.class)),
SCHEDULING_MODE( EnumSet.allOf( SchedulingMode.class ) ), SAVE_SEARCH( EnumSet.of( YesNo.YES, YesNo.NO ) ), CRAFTING_STATUS( EnumSet.allOf( CraftingStatus.class ) ),
INSERTION_MODE(EnumSet.allOf(InsertionMode.class));
INSERTION_MODE( EnumSet.allOf( InsertionMode.class ) );
private final EnumSet<? extends Enum<?>> values;
private final EnumSet<? extends Enum<?>> values;
Settings(@Nonnull final EnumSet<? extends Enum<?>> possibleOptions) {
if (possibleOptions.isEmpty()) {
throw new IllegalArgumentException("Tried to instantiate an empty setting.");
}
Settings( @Nonnull final EnumSet<? extends Enum<?>> possibleOptions )
{
if( possibleOptions.isEmpty() )
{
throw new IllegalArgumentException( "Tried to instantiate an empty setting." );
}
this.values = possibleOptions;
}
public EnumSet<? extends Enum<?>> getPossibleValues()
{
return this.values;
}
this.values = possibleOptions;
}
public EnumSet<? extends Enum<?>> getPossibleValues() {
return this.values;
}
}
+4 -5
View File
@@ -23,8 +23,7 @@
package appeng.api.config;
public enum SortDir
{
ASCENDING, DESCENDING
}
public enum SortDir {
ASCENDING,
DESCENDING
}
@@ -23,8 +23,9 @@
package appeng.api.config;
public enum SortOrder
{
NAME, AMOUNT, MOD, INVTWEAKS
}
public enum SortOrder {
NAME,
AMOUNT,
MOD,
INVTWEAKS
}
@@ -23,12 +23,8 @@
package appeng.api.config;
public enum StorageFilter {
NONE,
public enum StorageFilter
{
NONE,
EXTRACTABLE_ONLY
EXTRACTABLE_ONLY
}
@@ -23,14 +23,10 @@
package appeng.api.config;
public enum TerminalStyle {
TALL,
public enum TerminalStyle
{
FULL,
TALL,
FULL,
SMALL
}
SMALL
}
+12 -14
View File
@@ -23,18 +23,16 @@
package appeng.api.config;
public enum TunnelType
{
ME, // Network Tunnel
IC2_POWER, // EU Tunnel
RF_POWER, // RF Tunnel
REDSTONE, // Redstone Tunnel
FLUID, // Fluid Tunnel
ITEM, // Item Tunnel
LIGHT, // Light Tunnel
BUNDLED_REDSTONE, // Bundled Redstone Tunnel
COMPUTER_MESSAGE, // Computer Message Tunnel
PRESSURE, // PneumaticCraft Tunnel
GT_POWER // GregTech EU Tunnel
public enum TunnelType {
ME, // Network Tunnel
IC2_POWER, // EU Tunnel
RF_POWER, // RF Tunnel
REDSTONE, // Redstone Tunnel
FLUID, // Fluid Tunnel
ITEM, // Item Tunnel
LIGHT, // Light Tunnel
BUNDLED_REDSTONE, // Bundled Redstone Tunnel
COMPUTER_MESSAGE, // Computer Message Tunnel
PRESSURE, // PneumaticCraft Tunnel
GT_POWER // GregTech EU Tunnel
}
+77 -85
View File
@@ -23,105 +23,97 @@
package appeng.api.config;
import appeng.api.definitions.IItemDefinition;
import appeng.api.util.AEItemDefinition;
import com.google.common.base.Optional;
import net.minecraft.item.ItemStack;
import java.util.HashMap;
import java.util.Map;
import net.minecraft.item.ItemStack;
public enum Upgrades {
/**
* Gold Tier Upgrades.
*/
CAPACITY(0),
REDSTONE(0),
CRAFTING(0),
public enum Upgrades
{
/**
* Gold Tier Upgrades.
*/
CAPACITY( 0 ), REDSTONE( 0 ), CRAFTING( 0 ),
/**
* Diamond Tier Upgrades.
*/
FUZZY(1),
SPEED(1),
INVERTER(1),
PATTERN_CAPACITY(1),
ORE_FILTER(1);
/**
* Diamond Tier Upgrades.
*/
FUZZY( 1 ), SPEED( 1 ), INVERTER( 1 ), PATTERN_CAPACITY(1), ORE_FILTER(1);
/**
* @deprecated use {@link Upgrades#getTier()}
*/
@Deprecated
public final int tier;
/**
* @deprecated use {@link Upgrades#getTier()}
*/
@Deprecated
public final int tier;
/**
* @deprecated use {@link Upgrades#getSupported()}
*/
@Deprecated
private final Map<ItemStack, Integer> supportedMax = new HashMap<ItemStack, Integer>();
/**
* @deprecated use {@link Upgrades#getSupported()}
*/
@Deprecated
private final Map<ItemStack, Integer> supportedMax = new HashMap<ItemStack, Integer>();
Upgrades(final int tier) {
this.tier = tier;
}
Upgrades( final int tier )
{
this.tier = tier;
}
/**
* @return list of Items/Blocks that support this upgrade, and how many it supports.
*/
public Map<ItemStack, Integer> getSupported() {
return this.supportedMax;
}
/**
* @return list of Items/Blocks that support this upgrade, and how many it supports.
*/
public Map<ItemStack, Integer> getSupported()
{
return this.supportedMax;
}
/**
* Registers a specific amount of this upgrade into a specific machine
*
* @param item machine in which this upgrade can be installed
* @param maxSupported amount how many upgrades can be installed
*/
public void registerItem(final IItemDefinition item, final int maxSupported) {
final Optional<ItemStack> maybeStack = item.maybeStack(1);
for (final ItemStack stack : maybeStack.asSet()) {
this.registerItem(stack, maxSupported);
}
}
/**
* Registers a specific amount of this upgrade into a specific machine
*
* @param item machine in which this upgrade can be installed
* @param maxSupported amount how many upgrades can be installed
*/
public void registerItem( final IItemDefinition item, final int maxSupported )
{
final Optional<ItemStack> maybeStack = item.maybeStack( 1 );
for( final ItemStack stack : maybeStack.asSet() )
{
this.registerItem( stack, maxSupported );
}
}
/**
* Registers a specific amount of this upgrade into a specific machine
*
* @param stack machine in which this upgrade can be installed
* @param maxSupported amount how many upgrades can be installed
*/
public void registerItem(final ItemStack stack, final int maxSupported) {
if (stack != null) {
this.supportedMax.put(stack, maxSupported);
}
}
/**
* Registers a specific amount of this upgrade into a specific machine
*
* @param stack machine in which this upgrade can be installed
* @param maxSupported amount how many upgrades can be installed
*/
public void registerItem( final ItemStack stack, final int maxSupported )
{
if( stack != null )
{
this.supportedMax.put( stack, maxSupported );
}
}
/**
* Registers a specific amount of this upgrade into a specific machine
*
* @param item machine in which this upgrade can be installed
* @param maxSupported amount how many upgrades can be installed
* @deprecated use {@link Upgrades#registerItem(IItemDefinition, int)}
*/
@Deprecated
public void registerItem(final AEItemDefinition item, final int maxSupported) {
if (item != null) {
final ItemStack stack = item.stack(1);
/**
* Registers a specific amount of this upgrade into a specific machine
*
* @param item machine in which this upgrade can be installed
* @param maxSupported amount how many upgrades can be installed
* @deprecated use {@link Upgrades#registerItem(IItemDefinition, int)}
*/
@Deprecated
public void registerItem( final AEItemDefinition item, final int maxSupported )
{
if( item != null )
{
final ItemStack stack = item.stack( 1 );
if (stack != null) {
this.registerItem(stack, maxSupported);
}
}
}
if( stack != null )
{
this.registerItem( stack, maxSupported );
}
}
}
public int getTier()
{
return this.tier;
}
public int getTier() {
return this.tier;
}
}
@@ -23,8 +23,8 @@
package appeng.api.config;
public enum ViewItems
{
ALL, STORED, CRAFTABLE
}
public enum ViewItems {
ALL,
STORED,
CRAFTABLE
}
+4 -4
View File
@@ -23,8 +23,8 @@
package appeng.api.config;
public enum YesNo
{
YES, NO, UNDECIDED
public enum YesNo {
YES,
NO,
UNDECIDED
}
@@ -23,113 +23,110 @@
package appeng.api.definitions;
import appeng.api.util.AEItemDefinition;
/**
* @deprecated use {@link IBlocks} now
*/
@Deprecated
public class Blocks
{
public AEItemDefinition blockQuartzOre;
public class Blocks {
public AEItemDefinition blockQuartzOre;
public AEItemDefinition blockQuartzOreCharged;
public AEItemDefinition blockQuartzOreCharged;
public AEItemDefinition blockMatrixFrame;
public AEItemDefinition blockMatrixFrame;
public AEItemDefinition blockQuartz;
public AEItemDefinition blockQuartz;
public AEItemDefinition blockQuartzPillar;
public AEItemDefinition blockQuartzPillar;
public AEItemDefinition blockQuartzChiseled;
public AEItemDefinition blockQuartzChiseled;
public AEItemDefinition blockQuartzGlass;
public AEItemDefinition blockQuartzGlass;
public AEItemDefinition blockQuartzVibrantGlass;
public AEItemDefinition blockQuartzVibrantGlass;
public AEItemDefinition blockQuartzTorch;
public AEItemDefinition blockQuartzTorch;
public AEItemDefinition blockFluix;
public AEItemDefinition blockFluix;
public AEItemDefinition blockSkyStone;
public AEItemDefinition blockSkyStone;
public AEItemDefinition blockSkyChest;
public AEItemDefinition blockSkyChest;
public AEItemDefinition blockSkyCompass;
public AEItemDefinition blockSkyCompass;
public AEItemDefinition blockGrindStone;
public AEItemDefinition blockGrindStone;
public AEItemDefinition blockCrankHandle;
public AEItemDefinition blockCrankHandle;
public AEItemDefinition blockInscriber;
public AEItemDefinition blockInscriber;
public AEItemDefinition blockWireless;
public AEItemDefinition blockWireless;
public AEItemDefinition blockCharger;
public AEItemDefinition blockCharger;
public AEItemDefinition blockTinyTNT;
public AEItemDefinition blockTinyTNT;
public AEItemDefinition blockSecurity;
public AEItemDefinition blockSecurity;
public AEItemDefinition blockQuantumRing;
public AEItemDefinition blockQuantumRing;
public AEItemDefinition blockQuantumLink;
public AEItemDefinition blockQuantumLink;
public AEItemDefinition blockSpatialPylon;
public AEItemDefinition blockSpatialPylon;
public AEItemDefinition blockSpatialIOPort;
public AEItemDefinition blockSpatialIOPort;
public AEItemDefinition blockMultiPart;
public AEItemDefinition blockMultiPart;
public AEItemDefinition blockController;
public AEItemDefinition blockController;
public AEItemDefinition blockDrive;
public AEItemDefinition blockDrive;
public AEItemDefinition blockChest;
public AEItemDefinition blockChest;
public AEItemDefinition blockInterface;
public AEItemDefinition blockInterface;
public AEItemDefinition blockCellWorkbench;
public AEItemDefinition blockCellWorkbench;
public AEItemDefinition blockIOPort;
public AEItemDefinition blockIOPort;
public AEItemDefinition blockCondenser;
public AEItemDefinition blockCondenser;
public AEItemDefinition blockEnergyAcceptor;
public AEItemDefinition blockEnergyAcceptor;
public AEItemDefinition blockVibrationChamber;
public AEItemDefinition blockVibrationChamber;
public AEItemDefinition blockQuartzGrowthAccelerator;
public AEItemDefinition blockQuartzGrowthAccelerator;
public AEItemDefinition blockEnergyCell;
public AEItemDefinition blockEnergyCell;
public AEItemDefinition blockEnergyCellDense;
public AEItemDefinition blockEnergyCellDense;
public AEItemDefinition blockEnergyCellCreative;
public AEItemDefinition blockEnergyCellCreative;
public AEItemDefinition blockCraftingUnit;
public AEItemDefinition blockCraftingUnit;
public AEItemDefinition blockCraftingAccelerator;
public AEItemDefinition blockCraftingAccelerator;
public AEItemDefinition blockCraftingAccelerator4x;
public AEItemDefinition blockCraftingAccelerator16x;
public AEItemDefinition blockCraftingStorage1k;
public AEItemDefinition blockCraftingStorage1k;
public AEItemDefinition blockCraftingStorage4k;
public AEItemDefinition blockCraftingStorage4k;
public AEItemDefinition blockCraftingStorage16k;
public AEItemDefinition blockCraftingStorage16k;
public AEItemDefinition blockCraftingStorage64k;
public AEItemDefinition blockCraftingStorage64k;
public AEItemDefinition blockCraftingMonitor;
public AEItemDefinition blockCraftingMonitor;
public AEItemDefinition blockMolecularAssembler;
public AEItemDefinition blockMolecularAssembler;
public AEItemDefinition blockLightDetector;
public AEItemDefinition blockLightDetector;
public AEItemDefinition blockPaint;
public AEItemDefinition blockPaint;
}
@@ -1,32 +1,29 @@
package appeng.api.definitions;
import com.google.common.base.Optional;
import net.minecraft.block.Block;
import net.minecraft.item.ItemBlock;
import net.minecraft.world.IBlockAccess;
public interface IBlockDefinition extends IItemDefinition {
/**
* @return the {@link Block} implementation if applicable
*/
Optional<Block> maybeBlock();
public interface IBlockDefinition extends IItemDefinition
{
/**
* @return the {@link Block} implementation if applicable
*/
Optional<Block> maybeBlock();
/**
* @return the {@link ItemBlock} implementation if applicable
*/
Optional<ItemBlock> maybeItemBlock();
/**
* @return the {@link ItemBlock} implementation if applicable
*/
Optional<ItemBlock> maybeItemBlock();
/**
* Compare Block with world.
*
* @param world world of block
* @param x x pos of block
* @param y y pos of block
* @param z z pos of block
* @return if the block is placed in the world at the specific location.
*/
boolean isSameAs( IBlockAccess world, int x, int y, int z );
/**
* Compare Block with world.
*
* @param world world of block
* @param x x pos of block
* @param y y pos of block
* @param z z pos of block
* @return if the block is placed in the world at the specific location.
*/
boolean isSameAs(IBlockAccess world, int x, int y, int z);
}
@@ -23,163 +23,161 @@
package appeng.api.definitions;
/**
* A list of all blocks in AE
*/
public interface IBlocks
{
/*
* world gen
*/
IBlockDefinition quartzOre();
public interface IBlocks {
/*
* world gen
*/
IBlockDefinition quartzOre();
IBlockDefinition quartzOreCharged();
IBlockDefinition quartzOreCharged();
IBlockDefinition matrixFrame();
IBlockDefinition matrixFrame();
/*
* decorative
*/
IBlockDefinition quartz();
/*
* decorative
*/
IBlockDefinition quartz();
IBlockDefinition quartzPillar();
IBlockDefinition quartzPillar();
IBlockDefinition quartzChiseled();
IBlockDefinition quartzChiseled();
IBlockDefinition quartzGlass();
IBlockDefinition quartzGlass();
IBlockDefinition quartzVibrantGlass();
IBlockDefinition quartzVibrantGlass();
IBlockDefinition quartzTorch();
IBlockDefinition quartzTorch();
IBlockDefinition fluix();
IBlockDefinition fluix();
IBlockDefinition skyStone();
IBlockDefinition skyStone();
IBlockDefinition skyChest();
IBlockDefinition skyChest();
IBlockDefinition skyCompass();
IBlockDefinition skyCompass();
IBlockDefinition skyStoneStair();
IBlockDefinition skyStoneStair();
IBlockDefinition skyStoneBlockStair();
IBlockDefinition skyStoneBlockStair();
IBlockDefinition skyStoneBrickStair();
IBlockDefinition skyStoneBrickStair();
IBlockDefinition skyStoneSmallBrickStair();
IBlockDefinition skyStoneSmallBrickStair();
IBlockDefinition fluixStair();
IBlockDefinition fluixStair();
IBlockDefinition quartzStair();
IBlockDefinition quartzStair();
IBlockDefinition chiseledQuartzStair();
IBlockDefinition chiseledQuartzStair();
IBlockDefinition quartzPillarStair();
IBlockDefinition quartzPillarStair();
IBlockDefinition skyStoneSlab();
IBlockDefinition skyStoneSlab();
IBlockDefinition skyStoneBlockSlab();
IBlockDefinition skyStoneBlockSlab();
IBlockDefinition skyStoneBrickSlab();
IBlockDefinition skyStoneBrickSlab();
IBlockDefinition skyStoneSmallBrickSlab();
IBlockDefinition skyStoneSmallBrickSlab();
IBlockDefinition fluixSlab();
IBlockDefinition fluixSlab();
IBlockDefinition quartzSlab();
IBlockDefinition quartzSlab();
IBlockDefinition chiseledQuartzSlab();
IBlockDefinition chiseledQuartzSlab();
IBlockDefinition quartzPillarSlab();
IBlockDefinition quartzPillarSlab();
/*
* misc
*/
ITileDefinition grindStone();
/*
* misc
*/
ITileDefinition grindStone();
ITileDefinition crankHandle();
ITileDefinition crankHandle();
ITileDefinition inscriber();
ITileDefinition inscriber();
ITileDefinition wireless();
ITileDefinition wireless();
ITileDefinition charger();
ITileDefinition charger();
IBlockDefinition tinyTNT();
IBlockDefinition tinyTNT();
ITileDefinition security();
ITileDefinition security();
/*
* quantum Network Bridge
*/
ITileDefinition quantumRing();
/*
* quantum Network Bridge
*/
ITileDefinition quantumRing();
ITileDefinition quantumLink();
ITileDefinition quantumLink();
/*
* spatial iO
*/
ITileDefinition spatialPylon();
/*
* spatial iO
*/
ITileDefinition spatialPylon();
ITileDefinition spatialIOPort();
ITileDefinition spatialIOPort();
/*
* Bus / cables
*/
ITileDefinition multiPart();
/*
* Bus / cables
*/
ITileDefinition multiPart();
/*
* machines
*/
ITileDefinition controller();
/*
* machines
*/
ITileDefinition controller();
ITileDefinition drive();
ITileDefinition drive();
ITileDefinition chest();
ITileDefinition chest();
ITileDefinition iface();
ITileDefinition iface();
ITileDefinition cellWorkbench();
ITileDefinition cellWorkbench();
ITileDefinition iOPort();
ITileDefinition iOPort();
ITileDefinition condenser();
ITileDefinition condenser();
ITileDefinition energyAcceptor();
ITileDefinition energyAcceptor();
ITileDefinition vibrationChamber();
ITileDefinition vibrationChamber();
ITileDefinition quartzGrowthAccelerator();
ITileDefinition quartzGrowthAccelerator();
ITileDefinition energyCell();
ITileDefinition energyCell();
ITileDefinition energyCellDense();
ITileDefinition energyCellDense();
ITileDefinition energyCellCreative();
ITileDefinition energyCellCreative();
// rv1
ITileDefinition craftingUnit();
// rv1
ITileDefinition craftingUnit();
ITileDefinition craftingAccelerator();
ITileDefinition craftingAccelerator();
ITileDefinition craftingAccelerator4x();
ITileDefinition craftingAccelerator16x();
ITileDefinition craftingStorage1k();
ITileDefinition craftingStorage1k();
ITileDefinition craftingStorage4k();
ITileDefinition craftingStorage4k();
ITileDefinition craftingStorage16k();
ITileDefinition craftingStorage16k();
ITileDefinition craftingStorage64k();
ITileDefinition craftingStorage64k();
ITileDefinition craftingMonitor();
ITileDefinition craftingMonitor();
ITileDefinition molecularAssembler();
ITileDefinition molecularAssembler();
ITileDefinition lightDetector();
ITileDefinition lightDetector();
ITileDefinition paint();
ITileDefinition paint();
}
@@ -1,10 +1,8 @@
package appeng.api.definitions;
import net.minecraft.item.ItemStack;
import net.minecraft.world.IBlockAccess;
/**
* Interface to compare a definition with an itemstack or a block
*
@@ -12,26 +10,25 @@ import net.minecraft.world.IBlockAccess;
* @version rv2
* @since rv2
*/
public interface IComparableDefinition
{
/**
* Compare {@link ItemStack} with this
*
* @param comparableStack compared item
* @return true if the item stack is a matching item.
*/
boolean isSameAs( ItemStack comparableStack );
public interface IComparableDefinition {
/**
* Compare {@link ItemStack} with this
*
* @param comparableStack compared item
* @return true if the item stack is a matching item.
*/
boolean isSameAs(ItemStack comparableStack);
/**
* Compare Block with world.
*
* @param world world of block
* @param x x pos of block
* @param y y pos of block
* @param z z pos of block
* @return if the block is placed in the world at the specific location.
* @deprecated moved to {@link IBlockDefinition}. Is removed in the next major release rv3
*/
@Deprecated
boolean isSameAs( IBlockAccess world, int x, int y, int z );
/**
* Compare Block with world.
*
* @param world world of block
* @param x x pos of block
* @param y y pos of block
* @param z z pos of block
* @return if the block is placed in the world at the specific location.
* @deprecated moved to {@link IBlockDefinition}. Is removed in the next major release rv3
*/
@Deprecated
boolean isSameAs(IBlockAccess world, int x, int y, int z);
}
@@ -23,29 +23,27 @@
package appeng.api.definitions;
/**
* All definitions in AE
*/
public interface IDefinitions
{
/**
* @return an accessible list of all of AE's blocks
*/
IBlocks blocks();
public interface IDefinitions {
/**
* @return an accessible list of all of AE's blocks
*/
IBlocks blocks();
/**
* @return an accessible list of all of AE's Items
*/
IItems items();
/**
* @return an accessible list of all of AE's Items
*/
IItems items();
/**
* @return an accessible list of all of AE's materials; materials are items
*/
IMaterials materials();
/**
* @return an accessible list of all of AE's materials; materials are items
*/
IMaterials materials();
/**
* @return an accessible list of all of AE's parts, parts are items
*/
IParts parts();
/**
* @return an accessible list of all of AE's parts, parts are items
*/
IParts parts();
}
@@ -23,26 +23,23 @@
package appeng.api.definitions;
import com.google.common.base.Optional;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public interface IItemDefinition extends IComparableDefinition {
/**
* @return the {@link Item} Implementation if applicable
*/
Optional<Item> maybeItem();
public interface IItemDefinition extends IComparableDefinition
{
/**
* @return the {@link Item} Implementation if applicable
*/
Optional<Item> maybeItem();
/**
* @return an {@link ItemStack} with specified quantity of this item.
*/
Optional<ItemStack> maybeStack(int stackSize);
/**
* @return an {@link ItemStack} with specified quantity of this item.
*/
Optional<ItemStack> maybeStack( int stackSize );
/**
* @return <tt>true</tt> if definition is enabled
*/
boolean isEnabled();
/**
* @return <tt>true</tt> if definition is enabled
*/
boolean isEnabled();
}
@@ -23,87 +23,84 @@
package appeng.api.definitions;
import appeng.api.util.AEColoredItemDefinition;
/**
* A list of all items in AE
*/
public interface IItems
{
IItemDefinition certusQuartzAxe();
public interface IItems {
IItemDefinition certusQuartzAxe();
IItemDefinition certusQuartzHoe();
IItemDefinition certusQuartzHoe();
IItemDefinition certusQuartzShovel();
IItemDefinition certusQuartzShovel();
IItemDefinition certusQuartzPick();
IItemDefinition certusQuartzPick();
IItemDefinition certusQuartzSword();
IItemDefinition certusQuartzSword();
IItemDefinition certusQuartzWrench();
IItemDefinition certusQuartzWrench();
IItemDefinition certusQuartzKnife();
IItemDefinition certusQuartzKnife();
IItemDefinition netherQuartzAxe();
IItemDefinition netherQuartzAxe();
IItemDefinition netherQuartzHoe();
IItemDefinition netherQuartzHoe();
IItemDefinition netherQuartzShovel();
IItemDefinition netherQuartzShovel();
IItemDefinition netherQuartzPick();
IItemDefinition netherQuartzPick();
IItemDefinition netherQuartzSword();
IItemDefinition netherQuartzSword();
IItemDefinition netherQuartzWrench();
IItemDefinition netherQuartzWrench();
IItemDefinition netherQuartzKnife();
IItemDefinition netherQuartzKnife();
IItemDefinition entropyManipulator();
IItemDefinition entropyManipulator();
IItemDefinition wirelessTerminal();
IItemDefinition wirelessTerminal();
IItemDefinition biometricCard();
IItemDefinition biometricCard();
IItemDefinition chargedStaff();
IItemDefinition chargedStaff();
IItemDefinition massCannon();
IItemDefinition massCannon();
IItemDefinition memoryCard();
IItemDefinition memoryCard();
IItemDefinition networkTool();
IItemDefinition networkTool();
IItemDefinition portableCell();
IItemDefinition portableCell();
IItemDefinition cellCreative();
IItemDefinition cellCreative();
IItemDefinition viewCell();
IItemDefinition viewCell();
IItemDefinition cell1k();
IItemDefinition cell1k();
IItemDefinition cell4k();
IItemDefinition cell4k();
IItemDefinition cell16k();
IItemDefinition cell16k();
IItemDefinition cell64k();
IItemDefinition cell64k();
IItemDefinition spatialCell2();
IItemDefinition spatialCell2();
IItemDefinition spatialCell16();
IItemDefinition spatialCell16();
IItemDefinition spatialCell128();
IItemDefinition spatialCell128();
IItemDefinition facade();
IItemDefinition facade();
IItemDefinition crystalSeed();
IItemDefinition crystalSeed();
// rv1
IItemDefinition encodedPattern();
// rv1
IItemDefinition encodedPattern();
IItemDefinition colorApplicator();
IItemDefinition colorApplicator();
AEColoredItemDefinition coloredPaintBall();
AEColoredItemDefinition coloredPaintBall();
AEColoredItemDefinition coloredLumenPaintBall();
AEColoredItemDefinition coloredLumenPaintBall();
}
@@ -23,121 +23,119 @@
package appeng.api.definitions;
/**
* A list of all materials in AE
*/
public interface IMaterials
{
IItemDefinition cell2SpatialPart();
public interface IMaterials {
IItemDefinition cell2SpatialPart();
IItemDefinition cell16SpatialPart();
IItemDefinition cell16SpatialPart();
IItemDefinition cell128SpatialPart();
IItemDefinition cell128SpatialPart();
IItemDefinition silicon();
IItemDefinition silicon();
IItemDefinition skyDust();
IItemDefinition skyDust();
IItemDefinition calcProcessorPress();
IItemDefinition calcProcessorPress();
IItemDefinition engProcessorPress();
IItemDefinition engProcessorPress();
IItemDefinition logicProcessorPress();
IItemDefinition logicProcessorPress();
IItemDefinition calcProcessorPrint();
IItemDefinition calcProcessorPrint();
IItemDefinition engProcessorPrint();
IItemDefinition engProcessorPrint();
IItemDefinition logicProcessorPrint();
IItemDefinition logicProcessorPrint();
IItemDefinition siliconPress();
IItemDefinition siliconPress();
IItemDefinition siliconPrint();
IItemDefinition siliconPrint();
IItemDefinition namePress();
IItemDefinition namePress();
IItemDefinition logicProcessor();
IItemDefinition logicProcessor();
IItemDefinition calcProcessor();
IItemDefinition calcProcessor();
IItemDefinition engProcessor();
IItemDefinition engProcessor();
IItemDefinition basicCard();
IItemDefinition basicCard();
IItemDefinition advCard();
IItemDefinition advCard();
IItemDefinition purifiedCertusQuartzCrystal();
IItemDefinition purifiedCertusQuartzCrystal();
IItemDefinition purifiedNetherQuartzCrystal();
IItemDefinition purifiedNetherQuartzCrystal();
IItemDefinition purifiedFluixCrystal();
IItemDefinition purifiedFluixCrystal();
IItemDefinition cell1kPart();
IItemDefinition cell1kPart();
IItemDefinition cell4kPart();
IItemDefinition cell4kPart();
IItemDefinition cell16kPart();
IItemDefinition cell16kPart();
IItemDefinition cell64kPart();
IItemDefinition cell64kPart();
IItemDefinition emptyStorageCell();
IItemDefinition emptyStorageCell();
IItemDefinition cardRedstone();
IItemDefinition cardRedstone();
IItemDefinition cardSpeed();
IItemDefinition cardSpeed();
IItemDefinition cardCapacity();
IItemDefinition cardCapacity();
IItemDefinition cardFuzzy();
IItemDefinition cardFuzzy();
IItemDefinition cardInverter();
IItemDefinition cardInverter();
IItemDefinition cardCrafting();
IItemDefinition cardCrafting();
IItemDefinition enderDust();
IItemDefinition enderDust();
IItemDefinition flour();
IItemDefinition flour();
IItemDefinition goldDust();
IItemDefinition goldDust();
IItemDefinition ironDust();
IItemDefinition ironDust();
IItemDefinition fluixDust();
IItemDefinition fluixDust();
IItemDefinition certusQuartzDust();
IItemDefinition certusQuartzDust();
IItemDefinition netherQuartzDust();
IItemDefinition netherQuartzDust();
IItemDefinition matterBall();
IItemDefinition matterBall();
IItemDefinition ironNugget();
IItemDefinition ironNugget();
IItemDefinition certusQuartzCrystal();
IItemDefinition certusQuartzCrystal();
IItemDefinition certusQuartzCrystalCharged();
IItemDefinition certusQuartzCrystalCharged();
IItemDefinition fluixCrystal();
IItemDefinition fluixCrystal();
IItemDefinition fluixPearl();
IItemDefinition fluixPearl();
IItemDefinition woodenGear();
IItemDefinition woodenGear();
IItemDefinition wireless();
IItemDefinition wireless();
IItemDefinition wirelessBooster();
IItemDefinition wirelessBooster();
IItemDefinition annihilationCore();
IItemDefinition annihilationCore();
IItemDefinition formationCore();
IItemDefinition formationCore();
IItemDefinition singularity();
IItemDefinition singularity();
IItemDefinition qESingularity();
IItemDefinition qESingularity();
IItemDefinition blankPattern();
IItemDefinition blankPattern();
IItemDefinition cardPatternCapacity();
IItemDefinition cardPatternCapacity();
IItemDefinition cardOreFilter();
IItemDefinition cardOreFilter();
}
@@ -23,98 +23,95 @@
package appeng.api.definitions;
import appeng.api.util.AEColoredItemDefinition;
/**
* A list of all parts in AE
*/
public interface IParts
{
AEColoredItemDefinition cableSmart();
public interface IParts {
AEColoredItemDefinition cableSmart();
AEColoredItemDefinition cableCovered();
AEColoredItemDefinition cableCovered();
AEColoredItemDefinition cableGlass();
AEColoredItemDefinition cableGlass();
AEColoredItemDefinition cableDense();
AEColoredItemDefinition cableDense();
AEColoredItemDefinition cableDenseCovered();
AEColoredItemDefinition cableDenseCovered();
AEColoredItemDefinition cableUltraDenseCovered();
AEColoredItemDefinition cableUltraDenseCovered();
AEColoredItemDefinition cableUltraDenseSmart();
AEColoredItemDefinition cableUltraDenseSmart();
AEColoredItemDefinition lumenCableSmart();
AEColoredItemDefinition lumenCableSmart();
AEColoredItemDefinition lumenCableCovered();
AEColoredItemDefinition lumenCableCovered();
AEColoredItemDefinition lumenCableGlass();
AEColoredItemDefinition lumenCableGlass();
AEColoredItemDefinition lumenCableDense();
AEColoredItemDefinition lumenCableDense();
IItemDefinition quartzFiber();
IItemDefinition quartzFiber();
IItemDefinition toggleBus();
IItemDefinition toggleBus();
IItemDefinition invertedToggleBus();
IItemDefinition invertedToggleBus();
IItemDefinition storageBus();
IItemDefinition storageBus();
IItemDefinition importBus();
IItemDefinition importBus();
IItemDefinition exportBus();
IItemDefinition exportBus();
IItemDefinition iface();
IItemDefinition iface();
IItemDefinition levelEmitter();
IItemDefinition levelEmitter();
IItemDefinition annihilationPlane();
IItemDefinition annihilationPlane();
IItemDefinition identityAnnihilationPlane();
IItemDefinition identityAnnihilationPlane();
IItemDefinition formationPlane();
IItemDefinition formationPlane();
IItemDefinition p2PTunnelME();
IItemDefinition p2PTunnelME();
IItemDefinition p2PTunnelRedstone();
IItemDefinition p2PTunnelRedstone();
IItemDefinition p2PTunnelItems();
IItemDefinition p2PTunnelItems();
IItemDefinition p2PTunnelLiquids();
IItemDefinition p2PTunnelLiquids();
IItemDefinition p2PTunnelEU();
IItemDefinition p2PTunnelEU();
IItemDefinition p2PTunnelRF();
IItemDefinition p2PTunnelRF();
IItemDefinition p2PTunnelLight();
IItemDefinition p2PTunnelLight();
IItemDefinition p2PTunnelOpenComputers();
IItemDefinition p2PTunnelOpenComputers();
IItemDefinition p2PTunnelPneumaticCraft();
IItemDefinition p2PTunnelPneumaticCraft();
IItemDefinition cableAnchor();
IItemDefinition cableAnchor();
IItemDefinition monitor();
IItemDefinition monitor();
IItemDefinition semiDarkMonitor();
IItemDefinition semiDarkMonitor();
IItemDefinition darkMonitor();
IItemDefinition darkMonitor();
IItemDefinition interfaceTerminal();
IItemDefinition interfaceTerminal();
IItemDefinition patternTerminal();
IItemDefinition patternTerminal();
IItemDefinition craftingTerminal();
IItemDefinition craftingTerminal();
IItemDefinition terminal();
IItemDefinition terminal();
IItemDefinition storageMonitor();
IItemDefinition storageMonitor();
IItemDefinition conversionMonitor();
IItemDefinition conversionMonitor();
IItemDefinition patternTerminalEx();
IItemDefinition patternTerminalEx();
IItemDefinition p2PTunnelGregtech();
IItemDefinition p2PTunnelGregtech();
}
@@ -1,14 +1,11 @@
package appeng.api.definitions;
import com.google.common.base.Optional;
import net.minecraft.tileentity.TileEntity;
public interface ITileDefinition extends IBlockDefinition
{
/**
* @return the {@link TileEntity} Class if applicable.
*/
Optional<? extends Class<? extends TileEntity>> maybeEntity();
public interface ITileDefinition extends IBlockDefinition {
/**
* @return the {@link TileEntity} Class if applicable.
*/
Optional<? extends Class<? extends TileEntity>> maybeEntity();
}
+38 -41
View File
@@ -23,88 +23,85 @@
package appeng.api.definitions;
import appeng.api.util.AEColoredItemDefinition;
import appeng.api.util.AEItemDefinition;
/**
* @deprecated use {@link IItems}
*/
@Deprecated
public class Items
{
public AEItemDefinition itemCertusQuartzAxe;
public class Items {
public AEItemDefinition itemCertusQuartzAxe;
public AEItemDefinition itemCertusQuartzHoe;
public AEItemDefinition itemCertusQuartzHoe;
public AEItemDefinition itemCertusQuartzShovel;
public AEItemDefinition itemCertusQuartzShovel;
public AEItemDefinition itemCertusQuartzPick;
public AEItemDefinition itemCertusQuartzPick;
public AEItemDefinition itemCertusQuartzSword;
public AEItemDefinition itemCertusQuartzSword;
public AEItemDefinition itemCertusQuartzWrench;
public AEItemDefinition itemCertusQuartzWrench;
public AEItemDefinition itemCertusQuartzKnife;
public AEItemDefinition itemCertusQuartzKnife;
public AEItemDefinition itemNetherQuartzAxe;
public AEItemDefinition itemNetherQuartzAxe;
public AEItemDefinition itemNetherQuartzHoe;
public AEItemDefinition itemNetherQuartzHoe;
public AEItemDefinition itemNetherQuartzShovel;
public AEItemDefinition itemNetherQuartzShovel;
public AEItemDefinition itemNetherQuartzPick;
public AEItemDefinition itemNetherQuartzPick;
public AEItemDefinition itemNetherQuartzSword;
public AEItemDefinition itemNetherQuartzSword;
public AEItemDefinition itemNetherQuartzWrench;
public AEItemDefinition itemNetherQuartzWrench;
public AEItemDefinition itemNetherQuartzKnife;
public AEItemDefinition itemNetherQuartzKnife;
public AEItemDefinition itemEntropyManipulator;
public AEItemDefinition itemEntropyManipulator;
public AEItemDefinition itemWirelessTerminal;
public AEItemDefinition itemWirelessTerminal;
public AEItemDefinition itemBiometricCard;
public AEItemDefinition itemBiometricCard;
public AEItemDefinition itemChargedStaff;
public AEItemDefinition itemChargedStaff;
public AEItemDefinition itemMassCannon;
public AEItemDefinition itemMassCannon;
public AEItemDefinition itemMemoryCard;
public AEItemDefinition itemMemoryCard;
public AEItemDefinition itemNetworkTool;
public AEItemDefinition itemNetworkTool;
public AEItemDefinition itemPortableCell;
public AEItemDefinition itemPortableCell;
public AEItemDefinition itemCellCreative;
public AEItemDefinition itemCellCreative;
public AEItemDefinition itemViewCell;
public AEItemDefinition itemViewCell;
public AEItemDefinition itemCell1k;
public AEItemDefinition itemCell1k;
public AEItemDefinition itemCell4k;
public AEItemDefinition itemCell4k;
public AEItemDefinition itemCell16k;
public AEItemDefinition itemCell16k;
public AEItemDefinition itemCell64k;
public AEItemDefinition itemCell64k;
public AEItemDefinition itemSpatialCell2;
public AEItemDefinition itemSpatialCell2;
public AEItemDefinition itemSpatialCell16;
public AEItemDefinition itemSpatialCell16;
public AEItemDefinition itemSpatialCell128;
public AEItemDefinition itemSpatialCell128;
public AEItemDefinition itemFacade;
public AEItemDefinition itemFacade;
public AEItemDefinition itemCrystalSeed;
public AEItemDefinition itemCrystalSeed;
public AEItemDefinition itemEncodedPattern;
public AEItemDefinition itemEncodedPattern;
public AEItemDefinition itemColorApplicator;
public AEItemDefinition itemColorApplicator;
public AEColoredItemDefinition itemPaintBall;
public AEColoredItemDefinition itemPaintBall;
public AEColoredItemDefinition itemLumenPaintBall;
public AEColoredItemDefinition itemLumenPaintBall;
}
@@ -23,121 +23,118 @@
package appeng.api.definitions;
import appeng.api.util.AEItemDefinition;
/**
* @deprecated use {@link IMaterials}
*/
@Deprecated
public class Materials
{
public AEItemDefinition materialCell2SpatialPart;
public class Materials {
public AEItemDefinition materialCell2SpatialPart;
public AEItemDefinition materialCell16SpatialPart;
public AEItemDefinition materialCell16SpatialPart;
public AEItemDefinition materialCell128SpatialPart;
public AEItemDefinition materialCell128SpatialPart;
public AEItemDefinition materialSilicon;
public AEItemDefinition materialSilicon;
public AEItemDefinition materialSkyDust;
public AEItemDefinition materialSkyDust;
public AEItemDefinition materialCalcProcessorPress;
public AEItemDefinition materialCalcProcessorPress;
public AEItemDefinition materialEngProcessorPress;
public AEItemDefinition materialEngProcessorPress;
public AEItemDefinition materialLogicProcessorPress;
public AEItemDefinition materialLogicProcessorPress;
public AEItemDefinition materialCalcProcessorPrint;
public AEItemDefinition materialCalcProcessorPrint;
public AEItemDefinition materialEngProcessorPrint;
public AEItemDefinition materialEngProcessorPrint;
public AEItemDefinition materialLogicProcessorPrint;
public AEItemDefinition materialLogicProcessorPrint;
public AEItemDefinition materialSiliconPress;
public AEItemDefinition materialSiliconPress;
public AEItemDefinition materialSiliconPrint;
public AEItemDefinition materialSiliconPrint;
public AEItemDefinition materialNamePress;
public AEItemDefinition materialNamePress;
public AEItemDefinition materialLogicProcessor;
public AEItemDefinition materialLogicProcessor;
public AEItemDefinition materialCalcProcessor;
public AEItemDefinition materialCalcProcessor;
public AEItemDefinition materialEngProcessor;
public AEItemDefinition materialEngProcessor;
public AEItemDefinition materialBasicCard;
public AEItemDefinition materialBasicCard;
public AEItemDefinition materialAdvCard;
public AEItemDefinition materialAdvCard;
public AEItemDefinition materialPurifiedCertusQuartzCrystal;
public AEItemDefinition materialPurifiedCertusQuartzCrystal;
public AEItemDefinition materialPurifiedNetherQuartzCrystal;
public AEItemDefinition materialPurifiedNetherQuartzCrystal;
public AEItemDefinition materialPurifiedFluixCrystal;
public AEItemDefinition materialPurifiedFluixCrystal;
public AEItemDefinition materialCell1kPart;
public AEItemDefinition materialCell1kPart;
public AEItemDefinition materialCell4kPart;
public AEItemDefinition materialCell4kPart;
public AEItemDefinition materialCell16kPart;
public AEItemDefinition materialCell16kPart;
public AEItemDefinition materialCell64kPart;
public AEItemDefinition materialCell64kPart;
public AEItemDefinition materialEmptyStorageCell;
public AEItemDefinition materialEmptyStorageCell;
public AEItemDefinition materialCardRedstone;
public AEItemDefinition materialCardRedstone;
public AEItemDefinition materialCardSpeed;
public AEItemDefinition materialCardSpeed;
public AEItemDefinition materialCardCapacity;
public AEItemDefinition materialCardCapacity;
public AEItemDefinition materialCardFuzzy;
public AEItemDefinition materialCardFuzzy;
public AEItemDefinition materialCardInverter;
public AEItemDefinition materialCardInverter;
public AEItemDefinition materialCardCrafting;
public AEItemDefinition materialCardCrafting;
public AEItemDefinition materialEnderDust;
public AEItemDefinition materialEnderDust;
public AEItemDefinition materialFlour;
public AEItemDefinition materialFlour;
public AEItemDefinition materialGoldDust;
public AEItemDefinition materialGoldDust;
public AEItemDefinition materialIronDust;
public AEItemDefinition materialIronDust;
public AEItemDefinition materialFluixDust;
public AEItemDefinition materialFluixDust;
public AEItemDefinition materialCertusQuartzDust;
public AEItemDefinition materialCertusQuartzDust;
public AEItemDefinition materialNetherQuartzDust;
public AEItemDefinition materialNetherQuartzDust;
public AEItemDefinition materialMatterBall;
public AEItemDefinition materialMatterBall;
public AEItemDefinition materialIronNugget;
public AEItemDefinition materialIronNugget;
public AEItemDefinition materialCertusQuartzCrystal;
public AEItemDefinition materialCertusQuartzCrystal;
public AEItemDefinition materialCertusQuartzCrystalCharged;
public AEItemDefinition materialCertusQuartzCrystalCharged;
public AEItemDefinition materialFluixCrystal;
public AEItemDefinition materialFluixCrystal;
public AEItemDefinition materialFluixPearl;
public AEItemDefinition materialFluixPearl;
public AEItemDefinition materialWoodenGear;
public AEItemDefinition materialWoodenGear;
public AEItemDefinition materialWireless;
public AEItemDefinition materialWireless;
public AEItemDefinition materialWirelessBooster;
public AEItemDefinition materialWirelessBooster;
public AEItemDefinition materialAnnihilationCore;
public AEItemDefinition materialAnnihilationCore;
public AEItemDefinition materialFormationCore;
public AEItemDefinition materialFormationCore;
public AEItemDefinition materialSingularity;
public AEItemDefinition materialSingularity;
public AEItemDefinition materialQESingularity;
public AEItemDefinition materialQESingularity;
public AEItemDefinition materialBlankPattern;
public AEItemDefinition materialBlankPattern;
}
+39 -42
View File
@@ -23,90 +23,87 @@
package appeng.api.definitions;
import appeng.api.util.AEColoredItemDefinition;
import appeng.api.util.AEItemDefinition;
/**
* @deprecated use {@link IParts}
*/
@Deprecated
public class Parts
{
public AEColoredItemDefinition partCableSmart;
public class Parts {
public AEColoredItemDefinition partCableSmart;
public AEColoredItemDefinition partCableCovered;
public AEColoredItemDefinition partCableCovered;
public AEColoredItemDefinition partCableGlass;
public AEColoredItemDefinition partCableGlass;
public AEColoredItemDefinition partCableDense;
public AEColoredItemDefinition partCableDense;
public AEColoredItemDefinition partCableDenseCovered;
public AEColoredItemDefinition partCableDenseCovered;
public AEColoredItemDefinition partCableUltraDenseCovered;
public AEColoredItemDefinition partCableUltraDenseCovered;
public AEColoredItemDefinition partCableUltraDenseSmart;
public AEColoredItemDefinition partCableUltraDenseSmart;
public AEColoredItemDefinition partLumenCableSmart;
public AEColoredItemDefinition partLumenCableSmart;
public AEColoredItemDefinition partLumenCableCovered;
public AEColoredItemDefinition partLumenCableCovered;
public AEColoredItemDefinition partLumenCableGlass;
public AEColoredItemDefinition partLumenCableGlass;
public AEColoredItemDefinition partLumenCableDense;
public AEColoredItemDefinition partLumenCableDense;
public AEItemDefinition partQuartzFiber;
public AEItemDefinition partQuartzFiber;
public AEItemDefinition partToggleBus;
public AEItemDefinition partToggleBus;
public AEItemDefinition partInvertedToggleBus;
public AEItemDefinition partInvertedToggleBus;
public AEItemDefinition partStorageBus;
public AEItemDefinition partStorageBus;
public AEItemDefinition partImportBus;
public AEItemDefinition partImportBus;
public AEItemDefinition partExportBus;
public AEItemDefinition partExportBus;
public AEItemDefinition partInterface;
public AEItemDefinition partInterface;
public AEItemDefinition partLevelEmitter;
public AEItemDefinition partLevelEmitter;
public AEItemDefinition partAnnihilationPlane;
public AEItemDefinition partAnnihilationPlane;
public AEItemDefinition partFormationPlane;
public AEItemDefinition partFormationPlane;
public AEItemDefinition partP2PTunnelME;
public AEItemDefinition partP2PTunnelME;
public AEItemDefinition partP2PTunnelRedstone;
public AEItemDefinition partP2PTunnelRedstone;
public AEItemDefinition partP2PTunnelItems;
public AEItemDefinition partP2PTunnelItems;
public AEItemDefinition partP2PTunnelLiquids;
public AEItemDefinition partP2PTunnelLiquids;
public AEItemDefinition partP2PTunnelEU;
public AEItemDefinition partP2PTunnelEU;
public AEItemDefinition partP2PTunnelRF;
public AEItemDefinition partP2PTunnelRF;
public AEItemDefinition partP2PTunnelLight;
public AEItemDefinition partP2PTunnelLight;
public AEItemDefinition partCableAnchor;
public AEItemDefinition partCableAnchor;
public AEItemDefinition partMonitor;
public AEItemDefinition partMonitor;
public AEItemDefinition partSemiDarkMonitor;
public AEItemDefinition partSemiDarkMonitor;
public AEItemDefinition partDarkMonitor;
public AEItemDefinition partDarkMonitor;
public AEItemDefinition partInterfaceTerminal;
public AEItemDefinition partInterfaceTerminal;
public AEItemDefinition partPatternTerminal;
public AEItemDefinition partPatternTerminal;
public AEItemDefinition partCraftingTerminal;
public AEItemDefinition partCraftingTerminal;
public AEItemDefinition partTerminal;
public AEItemDefinition partTerminal;
public AEItemDefinition partStorageMonitor;
public AEItemDefinition partStorageMonitor;
public AEItemDefinition partConversionMonitor;
public AEItemDefinition partConversionMonitor;
}
@@ -23,31 +23,26 @@
package appeng.api.events;
import appeng.api.features.ILocatable;
import cpw.mods.fml.common.eventhandler.Event;
/**
* Input Event:
* <p>
* Used to Notify the Location Registry of objects, and their availability.
*/
public class LocatableEventAnnounce extends Event
{
public class LocatableEventAnnounce extends Event {
public final ILocatable target;
public final LocatableEvent change;
public final ILocatable target;
public final LocatableEvent change;
public LocatableEventAnnounce( final ILocatable o, final LocatableEvent ev )
{
this.target = o;
this.change = ev;
}
public LocatableEventAnnounce(final ILocatable o, final LocatableEvent ev) {
this.target = o;
this.change = ev;
}
public enum LocatableEvent
{
Register, // Adds the locatable to the registry
Unregister // Removes the locatable from the registry
}
public enum LocatableEvent {
Register, // Adds the locatable to the registry
Unregister // Removes the locatable from the registry
}
}
@@ -23,14 +23,11 @@
package appeng.api.exceptions;
public class AppEngException extends Exception {
public class AppEngException extends Exception
{
private static final long serialVersionUID = -9051434206368465494L;
private static final long serialVersionUID = -9051434206368465494L;
public AppEngException( final String t )
{
super( t );
}
public AppEngException(final String t) {
super(t);
}
}
@@ -1,10 +1,7 @@
package appeng.api.exceptions;
public class CoreInaccessibleException extends RuntimeException
{
public CoreInaccessibleException( final String message )
{
super( message );
}
public class CoreInaccessibleException extends RuntimeException {
public CoreInaccessibleException(final String message) {
super(message);
}
}
@@ -23,10 +23,8 @@
package appeng.api.exceptions;
import appeng.api.networking.IGridNode;
/**
* Exception occurred because of an already existing connection between the two {@link IGridNode}s
* <p>
@@ -37,20 +35,16 @@ import appeng.api.networking.IGridNode;
* @version rv3
* @since rv3
*/
public class ExistingConnectionException extends FailedConnection
{
public class ExistingConnectionException extends FailedConnection {
private static final long serialVersionUID = 2975450379720353182L;
private static final String DEFAULT_MESSAGE = "Connection between both nodes already exists.";
private static final long serialVersionUID = 2975450379720353182L;
private static final String DEFAULT_MESSAGE = "Connection between both nodes already exists.";
public ExistingConnectionException()
{
super( DEFAULT_MESSAGE );
}
public ExistingConnectionException( String message )
{
super( message );
}
public ExistingConnectionException() {
super(DEFAULT_MESSAGE);
}
public ExistingConnectionException(String message) {
super(message);
}
}
@@ -23,10 +23,8 @@
package appeng.api.exceptions;
import appeng.api.networking.IGridNode;
/**
* Exception indicating a failed connection between two {@link IGridNode}s.
* <p>
@@ -40,17 +38,13 @@ import appeng.api.networking.IGridNode;
* @version rv3
* @since rv0
*/
public class FailedConnection extends Exception
{
public class FailedConnection extends Exception {
private static final long serialVersionUID = -2544208090248293753L;
private static final long serialVersionUID = -2544208090248293753L;
public FailedConnection()
{
}
public FailedConnection() {}
public FailedConnection( String message )
{
super( message );
}
public FailedConnection(String message) {
super(message);
}
}
@@ -1,10 +1,7 @@
package appeng.api.exceptions;
public class MissingDefinition extends RuntimeException
{
public MissingDefinition( final String message )
{
super( message );
}
public class MissingDefinition extends RuntimeException {
public MissingDefinition(final String message) {
super(message);
}
}
@@ -23,14 +23,11 @@
package appeng.api.exceptions;
public class MissingIngredientError extends Exception {
public class MissingIngredientError extends Exception
{
private static final long serialVersionUID = -998858343831371697L;
private static final long serialVersionUID = -998858343831371697L;
public MissingIngredientError( final String n )
{
super( n );
}
public MissingIngredientError(final String n) {
super(n);
}
}
@@ -23,14 +23,11 @@
package appeng.api.exceptions;
public class ModNotInstalled extends Exception {
public class ModNotInstalled extends Exception
{
private static final long serialVersionUID = -9052435206368425494L;
private static final long serialVersionUID = -9052435206368425494L;
public ModNotInstalled( final String t )
{
super( t );
}
public ModNotInstalled(final String t) {
super(t);
}
}
@@ -23,7 +23,6 @@
package appeng.api.exceptions;
/**
* Exception due to trying to connect one or more null values.
* <p>
@@ -34,20 +33,16 @@ package appeng.api.exceptions;
* @version rv3
* @since rv3
*/
public class NullNodeConnectionException extends FailedConnection
{
public class NullNodeConnectionException extends FailedConnection {
private static final long serialVersionUID = -2143719383495321764L;
private static final String DEFAULT_MESSAGE = "Connection forged between null entities.";
private static final long serialVersionUID = -2143719383495321764L;
private static final String DEFAULT_MESSAGE = "Connection forged between null entities.";
public NullNodeConnectionException()
{
super( DEFAULT_MESSAGE );
}
public NullNodeConnectionException( String message )
{
super( message );
}
public NullNodeConnectionException() {
super(DEFAULT_MESSAGE);
}
public NullNodeConnectionException(String message) {
super(message);
}
}
@@ -23,14 +23,11 @@
package appeng.api.exceptions;
public class RecipeError extends Exception {
public class RecipeError extends Exception
{
private static final long serialVersionUID = -6602870588617670262L;
private static final long serialVersionUID = -6602870588617670262L;
public RecipeError( final String n )
{
super( n );
}
public RecipeError(final String n) {
super(n);
}
}
@@ -23,14 +23,11 @@
package appeng.api.exceptions;
public class RegistrationError extends Exception {
public class RegistrationError extends Exception
{
private static final long serialVersionUID = -6602870588617670263L;
private static final long serialVersionUID = -6602870588617670263L;
public RegistrationError( final String n )
{
super( n );
}
public RegistrationError(final String n) {
super(n);
}
}
@@ -23,7 +23,6 @@
package appeng.api.exceptions;
/**
* Exception due to trying to connect different security realms.
* <p>
@@ -34,19 +33,15 @@ package appeng.api.exceptions;
* @version rv3
* @since rv3
*/
public class SecurityConnectionException extends FailedConnection
{
private static final long serialVersionUID = 5048714900434215426L;
private static final String DEFAULT_MESSAGE = "Connection failed due to different security realms.";
public class SecurityConnectionException extends FailedConnection {
private static final long serialVersionUID = 5048714900434215426L;
private static final String DEFAULT_MESSAGE = "Connection failed due to different security realms.";
public SecurityConnectionException()
{
super( DEFAULT_MESSAGE );
}
public SecurityConnectionException( String message )
{
super( message );
}
public SecurityConnectionException() {
super(DEFAULT_MESSAGE);
}
public SecurityConnectionException(String message) {
super(message);
}
}
@@ -23,99 +23,96 @@
package appeng.api.features;
import net.minecraft.item.ItemStack;
/**
* Registration Records for {@link IGrinderRegistry}
*/
public interface IGrinderEntry
{
public interface IGrinderEntry {
/**
* the current input
*
* @return input that the grinder will accept.
*/
ItemStack getInput();
/**
* the current input
*
* @return input that the grinder will accept.
*/
ItemStack getInput();
/**
* lets you change the grinder recipe by changing its input.
*
* @param input input item
*/
void setInput( ItemStack input );
/**
* lets you change the grinder recipe by changing its input.
*
* @param input input item
*/
void setInput(ItemStack input);
/**
* gets the current output
*
* @return output that the grinder will produce
*/
ItemStack getOutput();
/**
* gets the current output
*
* @return output that the grinder will produce
*/
ItemStack getOutput();
/**
* allows you to change the output.
*
* @param output output item
*/
void setOutput( ItemStack output );
/**
* allows you to change the output.
*
* @param output output item
*/
void setOutput(ItemStack output);
/**
* gets the current output
*
* @return output that the grinder will produce
*/
ItemStack getOptionalOutput();
/**
* gets the current output
*
* @return output that the grinder will produce
*/
ItemStack getOptionalOutput();
/**
* gets the current output
*
* @return output that the grinder will produce
*/
ItemStack getSecondOptionalOutput();
/**
* gets the current output
*
* @return output that the grinder will produce
*/
ItemStack getSecondOptionalOutput();
/**
* stack, and 0.0-1.0 chance that it will be generated.
*
* @param output output item
* @param chance generation chance
*/
void setOptionalOutput( ItemStack output, float chance );
/**
* stack, and 0.0-1.0 chance that it will be generated.
*
* @param output output item
* @param chance generation chance
*/
void setOptionalOutput(ItemStack output, float chance);
/**
* 0.0 - 1.0 the chance that the optional output will be generated.
*
* @return chance of optional output
*/
float getOptionalChance();
/**
* 0.0 - 1.0 the chance that the optional output will be generated.
*
* @return chance of optional output
*/
float getOptionalChance();
/**
* stack, and 0.0-1.0 chance that it will be generated.
*
* @param output second optional output item
* @param chance second optional output chance
*/
void setSecondOptionalOutput( ItemStack output, float chance );
/**
* stack, and 0.0-1.0 chance that it will be generated.
*
* @param output second optional output item
* @param chance second optional output chance
*/
void setSecondOptionalOutput(ItemStack output, float chance);
/**
* 0.0 - 1.0 the chance that the optional output will be generated.
*
* @return second optional output chance
*/
float getSecondOptionalChance();
/**
* 0.0 - 1.0 the chance that the optional output will be generated.
*
* @return second optional output chance
*/
float getSecondOptionalChance();
/**
* Energy cost, in turns.
*
* @return number of turns it takes to produce the output from the input.
*/
int getEnergyCost();
/**
* Energy cost, in turns.
*
* @return number of turns it takes to produce the output from the input.
*/
int getEnergyCost();
/**
* Allows you to adjust the number of turns
*
* @param c number of turns to produce output.
*/
void setEnergyCost( int c );
/**
* Allows you to adjust the number of turns
*
* @param c number of turns to produce output.
*/
void setEnergyCost(int c);
}
@@ -23,63 +23,66 @@
package appeng.api.features;
import net.minecraft.item.ItemStack;
import java.util.List;
import net.minecraft.item.ItemStack;
/**
* Lets you manipulate Grinder Recipes, by adding or editing existing ones.
*/
public interface IGrinderRegistry
{
public interface IGrinderRegistry {
/**
* Current list of registered recipes, you can modify this if you want too.
*
* @return currentlyRegisteredRecipes
*/
List<IGrinderEntry> getRecipes();
/**
* Current list of registered recipes, you can modify this if you want too.
*
* @return currentlyRegisteredRecipes
*/
List<IGrinderEntry> getRecipes();
/**
* add a new recipe the easy way, in &#8594; out, how many turns., duplicates will not be added.
*
* @param in input
* @param out output
* @param turns amount of turns to turn the input into the output
*/
void addRecipe( ItemStack in, ItemStack out, int turns );
/**
* add a new recipe the easy way, in &#8594; out, how many turns., duplicates will not be added.
*
* @param in input
* @param out output
* @param turns amount of turns to turn the input into the output
*/
void addRecipe(ItemStack in, ItemStack out, int turns);
/**
* add a new recipe with optional outputs, duplicates will not be added.
*
* @param in input
* @param out output
* @param optional optional output
* @param chance chance to get the optional output within 0.0 - 1.0
* @param turns amount of turns to turn the input into the outputs
*/
void addRecipe( ItemStack in, ItemStack out, ItemStack optional, float chance, int turns );
/**
* add a new recipe with optional outputs, duplicates will not be added.
*
* @param in input
* @param out output
* @param optional optional output
* @param chance chance to get the optional output within 0.0 - 1.0
* @param turns amount of turns to turn the input into the outputs
*/
void addRecipe(ItemStack in, ItemStack out, ItemStack optional, float chance, int turns);
/**
* add a new recipe with optional outputs, duplicates will not be added.
*
* @param in input
* @param out output
* @param optional optional output
* @param chance chance to get the optional output within 0.0 - 1.0
* @param optional2 second optional output
* @param chance2 chance to get the second optional output within 0.0 - 1.0
* @param turns amount of turns to turn the input into the outputs
*/
void addRecipe( ItemStack in, ItemStack out, ItemStack optional, float chance, ItemStack optional2, float chance2, int turns );
/**
* add a new recipe with optional outputs, duplicates will not be added.
*
* @param in input
* @param out output
* @param optional optional output
* @param chance chance to get the optional output within 0.0 - 1.0
* @param optional2 second optional output
* @param chance2 chance to get the second optional output within 0.0 - 1.0
* @param turns amount of turns to turn the input into the outputs
*/
void addRecipe(
ItemStack in,
ItemStack out,
ItemStack optional,
float chance,
ItemStack optional2,
float chance2,
int turns);
/**
* Searches for a recipe for a given input, and returns it.
*
* @param input input
* @return identified recipe or null
*/
IGrinderEntry getRecipeForInput( ItemStack input );
/**
* Searches for a recipe for a given input, and returns it.
*
* @param input input
* @return identified recipe or null
*/
IGrinderEntry getRecipeForInput(ItemStack input);
}
@@ -1,12 +1,9 @@
package appeng.api.features;
import com.google.common.base.Optional;
import net.minecraft.item.ItemStack;
import javax.annotation.Nonnull;
import java.util.List;
import javax.annotation.Nonnull;
import net.minecraft.item.ItemStack;
/**
* Registration Records for {@link IInscriberRegistry}
@@ -20,45 +17,44 @@ import java.util.List;
* @version rv2
* @since rv2
*/
public interface IInscriberRecipe
{
/**
* the current inputs
*
* @return inputs the inscriber will accept
*/
@Nonnull
List<ItemStack> getInputs();
public interface IInscriberRecipe {
/**
* the current inputs
*
* @return inputs the inscriber will accept
*/
@Nonnull
List<ItemStack> getInputs();
/**
* gets the current output
*
* @return output that the recipe will produce
*/
@Nonnull
ItemStack getOutput();
/**
* gets the current output
*
* @return output that the recipe will produce
*/
@Nonnull
ItemStack getOutput();
/**
* gets the top optional
*
* @return item which is used top
*/
@Nonnull
Optional<ItemStack> getTopOptional();
/**
* gets the top optional
*
* @return item which is used top
*/
@Nonnull
Optional<ItemStack> getTopOptional();
/**
* gets the bottom optional
*
* @return item which is used bottom
*/
@Nonnull
Optional<ItemStack> getBottomOptional();
/**
* gets the bottom optional
*
* @return item which is used bottom
*/
@Nonnull
Optional<ItemStack> getBottomOptional();
/**
* type of inscriber process
*
* @return type of process the inscriber is doing
*/
@Nonnull
InscriberProcessType getProcessType();
/**
* type of inscriber process
*
* @return type of process the inscriber is doing
*/
@Nonnull
InscriberProcessType getProcessType();
}
@@ -1,11 +1,8 @@
package appeng.api.features;
import net.minecraft.item.ItemStack;
import javax.annotation.Nonnull;
import java.util.Collection;
import javax.annotation.Nonnull;
import net.minecraft.item.ItemStack;
/**
* Builder for an inscriber recipe
@@ -14,69 +11,68 @@ import java.util.Collection;
* @version rv2
* @since rv2
*/
public interface IInscriberRecipeBuilder
{
/**
* Creates an inscriber recipe with inputs.
* Needs to be invoked.
*
* @param inputs new inputs for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withInputs( @Nonnull Collection<ItemStack> inputs );
public interface IInscriberRecipeBuilder {
/**
* Creates an inscriber recipe with inputs.
* Needs to be invoked.
*
* @param inputs new inputs for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withInputs(@Nonnull Collection<ItemStack> inputs);
/**
* Creates an inscriber recipe with output.
* Needs to be invoked.
*
* @param output new output for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withOutput( @Nonnull ItemStack output );
/**
* Creates an inscriber recipe with output.
* Needs to be invoked.
*
* @param output new output for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withOutput(@Nonnull ItemStack output);
/**
* Creates an inscriber recipe with top.
* Either this or bot needs to be invoked.
*
* @param topOptional new top for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withTopOptional( @Nonnull ItemStack topOptional );
/**
* Creates an inscriber recipe with top.
* Either this or bot needs to be invoked.
*
* @param topOptional new top for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withTopOptional(@Nonnull ItemStack topOptional);
/**
* Creates an inscriber recipe with bot.
* Either this or top needs to be invoked.
*
* @param bottomOptional new bot for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withBottomOptional( @Nonnull ItemStack bottomOptional );
/**
* Creates an inscriber recipe with bot.
* Either this or top needs to be invoked.
*
* @param bottomOptional new bot for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withBottomOptional(@Nonnull ItemStack bottomOptional);
/**
* Creates an inscriber recipe with type.
* Needs to be invoked.
*
* @param type new type for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withProcessType( @Nonnull InscriberProcessType type );
/**
* Creates an inscriber recipe with type.
* Needs to be invoked.
*
* @param type new type for the recipe
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withProcessType(@Nonnull InscriberProcessType type);
/**
* Finalizes the process of making the recipe.
* Needs to be invoked to fetch inscriber recipe.
*
* @return legal inscriber recipe
* @throws IllegalStateException when input is not defined
* @throws IllegalStateException when input has no size
* @throws IllegalStateException when output is not defined
* @throws IllegalStateException when both optionals are not defined
* @throws IllegalStateException when process type is not defined
*/
@Nonnull
IInscriberRecipe build();
/**
* Finalizes the process of making the recipe.
* Needs to be invoked to fetch inscriber recipe.
*
* @return legal inscriber recipe
* @throws IllegalStateException when input is not defined
* @throws IllegalStateException when input has no size
* @throws IllegalStateException when output is not defined
* @throws IllegalStateException when both optionals are not defined
* @throws IllegalStateException when process type is not defined
*/
@Nonnull
IInscriberRecipe build();
}
@@ -1,12 +1,9 @@
package appeng.api.features;
import net.minecraft.item.ItemStack;
import javax.annotation.Nonnull;
import java.util.Collection;
import java.util.Set;
import javax.annotation.Nonnull;
import net.minecraft.item.ItemStack;
/**
* Lets you manipulate Inscriber Recipes, by adding or editing existing ones.
@@ -15,58 +12,56 @@ import java.util.Set;
* @version rv3
* @since rv2
*/
public interface IInscriberRegistry
{
/**
* An immutable copy of currently registered recipes.
* <p>
* Use the provided methods to actually modify the inscriber recipes.
*
* @return currentlyRegisteredRecipes
* @see IInscriberRegistry#addRecipe(IInscriberRecipe)
* @see IInscriberRegistry#removeRecipe(IInscriberRecipe)
*/
@Nonnull
Collection<IInscriberRecipe> getRecipes();
public interface IInscriberRegistry {
/**
* An immutable copy of currently registered recipes.
* <p>
* Use the provided methods to actually modify the inscriber recipes.
*
* @return currentlyRegisteredRecipes
* @see IInscriberRegistry#addRecipe(IInscriberRecipe)
* @see IInscriberRegistry#removeRecipe(IInscriberRecipe)
*/
@Nonnull
Collection<IInscriberRecipe> getRecipes();
/**
* Optional items which are used in the top or bottom slot.
*
* @return set of all optional items
*/
@Nonnull
Set<ItemStack> getOptionals();
/**
* Optional items which are used in the top or bottom slot.
*
* @return set of all optional items
*/
@Nonnull
Set<ItemStack> getOptionals();
/**
* Get all registered items which are valid inputs.
*
* @return set of all input items
*/
@Nonnull
Set<ItemStack> getInputs();
/**
* Get all registered items which are valid inputs.
*
* @return set of all input items
*/
@Nonnull
Set<ItemStack> getInputs();
/**
* Extensible way to create an inscriber recipe.
*
* @return builder for inscriber recipes
*/
@Nonnull
IInscriberRecipeBuilder builder();
/**
* Extensible way to create an inscriber recipe.
*
* @return builder for inscriber recipes
*/
@Nonnull
IInscriberRecipeBuilder builder();
/**
* add a new recipe the easy way, duplicates will not be added.
* Added recipes will be automatically added to the optionals and inputs.
*
* @param recipe new recipe
* @throws IllegalArgumentException if null is added
*/
void addRecipe( IInscriberRecipe recipe );
/**
* Removes all equal recipes from the registry.
*
* @param toBeRemovedRecipe to be removed recipe, can be null, makes just no sense.
*/
void removeRecipe( IInscriberRecipe toBeRemovedRecipe );
/**
* add a new recipe the easy way, duplicates will not be added.
* Added recipes will be automatically added to the optionals and inputs.
*
* @param recipe new recipe
* @throws IllegalArgumentException if null is added
*/
void addRecipe(IInscriberRecipe recipe);
/**
* Removes all equal recipes from the registry.
*
* @param toBeRemovedRecipe to be removed recipe, can be null, makes just no sense.
*/
void removeRecipe(IInscriberRecipe toBeRemovedRecipe);
}
@@ -23,10 +23,8 @@
package appeng.api.features;
public interface IItemComparison {
boolean sameAsPrecise(IItemComparison comp);
public interface IItemComparison
{
boolean sameAsPrecise( IItemComparison comp );
boolean sameAsFuzzy( IItemComparison comp );
boolean sameAsFuzzy(IItemComparison comp);
}
@@ -23,32 +23,29 @@
package appeng.api.features;
import net.minecraft.item.ItemStack;
/**
* Provider for special comparisons. when an item is encountered AE Will request
* if the comparison function handles the item, by trying to request a
* IItemComparison class.
*/
public interface IItemComparisonProvider
{
public interface IItemComparisonProvider {
/**
* should return a new IItemComparison, or return null if it doesn't handle
* the supplied item.
*
* @param is item
* @return IItemComparison, or null
*/
IItemComparison getComparison( ItemStack is );
/**
* should return a new IItemComparison, or return null if it doesn't handle
* the supplied item.
*
* @param is item
* @return IItemComparison, or null
*/
IItemComparison getComparison(ItemStack is);
/**
* Simple test for support ( AE generally skips this and calls the above function. )
*
* @param stack item
* @return true, if getComparison will return a valid IItemComparison Object
*/
boolean canHandle( ItemStack stack );
}
/**
* Simple test for support ( AE generally skips this and calls the above function. )
*
* @param stack item
* @return true, if getComparison will return a valid IItemComparison Object
*/
boolean canHandle(ItemStack stack);
}
@@ -23,19 +23,16 @@
package appeng.api.features;
import appeng.api.events.LocatableEventAnnounce;
/**
* A registration record for the {@link ILocatableRegistry} use the {@link LocatableEventAnnounce} event on the Forge
* Event bus to update the registry.
*/
public interface ILocatable
{
public interface ILocatable {
/**
* @return the serial for a locatable object
*/
long getLocatableSerial();
}
/**
* @return the serial for a locatable object
*/
long getLocatableSerial();
}
@@ -23,28 +23,26 @@
package appeng.api.features;
/**
* A Registry for locatable items, works based on serial numbers.
*/
public interface ILocatableRegistry
{
/**
* Attempts to find the object with the serial specified, if it can it
* returns the object.
*
* @param serial serial
* @return requestedObject, or null
* @deprecated use {@link ILocatableRegistry#getLocatableBy(long)}
*/
@Deprecated
Object findLocatableBySerial( long serial );
public interface ILocatableRegistry {
/**
* Attempts to find the object with the serial specified, if it can it
* returns the object.
*
* @param serial serial
* @return requestedObject, or null
* @deprecated use {@link ILocatableRegistry#getLocatableBy(long)}
*/
@Deprecated
Object findLocatableBySerial(long serial);
/**
* Gets the {@link ILocatable} with the registered serial, if available
*
* @param serial serial
* @return requestedObject, or null, if the object does not exist anymore
*/
ILocatable getLocatableBy( long serial );
}
/**
* Gets the {@link ILocatable} with the registered serial, if available
*
* @param serial serial
* @return requestedObject, or null, if the object does not exist anymore
*/
ILocatable getLocatableBy(long serial);
}
@@ -23,26 +23,23 @@
package appeng.api.features;
import net.minecraft.item.ItemStack;
public interface IMatterCannonAmmoRegistry {
public interface IMatterCannonAmmoRegistry
{
/**
* register a new ammo, generally speaking this is based off of atomic weight to make it easier to guess at
*
* @param ammo new ammo
* @param weight atomic weight
*/
void registerAmmo(ItemStack ammo, double weight);
/**
* register a new ammo, generally speaking this is based off of atomic weight to make it easier to guess at
*
* @param ammo new ammo
* @param weight atomic weight
*/
void registerAmmo( ItemStack ammo, double weight );
/**
* get the penetration value for a particular ammo, 0 indicates a non-ammo.
*
* @param is ammo
* @return 0 or a valid penetration value.
*/
float getPenetration( ItemStack is );
/**
* get the penetration value for a particular ammo, 0 indicates a non-ammo.
*
* @param is ammo
* @return 0 or a valid penetration value.
*/
float getPenetration(ItemStack is);
}
@@ -23,27 +23,24 @@
package appeng.api.features;
import net.minecraft.item.ItemStack;
public interface INetworkEncodable {
public interface INetworkEncodable
{
/**
* Used to get the current key from the item.
*
* @param item item
* @return string key of item
*/
String getEncryptionKey(ItemStack item);
/**
* Used to get the current key from the item.
*
* @param item item
* @return string key of item
*/
String getEncryptionKey( ItemStack item );
/**
* Encode the wireless frequency via the Controller.
*
* @param item the wireless terminal.
* @param encKey the wireless encryption key.
* @param name null for now.
*/
void setEncryptionKey( ItemStack item, String encKey, String name );
/**
* Encode the wireless frequency via the Controller.
*
* @param item the wireless terminal.
* @param encKey the wireless encryption key.
* @param name null for now.
*/
void setEncryptionKey(ItemStack item, String encKey, String name);
}
@@ -23,34 +23,30 @@
package appeng.api.features;
import appeng.api.config.TunnelType;
import net.minecraft.item.ItemStack;
import javax.annotation.Nullable;
import net.minecraft.item.ItemStack;
/**
* A Registry for how p2p Tunnels are attuned
*/
public interface IP2PTunnelRegistry
{
public interface IP2PTunnelRegistry {
/**
* Allows third parties to register items from their mod as potential
* attunements for AE's P2P Tunnels
*
* @param trigger - the item which triggers attunement. Nullable, but then ignored
* @param type - the type of tunnel. Nullable, but then ignored
*/
void addNewAttunement( @Nullable ItemStack trigger, @Nullable TunnelType type );
/**
* Allows third parties to register items from their mod as potential
* attunements for AE's P2P Tunnels
*
* @param trigger - the item which triggers attunement. Nullable, but then ignored
* @param type - the type of tunnel. Nullable, but then ignored
*/
void addNewAttunement(@Nullable ItemStack trigger, @Nullable TunnelType type);
/**
* returns null if no attunement can be found.
*
* @param trigger attunement trigger
* @return null if no attunement can be found or attunement
*/
@Nullable
TunnelType getTunnelTypeByItem( ItemStack trigger );
}
/**
* returns null if no attunement can be found.
*
* @param trigger attunement trigger
* @return null if no attunement can be found or attunement
*/
@Nullable
TunnelType getTunnelTypeByItem(ItemStack trigger);
}
@@ -23,36 +23,32 @@
package appeng.api.features;
import com.mojang.authlib.GameProfile;
import net.minecraft.entity.player.EntityPlayer;
import javax.annotation.Nullable;
import net.minecraft.entity.player.EntityPlayer;
/**
* Maintains a save specific list of userids and username combinations this greatly simplifies storage internally and
* gives a common place to look up and get IDs for the security framework.
*/
public interface IPlayerRegistry
{
public interface IPlayerRegistry {
/**
* @param gameProfile user game profile
* @return user id of a username.
*/
int getID( GameProfile gameProfile );
/**
* @param gameProfile user game profile
* @return user id of a username.
*/
int getID(GameProfile gameProfile);
/**
* @param player player
* @return user id of a player entity.
*/
int getID( EntityPlayer player );
/**
* @param player player
* @return user id of a player entity.
*/
int getID(EntityPlayer player);
/**
* @param playerID to be found player id
* @return PlayerEntity, or null if the player could not be found.
*/
@Nullable
EntityPlayer findPlayer( int playerID );
/**
* @param playerID to be found player id
* @return PlayerEntity, or null if the player could not be found.
*/
@Nullable
EntityPlayer findPlayer(int playerID);
}
@@ -23,61 +23,57 @@
package appeng.api.features;
import appeng.api.recipes.ICraftHandler;
import appeng.api.recipes.IRecipeHandler;
import appeng.api.recipes.ISubItemResolver;
import javax.annotation.Nullable;
/**
* @author AlgorithmX2
* @author thatsIch
* @version rv3 - 10.08.2015
* @since rv0
*/
public interface IRecipeHandlerRegistry
{
public interface IRecipeHandlerRegistry {
/**
* Add a new Recipe Handler to the parser.
* <p>
* MUST BE CALLED IN PRE-INIT
*
* @param name name of crafthandler
* @param handler class of crafthandler
*/
void addNewCraftHandler( String name, Class<? extends ICraftHandler> handler );
/**
* Add a new Recipe Handler to the parser.
* <p>
* MUST BE CALLED IN PRE-INIT
*
* @param name name of crafthandler
* @param handler class of crafthandler
*/
void addNewCraftHandler(String name, Class<? extends ICraftHandler> handler);
/**
* Add a new resolver to the parser.
* <p>
* MUST BE CALLED IN PRE-INIT
*
* @param sir sub item resolver
*/
void addNewSubItemResolver( ISubItemResolver sir );
/**
* Add a new resolver to the parser.
* <p>
* MUST BE CALLED IN PRE-INIT
*
* @param sir sub item resolver
*/
void addNewSubItemResolver(ISubItemResolver sir);
/**
* @param name name of crafting handler
* @return A recipe handler by name, returns null on failure.
*/
@Nullable
ICraftHandler getCraftHandlerFor( String name );
/**
* @param name name of crafting handler
* @return A recipe handler by name, returns null on failure.
*/
@Nullable
ICraftHandler getCraftHandlerFor(String name);
/**
* @return a new recipe handler, which can be used to parse, and read recipe files.
*/
IRecipeHandler createNewRecipehandler();
/**
* @return a new recipe handler, which can be used to parse, and read recipe files.
*/
IRecipeHandler createNewRecipehandler();
/**
* resolve sub items by name.
*
* @param nameSpace namespace of item
* @param itemName full name of item
* @return ResolverResult or ResolverResultSet or null if could not resolve
*/
@Nullable
Object resolveItem( String nameSpace, String itemName );
/**
* resolve sub items by name.
*
* @param nameSpace namespace of item
* @param itemName full name of item
* @return ResolverResult or ResolverResultSet or null if could not resolve
*/
@Nullable
Object resolveItem(String nameSpace, String itemName);
}
@@ -23,90 +23,87 @@
package appeng.api.features;
import appeng.api.movable.IMovableRegistry;
import appeng.api.networking.IGridCacheRegistry;
import appeng.api.storage.ICellRegistry;
import appeng.api.storage.IExternalStorageRegistry;
/**
* @author AlgorithmX2
* @author thatsIch
* @version rv2
* @since rv0
*/
public interface IRegistryContainer
{
public interface IRegistryContainer {
/**
* Use the movable registry to white list your tiles.
*/
IMovableRegistry movable();
/**
* Use the movable registry to white list your tiles.
*/
IMovableRegistry movable();
/**
* Add new Grid Caches for use during run time, only use during loading phase.
*/
IGridCacheRegistry gridCache();
/**
* Add new Grid Caches for use during run time, only use during loading phase.
*/
IGridCacheRegistry gridCache();
/**
* Add additional storage bus handlers to improve interplay with mod blocks that contains special inventories that
* function unlike vanilla chests. AE uses this internally for barrels, DSU's, quantum chests, AE Networks and more.
*/
IExternalStorageRegistry externalStorage();
/**
* Add additional storage bus handlers to improve interplay with mod blocks that contains special inventories that
* function unlike vanilla chests. AE uses this internally for barrels, DSU's, quantum chests, AE Networks and more.
*/
IExternalStorageRegistry externalStorage();
/**
* Add additional special comparison functionality, AE Uses this internally for Bees.
*/
ISpecialComparisonRegistry specialComparison();
/**
* Add additional special comparison functionality, AE Uses this internally for Bees.
*/
ISpecialComparisonRegistry specialComparison();
/**
* Lets you register your items as wireless terminals
*/
IWirelessTermRegistry wireless();
/**
* Lets you register your items as wireless terminals
*/
IWirelessTermRegistry wireless();
/**
* Allows you to register new cell types, these will function in drives
*/
ICellRegistry cell();
/**
* Allows you to register new cell types, these will function in drives
*/
ICellRegistry cell();
/**
* Manage grinder recipes via API
*/
IGrinderRegistry grinder();
/**
* Manage grinder recipes via API
*/
IGrinderRegistry grinder();
/**
* Manage inscriber recipes via API
*/
IInscriberRegistry inscriber();
/**
* Manage inscriber recipes via API
*/
IInscriberRegistry inscriber();
/**
* get access to the locatable registry
*/
ILocatableRegistry locatable();
/**
* get access to the locatable registry
*/
ILocatableRegistry locatable();
/**
* get access to the p2p tunnel registry.
*/
IP2PTunnelRegistry p2pTunnel();
/**
* get access to the p2p tunnel registry.
*/
IP2PTunnelRegistry p2pTunnel();
/**
* get access to the ammo registry.
*/
IMatterCannonAmmoRegistry matterCannon();
/**
* get access to the ammo registry.
*/
IMatterCannonAmmoRegistry matterCannon();
/**
* get access to the player registry
*/
IPlayerRegistry players();
/**
* get access to the player registry
*/
IPlayerRegistry players();
/**
* get access to the ae2 recipe api
*/
IRecipeHandlerRegistry recipes();
/**
* get access to the ae2 recipe api
*/
IRecipeHandlerRegistry recipes();
/**
* get access to the world-gen api.
*/
IWorldGen worldgen();
/**
* get access to the world-gen api.
*/
IWorldGen worldgen();
}
@@ -23,28 +23,25 @@
package appeng.api.features;
import net.minecraft.item.ItemStack;
/**
* A Registry of any special comparison handlers for AE To use.
*/
public interface ISpecialComparisonRegistry
{
public interface ISpecialComparisonRegistry {
/**
* return TheHandler or null.
*
* @param stack item
* @return a handler it found for a specific item
*/
IItemComparison getSpecialComparison( ItemStack stack );
/**
* return TheHandler or null.
*
* @param stack item
* @return a handler it found for a specific item
*/
IItemComparison getSpecialComparison(ItemStack stack);
/**
* Register a new special comparison function with AE.
*
* @param prov comparison provider
*/
void addComparisonProvider( IItemComparisonProvider prov );
}
/**
* Register a new special comparison function with AE.
*
* @param prov comparison provider
*/
void addComparisonProvider(IItemComparisonProvider prov);
}
@@ -23,47 +23,44 @@
package appeng.api.features;
import appeng.api.util.IConfigManager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
/**
* A handler for a wireless terminal.
*/
public interface IWirelessTermHandler extends INetworkEncodable
{
public interface IWirelessTermHandler extends INetworkEncodable {
/**
* @param is wireless terminal
* @return true, if usePower, hasPower, etc... can be called for the provided item
*/
boolean canHandle( ItemStack is );
/**
* @param is wireless terminal
* @return true, if usePower, hasPower, etc... can be called for the provided item
*/
boolean canHandle(ItemStack is);
/**
* use an amount of power, in AE units
*
* @param amount is in AE units ( 5 per MJ ), if you return false, the item should be dead and return false for
* hasPower
* @param is wireless terminal
* @return true if wireless terminal uses power
*/
boolean usePower( EntityPlayer player, double amount, ItemStack is );
/**
* use an amount of power, in AE units
*
* @param amount is in AE units ( 5 per MJ ), if you return false, the item should be dead and return false for
* hasPower
* @param is wireless terminal
* @return true if wireless terminal uses power
*/
boolean usePower(EntityPlayer player, double amount, ItemStack is);
/**
* gets the power status of the item.
*
* @param is wireless terminal
* @return returns true if there is any power left.
*/
boolean hasPower( EntityPlayer player, double amount, ItemStack is );
/**
* gets the power status of the item.
*
* @param is wireless terminal
* @return returns true if there is any power left.
*/
boolean hasPower(EntityPlayer player, double amount, ItemStack is);
/**
* Return the config manager for the wireless terminal.
*
* @param is wireless terminal
* @return config manager of wireless terminal
*/
IConfigManager getConfigManager( ItemStack is );
}
/**
* Return the config manager for the wireless terminal.
*
* @param is wireless terminal
* @return config manager of wireless terminal
*/
IConfigManager getConfigManager(ItemStack is);
}
@@ -23,41 +23,38 @@
package appeng.api.features;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
/**
* Registration record for a Custom Cell handler.
*/
public interface IWirelessTermRegistry
{
public interface IWirelessTermRegistry {
/**
* add this handler to the list of other wireless handler.
*
* @param handler wireless handler
*/
void registerWirelessHandler( IWirelessTermHandler handler );
/**
* add this handler to the list of other wireless handler.
*
* @param handler wireless handler
*/
void registerWirelessHandler(IWirelessTermHandler handler);
/**
* @param is item which might have a handler
* @return true if there is a handler for this item
*/
boolean isWirelessTerminal( ItemStack is );
/**
* @param is item which might have a handler
* @return true if there is a handler for this item
*/
boolean isWirelessTerminal(ItemStack is);
/**
* @param is item with handler
* @return a register handler for the item in question, or null if there
* isn't one
*/
IWirelessTermHandler getWirelessTerminalHandler( ItemStack is );
/**
* @param is item with handler
* @return a register handler for the item in question, or null if there
* isn't one
*/
IWirelessTermHandler getWirelessTerminalHandler(ItemStack is);
/**
* opens the wireless terminal gui, the wireless terminal item, must be in
* the active slot on the tool bar.
*/
void openWirelessTerminalGui( ItemStack item, World w, EntityPlayer player );
/**
* opens the wireless terminal gui, the wireless terminal item, must be in
* the active slot on the tool bar.
*/
void openWirelessTerminalGui(ItemStack item, World w, EntityPlayer player);
}
@@ -23,24 +23,22 @@
package appeng.api.features;
import net.minecraft.world.World;
import net.minecraft.world.WorldProvider;
public interface IWorldGen {
public interface IWorldGen
{
void disableWorldGenForProviderID(WorldGenType type, Class<? extends WorldProvider> provider);
void disableWorldGenForProviderID( WorldGenType type, Class<? extends WorldProvider> provider );
void enableWorldGenForDimension(WorldGenType type, int dimID);
void enableWorldGenForDimension( WorldGenType type, int dimID );
void disableWorldGenForDimension(WorldGenType type, int dimID);
void disableWorldGenForDimension( WorldGenType type, int dimID );
boolean isWorldGenEnabled(WorldGenType type, World w);
boolean isWorldGenEnabled( WorldGenType type, World w );
enum WorldGenType
{
CertusQuartz, ChargedCertusQuartz, Meteorites
}
enum WorldGenType {
CertusQuartz,
ChargedCertusQuartz,
Meteorites
}
}
@@ -1,15 +1,13 @@
package appeng.api.features;
public enum InscriberProcessType {
/**
* uses the optionals as catalyst
*/
Inscribe,
public enum InscriberProcessType
{
/**
* uses the optionals as catalyst
*/
Inscribe,
/**
* spends the optionals
*/
Press
/**
* spends the optionals
*/
Press
}
@@ -23,25 +23,22 @@
package appeng.api.implementations;
import appeng.api.networking.crafting.ICraftingPatternDetails;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
/**
* Implemented on {@link Item}
*/
public interface ICraftingPatternItem
{
public interface ICraftingPatternItem {
/**
* Access Details about a pattern
*
* @param is pattern
* @param w crafting world
* @return details of pattern
*/
ICraftingPatternDetails getPatternForItem( ItemStack is, World w );
/**
* Access Details about a pattern
*
* @param is pattern
* @param w crafting world
* @return details of pattern
*/
ICraftingPatternDetails getPatternForItem(ItemStack is, World w);
}
@@ -23,22 +23,22 @@
package appeng.api.implementations;
/**
* This is intended for use on the client side to provide details to WAILA.
*/
public interface IPowerChannelState
{
public interface IPowerChannelState {
/**
* @return true if the part/tile is powered.
*/
boolean isPowered();
/**
* @return true if the part/tile is powered.
*/
boolean isPowered();
/**
* @return true if the part/tile isActive
*/
boolean isActive();
/**
* @return true if the part/tile isActive
*/
boolean isActive();
default boolean isBooting(){ return false; }
default boolean isBooting() {
return false;
}
}
@@ -23,25 +23,22 @@
package appeng.api.implementations;
import appeng.api.config.Upgrades;
import appeng.api.implementations.tiles.ISegmentedInventory;
import appeng.api.util.IConfigurableObject;
import net.minecraft.tileentity.TileEntity;
public interface IUpgradeableHost extends IConfigurableObject, ISegmentedInventory {
public interface IUpgradeableHost extends IConfigurableObject, ISegmentedInventory
{
/**
* determine how many of an upgrade are installed.
*/
int getInstalledUpgrades(Upgrades u);
/**
* determine how many of an upgrade are installed.
*/
int getInstalledUpgrades( Upgrades u );
/**
* the tile...
*
* @return tile entity
*/
TileEntity getTile();
/**
* the tile...
*
* @return tile entity
*/
TileEntity getTile();
}
@@ -23,19 +23,16 @@
package appeng.api.implementations;
/**
* Defines the result of performing a transition from the world into a storage
* cell, if its possible, and what the energy usage is.
*/
public class TransitionResult
{
public final boolean success;
public final double energyUsage;
public class TransitionResult {
public final boolean success;
public final double energyUsage;
public TransitionResult( final boolean _success, final double power )
{
this.success = _success;
this.energyUsage = power;
}
public TransitionResult(final boolean _success, final double power) {
this.success = _success;
this.energyUsage = power;
}
}
@@ -23,17 +23,14 @@
package appeng.api.implementations.guiobjects;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
/**
* Implemented on Item objects, to return objects used to manage, and interact
* with the contents.
*/
public interface IGuiItem
{
public interface IGuiItem {
IGuiItemObject getGuiObject( ItemStack is, World world, int x, int y, int z );
IGuiItemObject getGuiObject(ItemStack is, World world, int x, int y, int z);
}
@@ -23,12 +23,9 @@
package appeng.api.implementations.guiobjects;
import net.minecraft.item.ItemStack;
public interface IGuiItemObject {
public interface IGuiItemObject
{
ItemStack getItemStack();
ItemStack getItemStack();
}
@@ -23,16 +23,13 @@
package appeng.api.implementations.guiobjects;
import appeng.api.networking.IGridHost;
import net.minecraft.inventory.IInventory;
/**
* Obtained via {@link IGuiItem} getGuiObject
*/
public interface INetworkTool extends IInventory, IGuiItemObject
{
public interface INetworkTool extends IInventory, IGuiItemObject {
IGridHost getGridHost(); // null for most purposes.
IGridHost getGridHost(); // null for most purposes.
}
@@ -23,17 +23,12 @@
package appeng.api.implementations.guiobjects;
import appeng.api.networking.energy.IEnergySource;
import appeng.api.storage.IMEMonitor;
import appeng.api.storage.ITerminalHost;
import appeng.api.storage.data.IAEItemStack;
/**
* Obtained via {@link IGuiItem} getGuiObject
*/
public interface IPortableCell extends ITerminalHost, IMEMonitor<IAEItemStack>, IEnergySource, IGuiItemObject
{
}
public interface IPortableCell extends ITerminalHost, IMEMonitor<IAEItemStack>, IEnergySource, IGuiItemObject {}
@@ -23,50 +23,47 @@
package appeng.api.implementations.items;
import appeng.api.config.AccessRestriction;
import appeng.api.networking.energy.IAEPowerStorage;
import net.minecraft.item.ItemStack;
/**
* Basically the same as {@link IAEPowerStorage}, but for items.
*/
public interface IAEItemPowerStorage
{
public interface IAEItemPowerStorage {
/**
* Inject amt, power into the device, it will store what it can, and return
* the amount unable to be stored.
*
* @return amount unable to be stored
*/
double injectAEPower( ItemStack is, double amt );
/**
* Inject amt, power into the device, it will store what it can, and return
* the amount unable to be stored.
*
* @return amount unable to be stored
*/
double injectAEPower(ItemStack is, double amt);
/**
* Attempt to extract power from the device, it will extract what it can and
* return it.
*
* @param amt to be extracted power from device
* @return what it could extract
*/
double extractAEPower( ItemStack is, double amt );
/**
* Attempt to extract power from the device, it will extract what it can and
* return it.
*
* @param amt to be extracted power from device
* @return what it could extract
*/
double extractAEPower(ItemStack is, double amt);
/**
* @return the current maximum power ( this can change :P )
*/
double getAEMaxPower( ItemStack is );
/**
* @return the current maximum power ( this can change :P )
*/
double getAEMaxPower(ItemStack is);
/**
* @return the current AE Power Level, this may exceed getMEMaxPower()
*/
double getAECurrentPower( ItemStack is );
/**
* @return the current AE Power Level, this may exceed getMEMaxPower()
*/
double getAECurrentPower(ItemStack is);
/**
* Control the power flow by telling what the network can do, either add? or
* subtract? or both!
*
* @return access restriction of network
*/
AccessRestriction getPowerFlow( ItemStack is );
}
/**
* Control the power flow by telling what the network can do, either add? or
* subtract? or both!
*
* @return access restriction of network
*/
AccessRestriction getPowerFlow(ItemStack is);
}
@@ -23,26 +23,23 @@
package appeng.api.implementations.items;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
/**
* Implemented on AE's wrench(s) as a substitute for if BC's API is not
* available.
*/
public interface IAEWrench
{
public interface IAEWrench {
/**
* Check if the wrench can be used.
*
* @param player wrenching player
* @param x x pos of wrenched block
* @param y y pos of wrenched block
* @param z z pos of wrenched block
* @return true if wrench can be used
*/
boolean canWrench( ItemStack wrench, EntityPlayer player, int x, int y, int z );
/**
* Check if the wrench can be used.
*
* @param player wrenching player
* @param x x pos of wrenched block
* @param y y pos of wrenched block
* @param z z pos of wrenched block
* @return true if wrench can be used
*/
boolean canWrench(ItemStack wrench, EntityPlayer player, int x, int y, int z);
}
@@ -23,65 +23,61 @@
package appeng.api.implementations.items;
import appeng.api.config.SecurityPermissions;
import appeng.api.features.IPlayerRegistry;
import appeng.api.networking.security.ISecurityRegistry;
import com.mojang.authlib.GameProfile;
import java.util.EnumSet;
import net.minecraft.item.ItemStack;
import java.util.EnumSet;
public interface IBiometricCard {
/**
* Set the {@link GameProfile} to null, to clear it.
*/
void setProfile(ItemStack itemStack, GameProfile username);
public interface IBiometricCard
{
/**
* @return {@link GameProfile} of the player encoded on this card, or a blank string.
*/
GameProfile getProfile(ItemStack is);
/**
* Set the {@link GameProfile} to null, to clear it.
*/
void setProfile( ItemStack itemStack, GameProfile username );
/**
* @param itemStack card
* @return the full list of permissions encoded on the card.
*/
EnumSet<SecurityPermissions> getPermissions(ItemStack itemStack);
/**
* @return {@link GameProfile} of the player encoded on this card, or a blank string.
*/
GameProfile getProfile( ItemStack is );
/**
* Check if a permission is encoded on the card.
*
* @param permission card
* @return true if this permission is set on the card.
*/
boolean hasPermission(ItemStack is, SecurityPermissions permission);
/**
* @param itemStack card
* @return the full list of permissions encoded on the card.
*/
EnumSet<SecurityPermissions> getPermissions( ItemStack itemStack );
/**
* remove a permission from the item stack.
*
* @param itemStack card
* @param permission to be removed permission
*/
void removePermission(ItemStack itemStack, SecurityPermissions permission);
/**
* Check if a permission is encoded on the card.
*
* @param permission card
* @return true if this permission is set on the card.
*/
boolean hasPermission( ItemStack is, SecurityPermissions permission );
/**
* add a permission to the item stack.
*
* @param itemStack card
* @param permission to be added permission
*/
void addPermission(ItemStack itemStack, SecurityPermissions permission);
/**
* remove a permission from the item stack.
*
* @param itemStack card
* @param permission to be removed permission
*/
void removePermission( ItemStack itemStack, SecurityPermissions permission );
/**
* add a permission to the item stack.
*
* @param itemStack card
* @param permission to be added permission
*/
void addPermission( ItemStack itemStack, SecurityPermissions permission );
/**
* lets you handle submission of security values on the card for custom behavior.
*
* @param registry security registry
* @param pr player registry
* @param is card
*/
void registerPermissions( ISecurityRegistry registry, IPlayerRegistry pr, ItemStack is );
/**
* lets you handle submission of security values on the card for custom behavior.
*
* @param registry security registry
* @param pr player registry
* @param is card
*/
void registerPermissions(ISecurityRegistry registry, IPlayerRegistry pr, ItemStack is);
}
@@ -23,16 +23,13 @@
package appeng.api.implementations.items;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.item.ItemStack;
public interface IGrowableCrystal {
public interface IGrowableCrystal
{
ItemStack triggerGrowth(ItemStack is);
ItemStack triggerGrowth( ItemStack is );
float getMultiplier( Block blk, Material mat );
float getMultiplier(Block blk, Material mat);
}
@@ -23,23 +23,19 @@
package appeng.api.implementations.items;
import net.minecraft.item.ItemStack;
import java.util.Set;
import net.minecraft.item.ItemStack;
/**
* Lets you specify the name of the group of items this falls under.
*/
public interface IItemGroup
{
public interface IItemGroup {
/**
* returning null, is the same as not implementing the interface at all.
*
* @param is item
* @return an unlocalized string to use for the items group name.
*/
String getUnlocalizedGroupName( Set<ItemStack> otherItems, ItemStack is );
/**
* returning null, is the same as not implementing the interface at all.
*
* @param is item
* @return an unlocalized string to use for the items group name.
*/
String getUnlocalizedGroupName(Set<ItemStack> otherItems, ItemStack is);
}
@@ -23,54 +23,51 @@
package appeng.api.implementations.items;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
/**
* Memory Card API
* <p>
* AE's Memory Card Item Class implements this interface.
*/
public interface IMemoryCard
{
public interface IMemoryCard {
/**
* Configures the data stored on the memory card, the SettingsName, will be
* localized when displayed.
*
* @param is item
* @param SettingsName unlocalized string that represents the tile entity.
* @param data may contain a String called "tooltip" which is is a
* unlocalized string displayed after the settings name, optional
* but can be used to add details to the card for later.
*/
void setMemoryCardContents( ItemStack is, String SettingsName, NBTTagCompound data );
/**
* Configures the data stored on the memory card, the SettingsName, will be
* localized when displayed.
*
* @param is item
* @param SettingsName unlocalized string that represents the tile entity.
* @param data may contain a String called "tooltip" which is is a
* unlocalized string displayed after the settings name, optional
* but can be used to add details to the card for later.
*/
void setMemoryCardContents(ItemStack is, String SettingsName, NBTTagCompound data);
/**
* returns the settings name provided by a previous call to
* setMemoryCardContents, or "AppEng.GuiITooltip.Blank" if there was no
* previous call to setMemoryCardContents.
*
* @param is item
* @return setting name
*/
String getSettingsName( ItemStack is );
/**
* returns the settings name provided by a previous call to
* setMemoryCardContents, or "AppEng.GuiITooltip.Blank" if there was no
* previous call to setMemoryCardContents.
*
* @param is item
* @return setting name
*/
String getSettingsName(ItemStack is);
/**
* @param is item
* @return the NBT Data previously saved by setMemoryCardContents, or an
* empty NBTCompound
*/
NBTTagCompound getData( ItemStack is );
/**
* @param is item
* @return the NBT Data previously saved by setMemoryCardContents, or an
* empty NBTCompound
*/
NBTTagCompound getData(ItemStack is);
/**
* notify the user of a outcome related to the memory card.
*
* @param player that used the card.
* @param msg which message to send.
*/
void notifyUser( EntityPlayer player, MemoryCardMessages msg );
/**
* notify the user of a outcome related to the memory card.
*
* @param player that used the card.
* @param msg which message to send.
*/
void notifyUser(EntityPlayer player, MemoryCardMessages msg);
}
@@ -23,71 +23,68 @@
package appeng.api.implementations.items;
import appeng.api.implementations.TransitionResult;
import appeng.api.util.WorldCoord;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
/**
* Implemented on a {@link Item}
*/
public interface ISpatialStorageCell
{
public interface ISpatialStorageCell {
/**
* @param is spatial storage cell
* @return true if this item is a spatial storage cell
*/
boolean isSpatialStorage( ItemStack is );
/**
* @param is spatial storage cell
* @return true if this item is a spatial storage cell
*/
boolean isSpatialStorage(ItemStack is);
/**
* @param is spatial storage cell
* @return the maximum size of the spatial storage cell along any given axis
*/
int getMaxStoredDim( ItemStack is );
/**
* @param is spatial storage cell
* @return the maximum size of the spatial storage cell along any given axis
*/
int getMaxStoredDim(ItemStack is);
/**
* @param is spatial storage cell
* @return the world for this cell
*/
World getWorld( ItemStack is );
/**
* @param is spatial storage cell
* @return the world for this cell
*/
World getWorld(ItemStack is);
/**
* get the currently stored size.
*
* @param is spatial storage cell
* @return size of spatial
*/
WorldCoord getStoredSize( ItemStack is );
/**
* get the currently stored size.
*
* @param is spatial storage cell
* @return size of spatial
*/
WorldCoord getStoredSize(ItemStack is);
/**
* Minimum coordinates in its world for the storage cell.
*
* @param is spatial storage cell
* @return minimum coordinate of dimension
*/
WorldCoord getMin( ItemStack is );
/**
* Minimum coordinates in its world for the storage cell.
*
* @param is spatial storage cell
* @return minimum coordinate of dimension
*/
WorldCoord getMin(ItemStack is);
/**
* Maximum coordinates in its world for the storage cell.
*
* @param is spatial storage cell
* @return maximum coordinate of dimension
*/
WorldCoord getMax( ItemStack is );
/**
* Maximum coordinates in its world for the storage cell.
*
* @param is spatial storage cell
* @return maximum coordinate of dimension
*/
WorldCoord getMax(ItemStack is);
/**
* Perform a spatial swap with the contents of the cell, and the world.
*
* @param is spatial storage cell
* @param w world of spatial
* @param min min coord
* @param max max coord
* @param doTransition transition
* @return result of transition
*/
TransitionResult doSpatialTransition( ItemStack is, World w, WorldCoord min, WorldCoord max, boolean doTransition );
}
/**
* Perform a spatial swap with the contents of the cell, and the world.
*
* @param is spatial storage cell
* @param w world of spatial
* @param min min coord
* @param max max coord
* @param doTransition transition
* @return result of transition
*/
TransitionResult doSpatialTransition(ItemStack is, World w, WorldCoord min, WorldCoord max, boolean doTransition);
}
@@ -23,13 +23,10 @@
package appeng.api.implementations.items;
import appeng.api.storage.ICellWorkbenchItem;
import appeng.api.storage.data.IAEItemStack;
import net.minecraft.item.ItemStack;
import javax.annotation.Nullable;
import net.minecraft.item.ItemStack;
/**
* Any item which implements this can be treated as an IMEInventory via
@@ -41,81 +38,80 @@ import javax.annotation.Nullable;
* <p>
* The standard AE implementation only provides 1-63 Types
*/
public interface IStorageCell extends ICellWorkbenchItem
{
public interface IStorageCell extends ICellWorkbenchItem {
/**
* It wont work if the return is not a multiple of 8.
* The limit is ({@link Integer#MAX_VALUE} + 1) / 8.
*
* @param cellItem item
* @return number of bytes
*/
int getBytes( ItemStack cellItem );
/**
* It wont work if the return is not a multiple of 8.
* The limit is ({@link Integer#MAX_VALUE} + 1) / 8.
*
* @param cellItem item
* @return number of bytes
*/
int getBytes(ItemStack cellItem);
/**
* Determines the number of bytes used for any type included on the cell.
*
* @param cellItem item
* @return number of bytes
* @deprecated use {@link IStorageCell#getBytesPerType(ItemStack)}
*/
@Deprecated
int BytePerType( ItemStack cellItem );
/**
* Determines the number of bytes used for any type included on the cell.
*
* @param cellItem item
* @return number of bytes
* @deprecated use {@link IStorageCell#getBytesPerType(ItemStack)}
*/
@Deprecated
int BytePerType(ItemStack cellItem);
/**
* Determines the number of bytes used for any type included on the cell.
*
* @param cellItem item
* @return number of bytes
*/
int getBytesPerType( ItemStack cellItem );
/**
* Determines the number of bytes used for any type included on the cell.
*
* @param cellItem item
* @return number of bytes
*/
int getBytesPerType(ItemStack cellItem);
/**
* Must be between 1 and 63, indicates how many types you want to store on
* the item.
*
* @param cellItem item
* @return number of types
*/
int getTotalTypes( ItemStack cellItem );
/**
* Must be between 1 and 63, indicates how many types you want to store on
* the item.
*
* @param cellItem item
* @return number of types
*/
int getTotalTypes(ItemStack cellItem);
/**
* Allows you to fine tune which items are allowed on a given cell, if you
* don't care, just return false; As the handler for this type of cell is
* still the default cells, the normal AE black list is also applied.
*
* @param cellItem item
* @param requestedAddition requested addition
* @return true to preventAdditionOfItem
*/
boolean isBlackListed( ItemStack cellItem, IAEItemStack requestedAddition );
/**
* Allows you to fine tune which items are allowed on a given cell, if you
* don't care, just return false; As the handler for this type of cell is
* still the default cells, the normal AE black list is also applied.
*
* @param cellItem item
* @param requestedAddition requested addition
* @return true to preventAdditionOfItem
*/
boolean isBlackListed(ItemStack cellItem, IAEItemStack requestedAddition);
/**
* Allows you to specify if this storage cell can be stored inside other
* storage cells, only set this for special items like the matter cannon
* that are not general purpose storage.
*
* @return true if the storage cell can be stored inside other storage
* cells, this is generally false, except for certain situations
* such as the matter cannon.
*/
boolean storableInStorageCell();
/**
* Allows you to specify if this storage cell can be stored inside other
* storage cells, only set this for special items like the matter cannon
* that are not general purpose storage.
*
* @return true if the storage cell can be stored inside other storage
* cells, this is generally false, except for certain situations
* such as the matter cannon.
*/
boolean storableInStorageCell();
/**
* Allows an item to selectively enable or disable its status as a storage
* cell.
*
* @param i item
* @return if the ItemStack should behavior as a storage cell.
*/
boolean isStorageCell( ItemStack i );
/**
/**
* Allows an item to selectively enable or disable its status as a storage
* cell.
*
* @param i item
* @return drain in ae/t this storage cell will use.
*/
default double getIdleDrain( @Nullable ItemStack i ) {
* @return if the ItemStack should behavior as a storage cell.
*/
boolean isStorageCell(ItemStack i);
/**
* @param i item
* @return drain in ae/t this storage cell will use.
*/
default double getIdleDrain(@Nullable ItemStack i) {
// provided for API backwards compatibility
return getIdleDrain();
}
Loaded 100 of 1220 files, more files were not shown because too many files have changed in this diff. Show more