mirror of
https://github.com/GTNewHorizons/Applied-Energistics-2-Unofficial.git
synced 2026-10-26 14:25:20 +00:00
Update buildscript, apply spotless (#175)
This commit is contained in:
1 parent
08d0ef617f
commit
a40ee7424f
1220 files changed
+95126
-109823
No files matched your search
@@ -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
@@ -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
@@ -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')
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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 → 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 → 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
Reference in new issue
Block a user