diff --git a/.github/scripts/test-no-crash-reports.sh b/.github/scripts/test-no-crash-reports.sh
new file mode 100644
index 0000000..c67e342
--- /dev/null
+++ b/.github/scripts/test-no-crash-reports.sh
@@ -0,0 +1,9 @@
+directory="run/crash-reports"
+if [ -d $directory ]; then
+ echo "Crash reports detected:"
+ cat $directory/*
+ exit 1
+else
+ echo "No crash reports detected"
+ exit 0
+fi
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
new file mode 100644
index 0000000..6c9b3cb
--- /dev/null
+++ b/.github/workflows/build-and-test.yml
@@ -0,0 +1,45 @@
+# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
+
+name: Build and test
+
+on:
+ pull_request:
+ branches: [ master, main ]
+ push:
+ branches: [ master, main ]
+
+jobs:
+ build-and-test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Set up JDK 8
+ uses: actions/setup-java@v2
+ with:
+ java-version: '8'
+ distribution: 'adopt'
+ cache: gradle
+
+ - name: Grant execute permission for gradlew
+ run: chmod +x gradlew
+
+ - name: Setup the workspace
+ run: ./gradlew setupCIWorkspace
+
+ - name: Build the mod
+ run: ./gradlew build
+
+ - name: Run server for 1 minute
+ run: |
+ mkdir run
+ echo "eula=true" > run/eula.txt
+ timeout 10 ./gradlew runServer || true
+
+ - name: Test no crashes happend
+ run: |
+ chmod +x .github/scripts/test-no-crash-reports.sh
+ .github/scripts/test-no-crash-reports.sh
diff --git a/.github/workflows/release-tags.yml b/.github/workflows/release-tags.yml
new file mode 100644
index 0000000..25c354b
--- /dev/null
+++ b/.github/workflows/release-tags.yml
@@ -0,0 +1,45 @@
+# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
+
+name: Release tagged build
+
+on:
+ push:
+ tags:
+ - '*'
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Set release version
+ run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
+
+ - name: Set up JDK 8
+ uses: actions/setup-java@v2
+ with:
+ java-version: '8'
+ distribution: 'adopt'
+ cache: gradle
+
+ - name: Grant execute permission for gradlew
+ run: chmod +x gradlew
+
+ - name: Setup the workspace
+ run: ./gradlew setupCIWorkspace
+
+ - name: Build the mod
+ run: ./gradlew build
+
+ - name: Release under current tag
+ uses: "marvinpinto/action-automatic-releases@latest"
+ with:
+ repo_token: "${{ secrets.GITHUB_TOKEN }}"
+ automatic_release_tag: "${{ env.RELEASE_VERSION }}"
+ prerelease: false
+ title: "${{ env.RELEASE_VERSION }}"
+ files: build/libs/*.jar
diff --git a/.gitignore b/.gitignore
index 7f4c30f..8326f20 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,12 +11,12 @@
/bin/*
/download/*
/.settings/*
-/eclipse/*
/debug/*
/.metadata/*
/config/*
/logs/*
/saves/*
+/.idea/
#File Extensions
*.psd
diff --git a/README.md b/README.md
index b517da7..7ebdcc2 100644
--- a/README.md
+++ b/README.md
@@ -4,11 +4,11 @@
Electro-Magic Tools is a Minecraft mod which integrates Thaumcraft 4 with IndustrialCraft 2 by adding cross-mod tools and items, such as magic solar panels, essentia generators and legendary items.
-#Downloads
-[CurseForge downloads](http://minecraft.curseforge.com/projects/electro-magic-tools)
-
-[Github Releases](https://github.com/fewizz/Electro-Magic-Tools/releases)
+# Fork
+This mod was forked by the GT:NH Team to continue the development of the 1.7.10 Branch.
+The up-to-date Master branch can be found on our Jenkins:
+http://jenkins.usrv.de
#Issues
@@ -22,7 +22,6 @@ Before posting to the issue tracker, make sure you meet the following criteria:
- You speak English or Russian well enough to explain yourself without wondering whether you will be understood.
-# Fork
-This mod was forked by the GT:NH Team to continue the development of the 1.7.10 Branch.
-The up-to-date Master branch can be found on our Jenkins:
-http://jenkins.usrv.de
+#Upstream
+
+[CurseForge](http://minecraft.curseforge.com/projects/electro-magic-tools)
diff --git a/build.gradle b/build.gradle
index 381acff..e466de0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,87 +1,588 @@
+//version: 1641429628
+/*
+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/SinTh0r4s/ExampleMod1.7.10/blob/main/build.gradle for updates.
+ */
+
+
+import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
+import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+
+import java.util.concurrent.TimeUnit
+
buildscript {
repositories {
- mavenCentral()
- maven { url = "http://files.minecraftforge.net/maven" }
+ maven {
+ name = "forge"
+ url = "https://maven.minecraftforge.net"
+ }
+ maven {
+ name = "sonatype"
+ url = "https://oss.sonatype.org/content/repositories/snapshots/"
+ }
+ maven {
+ name = "Scala CI dependencies"
+ url = "https://repo1.maven.org/maven2/"
+ }
+ maven {
+ name = "jitpack"
+ url = "https://jitpack.io"
+ }
}
dependencies {
- classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
+ classpath 'com.github.GTNewHorizons:ForgeGradle:1.2.5'
}
}
+plugins {
+ id 'idea'
+ id 'scala'
+ id("org.ajoberstar.grgit") version("3.1.1")
+ id("com.github.johnrengelman.shadow") version("4.0.4")
+ id("com.palantir.git-version") version("0.12.3")
+ id("maven-publish")
+}
+
apply plugin: 'forge'
-apply plugin: 'signing'
-sourceCompatibility = JavaVersion.VERSION_1_8
-targetCompatibility = JavaVersion.VERSION_1_8
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
+def projectJavaVersion = JavaLanguageVersion.of(8)
-ext.configFile = file "build.properties"
-configFile.withReader {
- def prop = new Properties()
- prop.load(it)
- project.ext.config = new ConfigSlurper().parse prop
+java {
+ toolchain {
+ languageVersion.set(projectJavaVersion)
+ }
}
-version = config.mod_version + "[" + config.mc_version + "]"
-group= config.package_group
-archivesBaseName = config.mod_name
+idea {
+ module {
+ inheritOutputDirs = true
+ downloadJavadoc = true
+ downloadSources = true
+ }
+}
+
+if(JavaVersion.current() != JavaVersion.VERSION_1_8) {
+ throw new GradleException("This project requires Java 8, but it's running on " + JavaVersion.current())
+}
+
+checkPropertyExists("modName")
+checkPropertyExists("modId")
+checkPropertyExists("modGroup")
+checkPropertyExists("autoUpdateBuildScript")
+checkPropertyExists("minecraftVersion")
+checkPropertyExists("forgeVersion")
+checkPropertyExists("replaceGradleTokenInFile")
+checkPropertyExists("gradleTokenModId")
+checkPropertyExists("gradleTokenModName")
+checkPropertyExists("gradleTokenVersion")
+checkPropertyExists("gradleTokenGroupName")
+checkPropertyExists("apiPackage")
+checkPropertyExists("accessTransformersFile")
+checkPropertyExists("usesMixins")
+checkPropertyExists("mixinPlugin")
+checkPropertyExists("mixinsPackage")
+checkPropertyExists("coreModClass")
+checkPropertyExists("containsMixinsAndOrCoreModOnly")
+checkPropertyExists("usesShadowedDependencies")
+checkPropertyExists("developmentEnvironmentUserName")
+
+
+String javaSourceDir = "src/main/java/"
+String scalaSourceDir = "src/main/scala/"
+
+String targetPackageJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/")
+String targetPackageScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/")
+if((getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists()) == false) {
+ throw new GradleException("Could not resolve \"modGroup\"! Could not find " + targetPackageJava + " or " + targetPackageScala)
+}
+
+if(apiPackage) {
+ targetPackageJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/")
+ targetPackageScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/")
+ if((getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists()) == false) {
+ throw new GradleException("Could not resolve \"apiPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala)
+ }
+}
+
+if(accessTransformersFile) {
+ String targetFile = "src/main/resources/META-INF/" + accessTransformersFile
+ if(getFile(targetFile).exists() == false) {
+ throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile)
+ }
+}
+
+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("\\.", "/")
+ if((getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists()) == false) {
+ throw new GradleException("Could not resolve \"mixinsPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala)
+ }
+
+ 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"
+ if((getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists()) == false) {
+ throw new GradleException("Could not resolve \"mixinPlugin\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava)
+ }
+}
+
+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"
+ if((getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists()) == false) {
+ throw new GradleException("Could not resolve \"coreModClass\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava)
+ }
+}
+
+configurations.all {
+ resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS)
+
+ // Make sure GregTech build won't time out
+ System.setProperty("org.gradle.internal.http.connectionTimeout", 120000 as String)
+ System.setProperty("org.gradle.internal.http.socketTimeout", 120000 as String)
+}
+
+// Fix Jenkins' Git: chmod a file should not be detected as a change and append a '.dirty' to the version
+'git config core.fileMode false'.execute()
+// Pulls version from git tag
+try {
+ version = minecraftVersion + "-" + gitVersion()
+}
+catch (Exception e) {
+ throw new IllegalStateException("This mod must be version controlled by Git AND the repository must provide at least one tag!");
+}
+
+group = modGroup
+if(project.hasProperty("customArchiveBaseName") && customArchiveBaseName) {
+ archivesBaseName = customArchiveBaseName
+}
+else {
+ archivesBaseName = modId
+}
minecraft {
- version = config.mc_version + "-" + config.forge_version + "-" + config.mc_version
+ version = minecraftVersion + "-" + forgeVersion + "-" + minecraftVersion
runDir = "run"
- replaceIn "EMT.java"
- replace "@version@", config.mod_version
-
- if (project.hasProperty('mappings_version'))
- mappings = project.mappings_version
+
+ if (replaceGradleTokenInFile) {
+ replaceIn replaceGradleTokenInFile
+ if(gradleTokenModId) {
+ replace gradleTokenModId, modId
+ }
+ if(gradleTokenModName) {
+ replace gradleTokenModName, modName
+ }
+ if(gradleTokenVersion) {
+ replace gradleTokenVersion, versionDetails().lastTag
+ }
+ if(gradleTokenGroupName) {
+ replace gradleTokenGroupName, modGroup
+ }
+ }
}
-processResources {
- inputs.property "version", project.version
- inputs.property "mcversion", project.minecraft.version
+if(file("addon.gradle").exists()) {
+ apply from: "addon.gradle"
+}
- from(sourceSets.main.resources.srcDirs) {
- include '**/*.info'
- expand 'version': config.mod_version
+apply from: 'repositories.gradle'
+
+configurations {
+ implementation.extendsFrom(shadowImplementation) // TODO: remove after all uses are refactored
+ implementation.extendsFrom(shadowCompile)
+ implementation.extendsFrom(shadeCompile)
+}
+
+repositories {
+ maven {
+ name = "Overmind forge repo mirror"
+ url = "https://gregtech.overminddl1.com/"
}
+ if(usesMixins.toBoolean()) {
+ maven {
+ name = "sponge"
+ url = "https://repo.spongepowered.org/repository/maven-public"
+ }
+ maven {
+ url = "https://jitpack.io"
+ }
+ }
+}
+
+dependencies {
+ if(usesMixins.toBoolean()) {
+ annotationProcessor("org.ow2.asm:asm-debug-all:5.0.3")
+ annotationProcessor("com.google.guava:guava:24.1.1-jre")
+ annotationProcessor("com.google.code.gson:gson:2.8.6")
+ annotationProcessor("org.spongepowered:mixin:0.8-SNAPSHOT")
+ // using 0.8 to workaround a issue in 0.7 which fails mixin application
+ compile("org.spongepowered:mixin:0.7.11-SNAPSHOT") {
+ // Mixin includes a lot of dependencies that are too up-to-date
+ exclude module: "launchwrapper"
+ exclude module: "guava"
+ exclude module: "gson"
+ exclude module: "commons-io"
+ exclude module: "log4j-core"
+ }
+ compile("com.github.GTNewHorizons:SpongeMixins:1.3.3:dev")
+ }
+}
+
+apply from: 'dependencies.gradle'
+
+def mixingConfigRefMap = "mixins." + modId + ".refmap.json"
+def refMap = "${tasks.compileJava.temporaryDir}" + File.separator + mixingConfigRefMap
+def mixinSrg = "${tasks.reobf.temporaryDir}" + File.separator + "mixins.srg"
+
+task generateAssets {
+ if(usesMixins.toBoolean()) {
+ getFile("/src/main/resources/mixins." + modId + ".json").text = """{
+ "required": true,
+ "minVersion": "0.7.11",
+ "package": "${modGroup}.${mixinsPackage}",
+ "plugin": "${modGroup}.${mixinPlugin}",
+ "refmap": "${mixingConfigRefMap}",
+ "target": "@env(DEFAULT)",
+ "compatibilityLevel": "JAVA_8"
+}
+
+"""
+ }
+}
+
+task relocateShadowJar(type: ConfigureShadowRelocation) {
+ target = tasks.shadowJar
+ prefix = modGroup + ".shadow"
+}
+
+shadowJar {
+ project.configurations.shadeCompile.each { dep ->
+ from(project.zipTree(dep)) {
+ exclude 'META-INF', 'META-INF/**'
+ }
+ }
+
+ manifest {
+ attributes(getManifestAttributes())
+ }
+
+ minimize() // This will only allow shading for actually used classes
+ configurations = [project.configurations.shadowImplementation, project.configurations.shadowCompile]
+ dependsOn(relocateShadowJar)
}
jar {
- exclude "baubles/**"
- exclude "ic2/**"
- exclude "thaumcraft/**"
-}
-
-// add a source jar
-task sourceJar(type: Jar) {
- from sourceSets.main.allSource
- classifier = 'sources'
-}
-
-// because the normal output has been made to be obfuscated
-task deobfJar(type: Jar) {
- from sourceSets.main.output
- classifier = 'deobf'
-}
-
-tasks.build.dependsOn sourceJar, deobfJar
-
-tasks.withType(JavaCompile) { task ->
- task.options.encoding = 'UTF-8'
-}
-
-task signJar(dependsOn: 'reobf'){
- doLast {
- ant.signjar(
- destDir: jar.destinationDir,
- jar: jar.getArchivePath(),
- alias: findProperty('keyStoreAlias') ?: '',
- keystore: findProperty('keyStore') ?: '',
- storepass: findProperty('keyStorePass') ?: '',
- digestalg: findProperty('signDigestAlg') ?: '',
- tsaurl: findProperty('signTSAurl') ?: '',
- verbose: true
- )
+ project.configurations.shadeCompile.each { dep ->
+ from(project.zipTree(dep)) {
+ exclude 'META-INF', 'META-INF/**'
+ }
}
-}
\ No newline at end of file
+
+ manifest {
+ attributes(getManifestAttributes())
+ }
+
+ if(usesShadowedDependencies.toBoolean()) {
+ dependsOn(shadowJar)
+ enabled = false
+ }
+}
+
+reobf {
+ if(usesMixins.toBoolean()) {
+ addExtraSrgFile mixinSrg
+ }
+}
+
+afterEvaluate {
+ if(usesMixins.toBoolean()) {
+ tasks.compileJava {
+ options.compilerArgs += [
+ "-AreobfSrgFile=${tasks.reobf.srg}",
+ "-AoutSrgFile=${mixinSrg}",
+ "-AoutRefMapFile=${refMap}",
+ // Elan: from what I understand they are just some linter configs so you get some warning on how to properly code
+ "-XDenableSunApiLintControl",
+ "-XDignore.symbol.file"
+ ]
+ }
+ }
+}
+
+runClient {
+ def arguments = []
+
+ if(usesMixins.toBoolean()) {
+ arguments += [
+ "--mods=../build/libs/$modId-${version}.jar",
+ "--tweakClass org.spongepowered.asm.launch.MixinTweaker"
+ ]
+ }
+
+ if(developmentEnvironmentUserName) {
+ arguments += [
+ "--username",
+ developmentEnvironmentUserName
+ ]
+ }
+
+ args(arguments)
+}
+
+runServer {
+ def arguments = []
+
+ if (usesMixins.toBoolean()) {
+ arguments += [
+ "--mods=../build/libs/$modId-${version}.jar",
+ "--tweakClass org.spongepowered.asm.launch.MixinTweaker"
+ ]
+ }
+
+ args(arguments)
+}
+
+tasks.withType(JavaExec).configureEach {
+ javaLauncher.set(
+ javaToolchains.launcherFor {
+ languageVersion = projectJavaVersion
+ }
+ )
+}
+
+processResources
+{
+ // this will ensure that this task is redone when the versions change.
+ inputs.property "version", project.version
+ inputs.property "mcversion", project.minecraft.version
+
+ // replace stuff in mcmod.info, nothing else
+ from(sourceSets.main.resources.srcDirs) {
+ include 'mcmod.info'
+
+ // replace version and mcversion
+ expand "minecraftVersion": project.minecraft.version,
+ "modVersion": versionDetails().lastTag,
+ "modId": modId,
+ "modName": modName
+ }
+
+ if(usesMixins.toBoolean()) {
+ from refMap
+ }
+
+ // copy everything else, thats not the mcmod.info
+ from(sourceSets.main.resources.srcDirs) {
+ exclude 'mcmod.info'
+ }
+}
+
+def getManifestAttributes() {
+ def manifestAttributes = [:]
+ if(containsMixinsAndOrCoreModOnly.toBoolean() == false && (usesMixins.toBoolean() || coreModClass)) {
+ manifestAttributes += ["FMLCorePluginContainsFMLMod": true]
+ }
+
+ if(accessTransformersFile) {
+ manifestAttributes += ["FMLAT" : accessTransformersFile.toString()]
+ }
+
+ if(coreModClass) {
+ manifestAttributes += ["FMLCorePlugin": modGroup + "." + coreModClass]
+ }
+
+ if(usesMixins.toBoolean()) {
+ manifestAttributes += [
+ "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker",
+ "MixinConfigs" : "mixins." + modId + ".json",
+ "ForceLoadAsMod" : containsMixinsAndOrCoreModOnly.toBoolean() == false
+ ]
+ }
+ return manifestAttributes
+}
+
+task sourcesJar(type: Jar) {
+ from (sourceSets.main.allJava)
+ from (file("$projectDir/LICENSE"))
+ getArchiveClassifier().set('sources')
+}
+
+task shadowDevJar(type: ShadowJar) {
+ project.configurations.shadeCompile.each { dep ->
+ from(project.zipTree(dep)) {
+ exclude 'META-INF', 'META-INF/**'
+ }
+ }
+
+ from sourceSets.main.output
+ getArchiveClassifier().set("dev")
+
+ manifest {
+ attributes(getManifestAttributes())
+ }
+
+ minimize() // This will only allow shading for actually used classes
+ configurations = [project.configurations.shadowImplementation, project.configurations.shadowCompile]
+}
+
+task relocateShadowDevJar(type: ConfigureShadowRelocation) {
+ target = tasks.shadowDevJar
+ prefix = modGroup + ".shadow"
+}
+
+task circularResolverJar(type: Jar) {
+ dependsOn(relocateShadowDevJar)
+ dependsOn(shadowDevJar)
+ enabled = false
+}
+
+task devJar(type: Jar) {
+ project.configurations.shadeCompile.each { dep ->
+ from(project.zipTree(dep)) {
+ exclude 'META-INF', 'META-INF/**'
+ }
+ }
+
+ from sourceSets.main.output
+ getArchiveClassifier().set("dev")
+
+ manifest {
+ attributes(getManifestAttributes())
+ }
+
+ if(usesShadowedDependencies.toBoolean()) {
+ dependsOn(circularResolverJar)
+ enabled = false
+ }
+}
+
+task apiJar(type: Jar) {
+ from (sourceSets.main.allJava) {
+ include modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/") + '/**'
+ }
+
+ from (sourceSets.main.output) {
+ include modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/") + '/**'
+ }
+
+ from (sourceSets.main.resources.srcDirs) {
+ include("LICENSE")
+ }
+
+ getArchiveClassifier().set('api')
+}
+
+artifacts {
+ archives sourcesJar
+ archives devJar
+ if(apiPackage) {
+ archives apiJar
+ }
+}
+
+// publishing
+publishing {
+ publications {
+ maven(MavenPublication) {
+ artifact source: jar
+ artifact source: sourcesJar, classifier: "src"
+ artifact source: devJar, classifier: "dev"
+ if (apiPackage) {
+ artifact source: apiJar, classifier: "api"
+ }
+
+ groupId = System.getenv("ARTIFACT_GROUP_ID") ?: group
+ artifactId = System.getenv("ARTIFACT_ID") ?: project.name
+ version = System.getenv("ARTIFACT_VERSION") ?: project.version
+ }
+ }
+
+ repositories {
+ maven {
+ String owner = System.getenv("REPOSITORY_OWNER") ?: "Unknown"
+ String repositoryName = System.getenv("REPOSITORY_NAME") ?: "Unknown"
+ String githubRepositoryUrl = "https://maven.pkg.github.com/$owner/$repositoryName"
+ name = "GitHubPackages"
+ url = githubRepositoryUrl
+ credentials {
+ username = System.getenv("GITHUB_ACTOR") ?: "NONE"
+ password = System.getenv("GITHUB_TOKEN") ?: "NONE"
+ }
+ }
+ }
+}
+
+// Updating
+task updateBuildScript {
+ doLast {
+ if (performBuildScriptUpdate(projectDir.toString())) return
+
+ print("Build script already up-to-date!")
+ }
+}
+
+if (isNewBuildScriptVersionAvailable(projectDir.toString())) {
+ if (autoUpdateBuildScript.toBoolean()) {
+ performBuildScriptUpdate(projectDir.toString())
+ } else {
+ println("Build script update available! Run 'gradle updateBuildScript'")
+ }
+}
+
+static URL availableBuildScriptUrl() {
+ new URL("https://raw.githubusercontent.com/SinTh0r4s/ExampleMod1.7.10/main/build.gradle")
+}
+
+boolean performBuildScriptUpdate(String projectDir) {
+ if (isNewBuildScriptVersionAvailable(projectDir)) {
+ def buildscriptFile = getFile("build.gradle")
+ availableBuildScriptUrl().withInputStream { i -> buildscriptFile.withOutputStream { it << i } }
+ print("Build script updated. Please REIMPORT the project or RESTART your IDE!")
+ return true
+ }
+ return false
+}
+
+boolean isNewBuildScriptVersionAvailable(String projectDir) {
+ Map parameters = ["connectTimeout": 2000, "readTimeout": 2000]
+
+ String currentBuildScript = getFile("build.gradle").getText()
+ String currentBuildScriptHash = getVersionHash(currentBuildScript)
+ String availableBuildScript = availableBuildScriptUrl().newInputStream(parameters).getText()
+ String availableBuildScriptHash = getVersionHash(availableBuildScript)
+
+ boolean isUpToDate = currentBuildScriptHash.empty || availableBuildScriptHash.empty || currentBuildScriptHash == availableBuildScriptHash
+ return !isUpToDate
+}
+
+static String getVersionHash(String buildScriptContent) {
+ String versionLine = buildScriptContent.find("^//version: [a-z0-9]*")
+ if(versionLine != null) {
+ return versionLine.split(": ").last()
+ }
+ return ""
+}
+
+configure(updateBuildScript) {
+ group = 'forgegradle'
+ description = 'Updates the build script to the latest version'
+}
+
+// Helper methods
+
+def checkPropertyExists(String propertyName) {
+ if (project.hasProperty(propertyName) == false) {
+ throw new GradleException("This project requires a property \"" + propertyName + "\"! Please add it your \"gradle.properties\". You can find all properties and their description here: https://github.com/SinTh0r4s/ExampleMod1.7.10/blob/main/gradle.properties")
+ }
+}
+
+def getFile(String relativePath) {
+ return new File(projectDir, relativePath)
+}
diff --git a/dependencies.gradle b/dependencies.gradle
new file mode 100644
index 0000000..c8709e2
--- /dev/null
+++ b/dependencies.gradle
@@ -0,0 +1,18 @@
+// Add your dependencies here
+
+dependencies {
+ compile("com.github.GTNewHorizons:GT5-Unofficial:master-SNAPSHOT:dev")
+ compile("com.github.GTNewHorizons:CodeChickenLib:master-SNAPSHOT:dev")
+ compile("com.github.GTNewHorizons:CodeChickenCore:master-SNAPSHOT:dev")
+ compile("com.github.GTNewHorizons:StructureLib:master-SNAPSHOT:dev")
+ compile("com.github.GTNewHorizons:NotEnoughItems:master-SNAPSHOT:dev")
+ compile("net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev")
+
+ compileOnly("com.github.GTNewHorizons:Galacticraft:master-SNAPSHOT:dev") {
+ transitive = false
+ }
+ compileOnly("com.github.GTNewHorizons:Baubles:master-SNAPSHOT:dev") {
+ transitive = false
+ }
+
+}
diff --git a/gradle.properties b/gradle.properties
index 24122cb..7bf51bb 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,2 +1,64 @@
-org.gradle.debug=false
-org.gradle.daemon=false
\ No newline at end of file
+modName = Electro-Magic Tools
+
+# This is a case-sensitive string to identify your mod. Convention is to use lower case.
+modId = EMT
+
+modGroup = emt
+
+# WHY is there no version field?
+# The build script relies on git to provide a version via tags. It is super easy and will enable you to always know the
+# code base or your binary. Check out this tutorial: https://blog.mattclemente.com/2017/10/13/versioning-with-git-tags/
+
+# Will update your build.gradle automatically whenever an update is available
+autoUpdateBuildScript = false
+
+minecraftVersion = 1.7.10
+forgeVersion = 10.13.4.1614
+
+# Select a username for testing your mod with breakpoints. You may leave this empty for a random user name each time you
+# restart Minecraft in development. Choose this dependent on your mod:
+# Do you need consistent player progressing (for example Thaumcraft)? -> Select a name
+# Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty
+developmentEnvironmentUserName = Developer
+
+# Define a source file of your project with:
+# public static final String VERSION = "GRADLETOKEN_VERSION";
+# The string's content will be replaced with your mods version when compiled. You should use this to specify your mod's
+# version in @Mod([...], version = VERSION, [...])
+# Leave these properties empty to skip individual token replacements
+replaceGradleTokenInFile = EMT.java
+gradleTokenModId = GRADLETOKEN_MODID
+gradleTokenModName = GRADLETOKEN_MODNAME
+gradleTokenVersion = GRADLETOKEN_VERSION
+gradleTokenGroupName = GRADLETOKEN_GROUPNAME
+
+# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can
+# leave this property empty.
+# Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api
+apiPackage =
+
+# Specify the configuration file for Forge's access transformers here. I must be placed into /src/main/resources/META-INF/
+# Example value: mymodid_at.cfg
+accessTransformersFile =
+
+# Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled!
+usesMixins = false
+# Specify the location of your implementation of IMixinConfigPlugin. Leave it empty otherwise.
+mixinPlugin =
+# Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail!
+mixinsPackage =
+# Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin!
+# This parameter is for legacy compatibility only
+# Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin
+coreModClass =
+# If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod ( = some class
+# that is annotated with @Mod) you want this to be true. When in doubt: leave it on false!
+containsMixinsAndOrCoreModOnly = false
+
+# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your
+# responsibility check the licence and request permission for distribution, if required.
+usesShadowedDependencies = false
+
+# Optional parameter to customize the produced artifacts. Use this to preserver artifact naming when migrating older
+# projects. New projects should not use this parameter.
+#customArchiveBaseName =
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 3baa851..5c2d1cf 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 3fb50dd..3ab0b72 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Sat Jan 04 01:56:22 CET 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip
diff --git a/gradlew b/gradlew
index 91a7e26..83f2acf 100755
--- a/gradlew
+++ b/gradlew
@@ -1,4 +1,20 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
##############################################################################
##
@@ -6,47 +22,6 @@
##
##############################################################################
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
@@ -61,9 +36,49 @@ while [ -h "$PRG" ] ; do
fi
done
SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
+cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@@ -90,7 +105,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -110,10 +125,11 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
@@ -154,11 +170,19 @@ if $cygwin ; then
esac
fi
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+APP_ARGS=$(save "$@")
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
index 8a0b282..9618d8d 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,3 +1,19 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -8,14 +24,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -46,10 +62,9 @@ echo location of your Java installation.
goto fail
:init
-@rem Get command-line arguments, handling Windowz variants
+@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
@@ -60,11 +75,6 @@ set _SKIP=2
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
diff --git a/libs/Baubles-deobf-1.7.10-1.0.1.10.jar b/libs/Baubles-deobf-1.7.10-1.0.1.10.jar
deleted file mode 100644
index 8585569..0000000
Binary files a/libs/Baubles-deobf-1.7.10-1.0.1.10.jar and /dev/null differ
diff --git a/libs/CodeChickenCore-1.7.10-1.0.7.47-dev.jar b/libs/CodeChickenCore-1.7.10-1.0.7.47-dev.jar
deleted file mode 100644
index c7ecc2a..0000000
Binary files a/libs/CodeChickenCore-1.7.10-1.0.7.47-dev.jar and /dev/null differ
diff --git a/libs/CodeChickenLib-1.7.10-1.1.3.140-dev.jar b/libs/CodeChickenLib-1.7.10-1.1.3.140-dev.jar
deleted file mode 100644
index 2470ca7..0000000
Binary files a/libs/CodeChickenLib-1.7.10-1.1.3.140-dev.jar and /dev/null differ
diff --git a/libs/GalacticraftCore-Dev-1.7-3.0.12.503.jar b/libs/GalacticraftCore-Dev-1.7-3.0.12.503.jar
deleted file mode 100644
index 2a58075..0000000
Binary files a/libs/GalacticraftCore-Dev-1.7-3.0.12.503.jar and /dev/null differ
diff --git a/libs/MicdoodleCore-Dev-1.7-3.0.12.503.jar b/libs/MicdoodleCore-Dev-1.7-3.0.12.503.jar
deleted file mode 100644
index 0578729..0000000
Binary files a/libs/MicdoodleCore-Dev-1.7-3.0.12.503.jar and /dev/null differ
diff --git a/libs/NotEnoughItems-1.7.10-1.0.5.118-dev.jar b/libs/NotEnoughItems-1.7.10-1.0.5.118-dev.jar
deleted file mode 100644
index b16f02e..0000000
Binary files a/libs/NotEnoughItems-1.7.10-1.0.5.118-dev.jar and /dev/null differ
diff --git a/libs/StructureLib-1.0.10-deobf.jar b/libs/StructureLib-1.0.10-deobf.jar
deleted file mode 100644
index 3b338ac..0000000
Binary files a/libs/StructureLib-1.0.10-deobf.jar and /dev/null differ
diff --git a/libs/gregtech-5.09.38.00-api.jar b/libs/gregtech-5.09.38.00-api.jar
deleted file mode 100644
index ac80ed3..0000000
Binary files a/libs/gregtech-5.09.38.00-api.jar and /dev/null differ
diff --git a/libs/gregtech-5.09.38.00-dev.jar b/libs/gregtech-5.09.38.00-dev.jar
deleted file mode 100644
index cde1f7e..0000000
Binary files a/libs/gregtech-5.09.38.00-dev.jar and /dev/null differ
diff --git a/libs/gregtech-5.09.38.00-sources.jar b/libs/gregtech-5.09.38.00-sources.jar
deleted file mode 100644
index bc85102..0000000
Binary files a/libs/gregtech-5.09.38.00-sources.jar and /dev/null differ
diff --git a/libs/industrialcraft-2-2.2.827-experimental-dev.jar b/libs/industrialcraft-2-2.2.827-experimental-dev.jar
deleted file mode 100644
index b2b47e3..0000000
Binary files a/libs/industrialcraft-2-2.2.827-experimental-dev.jar and /dev/null differ
diff --git a/repositories.gradle b/repositories.gradle
new file mode 100644
index 0000000..66b0acb
--- /dev/null
+++ b/repositories.gradle
@@ -0,0 +1,20 @@
+// Add any additional repositiroes for your dependencies here
+
+repositories {
+ mavenCentral()
+ maven {
+ name = "ic2"
+ url = "https://maven.ic2.player.to/"
+ metadataSources {
+ mavenPom()
+ artifact()
+ }
+ }
+ maven {
+ url "https://cursemaven.com"
+ }
+
+ maven {
+ url = "https://jitpack.io"
+ }
+}
diff --git a/src/main/java/api/java/baubles/api/BaubleType.java b/src/main/java/api/java/baubles/api/BaubleType.java
deleted file mode 100644
index af4a7ac..0000000
--- a/src/main/java/api/java/baubles/api/BaubleType.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package baubles.api;
-
-public enum BaubleType {
- RING,
- AMULET,
- BELT
-}
diff --git a/src/main/java/api/java/baubles/api/BaublesApi.java b/src/main/java/api/java/baubles/api/BaublesApi.java
deleted file mode 100644
index 861a80a..0000000
--- a/src/main/java/api/java/baubles/api/BaublesApi.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package baubles.api;
-
-import cpw.mods.fml.common.FMLLog;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.IInventory;
-
-import java.lang.reflect.Method;
-
-/**
- * @author Azanor
- */
-public class BaublesApi {
- static Method getBaubles;
-
- /**
- * Retrieves the baubles inventory for the supplied player
- */
- public static IInventory getBaubles(EntityPlayer player) {
- IInventory ot = null;
-
- try {
- if (getBaubles == null) {
- Class> fake = Class.forName("baubles.common.lib.PlayerHandler");
- getBaubles = fake.getMethod("getPlayerBaubles", EntityPlayer.class);
- }
-
- ot = (IInventory) getBaubles.invoke(null, player);
- } catch (Exception ex) {
- FMLLog.warning("[Baubles API] Could not invoke baubles.common.lib.PlayerHandler method getPlayerBaubles");
- }
-
- return ot;
- }
-
-}
diff --git a/src/main/java/api/java/baubles/api/IBauble.java b/src/main/java/api/java/baubles/api/IBauble.java
deleted file mode 100644
index 2c19e5f..0000000
--- a/src/main/java/api/java/baubles/api/IBauble.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package baubles.api;
-
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.item.ItemStack;
-
-/**
- * @author Azanor
- *
- * This interface should be extended by items that can be worn in bauble slots
- */
-
-public interface IBauble {
-
- /**
- * This method return the type of bauble this is.
- * Type is used to determine the slots it can go into.
- */
- public BaubleType getBaubleType(ItemStack itemstack);
-
- /**
- * This method is called once per tick if the bauble is being worn by a player
- */
- public void onWornTick(ItemStack itemstack, EntityLivingBase player);
-
- /**
- * This method is called when the bauble is equipped by a player
- */
- public void onEquipped(ItemStack itemstack, EntityLivingBase player);
-
- /**
- * This method is called when the bauble is unequipped by a player
- */
- public void onUnequipped(ItemStack itemstack, EntityLivingBase player);
-
- /**
- * can this bauble be placed in a bauble slot
- */
- public boolean canEquip(ItemStack itemstack, EntityLivingBase player);
-
- /**
- * Can this bauble be removed from a bauble slot
- */
- public boolean canUnequip(ItemStack itemstack, EntityLivingBase player);
-}
diff --git a/src/main/java/api/java/baubles/api/package-info.java b/src/main/java/api/java/baubles/api/package-info.java
deleted file mode 100644
index 22d01a3..0000000
--- a/src/main/java/api/java/baubles/api/package-info.java
+++ /dev/null
@@ -1,3 +0,0 @@
-@API(apiVersion = "1.7.10-1.0.1.5", owner = "Baubles", provides = "Baubles|API") package baubles.api;
-
-import cpw.mods.fml.common.API;
diff --git a/src/main/java/api/java/ic2/api/Direction.class b/src/main/java/api/java/ic2/api/Direction.class
deleted file mode 100644
index a125f3e..0000000
Binary files a/src/main/java/api/java/ic2/api/Direction.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/Direction.java b/src/main/java/api/java/ic2/api/Direction.java
deleted file mode 100644
index b550ca3..0000000
--- a/src/main/java/api/java/ic2/api/Direction.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package ic2.api;
-
-import java.util.EnumSet;
-import java.util.Set;
-
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.World;
-
-import net.minecraftforge.common.util.ForgeDirection;
-
-/**
- * Represents the 6 possible directions along the axis of a block.
- */
-public enum Direction {
- /**
- * -X
- */
- XN,
- /**
- * +X
- */
- XP,
-
- /**
- * -Y
- */
- YN, //MC-Code starts with 0 here
- /**
- * +Y
- */
- YP, // 1...
-
- /**
- * -Z
- */
- ZN,
- /**
- * +Z
- */
- ZP;
-
- private Direction() {
- int side = ordinal() / 2;
- int sign = getSign();
-
- xOffset = side == 0 ? sign : 0;
- yOffset = side == 1 ? sign : 0;
- zOffset = side == 2 ? sign : 0;
- }
-
- public static Direction fromSideValue(int side) {
- return directions[(side + 2) % 6];
- }
-
- public static Direction fromForgeDirection(ForgeDirection dir) {
- if (dir == ForgeDirection.UNKNOWN) return null;
-
- return fromSideValue(dir.ordinal());
- }
-
- /**
- * Get the tile entity next to a tile entity following this direction.
- *
- * @param tileEntity tile entity to check
- * @return Adjacent tile entity or null if none exists
- */
- public TileEntity applyToTileEntity(TileEntity te) {
- return applyTo(te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord);
- }
-
- /**
- * Get the tile entity next to a position following this direction.
- *
- * @param world World to check
- * @param x X coordinate to check from
- * @param y Y coordinate to check from
- * @param z Z coordinate to check from
- * @return Adjacent tile entity or null if none exists
- */
- public TileEntity applyTo(World world, int x, int y, int z) {
- int coords[] = { x, y, z };
-
- coords[ordinal() / 2] += getSign();
-
- if (world != null && world.blockExists(coords[0], coords[1], coords[2])) {
- try {
- return world.getTileEntity(coords[0], coords[1], coords[2]);
- } catch (Exception e) {
- throw new RuntimeException("error getting TileEntity at dim "+world.provider.dimensionId+" "+coords[0]+"/"+coords[1]+"/"+coords[2]);
- }
- }
-
- return null;
- }
-
- /**
- * Get the inverse of this direction (XN -> XP, XP -> XN, etc.)
- *
- * @return Inverse direction
- */
- public Direction getInverse() {
- return directions[ordinal() ^ 1];
- }
-
- /**
- * Convert this direction to a Minecraft side value.
- *
- * @return Minecraft side value
- */
- public int toSideValue() {
- return (ordinal() + 4) % 6;
- }
-
- /**
- * Determine direction sign (N for negative or P for positive).
- *
- * @return -1 if the direction is negative, +1 if the direction is positive
- */
- private int getSign() {
- return (ordinal() % 2) * 2 - 1;
- }
-
- public ForgeDirection toForgeDirection() {
- return ForgeDirection.getOrientation(toSideValue());
- }
-
- public final int xOffset;
- public final int yOffset;
- public final int zOffset;
-
- public static final Direction[] directions = Direction.values();
- public static final Set noDirections = EnumSet.noneOf(Direction.class);
- public static final Set allDirections = EnumSet.allOf(Direction.class);
-}
-
diff --git a/src/main/java/api/java/ic2/api/crops/BaseSeed.class b/src/main/java/api/java/ic2/api/crops/BaseSeed.class
deleted file mode 100644
index fd4b77b..0000000
Binary files a/src/main/java/api/java/ic2/api/crops/BaseSeed.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/crops/BaseSeed.java b/src/main/java/api/java/ic2/api/crops/BaseSeed.java
deleted file mode 100644
index 89e7865..0000000
--- a/src/main/java/api/java/ic2/api/crops/BaseSeed.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package ic2.api.crops;
-
-/**
- * Base agriculture seed. Used to determine the state of a plant once it is planted from an item.
- */
-public class BaseSeed {
- /**
- * Create a BaseSeed object.
- *
- * @param crop plant
- * @param size plant size
- * @param statGrowth1 plant growth stat
- * @param statGain1 plant gain stat
- * @param statResistance1 plant resistance stat
- * @param stackSize1 for internal usage only
- */
- @SuppressWarnings("deprecation")
- public BaseSeed(CropCard crop, int size, int statGrowth, int statGain, int statResistance, int stackSize) {
- super();
- this.crop = crop;
- this.id = Crops.instance.getIdFor(crop);
- this.size = size;
- this.statGrowth = statGrowth;
- this.statGain = statGain;
- this.statResistance = statResistance;
- this.stackSize = stackSize;
- }
-
- /**
- * @deprecated Use the CropCard version.
- */
- @Deprecated
- public BaseSeed(int id, int size, int statGrowth, int statGain, int statResistance, int stackSize) {
- this(getCropFromId(id), size, statGrowth, statGain, statResistance, stackSize);
- }
-
- @SuppressWarnings("deprecation")
- private static CropCard getCropFromId(int id) {
- CropCard[] crops = Crops.instance.getCropList();
-
- if (id < 0 || id >= crops.length) return null;
-
- return crops[id];
- }
-
-
- /**
- * Plant.
- */
- public final CropCard crop;
-
- /**
- * @deprecated IDs aren't used anymore.
- */
- @Deprecated
- public int id;
-
- /**
- * Plant size.
- */
- public int size;
-
- /**
- * Plant growth stat.
- */
- public int statGrowth;
-
- /**
- * Plant gain stat.
- */
- public int statGain;
-
- /**
- * Plant resistance stat.
- */
- public int statResistance;
-
- /**
- * For internal usage only.
- */
- public int stackSize;
-}
diff --git a/src/main/java/api/java/ic2/api/crops/CropCard.class b/src/main/java/api/java/ic2/api/crops/CropCard.class
deleted file mode 100644
index a1f2646..0000000
Binary files a/src/main/java/api/java/ic2/api/crops/CropCard.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/crops/CropCard.java b/src/main/java/api/java/ic2/api/crops/CropCard.java
deleted file mode 100644
index 1d2b640..0000000
--- a/src/main/java/api/java/ic2/api/crops/CropCard.java
+++ /dev/null
@@ -1,435 +0,0 @@
-package ic2.api.crops;
-
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-
-import cpw.mods.fml.common.Loader;
-import cpw.mods.fml.common.ModContainer;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-/**
- * Base agriculture crop.
- *
- * Any crop extending this can be registered using registerCrop to be added into the game.
- */
-public abstract class CropCard {
- public CropCard() {
- modId = getModId(); // initialize mod id while we should be in the real owner's init event
- }
-
- /**
- * Plant name for identifying this crop within your mod.
- *
- * The name has to be unique within the mod and is used for saving.
- * By default this name will be also used to determine displayKey() and registerSprites().
- *
- * @note changing name or owner will cause existing crops in users' worlds to disappear.
- *
- * @return Plant name
- */
- public abstract String name();
-
- /**
- * Determine the mod id owning this crop.
- *
- * The owner serves as a name space. With every mod using a different owner, a mod only has to
- * make sure it doesn't have conflicts with name() in itself.
- * It's recommended to hard code this to your mod id as specified in the @Mod annotation.
- * Do not use IC2's mod id here.
- *
- * @note changing name or owner will cause existing crops in users' worlds to disappear.
- *
- * @return Mod id.
- */
- public String owner() { // TODO: make abstract
- return modId;
- }
-
- /**
- * Translation key for display to the player.
- *
- * It's highly recommended to specify a valid key from your language file here, e.g. add
- * "yourmod.crop.yourCropName = Your crop's name" to the language file, override name() to
- * return "yourCropName" and override displayName() to return "yourmod.crop."+name().
- *
- * @return Unlocalized name.
- */
- public String displayName() {
- return name(); // return the raw name for backwards compatibility
- }
-
- /**
- * Your name here, will be shown in "Discovered by:" when analyzing seeds.
- *
- * @return Your name
- */
- public String discoveredBy() {
- return "unknown";
- }
-
- /**
- * Description of your plant. Keep it short, a few characters per line for up to two lines.
- * Default is showing attributes of your plant, 2 per line.
- *
- * @param i line to get, starting from 0
- * @return The line
- */
- public String desc(int i) {
- String[] att = attributes();
-
- if (att == null || att.length == 0) return "";
-
- if (i == 0) {
- String s = att[0];
- if (att.length >= 2) {
- s+=", "+att[1];
- if (att.length >= 3) s+=",";
- }
- return s;
- }
- if (att.length < 3) return "";
- String s = att[2];
- if (att.length >= 4) s+=", "+att[3];
- return s;
- }
-
- /**
- * *
- * @param crop reference to ICropTile
- * @return roots lengt use in isBlockBelow
- */
- public int getrootslength(ICropTile crop) { // TODO: camel case
- return 1;
- }
-
- /**
- * Tier of the plant. Ranges from 1 to 16, 0 is Weed.
- * Valuable and powerful crops have higher tiers, useless and weak ones have lower tiers.
- *
- * @return Tier
- */
- public abstract int tier();
-
- /**
- * Describe the plant through a set of stats, influencing breeding.
- * Plants sharing stats and attributes will tend to cross-breed more often.
- *
- * Stats:
- * - 0: Chemistry (Industrial uses based on chemical plant components)
- * - 1: Consumable (Food, potion ingredients, stuff meant to be eaten or similarly used)
- * - 2: Defensive (Plants with defense capabilities (damaging, explosive, chemical) or special abilities in general)
- * - 3: Colorful (How colorful/aesthetically/beautiful is the plant, like dye-plants or plants without actual effects)
- * - 4: Weed (Is this plant weed-like and rather unwanted/quick-spreading? Rare super-breed plants should have low values here)
- *
- * @param n index of the requested stat
- * @return The requested value of the stats
- */
- public abstract int stat(int n); // TODO: change to fixed property object or builder with other attributes like tier
-
- /**
- * Additional attributes of the plant, also influencing breeding.
- * Plants sharing stats and attributes will tend to cross-breed more often.
- *
- * @return Attributes as an array of strings
- */
- public abstract String[] attributes(); // TODO: default to none
-
- /**
- * Determine the max crop size.
- *
- * Currently only used for texture allocation.
- */
- public abstract int maxSize();
-
- /**
- * Instantiate your Icons here.
- *
- * This method will get called by IC2, don't call it yourself.
- *
- * It's highly recommended to use your own assert domain here, e.g. yourmod:crop/* instead of
- * ic2:crop/*, which will then read assets/yourmod/textures/blocks/crop/*.png.
- */
- @SideOnly(Side.CLIENT)
- public void registerSprites(IIconRegister iconRegister) {
- textures = new IIcon[maxSize()];
-
- for (int i = 1; i <= textures.length; i++) {
- // ic2:crop/blockCrop.NAME.n is the legacy name for backwards compatiblity
- textures[i - 1] = iconRegister.registerIcon("ic2:crop/blockCrop."+name()+"."+i);
- }
- }
-
- /**
- * Sprite the crop is meant to be rendered with.
- *
- * @param crop reference to ICropTile
- * @return 0-255, representing the sprite index on the crop's spritesheet.
- */
- @SideOnly(Side.CLIENT)
- public IIcon getSprite(ICropTile crop) {
- if (crop.getSize() <= 0 || crop.getSize() > textures.length) return null;
-
- return textures[crop.getSize() - 1];
- }
-
- /**
- * Amount of growth points needed to increase the plant's size.
- * Default is 200 * tier.
- */
- public int growthDuration(ICropTile crop) {
- return tier() * 200;
- }
-
- /**
- * Check whether the plant can grow further.
- *
- * Consider:
- * - Humidity, nutrients and air quality
- * - Current size
- * - Light level
- * - Special biomes or conditions, accessible through crop.worldObj
- *
- * This method will be called upon empty upgraded crops to check whether a neighboring plant can cross onto it! Don't check if the size is greater than 0 and if the ID is real.
- *
- * @param crop reference to ICropTile
- * @return Whether the crop can grow
- */
- public abstract boolean canGrow(ICropTile crop);
-
- /**
- * Calculate the influence for the plant to grow based on humidity, nutrients and air.
- * Normal behavior is rating the three stats "normal", with each of them ranging from 0-30.
- * Basic rule: Assume everything returns 10. All together must equal 30. Add the factors to your likings, for example (humidity*0.7)+(nutrients*0.9)+(air*1.4)
- *
- * Default is humidity + nutrients + air (no factors).
- *
- * @param crop reference to ICropTile
- * @param humidity ground humidity, influenced by hydration
- * @param nutrients nutrient quality in ground, based on fertilizers
- * @param air air quality, influences by open gardens and less crops surrounding this one
- * @return 0-30
- */
- public int weightInfluences(ICropTile crop, float humidity, float nutrients, float air) {
- return (int) (humidity + nutrients + air);
- }
-
- /**
- * Used to determine whether the plant can crossbreed with another crop.
- * Default is allow crossbreeding if the size is greater or equal than 3.
- *
- * @param crop crop to crossbreed with
- */
- public boolean canCross(ICropTile crop) {
- return crop.getSize() >= 3;
- }
-
-
- /**
- * Called when the plant is rightclicked by a player.
- * Default action is harvesting.
- *
- * Only called Serverside.
- *
- * @param crop reference to ICropTile
- * @param player player rightclicking the crop
- * @return Whether the plant has changed
- */
- public boolean rightclick(ICropTile crop, EntityPlayer player) {
- return crop.harvest(true);
- }
-
- /**
- * Use in Crop Havester with insert Cropnalyzer to get best Output.
- *
- * @param crop reference to ICropTile
- * @return need crop size for best output.
- */
-
- public abstract int getOptimalHavestSize(ICropTile crop); // TODO: default to maxSize
-
- /**
- * Check whether the crop can be harvested.
- *
- * @param crop reference to ICropTile
- * @return Whether the crop can be harvested in its current state.
- */
- public abstract boolean canBeHarvested(ICropTile crop); // TODO: default to maxSize check
-
- /**
- * Base chance for dropping the plant's gains, specify values greater than 1 for multiple drops.
- * Default is 0.95^tier.
- *
- * @return Chance to drop the gains
- */
- public float dropGainChance() { // TODO: change to double
- return (float) Math.pow(0.95, tier());
- }
-
- /**
- * Item obtained from harvesting the plant.
- *
- * @param crop reference to ICropTile
- * @return Item obtained
- */
- public abstract ItemStack getGain(ICropTile crop);
-
- /**
- * Get the size of the plant after harvesting.
- * Default is 1.
- *
- * @param crop reference to ICropTile
- * @return Plant size after harvesting
- */
- public byte getSizeAfterHarvest(ICropTile crop) {return 1;} // TODO: change to int
-
-
- /**
- * Called when the plant is left clicked by a player.
- * Default action is picking the plant.
- *
- * Only called server side.
- *
- * @param crop reference to ICropTile
- * @param player player left clicked the crop
- * @return Whether the plant has changed
- */
- public boolean leftclick(ICropTile crop, EntityPlayer player) { // TODO: camel case
- return crop.pick(true);
- }
-
- /**
- * Base chance for dropping seeds when the plant is picked.
- * Default is 0.5*0.8^tier with a bigger chance for sizes greater than 2 and absolutely no chance for size 0.
- *
- * @param crop reference to ICropTile
- * @return Chance to drop the seeds
- */
- public float dropSeedChance(ICropTile crop) {
- if (crop.getSize() == 1) return 0;
- float base = 0.5F;
- if (crop.getSize() == 2) base/=2F;
- for (int i = 0; i < tier(); i++) {base*=0.8;}
- return base;
- }
-
- /**
- * Obtain seeds dropped when the plant is picked.
- * Multiple drops of the returned ItemStack can occur.
- * Default action is generating a seed from this crop.
- *
- * @param crop reference to ICropTile
- * @return Seeds
- */
- public ItemStack getSeeds(ICropTile crop) {
- return crop.generateSeeds(crop.getCrop(), crop.getGrowth(), crop.getGain(), crop.getResistance(), crop.getScanLevel());
- }
-
- /**
- * Called when a neighbor block to the crop has changed.
- *
- * @param crop reference to ICropTile
- */
- public void onNeighbourChange(ICropTile crop) {
- //
- }
-
- /**
- * Check if the crop should emit redstone.
- *
- * @return Whether the crop should emit redstone
- */
- public int emitRedstone(ICropTile crop) {return 0;}
-
- /**
- * Called when the crop is destroyed.
- *
- * @param crop reference to ICropTile
- */
- public void onBlockDestroyed(ICropTile crop) {
- //
- }
-
- /**
- * Get the light value emitted by the plant.
- *
- * @param crop reference to ICropTile
- * @return Light value emitted
- */
- public int getEmittedLight(ICropTile crop) {
- return 0;
- }
-
- /**
- * Default is true if the entity is an EntityLiving in jumping or sprinting state.
- *
- * @param crop reference to ICropTile
- * @param entity entity colliding
- * @return Whether trampling calculation should happen, return false if the plant is no longer valid.
- */
- public boolean onEntityCollision(ICropTile crop, Entity entity) {
- if (entity instanceof EntityLivingBase) {
- return ((EntityLivingBase) entity).isSprinting();
- }
-
- return false;
- }
-
-
- /**
- * Called every time the crop ticks.
- * Should be called every 256 ticks or around 13 seconds.
- *
- * @param crop reference to ICropTile
- */
- public void tick(ICropTile crop) {
- // nothing by default
- }
-
- /**
- * Check whether this plant spreads weed to surrounding tiles.
- * Default is true if the plant has a high growth stat (or is weeds) and size greater or equal than 2.
- *
- * @param crop reference to ICropTile
- * @return Whether the plant spreads weed
- */
- public boolean isWeed(ICropTile crop) {
- return crop.getSize() >= 2 &&
- (crop.getCrop() == Crops.weed || crop.getGrowth() >= 24);
- }
-
-
- /**
- * Get this plant's ID.
- *
- * @return ID of this CropCard or -1 if it's not registered
- * @deprecated IDs aren't used anymore.
- */
- @Deprecated
- public final int getId() {
- return Crops.instance.getIdFor(this);
- }
-
- private static String getModId() {
- ModContainer modContainer = Loader.instance().activeModContainer();
-
- if (modContainer != null) {
- return modContainer.getModId();
- } else {
- // this is bad if you are not actually IC2
- assert false;
-
- return "unknown";
- }
- }
-
- @SideOnly(Side.CLIENT)
- protected IIcon textures[];
-
- private final String modId; // TODO: make owner abstract, remove modId auto detection
- // TODO: add a clean way to obtain world reference and position
-}
diff --git a/src/main/java/api/java/ic2/api/crops/Crops.class b/src/main/java/api/java/ic2/api/crops/Crops.class
deleted file mode 100644
index 1844fa9..0000000
Binary files a/src/main/java/api/java/ic2/api/crops/Crops.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/crops/Crops.java b/src/main/java/api/java/ic2/api/crops/Crops.java
deleted file mode 100644
index a11059a..0000000
--- a/src/main/java/api/java/ic2/api/crops/Crops.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package ic2.api.crops;
-
-import java.util.Collection;
-
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.biome.BiomeGenBase;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-import net.minecraftforge.common.BiomeDictionary.Type;
-
-/**
- * General management of the crop system.
- */
-public abstract class Crops {
- public static Crops instance;
-
- public static CropCard weed; // weed has special properties, thus it's exposed here
-
- /**
- * Adds a crop nutrient biome bonus.
- *
- * +10/-10 0 indicates no bonus and negative values indicate a penalty.
- *
- * @param type Forge biome type to apply the bonus in
- * @param nutrientsBonus Nutrient stat bonus
- */
- public abstract void addBiomenutrientsBonus(Type type, int nutrientsBonus);
-
- /**
- * Adds a crop humidity biome bonus.
- *
- * +10/-10 0 indicates no bonus and negative values indicate a penalty.
- *
- * @param type Forge biome type to apply the bonus in
- * @param humidityBonus Humidity stat bonus
- */
- public abstract void addBiomehumidityBonus(Type type, int humidityBonus);
-
-
- /**
- * Gets the humidity bonus for a biome.
- *
- * @param biome Biome to check
- * @return Humidity bonus or 0 if none
- */
- public abstract int getHumidityBiomeBonus(BiomeGenBase biome);
-
- /**
- * Gets the nutrient bonus for a biome.
- *
- * @param biome Biome to check
- * @return Nutrient bonus or 0 if none
- */
- public abstract int getNutrientBiomeBonus(BiomeGenBase biome);
-
- /**
- * Get the crop card for the specified owner and name.
- *
- * @param owner CropCard owner mod id.
- * @param name CropCard name.
- * @return Matching CropCard.
- */
- public abstract CropCard getCropCard(String owner, String name);
-
- /**
- * Get the crop card for the specified seed item stack.
- *
- * @param stack ItemStack containing seeds for the crop.
- * @return Matching CropCard.
- */
- public abstract CropCard getCropCard(ItemStack stack);
-
- /**
- * Returns a list of all crops.
- *
- * @return All registered crops.
- */
- public abstract Collection getCrops();
-
- /**
- * Returns the list of registered crops.
- *
- * @return Registered crops by ID
- */
- @Deprecated
- public abstract CropCard[] getCropList();
-
- /**
- * Register a plant.
- *
- * @param crop Plant to register.
- * @return Autoassigned id for legacy compatibility, TODO: change to void.
- */
- public abstract short registerCrop(CropCard crop);
-
- /**
- * Register a plant and provide a legacy id for migration.
- *
- * @param crop Plant to register.
- * @param legacyId ID previously used for this crop.
- * @return true, TODO: change to void.
- */
- public abstract boolean registerCrop(CropCard crop, int legacyId);
-
- /**
- * @deprecated use the CropCard version.
- */
- @Deprecated
- public abstract boolean registerBaseSeed(ItemStack stack, int id, int size, int growth, int gain, int resistance);
-
- /**
- * Registers a base seed, an item used to plant a crop.
- *
- * @param stack item
- * @param id plant ID
- * @param size initial size
- * @param growth initial growth stat
- * @param gain initial gain stat
- * @param resistance initial resistance stat
- * @return True if successful
- */
- public abstract boolean registerBaseSeed(ItemStack stack, CropCard crop, int size, int growth, int gain, int resistance);
-
- /**
- * Finds a base seed from the given item.
- *
- * @return Base seed or null if none found
- */
- public abstract BaseSeed getBaseSeed(ItemStack stack);
-
- /**
- * Execute registerSprites for all registered crop cards.
- *
- * This method will get called by IC2, don't call it yourself.
- */
- @SideOnly(Side.CLIENT)
- public abstract void startSpriteRegistration(IIconRegister iconRegister);
-
- /**
- * Returns the ID for the given crop.
- *
- * @param crop Crop to look up
- * @return ID, or -1 if not found
- * @deprecated IDs aren't used anymore.
- */
- @Deprecated
- public abstract int getIdFor(CropCard crop);
-}
diff --git a/src/main/java/api/java/ic2/api/crops/ICropTile.class b/src/main/java/api/java/ic2/api/crops/ICropTile.class
deleted file mode 100644
index aafb6de..0000000
Binary files a/src/main/java/api/java/ic2/api/crops/ICropTile.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/crops/ICropTile.java b/src/main/java/api/java/ic2/api/crops/ICropTile.java
deleted file mode 100644
index dadf691..0000000
--- a/src/main/java/api/java/ic2/api/crops/ICropTile.java
+++ /dev/null
@@ -1,289 +0,0 @@
-package ic2.api.crops;
-
-import net.minecraft.block.Block;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.ChunkCoordinates;
-import net.minecraft.world.World;
-
-/**
- * Interface implemented by the crop tile entity.
- */
-public interface ICropTile {
- /**
- * Get the crop.
- *
- * @return CropCard, or null if there is no plant currently on the crop
- */
- public CropCard getCrop();
-
- /**
- * Set the crop.
- *
- * @param cropCard CropCard or null for no plant
- */
- public void setCrop(CropCard cropCard);
-
- /**
- * @deprecated IDs have been removed.
- */
- @Deprecated
- public short getID();
-
- /**
- * @deprecated IDs have been removed.
- */
- @Deprecated
- public void setID(short id);
-
- /**
- * Get the crop's plant size.
- *
- * @return Plant size, starting with 1 and maximum varies depending on plant
- */
- public byte getSize();
-
- /**
- * Set the crop's plant size.
- *
- * @param size Plant size
- */
- public void setSize(byte size);
-
- /**
- * Get the crop's plant growth stat.
- * Higher values indicate faster growth.
- *
- * @return Plant growth stat
- */
- public byte getGrowth();
-
- /**
- * Set the crop's plant growth stat.
- *
- * @param growth Plant growth stat
- */
- public void setGrowth(byte growth);
-
- /**
- * Get the crop's plant gain stat.
- * Higher values indicate more drops.
- *
- * @return Plant gain stat
- */
- public byte getGain();
-
- /**
- * Set the crop's plant gain stat.
- *
- * @param gain Plant gain stat
- */
- public void setGain(byte gain);
-
- /**
- * Get the crop's plant resistance stat.
- * Higher values indicate more resistance against trampling.
- *
- * @return Plant resistance stat
- */
- public byte getResistance();
-
- /**
- * Set the crop's plant resistance stat.
- *
- * @param resistance Plant resistance stat
- */
- public void setResistance(byte resistance);
-
- /**
- * Get the crop's plant scan level.
- * Increases every time the seed is analyzed.
- *
- * @return Plant scan level
- */
- public byte getScanLevel();
-
- /**
- * Set the crop's plant scan level.
- *
- * @param scanLevel Plant scan level
- */
- public void setScanLevel(byte scanLevel);
-
- /**
- * Get the crop's plant custom data, stored alongside the crop.
- * Can be modified in place.
- *
- * @return Plant custom data
- */
- public NBTTagCompound getCustomData();
-
- /**
- * Get the crop's nutrient storage.
- * Ranges from 0 to 100.
- *
- * @return Crop nutrient storage
- */
- public int getNutrientStorage();
-
- /**
- * Set the crop's nutrient storage.
- *
- * @param nutrientStorage Crop nutrient storage
- */
- public void setNutrientStorage(int nutrientStorage);
-
- /**
- * Get the crop's hydration storage.
- * 0 indicates nothing, 1-10 indicate water hydration and 11-100 for hydration cells.
- *
- * @return Crop hydration storage
- */
- public int getHydrationStorage();
-
- /**
- * Set the crop's hydration storage.
- *
- * @param hydrationStorage Crop hydration storage
- */
- public void setHydrationStorage(int hydrationStorage);
-
- /**
- * Get the crop's Weed-Ex storage.
- *
- * @return Crop Weed-Ex storage
- */
- public int getWeedExStorage();
-
- /**
- * Set the crop's Weed-Ex storage.
- *
- * @param weedExStorage Crop Weed-Ex storage
- */
- public void setWeedExStorage(int weedExStorage);
-
- /**
- * Get the crop's humidity.
- * Ranges from 0 (dry) to 10 (humid).
- * Updates every couple of seconds or when an update is requested.
- *
- * @see #updateState()
- *
- * @return Crop humidity level
- */
- public byte getHumidity();
-
- /**
- * Get the crop's nutrient level.
- * Ranges from 0 (empty) to 10 (full).
- * Updates every couple of seconds or when an update is requested.
- *
- * @see #updateState()
- *
- * @return Crop nutrient level
- */
- public byte getNutrients();
-
- /**
- * Get the crop's air quality.
- * Ranges from 0 (cluttered) to 10 (fresh).
- * Updates every couple of seconds or when an update is requested.
- *
- * @see #updateState()
- *
- * @return Crop air quality
- */
- public byte getAirQuality();
-
- /**
- * Get the crop's world.
- *
- * @return Crop world
- */
- public World getWorld();
-
- /**
- * Get the crop's location.
- *
- * @return Crop location
- */
- public ChunkCoordinates getLocation();
-
- /**
- * Get the crop's light level.
- *
- * @return Crop light level
- */
- public int getLightLevel();
-
- /**
- * Pick the crop, removing and giving seeds for the plant.
- *
- * @param manual whether it was done by hand (not automated)
- * @return true if successfully picked
- */
- public boolean pick(boolean manual);
-
- /**
- * Harvest the crop, turning it into gain and resetting its size.
- * drop output on ground
- * @param manual
- * @return true if successfully harvested
- */
- public boolean harvest(boolean manual);
-
- /**
- * Harvest the crop, turning it into gain and resetting its size.
- * drop output on ground
- * @param Optimal force check getOptimalHavestSize() for harvest
- * @return ItemStack[] of harvest output
- */
-
- ItemStack[] harvest_automated(boolean Optimal);
-
- /**
- * Fully clears the crop without dropping anything.
- */
- public void reset();
-
- /**
- * Request a texture and lighting update.
- */
- public void updateState();
-
- /**
- * Check if a block is under the farmland containing the crop.
- * Searches up to 2 blocks below the farmland or an air space, whichever appears first.
- *
- * @param block block to search
- * @return Whether the block was found
- */
- public boolean isBlockBelow(Block block);
-
- /**
- * Check if a block is under the farmland containing the crop.
- * Searches up to 2 blocks below the farmland or an air space, whichever appears first.
- *
- * @param oreDictionaryName blocks to search
- * @return Whether the blocks were found
- */
- public boolean isBlockBelow(String oreDictionaryName);
-
- /**
- * Generate plant seeds with the given parameters.
- *
- * @param crop plant
- * @param growth plant growth stat
- * @param gain plant gain stat
- * @param resis plant resistance stat
- * @param scan plant scan level
- * @return Plant seed item
- */
- public ItemStack generateSeeds(CropCard crop, byte growth, byte gain, byte resis, byte scan);
-
- /**
- * @deprecated Use the CropCard version instead.
- */
- @Deprecated
- public ItemStack generateSeeds(short plant, byte growth, byte gain, byte resis, byte scan);
-}
diff --git a/src/main/java/api/java/ic2/api/crops/package-info.class b/src/main/java/api/java/ic2/api/crops/package-info.class
deleted file mode 100644
index 1c2c0e1..0000000
Binary files a/src/main/java/api/java/ic2/api/crops/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/crops/package-info.java b/src/main/java/api/java/ic2/api/crops/package-info.java
deleted file mode 100644
index 04b8253..0000000
--- a/src/main/java/api/java/ic2/api/crops/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.crops;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/energy/EnergyNet.class b/src/main/java/api/java/ic2/api/energy/EnergyNet.class
deleted file mode 100644
index 1971046..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/EnergyNet.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/EnergyNet.java b/src/main/java/api/java/ic2/api/energy/EnergyNet.java
deleted file mode 100644
index 822bfc2..0000000
--- a/src/main/java/api/java/ic2/api/energy/EnergyNet.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package ic2.api.energy;
-
-
-/**
- * Provides access to the energy network.
- *
- * The old EnergyNet methods missing in IEnergyNet have been migrated to events (load, unload) or
- * removed (tiles no longer emit energy actively, the energy net implementation requests it).
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public final class EnergyNet {
- /**
- * Instance of the global EnergyNet class.
- */
- public static IEnergyNet instance;
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/IEnergyNet.class b/src/main/java/api/java/ic2/api/energy/IEnergyNet.class
deleted file mode 100644
index 76b5746..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/IEnergyNet.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/IEnergyNet.java b/src/main/java/api/java/ic2/api/energy/IEnergyNet.java
deleted file mode 100644
index 8f656e5..0000000
--- a/src/main/java/api/java/ic2/api/energy/IEnergyNet.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package ic2.api.energy;
-
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.World;
-
-import net.minecraftforge.common.util.ForgeDirection;
-
-/**
- * Interface representing the methods provided by the global EnergyNet class.
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public interface IEnergyNet {
- /**
- * Get the EnergyNet-registered tile entity at the specified position.
- *
- * This is not the same as World.getTileEntity(), it's possible to register delegate tile
- * entities with the energy net which are different from what's actually in the world. Those
- * delegates allow to use separate TileEntity objects just for the EnergyNet interfaces,
- * simplifying cross-mod dependencies and multi-blocks.
- *
- * @param world World containing the tile entity
- * @param x x-coordinate
- * @param y y-coordinate
- * @param z z-coordinate
- * @return tile entity registered to the energy net or null if none is registered
- */
- TileEntity getTileEntity(World world, int x, int y, int z);
-
- /**
- * Get the EnergyNet-registered neighbor tile entity at the specified position.
- *
- * @param te TileEntity indicating the world and position to search from
- * @param dir direction the neighbor is to be found
- * @return neighbor tile entity registered to the energy net or null if none is registered
- */
- TileEntity getNeighbor(TileEntity te, ForgeDirection dir);
-
- /**
- * determine how much energy has been emitted by the EnergyEmitter specified
- *
- * @note call this twice with x ticks delay to get the avg. emitted power p = (call2 - call1) / x EU/tick
- *
- * @param tileEntity energy emitter
- * @deprecated Discontinued, use getNodeStats instead.
- */
- @Deprecated
- double getTotalEnergyEmitted(TileEntity tileEntity);
-
- /**
- * determine how much energy has been sunken by the EnergySink specified
- *
- * @note call this twice with x ticks delay to get the avg. sunken power p = (call2 - call1) / x EU/tick
- *
- * @param tileEntity energy emitter
- * @deprecated Discontinued, use getNodeStats instead.
- */
- @Deprecated
- double getTotalEnergySunken(TileEntity tileEntity);
-
- /**
- * Retrieve statistics for the tile entity specified.
- *
- * The statistics apply to the last simulated tick.
- *
- * @param te Tile entity to check.
- * @return Statistics for the tile entity.
- */
- NodeStats getNodeStats(TileEntity te);
-
- /**
- * Determine the typical power used by the specific tier, e.g. 128 eu/t for tier 2.
- *
- * @param tier tier
- * @return power in eu/t
- */
- double getPowerFromTier(int tier);
-
- /**
- * Determine minimum tier required to handle the specified power, e.g. tier 2 for 128 eu/t.
- *
- * @param power in eu/t
- * @return tier
- */
- int getTierFromPower(double power);
-}
diff --git a/src/main/java/api/java/ic2/api/energy/NodeStats.class b/src/main/java/api/java/ic2/api/energy/NodeStats.class
deleted file mode 100644
index eceb340..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/NodeStats.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/NodeStats.java b/src/main/java/api/java/ic2/api/energy/NodeStats.java
deleted file mode 100644
index db33da7..0000000
--- a/src/main/java/api/java/ic2/api/energy/NodeStats.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package ic2.api.energy;
-
-public class NodeStats {
- public NodeStats(double energyIn, double energyOut, double voltage) {
- this.energyIn = energyIn;
- this.energyOut = energyOut;
- this.voltage = voltage;
- }
-
- public double getEnergyIn() {
- return energyIn;
- }
-
- public double getEnergyOut() {
- return energyOut;
- }
-
- public double getVoltage() {
- return voltage;
- }
-
- protected double energyIn;
- protected double energyOut;
- protected double voltage;
-}
diff --git a/src/main/java/api/java/ic2/api/energy/event/EnergyTileEvent.class b/src/main/java/api/java/ic2/api/energy/event/EnergyTileEvent.class
deleted file mode 100644
index 25e3e25..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/event/EnergyTileEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/event/EnergyTileEvent.java b/src/main/java/api/java/ic2/api/energy/event/EnergyTileEvent.java
deleted file mode 100644
index 86b8dc2..0000000
--- a/src/main/java/api/java/ic2/api/energy/event/EnergyTileEvent.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package ic2.api.energy.event;
-
-import net.minecraft.tileentity.TileEntity;
-
-import net.minecraftforge.event.world.WorldEvent;
-
-import ic2.api.energy.tile.IEnergyTile;
-
-/**
- * Base class for energy net events, don't use it directly.
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public class EnergyTileEvent extends WorldEvent {
- public final IEnergyTile energyTile;
-
- public EnergyTileEvent(IEnergyTile energyTile1) {
- super(((TileEntity) energyTile1).getWorldObj());
-
- if (world == null) throw new NullPointerException("world is null");
-
- this.energyTile = energyTile1;
- }
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/event/EnergyTileLoadEvent.class b/src/main/java/api/java/ic2/api/energy/event/EnergyTileLoadEvent.class
deleted file mode 100644
index 9ccd40e..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/event/EnergyTileLoadEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/event/EnergyTileLoadEvent.java b/src/main/java/api/java/ic2/api/energy/event/EnergyTileLoadEvent.java
deleted file mode 100644
index bf019ae..0000000
--- a/src/main/java/api/java/ic2/api/energy/event/EnergyTileLoadEvent.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package ic2.api.energy.event;
-
-import ic2.api.energy.tile.IEnergyTile;
-
-/**
- * Event announcing new energy tiles.
- *
- * This event notifies subscribers of loaded energy tiles, e.g. after getting
- * loaded through the chunk they are in or after being placed down by the
- * player or another deployer mechanism.
- *
- * Every energy tile which wants to get connected to the IC2 Energy Network has
- * to either post this event or alternatively call EnergyNet.addTileEntity().
- *
- * You may use this event to build a static representation of energy tiles for
- * your own energy grid implementation if you need to. It's not required if you
- * always lookup energy paths on demand.
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public class EnergyTileLoadEvent extends EnergyTileEvent {
- public EnergyTileLoadEvent(IEnergyTile energyTile1) {
- super(energyTile1);
- }
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/event/EnergyTileUnloadEvent.class b/src/main/java/api/java/ic2/api/energy/event/EnergyTileUnloadEvent.class
deleted file mode 100644
index f5e53ae..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/event/EnergyTileUnloadEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/event/EnergyTileUnloadEvent.java b/src/main/java/api/java/ic2/api/energy/event/EnergyTileUnloadEvent.java
deleted file mode 100644
index 2b22ae3..0000000
--- a/src/main/java/api/java/ic2/api/energy/event/EnergyTileUnloadEvent.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package ic2.api.energy.event;
-
-import ic2.api.energy.tile.IEnergyTile;
-
-/**
- * Event announcing terminated energy tiles.
- *
- * This event notifies subscribers of unloaded energy tiles, e.g. after getting
- * unloaded through the chunk they are in or after being destroyed by the
- * player or another block pick/destruction mechanism.
- *
- * Every energy tile which wants to get disconnected from the IC2 Energy
- * Network has to either post this event or alternatively call
- * EnergyNet.removeTileEntity().
- *
- * You may use this event to build a static representation of energy tiles for
- * your own energy grid implementation if you need to. It's not required if you
- * always lookup energy paths on demand.
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public class EnergyTileUnloadEvent extends EnergyTileEvent {
- public EnergyTileUnloadEvent(IEnergyTile energyTile1) {
- super(energyTile1);
- }
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/event/package-info.class b/src/main/java/api/java/ic2/api/energy/event/package-info.class
deleted file mode 100644
index fc279ec..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/event/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/event/package-info.java b/src/main/java/api/java/ic2/api/energy/event/package-info.java
deleted file mode 100644
index 40db6f8..0000000
--- a/src/main/java/api/java/ic2/api/energy/event/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.energy.event;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/energy/package-info.class b/src/main/java/api/java/ic2/api/energy/package-info.class
deleted file mode 100644
index baaed20..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/package-info.java b/src/main/java/api/java/ic2/api/energy/package-info.java
deleted file mode 100644
index 81d0bfe..0000000
--- a/src/main/java/api/java/ic2/api/energy/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.energy;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/energy/prefab/BasicSink.class b/src/main/java/api/java/ic2/api/energy/prefab/BasicSink.class
deleted file mode 100644
index 1f411d4..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/prefab/BasicSink.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/prefab/BasicSink.java b/src/main/java/api/java/ic2/api/energy/prefab/BasicSink.java
deleted file mode 100644
index 48de061..0000000
--- a/src/main/java/api/java/ic2/api/energy/prefab/BasicSink.java
+++ /dev/null
@@ -1,373 +0,0 @@
-package ic2.api.energy.prefab;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
-
-import cpw.mods.fml.common.FMLCommonHandler;
-
-import net.minecraftforge.common.MinecraftForge;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import ic2.api.energy.event.EnergyTileLoadEvent;
-import ic2.api.energy.event.EnergyTileUnloadEvent;
-import ic2.api.energy.tile.IEnergySink;
-import ic2.api.info.Info;
-import ic2.api.item.ElectricItem;
-
-/**
- * BasicSink is a simple adapter to provide an ic2 energy sink.
- *
- * It's designed to be attached to a tile entity as a delegate. Functionally BasicSink acts as a
- * one-time configurable input energy buffer, thus providing a common use case for machines.
- *
- * Sub-classing BasicSink instead of using it as a delegate works as well, but isn't recommended.
- * The delegate can be extended with additional functionality through a sub class though.
- *
- * The constraints set by BasicSink like the strict tank-like energy buffering should provide a
- * more easy to use and stable interface than using IEnergySink directly while aiming for
- * optimal performance.
- *
- * Using BasicSink involves the following steps:
- * - create a BasicSink instance in your TileEntity, typically in a field
- * - forward invalidate, onChunkUnload, readFromNBT, writeToNBT and updateEntity to the BasicSink
- * instance.
- * If you have other means of determining when the tile entity is fully loaded, notify onLoaded
- * that way instead of forwarding updateEntity.
- * - call useEnergy whenever appropriate. canUseEnergy determines if enough energy is available
- * without consuming the energy.
- * - optionally use getEnergyStored to display the output buffer charge level
- * - optionally use setEnergyStored to sync the stored energy to the client (e.g. in the Container)
- *
- * Example implementation code:
- * @code{.java}
- * public class SomeTileEntity extends TileEntity {
- * // new basic energy sink, 1000 EU buffer, tier 1 (32 EU/t, LV)
- * private BasicSink ic2EnergySink = new BasicSink(this, 1000, 1);
- *
- * @Override
- * public void invalidate() {
- * ic2EnergySink.invalidate(); // notify the energy sink
- * ...
- * super.invalidate(); // this is important for mc!
- * }
- *
- * @Override
- * public void onChunkUnload() {
- * ic2EnergySink.onChunkUnload(); // notify the energy sink
- * ...
- * }
- *
- * @Override
- * public void readFromNBT(NBTTagCompound tag) {
- * super.readFromNBT(tag);
- *
- * ic2EnergySink.readFromNBT(tag);
- * ...
- * }
- *
- * @Override
- * public void writeToNBT(NBTTagCompound tag) {
- * super.writeToNBT(tag);
- *
- * ic2EnergySink.writeToNBT(tag);
- * ...
- * }
- *
- * @Override
- * public void updateEntity() {
- * ic2EnergySink.updateEntity(); // notify the energy sink
- * ...
- * if (ic2EnergySink.useEnergy(5)) { // use 5 eu from the sink's buffer this tick
- * ... // do something with the energy
- * }
- * ...
- * }
- *
- * ...
- * }
- * @endcode
- */
-public class BasicSink extends TileEntity implements IEnergySink {
- // **********************************
- // *** Methods for use by the mod ***
- // **********************************
-
- /**
- * Constructor for a new BasicSink delegate.
- *
- * @param parent1 TileEntity represented by this energy sink.
- * @param capacity1 Maximum amount of eu to store.
- * @param tier1 IC2 tier, 1 = LV, 2 = MV, ...
- */
- public BasicSink(TileEntity parent1, int capacity1, int tier1) {
- this.parent = parent1;
- this.capacity = capacity1;
- this.tier = tier1;
- }
-
- // in-world te forwards >>
-
- /**
- * Forward for the base TileEntity's updateEntity(), used for creating the energy net link.
- * Either updateEntity or onLoaded have to be used.
- */
- @Override
- public void updateEntity() {
- if (!addedToEnet) onLoaded();
- }
-
- /**
- * Notification that the base TileEntity finished loaded, for advanced uses.
- * Either updateEntity or onLoaded have to be used.
- */
- public void onLoaded() {
- if (!addedToEnet &&
- !FMLCommonHandler.instance().getEffectiveSide().isClient() &&
- Info.isIc2Available()) {
- worldObj = parent.getWorldObj();
- xCoord = parent.xCoord;
- yCoord = parent.yCoord;
- zCoord = parent.zCoord;
-
- MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
-
- addedToEnet = true;
- }
- }
-
- /**
- * Forward for the base TileEntity's invalidate(), used for destroying the energy net link.
- * Both invalidate and onChunkUnload have to be used.
- */
- @Override
- public void invalidate() {
- super.invalidate();
-
- onChunkUnload();
- }
-
- /**
- * Forward for the base TileEntity's onChunkUnload(), used for destroying the energy net link.
- * Both invalidate and onChunkUnload have to be used.
- */
- @Override
- public void onChunkUnload() {
- if (addedToEnet &&
- Info.isIc2Available()) {
- MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
-
- addedToEnet = false;
- }
- }
-
- /**
- * Forward for the base TileEntity's readFromNBT(), used for loading the state.
- *
- * @param tag Compound tag as supplied by TileEntity.readFromNBT()
- */
- @Override
- public void readFromNBT(NBTTagCompound tag) {
- super.readFromNBT(tag);
-
- NBTTagCompound data = tag.getCompoundTag("IC2BasicSink");
-
- energyStored = data.getDouble("energy");
- }
-
- /**
- * Forward for the base TileEntity's writeToNBT(), used for saving the state.
- *
- * @param tag Compound tag as supplied by TileEntity.writeToNBT()
- */
- @Override
- public void writeToNBT(NBTTagCompound tag) {
- try {
- super.writeToNBT(tag);
- } catch (RuntimeException e) {
- // happens if this is a delegate, ignore
- }
-
- NBTTagCompound data = new NBTTagCompound();
-
- data.setDouble("energy", energyStored);
-
- tag.setTag("IC2BasicSink", data);
- }
-
- // << in-world te forwards
- // methods for using this adapter >>
-
- /**
- * Get the maximum amount of energy this sink can hold in its buffer.
- *
- * @return Capacity in EU.
- */
- public int getCapacity() {
- return capacity;
- }
-
- /**
- * Set the maximum amount of energy this sink can hold in its buffer.
- *
- * @param capacity1 Capacity in EU.
- */
- public void setCapacity(int capacity1) {
- this.capacity = capacity1;
- }
-
- /**
- * Get the IC2 energy tier for this sink.
- *
- * @return IC2 Tier.
- */
- public int getTier() {
- return tier;
- }
-
- /**
- * Set the IC2 energy tier for this sink.
- *
- * @param tier1 IC2 Tier.
- */
- public void setTier(int tier1) {
- this.tier = tier1;
- }
-
- /**
- * Determine the energy stored in the sink's input buffer.
- *
- * @return amount in EU, may be above capacity
- */
- public double getEnergyStored() {
- return energyStored;
- }
-
- /**
- * Set the stored energy to the specified amount.
- *
- * This is intended for server -> client synchronization, e.g. to display the stored energy in
- * a GUI through getEnergyStored().
- *
- * @param amount
- */
- public void setEnergyStored(double amount) {
- energyStored = amount;
- }
-
- /**
- * Determine if the specified amount of energy is available.
- *
- * @param amount in EU
- * @return true if the amount is available
- */
- public boolean canUseEnergy(double amount) {
- return energyStored >= amount;
- }
-
- /**
- * Use the specified amount of energy, if available.
- *
- * @param amount amount to use
- * @return true if the amount was available
- */
- public boolean useEnergy(double amount) {
- if (canUseEnergy(amount) && !FMLCommonHandler.instance().getEffectiveSide().isClient()) {
- energyStored -= amount;
-
- return true;
- }
- return false;
- }
-
- /**
- * Discharge the supplied ItemStack into this sink's energy buffer.
- *
- * @param stack ItemStack to discharge (null is ignored)
- * @param limit Transfer limit, values <= 0 will use the battery's limit
- * @return true if energy was transferred
- */
- public boolean discharge(ItemStack stack, int limit) {
- if (stack == null || !Info.isIc2Available()) return false;
-
- double amount = capacity - energyStored;
- if (amount <= 0) return false;
-
- if (limit > 0 && limit < amount) amount = limit;
-
- amount = ElectricItem.manager.discharge(stack, amount, tier, limit > 0, true, false);
-
- energyStored += amount;
-
- return amount > 0;
- }
-
- // << methods for using this adapter
-
- // backwards compatibility (ignore these) >>
-
- @Deprecated
- public void onUpdateEntity() {
- updateEntity();
- }
-
- @Deprecated
- public void onInvalidate() {
- invalidate();
- }
-
- @Deprecated
- public void onOnChunkUnload() {
- onChunkUnload();
- }
-
- @Deprecated
- public void onReadFromNbt(NBTTagCompound tag) {
- readFromNBT(tag);
- }
-
- @Deprecated
- public void onWriteToNbt(NBTTagCompound tag) {
- writeToNBT(tag);
- }
-
- // << backwards compatibility
-
- // ******************************
- // *** Methods for use by ic2 ***
- // ******************************
-
- // energy net interface >>
-
- @Override
- public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction) {
- return true;
- }
-
- @Override
- public double getDemandedEnergy() {
- return Math.max(0, capacity - energyStored);
- }
-
- @Override
- public double injectEnergy(ForgeDirection directionFrom, double amount, double voltage) {
- energyStored += amount;
-
- return 0;
- }
-
- @Override
- public int getSinkTier() {
- return tier;
- }
-
- // << energy net interface
-
-
- public final TileEntity parent;
-
- protected int capacity;
- protected int tier;
- protected double energyStored;
- protected boolean addedToEnet;
-}
diff --git a/src/main/java/api/java/ic2/api/energy/prefab/BasicSource.class b/src/main/java/api/java/ic2/api/energy/prefab/BasicSource.class
deleted file mode 100644
index 74bf5ea..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/prefab/BasicSource.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/prefab/BasicSource.java b/src/main/java/api/java/ic2/api/energy/prefab/BasicSource.java
deleted file mode 100644
index 011e8cd..0000000
--- a/src/main/java/api/java/ic2/api/energy/prefab/BasicSource.java
+++ /dev/null
@@ -1,375 +0,0 @@
-package ic2.api.energy.prefab;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
-
-import cpw.mods.fml.common.FMLCommonHandler;
-
-import net.minecraftforge.common.MinecraftForge;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import ic2.api.energy.EnergyNet;
-import ic2.api.energy.event.EnergyTileLoadEvent;
-import ic2.api.energy.event.EnergyTileUnloadEvent;
-import ic2.api.energy.tile.IEnergySource;
-import ic2.api.info.Info;
-import ic2.api.item.ElectricItem;
-
-/**
- * BasicSource is a simple adapter to provide an ic2 energy source.
- *
- * It's designed to be attached to a tile entity as a delegate. Functionally BasicSource acts as a
- * one-time configurable output energy buffer, thus providing a common use case for generators.
- *
- * Sub-classing BasicSource instead of using it as a delegate works as well, but isn't recommended.
- * The delegate can be extended with additional functionality through a sub class though.
- *
- * The constraints set by BasicSource like the strict tank-like energy buffering should provide a
- * more easy to use and stable interface than using IEnergySource directly while aiming for
- * optimal performance.
- *
- * Using BasicSource involves the following steps:
- * - create a BasicSource instance in your TileEntity, typically in a field
- * - forward invalidate, onChunkUnload, readFromNBT, writeToNBT and updateEntity to the BasicSource
- * instance.
- * If you have other means of determining when the tile entity is fully loaded, notify onLoaded
- * that way instead of forwarding updateEntity.
- * - call addEnergy whenever appropriate, using getFreeCapacity may determine if e.g. the generator
- * should run
- * - optionally use getEnergyStored to display the output buffer charge level
- * - optionally use setEnergyStored to sync the stored energy to the client (e.g. in the Container)
- *
- * Example implementation code:
- * @code{.java}
- * public class SomeTileEntity extends TileEntity {
- * // new basic energy source, 1000 EU buffer, tier 1 (32 EU/t, LV)
- * private BasicSource ic2EnergySource = new BasicSource(this, 1000, 1);
- *
- * @Override
- * public void invalidate() {
- * ic2EnergySource.invalidate(); // notify the energy source
- * ...
- * super.invalidate(); // this is important for mc!
- * }
- *
- * @Override
- * public void onChunkUnload() {
- * ic2EnergySource.onChunkUnload(); // notify the energy source
- * ...
- * }
- *
- * @Override
- * public void readFromNBT(NBTTagCompound tag) {
- * super.readFromNBT(tag);
- *
- * ic2EnergySource.readFromNBT(tag);
- * ...
- * }
- *
- * @Override
- * public void writeToNBT(NBTTagCompound tag) {
- * super.writeToNBT(tag);
- *
- * ic2EnergySource.writeToNBT(tag);
- * ...
- * }
- *
- * @Override
- * public void updateEntity() {
- * ic2EnergySource.updateEntity(); // notify the energy source
- * ...
- * ic2EnergySource.addEnergy(5); // add 5 eu to the source's buffer this tick
- * ...
- * }
- *
- * ...
- * }
- * @endcode
- */
-public class BasicSource extends TileEntity implements IEnergySource {
- // **********************************
- // *** Methods for use by the mod ***
- // **********************************
-
- /**
- * Constructor for a new BasicSource delegate.
- *
- * @param parent1 Base TileEntity represented by this energy source.
- * @param capacity1 Maximum amount of eu to store.
- * @param tier1 IC2 tier, 1 = LV, 2 = MV, ...
- */
- public BasicSource(TileEntity parent1, double capacity1, int tier1) {
- double power = EnergyNet.instance.getPowerFromTier(tier1);
-
- this.parent = parent1;
- this.capacity = capacity1 < power ? power : capacity1;
- this.tier = tier1;
- this.power = power;
- }
-
- // in-world te forwards >>
-
- /**
- * Forward for the base TileEntity's updateEntity(), used for creating the energy net link.
- * Either updateEntity or onLoaded have to be used.
- */
- @Override
- public void updateEntity() {
- if (!addedToEnet) onLoaded();
- }
-
- /**
- * Notification that the base TileEntity finished loading, for advanced uses.
- * Either updateEntity or onLoaded have to be used.
- */
- public void onLoaded() {
- if (!addedToEnet &&
- !FMLCommonHandler.instance().getEffectiveSide().isClient() &&
- Info.isIc2Available()) {
- worldObj = parent.getWorldObj();
- xCoord = parent.xCoord;
- yCoord = parent.yCoord;
- zCoord = parent.zCoord;
-
- MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
-
- addedToEnet = true;
- }
- }
-
- /**
- * Forward for the base TileEntity's invalidate(), used for destroying the energy net link.
- * Both invalidate and onChunkUnload have to be used.
- */
- @Override
- public void invalidate() {
- super.invalidate();
-
- onChunkUnload();
- }
-
- /**
- * Forward for the base TileEntity's onChunkUnload(), used for destroying the energy net link.
- * Both invalidate and onChunkUnload have to be used.
- */
- @Override
- public void onChunkUnload() {
- if (addedToEnet &&
- Info.isIc2Available()) {
- MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
-
- addedToEnet = false;
- }
- }
-
- /**
- * Forward for the base TileEntity's readFromNBT(), used for loading the state.
- *
- * @param tag Compound tag as supplied by TileEntity.readFromNBT()
- */
- @Override
- public void readFromNBT(NBTTagCompound tag) {
- super.readFromNBT(tag);
-
- NBTTagCompound data = tag.getCompoundTag("IC2BasicSource");
-
- energyStored = data.getDouble("energy");
- }
-
- /**
- * Forward for the base TileEntity's writeToNBT(), used for saving the state.
- *
- * @param tag Compound tag as supplied by TileEntity.writeToNBT()
- */
- @Override
- public void writeToNBT(NBTTagCompound tag) {
- try {
- super.writeToNBT(tag);
- } catch (RuntimeException e) {
- // happens if this is a delegate, ignore
- }
-
- NBTTagCompound data = new NBTTagCompound();
-
- data.setDouble("energy", energyStored);
-
- tag.setTag("IC2BasicSource", data);
- }
-
- // << in-world te forwards
- // methods for using this adapter >>
-
- /**
- * Get the maximum amount of energy this source can hold in its buffer.
- *
- * @return Capacity in EU.
- */
- public double getCapacity() {
- return capacity;
- }
-
- /**
- * Set the maximum amount of energy this source can hold in its buffer.
- *
- * @param capacity1 Capacity in EU.
- */
- public void setCapacity(double capacity1) {
- if (capacity1 < power) capacity1 = power;
-
- this.capacity = capacity1;
- }
-
- /**
- * Get the IC2 energy tier for this source.
- *
- * @return IC2 Tier.
- */
- public int getTier() {
- return tier;
- }
-
- /**
- * Set the IC2 energy tier for this source.
- *
- * @param tier1 IC2 Tier.
- */
- public void setTier(int tier1) {
- double power = EnergyNet.instance.getPowerFromTier(tier1);
-
- if (capacity < power) capacity = power;
-
- this.tier = tier1;
- this.power = power;
- }
-
-
- /**
- * Determine the energy stored in the source's output buffer.
- *
- * @return amount in EU
- */
- public double getEnergyStored() {
- return energyStored;
- }
-
- /**
- * Set the stored energy to the specified amount.
- *
- * This is intended for server -> client synchronization, e.g. to display the stored energy in
- * a GUI through getEnergyStored().
- *
- * @param amount
- */
- public void setEnergyStored(double amount) {
- energyStored = amount;
- }
-
- /**
- * Determine the free capacity in the source's output buffer.
- *
- * @return amount in EU
- */
- public double getFreeCapacity() {
- return capacity - energyStored;
- }
-
- /**
- * Add some energy to the output buffer.
- *
- * @param amount maximum amount of energy to add
- * @return amount added/used, NOT remaining
- */
- public double addEnergy(double amount) {
- if (FMLCommonHandler.instance().getEffectiveSide().isClient()) return 0;
- if (amount > capacity - energyStored) amount = capacity - energyStored;
-
- energyStored += amount;
-
- return amount;
- }
-
- /**
- * Charge the supplied ItemStack from this source's energy buffer.
- *
- * @param stack ItemStack to charge (null is ignored)
- * @return true if energy was transferred
- */
- public boolean charge(ItemStack stack) {
- if (stack == null || !Info.isIc2Available()) return false;
-
- double amount = ElectricItem.manager.charge(stack, energyStored, tier, false, false);
-
- energyStored -= amount;
-
- return amount > 0;
- }
-
- // << methods for using this adapter
-
- // backwards compatibility (ignore these) >>
-
- @Deprecated
- public void onUpdateEntity() {
- updateEntity();
- }
-
- @Deprecated
- public void onInvalidate() {
- invalidate();
- }
-
- @Deprecated
- public void onOnChunkUnload() {
- onChunkUnload();
- }
-
- @Deprecated
- public void onReadFromNbt(NBTTagCompound tag) {
- readFromNBT(tag);
- }
-
- @Deprecated
- public void onWriteToNbt(NBTTagCompound tag) {
- writeToNBT(tag);
- }
-
- // << backwards compatibility
-
- // ******************************
- // *** Methods for use by ic2 ***
- // ******************************
-
- // energy net interface >>
-
- @Override
- public boolean emitsEnergyTo(TileEntity receiver, ForgeDirection direction) {
- return true;
- }
-
- @Override
- public double getOfferedEnergy() {
- return Math.min(energyStored, power);
- }
-
- @Override
- public void drawEnergy(double amount) {
- energyStored -= amount;
- }
-
- @Override
- public int getSourceTier() {
- return tier;
- }
-
- // << energy net interface
-
-
- public final TileEntity parent;
-
- protected double capacity;
- protected int tier;
- protected double power;
- protected double energyStored;
- protected boolean addedToEnet;
-}
diff --git a/src/main/java/api/java/ic2/api/energy/prefab/package-info.class b/src/main/java/api/java/ic2/api/energy/prefab/package-info.class
deleted file mode 100644
index 52651b1..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/prefab/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/prefab/package-info.java b/src/main/java/api/java/ic2/api/energy/prefab/package-info.java
deleted file mode 100644
index c38f7e0..0000000
--- a/src/main/java/api/java/ic2/api/energy/prefab/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.energy.prefab;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergyAcceptor.class b/src/main/java/api/java/ic2/api/energy/tile/IEnergyAcceptor.class
deleted file mode 100644
index ddc8f3a..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/IEnergyAcceptor.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergyAcceptor.java b/src/main/java/api/java/ic2/api/energy/tile/IEnergyAcceptor.java
deleted file mode 100644
index 1735ff5..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/IEnergyAcceptor.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package ic2.api.energy.tile;
-
-import net.minecraft.tileentity.TileEntity;
-
-import net.minecraftforge.common.util.ForgeDirection;
-
-/**
- * For internal/multi-block usage only.
- *
- * @see IEnergySink
- * @see IEnergyConductor
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public interface IEnergyAcceptor extends IEnergyTile {
- /**
- * Determine if this acceptor can accept current from an adjacent emitter in a direction.
- *
- * The TileEntity in the emitter parameter is what was originally added to the energy net,
- * which may be normal in-world TileEntity, a delegate or an IMetaDelegate.
- *
- * @param emitter energy emitter, may also be null or an IMetaDelegate
- * @param direction direction the energy is being received from
- */
- boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction);
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergyConductor.class b/src/main/java/api/java/ic2/api/energy/tile/IEnergyConductor.class
deleted file mode 100644
index 4b2c8f5..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/IEnergyConductor.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergyConductor.java b/src/main/java/api/java/ic2/api/energy/tile/IEnergyConductor.java
deleted file mode 100644
index 08dab88..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/IEnergyConductor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package ic2.api.energy.tile;
-
-/**
- * Tile entities which conduct energy pulses without buffering (mostly cables) have to implement this
- * interface.
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public interface IEnergyConductor extends IEnergyAcceptor, IEnergyEmitter {
- /**
- * Energy loss for the conductor in EU per block.
- *
- * @return Energy loss
- */
- double getConductionLoss();
-
- /**
- * Amount of energy the insulation will handle before shocking nearby players and mobs.
- *
- * @return Insulation energy absorption in EU
- */
- double getInsulationEnergyAbsorption();
-
- /**
- * Amount of energy the insulation will handle before it is destroyed.
- * Ensure that this value is greater than the insulation energy absorption + 64.
- *
- * @return Insulation-destroying energy in EU
- */
- double getInsulationBreakdownEnergy();
-
- /**
- * Amount of energy the conductor will handle before it melts.
- *
- * @return Conductor-destroying energy in EU
- */
- double getConductorBreakdownEnergy();
-
- /**
- * Remove the conductor's insulation if the insulation breakdown energy was exceeded.
- *
- * @see #getInsulationBreakdownEnergy()
- */
- void removeInsulation();
-
- /**
- * Remove the conductor if the conductor breakdown energy was exceeded.
- *
- * @see #getConductorBreakdownEnergy()
- */
- void removeConductor();
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergyEmitter.class b/src/main/java/api/java/ic2/api/energy/tile/IEnergyEmitter.class
deleted file mode 100644
index eab917d..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/IEnergyEmitter.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergyEmitter.java b/src/main/java/api/java/ic2/api/energy/tile/IEnergyEmitter.java
deleted file mode 100644
index 013865e..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/IEnergyEmitter.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package ic2.api.energy.tile;
-
-import net.minecraft.tileentity.TileEntity;
-
-import net.minecraftforge.common.util.ForgeDirection;
-
-/**
- * For internal/multi-block usage only.
- *
- * @see IEnergySource
- * @see IEnergyConductor
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public interface IEnergyEmitter extends IEnergyTile {
- /**
- * Determine if this emitter can emit energy to an adjacent receiver.
- *
- * The TileEntity in the receiver parameter is what was originally added to the energy net,
- * which may be normal in-world TileEntity, a delegate or an IMetaDelegate.
- *
- * @param receiver receiver, may also be null or an IMetaDelegate
- * @param direction direction the receiver is from the emitter
- * @return Whether energy should be emitted
- */
- boolean emitsEnergyTo(TileEntity receiver, ForgeDirection direction);
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergySink.class b/src/main/java/api/java/ic2/api/energy/tile/IEnergySink.class
deleted file mode 100644
index bcb05ce..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/IEnergySink.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergySink.java b/src/main/java/api/java/ic2/api/energy/tile/IEnergySink.java
deleted file mode 100644
index 4ae8e79..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/IEnergySink.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package ic2.api.energy.tile;
-
-import net.minecraftforge.common.util.ForgeDirection;
-
-/**
- * Allows a tile entity (mostly a machine) to receive energy.
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public interface IEnergySink extends IEnergyAcceptor {
- /**
- * Determine how much energy the sink accepts.
- *
- * Make sure that injectEnergy() does accepts energy if demandsEnergy() returns anything > 0.
- *
- * @note Modifying the energy net from this method is disallowed.
- *
- * @return max accepted input in eu
- */
- double getDemandedEnergy();
-
- /**
- * Determine the tier of this energy sink.
- * 1 = LV, 2 = MV, 3 = HV, 4 = EV etc.
- *
- * @note Modifying the energy net from this method is disallowed.
- * @note Return Integer.MAX_VALUE to allow any voltage.
- *
- * @return tier of this energy sink
- */
- int getSinkTier();
-
- /**
- * Transfer energy to the sink.
- *
- * It's highly recommended to accept all energy by letting the internal buffer overflow to
- * increase the performance and accuracy of the distribution simulation.
- *
- * @param directionFrom direction from which the energy comes from
- * @param amount energy to be transferred
- * @return Energy not consumed (leftover)
- */
- double injectEnergy(ForgeDirection directionFrom, double amount, double voltage);
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergySource.class b/src/main/java/api/java/ic2/api/energy/tile/IEnergySource.class
deleted file mode 100644
index 41ca6cf..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/IEnergySource.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergySource.java b/src/main/java/api/java/ic2/api/energy/tile/IEnergySource.java
deleted file mode 100644
index 44b952a..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/IEnergySource.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package ic2.api.energy.tile;
-
-/**
- * Allows a tile entity (mostly a generator) to emit energy.
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public interface IEnergySource extends IEnergyEmitter {
- /**
- * Energy output provided by the source this tick.
- * This is typically Math.min(stored energy, max output/tick).
- *
- * @note Modifying the energy net from this method is disallowed.
- *
- * @return Energy offered this tick
- */
- double getOfferedEnergy();
-
- /**
- * Draw energy from this source's buffer.
- *
- * If the source doesn't have a buffer, this is a no-op.
- *
- * @param amount amount of EU to draw, may be negative
- */
- void drawEnergy(double amount);
-
- /**
- * Determine the tier of this energy source.
- * 1 = LV, 2 = MV, 3 = HV, 4 = EV etc.
- *
- * @note Modifying the energy net from this method is disallowed.
- *
- * @return tier of this energy source
- */
- int getSourceTier();
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergyTile.class b/src/main/java/api/java/ic2/api/energy/tile/IEnergyTile.class
deleted file mode 100644
index 087633b..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/IEnergyTile.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IEnergyTile.java b/src/main/java/api/java/ic2/api/energy/tile/IEnergyTile.java
deleted file mode 100644
index 3938190..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/IEnergyTile.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package ic2.api.energy.tile;
-
-/**
- * For internal usage only, base class for all energy tiles.
- *
- * @see IEnergySink
- * @see IEnergySource
- * @see IEnergyConductor
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public interface IEnergyTile {
- //
-}
-
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IHeatSource.class b/src/main/java/api/java/ic2/api/energy/tile/IHeatSource.class
deleted file mode 100644
index 4b24af9..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/IHeatSource.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IHeatSource.java b/src/main/java/api/java/ic2/api/energy/tile/IHeatSource.java
deleted file mode 100644
index 2e5db41..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/IHeatSource.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package ic2.api.energy.tile;
-
-import net.minecraftforge.common.util.ForgeDirection;
-
-public interface IHeatSource {
-
- /*
- * Return max heat transmission peer Tick (only theoretical bandwidth not available amount)
- */
- int maxrequestHeatTick(ForgeDirection directionFrom);
-
- /*
- * @param requested amount of heat to transfer
- *
- * @return transmitted amount of heat
- *
- * example: You Request 100 units of heat but the Source have only 50 units left
- *
- * requestHeat(100) : return 50 : so 50 units of heat remove from HeatSource
- */
-
- int requestHeat(ForgeDirection directionFrom, int requestheat);
-}
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IKineticSource.class b/src/main/java/api/java/ic2/api/energy/tile/IKineticSource.class
deleted file mode 100644
index 225191c..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/IKineticSource.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IKineticSource.java b/src/main/java/api/java/ic2/api/energy/tile/IKineticSource.java
deleted file mode 100644
index a651408..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/IKineticSource.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package ic2.api.energy.tile;
-
-import net.minecraftforge.common.util.ForgeDirection;
-
-public interface IKineticSource {
- /*
- * Return max kinetic energy transmission peer Tick (only theoretical bandwidth not available amount)
- */
- int maxrequestkineticenergyTick(ForgeDirection directionFrom);
-
- /*
- * @param requested amount of kinetic energy to transfer
- *
- * @return transmitted amount of kineticenergy
- *
- * example: You Request 100 units of kinetic energy but the Source have only 50 units left
- *
- * requestkineticenergy(100) : return 50 : so 50 units of kinetic energy remove from KineticSource
- */
-
- int requestkineticenergy(ForgeDirection directionFrom, int requestkineticenergy);
-}
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IMetaDelegate.class b/src/main/java/api/java/ic2/api/energy/tile/IMetaDelegate.class
deleted file mode 100644
index 9822846..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/IMetaDelegate.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/IMetaDelegate.java b/src/main/java/api/java/ic2/api/energy/tile/IMetaDelegate.java
deleted file mode 100644
index f7319d0..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/IMetaDelegate.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package ic2.api.energy.tile;
-
-import java.util.List;
-
-import net.minecraft.tileentity.TileEntity;
-
-/**
- * Interface for grouping multi-block structures to a single energy net delegate.
- *
- * The energy net uses TileEntity to refer to a specific xyz+world position. If multiple of those
- * positions should belong to the same functional structure, i.e. they consume or produce energy
- * only once for the whole multi-block instead of once per every single block, this interface
- * allows to do so.
- *
- * The tile entity implementing IMetaDelegate has to be added/removed to/from the energy net
- * instead of every single sub-TileEntity. The energy net interaction will be handled by the
- * IMetaDelegate TileEntity as well.
- *
- * The sub tile array TileEntity[] just provides optional connectivity (IEnergyAcceptor,
- * IEnergyEmitter) and mandatory position (x, y, z, World) data.
- * If the connectivity data on the sub tile is missing, the meta delegate is queried instead.
- *
- * See ic2/api/energy/usage.txt for an overall description of the energy net api.
- */
-public interface IMetaDelegate extends IEnergyTile {
- /**
- * Get the sub-TileEntities belonging to this Meta TileEntity.
- *
- * @note The list has to be consistent between the EnergyNet Load and Unload events.
- * @note The list must have at least 1 element.
- * @note The parent te implementing IMetaDelegate isn't automatically included.
- *
- * @return sub-TileEntity array
- */
- List getSubTiles();
-}
diff --git a/src/main/java/api/java/ic2/api/energy/tile/package-info.class b/src/main/java/api/java/ic2/api/energy/tile/package-info.class
deleted file mode 100644
index fdee4a7..0000000
Binary files a/src/main/java/api/java/ic2/api/energy/tile/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/energy/tile/package-info.java b/src/main/java/api/java/ic2/api/energy/tile/package-info.java
deleted file mode 100644
index 3c60323..0000000
--- a/src/main/java/api/java/ic2/api/energy/tile/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.energy.tile;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/energy/usage.txt b/src/main/java/api/java/ic2/api/energy/usage.txt
deleted file mode 100644
index 49bd995..0000000
--- a/src/main/java/api/java/ic2/api/energy/usage.txt
+++ /dev/null
@@ -1,144 +0,0 @@
---------------------------------
--- Energy Network Description --
---------------------------------
-
-There are currently three different types of energy network blocks:
-- energy sources, e.g. generators or the output side of a storage block/transformer
-- energy sinks, e.g. machines or the input side of a storage block/transformer
-- conductors, e.g. cables
-
-Note that storage blocks or transformers are both sources and sinks.
-
-All those blocks have to have a tile entity which has to implement the interface corresponding to
-its function and also post events to the Forge event bus.
-
-The energy generation, distribution and consumption is strictly limited to the simulating (server)
-side, use the proper side checks before posting the related events. One possibility is to check for
-FMLCommonHandler.instance().getEffectiveSide().isClient() being false.
-
-The energy network works by calculating the energy flow between the sources which offer energy
-through getOfferedEnergy() and the sinks which request energy through demandedEnergyUnits().
-Conductors will carry the energy over a distance. Once the energy distribution is calculated, the
-energy net will update the sources and sinks through drawEnergy() and injectEnergyUnits() respectively.
-
-
----------------------------
--- Energy Network Events --
----------------------------
-
-The energy network currently requires 2 events to manage its internal representation of the grids:
-
--- EnergyTileLoadEvent --
-
-For all energy network tiles (sources, sinks, conductors) you have to post an EnergyTileLoadEvent.
-
-The event has to be posted as soon as the implementing tile entity is fully loaded, usually after
-loading the chunk which contains it or after the user placing the block.
-
-The energy net implementation will use the event to add it to its energy grid map, taking it into
-account for further energy transfers.
-
-You can detect the loading by either using the 1st iteration of updateEntity() or by waiting for
-the next world tick after TileEntity.validate(). The 2nd approach is obviously more sophisticated
-and requires to use some tick queuing mechanism.
-
-The event can by posted as following:
- MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
-
--- EnergyTileUnloadEvent --
-
-Another event every energy tile has to post is the EnergyTileUnloadEvent.
-
-The event has to be posted as soon as the implementing tile entity is being unloaded, either by
-unloading the containing chunk or by destroying the block containing it.
-
-It's possible to detect the unloading by triggering on both the beginning of
-TileEntity.invalidate() and the beginning of TileEntity.onChunkUnload().
-
-It is important that the tile entity is still properly linked to the world while posting the unload
-event, otherwise the energy net can't find all affected connections.
-
-
---------------------------------------
--- Participating Block Requirements --
---------------------------------------
-
-The energy net blocks have to do the following to work properly:
-
--- energy source --
-
-An energy source has to post the following events:
- - EnergyTileLoadEvent on load
- - EnergyTileUnloadEvent on unload
-
-Additionally the interface IEnergySource has to be implemented.
-
--- energy sink --
-
-An energy sink has to post the following events:
- - EnergyTileLoadEvent on load
- - EnergyTileUnloadEvent on unload
-
-Additionally the interface IEnergySink has to be implemented.
-
--- energy conductor --
-
-An energy conductor has to post the following events:
- - EnergyTileLoadEvent on load
- - EnergyTileUnloadEvent on unload
-
-Additionally the interface IEnergyConductor has to be implemented.
-
-
-------------------------------
--- Energy Network Delegates --
-------------------------------
-
-A delegate is a separate object which performs tasks for the original object, in this case handling
-the energy net interaction.
-
-The TileEntity instances used by the events don't have to be the same as the in-world TileEntity
-instance for the corresponding position, it can be delegated to a separate TileEntity instance.
-This separate instance (delegate) needs to have its world and xyz coordinate fields set to match
-the in-world instance. The delegate implements the energy net interfaces and is added and removed
-to/from the energy net through EnergyTileLoadEvent and EnergyTileUnloadEvent.
-
-Separating the interfaces through a delegate allows to isolate the IC2 API usage into separate
-classes an potentially share common code like an input buffer with battery discharging outside the
-class hierarchy.
-It's even possible to use an ic2 energy net delegate alongside an in-world TileEntity which isn't
-designed to work with ic2 energy at all, like making a furnace electric by receiving energy through
-a delegate and adding the corresponding fuel amount to the in-world furnace TileEntity.
-
-Getting the in-world TileEntity for a delegate involves calling World.getBlockTileEntity() with the
-delegate's world and xyz coordinate information.
-
-
-------------------
--- Multi Blocks --
-------------------
-
-Multi blocks are a group of blocks which act as one functional entity.
-
-The IMetaDelegate interface groups multiple TileEntity instances (=sub tiles) representing the
-individual blocks to a single Energy Net relevant node. The sub tiles may be normal in-world or
-delegate TileEntity instances.
-
-The meta delegate is added to energy net once for the whole multi block structure and implements
-the energy net interfaces as well. The sub tiles may optionally implement IEnergyEmitter and/or
-IEnergyAcceptor to specify their connectivity rules independently, otherwise the meta delegate will
-be queried.
-
-
---------------------------------------------------
--- How to implement/add your own energy network --
---------------------------------------------------
-
-If you want to create an alternative way of distributing energy, e.g. to have different
-distribution rules or to use energy networks provided by other mods, you can register to the energy
-tile events and use the interfaces to handle the energy distribution yourself. It's no longer
-required to use conversion blocks.
-
-IC2's EnergyNet itself is built on top of the api events and interfaces, providing their default
-use case.
-
diff --git a/src/main/java/api/java/ic2/api/event/ExplosionEvent.class b/src/main/java/api/java/ic2/api/event/ExplosionEvent.class
deleted file mode 100644
index 68a268d..0000000
Binary files a/src/main/java/api/java/ic2/api/event/ExplosionEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/event/ExplosionEvent.java b/src/main/java/api/java/ic2/api/event/ExplosionEvent.java
deleted file mode 100644
index c2df419..0000000
--- a/src/main/java/api/java/ic2/api/event/ExplosionEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package ic2.api.event;
-
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.world.World;
-
-import cpw.mods.fml.common.eventhandler.Cancelable;
-
-import net.minecraftforge.event.world.WorldEvent;
-
-@Cancelable
-public class ExplosionEvent extends WorldEvent {
- public ExplosionEvent(World world, Entity entity,
- double x, double y, double z,
- double power,
- EntityLivingBase igniter,
- int radiationRange, double rangeLimit) {
- super(world);
-
- this.entity = entity;
- this.x = x;
- this.y = y;
- this.z = z;
- this.power = power;
- this.igniter = igniter;
- this.radiationRange = radiationRange;
- this.rangeLimit = rangeLimit;
- }
-
- /**
- * Entity representing the explosive, may be null.
- */
- public final Entity entity;
- public double x;
- public double y;
- public double z;
- public double power;
- /**
- * Entity causing the explosion, may be null.
- */
- public final EntityLivingBase igniter;
- public final int radiationRange;
- public final double rangeLimit;
-}
diff --git a/src/main/java/api/java/ic2/api/event/LaserEvent$LaserExplodesEvent.class b/src/main/java/api/java/ic2/api/event/LaserEvent$LaserExplodesEvent.class
deleted file mode 100644
index 27664e9..0000000
Binary files a/src/main/java/api/java/ic2/api/event/LaserEvent$LaserExplodesEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/event/LaserEvent$LaserHitsBlockEvent.class b/src/main/java/api/java/ic2/api/event/LaserEvent$LaserHitsBlockEvent.class
deleted file mode 100644
index a41b7f2..0000000
Binary files a/src/main/java/api/java/ic2/api/event/LaserEvent$LaserHitsBlockEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/event/LaserEvent$LaserHitsEntityEvent.class b/src/main/java/api/java/ic2/api/event/LaserEvent$LaserHitsEntityEvent.class
deleted file mode 100644
index 627a8ea..0000000
Binary files a/src/main/java/api/java/ic2/api/event/LaserEvent$LaserHitsEntityEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/event/LaserEvent$LaserShootEvent.class b/src/main/java/api/java/ic2/api/event/LaserEvent$LaserShootEvent.class
deleted file mode 100644
index 368dc06..0000000
Binary files a/src/main/java/api/java/ic2/api/event/LaserEvent$LaserShootEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/event/LaserEvent.class b/src/main/java/api/java/ic2/api/event/LaserEvent.class
deleted file mode 100644
index fa1a1b0..0000000
Binary files a/src/main/java/api/java/ic2/api/event/LaserEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/event/LaserEvent.java b/src/main/java/api/java/ic2/api/event/LaserEvent.java
deleted file mode 100644
index 6d5ea28..0000000
--- a/src/main/java/api/java/ic2/api/event/LaserEvent.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package ic2.api.event;
-
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-
-import cpw.mods.fml.common.eventhandler.Cancelable;
-
-import net.minecraftforge.event.world.WorldEvent;
-
-/**
- * A bunch of Events to handle the power of the Mining Laser.
- */
-@Cancelable
-public class LaserEvent extends WorldEvent {
- // the Laser Entity
- public final Entity lasershot;
-
- // the following variables can be changed and the Laser will adjust to them
-
- // the Player firing the Laser. If the Laser gets "reflected" the Player could change.
- public EntityLivingBase owner;
- // Range of the Laser Shot. Determine the amount of broken blocks, as well, as each broken block will subtract ~1F from range.
- public float range, power;
- public int blockBreaks;
- // Determines whether the laser will explode upon hitting something
- public boolean explosive, smelt;
-
- public LaserEvent(World world1, Entity lasershot1, EntityLivingBase owner1, float range1, float power1, int blockBreaks1, boolean explosive1, boolean smelt1) {
- super(world1);
- this.lasershot = lasershot1;
- this.owner = owner1;
- this.range = range1;
- this.power = power1;
- this.blockBreaks = blockBreaks1;
- this.explosive = explosive1;
- this.smelt = smelt1;
- }
-
- /**
- * Event when the Laser is getting shot by a Player.
- *
- * The Item is the Laser Gun which the "Player" has shot
- */
- public static class LaserShootEvent extends LaserEvent {
- ItemStack laseritem;
-
- public LaserShootEvent(World world1, Entity lasershot1, EntityLivingBase owner1, float range1, float power1, int blockBreaks1, boolean explosive1, boolean smelt1, ItemStack laseritem1) {
- super(world1, lasershot1, owner1, range1, power1, blockBreaks1, explosive1, smelt1);
- this.laseritem = laseritem1;
- }
- }
-
- /**
- * Event when the Laser is exploding for some Reason.
- *
- * The Laser will no longer exist after this Event is posted as it either Explodes or despawns after the Event is fired.
- */
- public static class LaserExplodesEvent extends LaserEvent {
- // explosion strength, even that can be changed!
- public float explosionpower, explosiondroprate, explosionentitydamage;
-
- public LaserExplodesEvent(World world1, Entity lasershot1, EntityLivingBase owner1, float range1, float power1, int blockBreaks1, boolean explosive1, boolean smelt1, float explosionpower1, float explosiondroprate1, float explosionentitydamage1) {
- super(world1, lasershot1, owner1, range1, power1, blockBreaks1, explosive1, smelt1);
- this.explosionpower = explosionpower1;
- this.explosiondroprate = explosiondroprate1;
- this.explosionentitydamage = explosionentitydamage1;
- }
- }
-
- /**
- * Event when the Laser is hitting a Block
- * x, y and z are the Coords of the Block.
- *
- * Canceling this Event stops the Laser from attempting to break the Block, what is very useful for Glass.
- * Use lasershot.setDead() to remove the Shot entirely.
- */
- public static class LaserHitsBlockEvent extends LaserEvent {
- // targeted block, even that can be changed!
- public int x, y, z;
- public int side;
- // removeBlock determines if the Block will be removed. dropBlock determines if the Block should drop something.
- public boolean removeBlock, dropBlock;
- public float dropChance;
-
- public LaserHitsBlockEvent(World world1, Entity lasershot1, EntityLivingBase owner1, float range1, float power1, int blockBreaks1, boolean explosive1, boolean smelt1, int x1, int y1, int z1, int side1, float dropChance1, boolean removeBlock1, boolean dropBlock1) {
- super(world1, lasershot1, owner1, range1, power1, blockBreaks1, explosive1, smelt1);
- this.x = x1;
- this.y = y1;
- this.z = z1;
- this.side = side1;
- this.removeBlock = removeBlock1;
- this.dropBlock = dropBlock1;
- this.dropChance = dropChance1;
- }
- }
-
- /**
- * Event when the Laser is getting at a Living Entity
- *
- * Canceling this Event ignores the Entity
- * Use lasershot.setDead() to remove the Shot entirely.
- */
- public static class LaserHitsEntityEvent extends LaserEvent {
- // the Entity which the Laser has shot at, even the target can be changed!
- public Entity hitentity;
-
- public LaserHitsEntityEvent(World world1, Entity lasershot1, EntityLivingBase owner1, float range1, float power1, int blockBreaks1, boolean explosive1, boolean smelt1, Entity hitentity1) {
- super(world1, lasershot1, owner1, range1, power1, blockBreaks1, explosive1, smelt1);
- this.hitentity = hitentity1;
- }
- }
-}
diff --git a/src/main/java/api/java/ic2/api/event/PaintEvent.class b/src/main/java/api/java/ic2/api/event/PaintEvent.class
deleted file mode 100644
index 0a4c1aa..0000000
Binary files a/src/main/java/api/java/ic2/api/event/PaintEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/event/PaintEvent.java b/src/main/java/api/java/ic2/api/event/PaintEvent.java
deleted file mode 100644
index c6565c2..0000000
--- a/src/main/java/api/java/ic2/api/event/PaintEvent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package ic2.api.event;
-
-import net.minecraft.world.World;
-
-import cpw.mods.fml.common.eventhandler.Cancelable;
-
-import net.minecraftforge.event.world.WorldEvent;
-
-@Cancelable
-public class PaintEvent extends WorldEvent {
- // target block
- public final int x;
- public final int y;
- public final int z;
- public final int side;
-
- // color to paint the block
- public final int color;
-
- // set to true to confirm the operation
- public boolean painted = false;
-
- public PaintEvent(World world1, int x1, int y1, int z1, int side1, int color1) {
- super(world1);
-
- this.x = x1;
- this.y = y1;
- this.z = z1;
- this.side = side1;
- this.color = color1;
- }
-}
diff --git a/src/main/java/api/java/ic2/api/event/RetextureEvent.class b/src/main/java/api/java/ic2/api/event/RetextureEvent.class
deleted file mode 100644
index e3df863..0000000
Binary files a/src/main/java/api/java/ic2/api/event/RetextureEvent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/event/RetextureEvent.java b/src/main/java/api/java/ic2/api/event/RetextureEvent.java
deleted file mode 100644
index d530578..0000000
--- a/src/main/java/api/java/ic2/api/event/RetextureEvent.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package ic2.api.event;
-
-import net.minecraft.block.Block;
-import net.minecraft.world.World;
-
-import cpw.mods.fml.common.eventhandler.Cancelable;
-
-import net.minecraftforge.event.world.WorldEvent;
-
-@Cancelable
-public class RetextureEvent extends WorldEvent {
- // target block
- public final int x;
- public final int y;
- public final int z;
- public final int side;
-
- // referenced block (to grab the texture from)
- public final Block referencedBlock;
- public final int referencedMeta;
- public final int referencedSide;
-
- // set to true to confirm the operation
- public boolean applied = false;
-
- public RetextureEvent(World world1, int x1, int y1, int z1, int side1, Block referencedBlock, int referencedMeta1, int referencedSide1) {
- super(world1);
-
- this.x = x1;
- this.y = y1;
- this.z = z1;
- this.side = side1;
- this.referencedBlock = referencedBlock;
- this.referencedMeta = referencedMeta1;
- this.referencedSide = referencedSide1;
- }
-}
diff --git a/src/main/java/api/java/ic2/api/event/package-info.class b/src/main/java/api/java/ic2/api/event/package-info.class
deleted file mode 100644
index 718d8f1..0000000
Binary files a/src/main/java/api/java/ic2/api/event/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/event/package-info.java b/src/main/java/api/java/ic2/api/event/package-info.java
deleted file mode 100644
index d331b92..0000000
--- a/src/main/java/api/java/ic2/api/event/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.event;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/info/IEnergyValueProvider.class b/src/main/java/api/java/ic2/api/info/IEnergyValueProvider.class
deleted file mode 100644
index abe05e1..0000000
Binary files a/src/main/java/api/java/ic2/api/info/IEnergyValueProvider.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/info/IEnergyValueProvider.java b/src/main/java/api/java/ic2/api/info/IEnergyValueProvider.java
deleted file mode 100644
index 1e7b2cc..0000000
--- a/src/main/java/api/java/ic2/api/info/IEnergyValueProvider.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package ic2.api.info;
-
-import net.minecraft.item.ItemStack;
-
-public interface IEnergyValueProvider {
- /**
- * Determine the energy value for a single item in the supplied stack.
- * The value is used by most machines in the discharge slot.
- *
- * This only applies to basic single use items, others are to be queried
- * through e.g. ElectricItem.manager.getCharge().
- *
- * @param itemStack ItemStack containing the item to evaluate.
- * @return energy in EU
- */
- double getEnergyValue(ItemStack itemStack);
-}
diff --git a/src/main/java/api/java/ic2/api/info/IFuelValueProvider.class b/src/main/java/api/java/ic2/api/info/IFuelValueProvider.class
deleted file mode 100644
index 57f9f4b..0000000
Binary files a/src/main/java/api/java/ic2/api/info/IFuelValueProvider.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/info/IFuelValueProvider.java b/src/main/java/api/java/ic2/api/info/IFuelValueProvider.java
deleted file mode 100644
index 7c7fe0f..0000000
--- a/src/main/java/api/java/ic2/api/info/IFuelValueProvider.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package ic2.api.info;
-
-import net.minecraft.item.ItemStack;
-
-public interface IFuelValueProvider {
- /**
- * Determine the fuel value for a single item in the supplied stack.
- * The information currently applies to Generators and the Iron Furnace.
- *
- * @param itemStack ItemStack containing the item to evaluate.
- * @param allowLava Determine if lava has a fuel value, currently only true for the Iron Furnace.
- * @return fuel value
- */
- int getFuelValue(ItemStack itemStack, boolean allowLava);
-}
diff --git a/src/main/java/api/java/ic2/api/info/Info.class b/src/main/java/api/java/ic2/api/info/Info.class
deleted file mode 100644
index 7e50751..0000000
Binary files a/src/main/java/api/java/ic2/api/info/Info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/info/Info.java b/src/main/java/api/java/ic2/api/info/Info.java
deleted file mode 100644
index f8e30ad..0000000
--- a/src/main/java/api/java/ic2/api/info/Info.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package ic2.api.info;
-
-import net.minecraft.potion.Potion;
-import net.minecraft.util.DamageSource;
-
-import cpw.mods.fml.common.Loader;
-import cpw.mods.fml.common.LoaderState;
-
-public class Info {
- public static IEnergyValueProvider itemEnergy;
- public static IFuelValueProvider itemFuel;
- public static Object ic2ModInstance;
-
- /**
- * Damage Sources used by IC2.
- * Getting assigned in preload.
- */
- public static DamageSource DMG_ELECTRIC, DMG_NUKE_EXPLOSION, DMG_RADIATION;
-
- /**
- * Potions used by IC2.
- * Getting assigned in preload.
- */
- public static Potion POTION_RADIATION;
-
- public static boolean isIc2Available() {
- if (ic2Available != null) return ic2Available;
-
- boolean loaded = Loader.isModLoaded("IC2");
-
- if (Loader.instance().hasReachedState(LoaderState.CONSTRUCTING)) {
- ic2Available = loaded;
- }
-
- return loaded;
- }
-
- private static Boolean ic2Available = null;
-}
\ No newline at end of file
diff --git a/src/main/java/api/java/ic2/api/info/package-info.class b/src/main/java/api/java/ic2/api/info/package-info.class
deleted file mode 100644
index 96b88b7..0000000
Binary files a/src/main/java/api/java/ic2/api/info/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/info/package-info.java b/src/main/java/api/java/ic2/api/info/package-info.java
deleted file mode 100644
index 59936e5..0000000
--- a/src/main/java/api/java/ic2/api/info/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.info;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/item/ElectricItem.class b/src/main/java/api/java/ic2/api/item/ElectricItem.class
deleted file mode 100644
index be92606..0000000
Binary files a/src/main/java/api/java/ic2/api/item/ElectricItem.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/ElectricItem.java b/src/main/java/api/java/ic2/api/item/ElectricItem.java
deleted file mode 100644
index 19e5fc1..0000000
--- a/src/main/java/api/java/ic2/api/item/ElectricItem.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package ic2.api.item;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-
-/**
- * Allows for charging, discharging and using electric items (IElectricItem).
- */
-public final class ElectricItem {
- /**
- * IElectricItemManager to use for interacting with IElectricItem ItemStacks.
- *
- * This manager will act as a gateway and delegate the tasks to the final implementation
- * (rawManager or a custom one) as necessary.
- */
- public static IElectricItemManager manager;
-
- /**
- * Standard IElectricItemManager implementation, only call it directly from another
- * IElectricItemManager. Use manager instead.
- */
- public static IElectricItemManager rawManager;
-
- /**
- * Register an electric item manager for items not implementing IElectricItem.
- *
- * This method is only designed for special purposes, implementing IElectricItem or
- * ISpecialElectricItem instead of using this is faster.
- *
- * Managers used with ISpecialElectricItem shouldn't be registered.
- *
- * @param manager Manager to register.
- */
- public static void registerBackupManager(IBackupElectricItemManager manager) {
- backupManagers.add(manager);
- }
-
- /**
- * Get the electric item manager suitable for the supplied item stack.
- *
- * This method is for internal use only.
- *
- * @param stack ItemStack to be handled.
- * @return First suitable electric item manager.
- */
- public static IBackupElectricItemManager getBackupManager(ItemStack stack) {
- for (IBackupElectricItemManager manager : backupManagers) {
- if (manager.handles(stack)) return manager;
- }
-
- return null;
- }
-
-
- private static final List backupManagers = new ArrayList();
-}
-
diff --git a/src/main/java/api/java/ic2/api/item/IBackupElectricItemManager.class b/src/main/java/api/java/ic2/api/item/IBackupElectricItemManager.class
deleted file mode 100644
index fc7f1ad..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IBackupElectricItemManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IBackupElectricItemManager.java b/src/main/java/api/java/ic2/api/item/IBackupElectricItemManager.java
deleted file mode 100644
index 2ae254a..0000000
--- a/src/main/java/api/java/ic2/api/item/IBackupElectricItemManager.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.item.ItemStack;
-
-/**
- * This interface specifies a manager applicable to items not implementing IElectricItem.
- *
- * The manager implementing this has to be registered with ElectricItem.registerBackupManager().
- */
-public interface IBackupElectricItemManager extends IElectricItemManager {
- boolean handles(ItemStack stack);
-}
diff --git a/src/main/java/api/java/ic2/api/item/IBlockCuttingBlade.class b/src/main/java/api/java/ic2/api/item/IBlockCuttingBlade.class
deleted file mode 100644
index 8654649..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IBlockCuttingBlade.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IBlockCuttingBlade.java b/src/main/java/api/java/ic2/api/item/IBlockCuttingBlade.java
deleted file mode 100644
index 24a8f00..0000000
--- a/src/main/java/api/java/ic2/api/item/IBlockCuttingBlade.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package ic2.api.item;
-
-
-public interface IBlockCuttingBlade {
- int gethardness();
-}
diff --git a/src/main/java/api/java/ic2/api/item/IBoxable.class b/src/main/java/api/java/ic2/api/item/IBoxable.class
deleted file mode 100644
index e28c754..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IBoxable.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IBoxable.java b/src/main/java/api/java/ic2/api/item/IBoxable.java
deleted file mode 100644
index bca2cc0..0000000
--- a/src/main/java/api/java/ic2/api/item/IBoxable.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.item.ItemStack;
-
-
-public interface IBoxable {
- /**
- * Determine whether an item can be stored in a toolbox or not.
- *
- * @param itemstack item to be stored
- * @return Whether to store the item in the toolbox or not
- */
- public abstract boolean canBeStoredInToolbox(ItemStack itemstack);
-}
diff --git a/src/main/java/api/java/ic2/api/item/IC2Items.class b/src/main/java/api/java/ic2/api/item/IC2Items.class
deleted file mode 100644
index 267272d..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IC2Items.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IC2Items.java b/src/main/java/api/java/ic2/api/item/IC2Items.java
deleted file mode 100644
index 9b8c7df..0000000
--- a/src/main/java/api/java/ic2/api/item/IC2Items.java
+++ /dev/null
@@ -1,598 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.item.ItemStack;
-
-/**
- * Provides access to IC2 blocks and items.
- *
- * Some items can be acquired through the ore dictionary which is the recommended way.
- * The items are initialized while IC2 is being loaded - try to use ModsLoaded() or load your mod after IC2.
- * Some blocks/items can be disabled by a config setting, so it's recommended to check if they're null first.
- *
- * Getting the associated Block/Item for an ItemStack x:
- * Blocks: Block.blocksList[x.itemID]
- * Items: x.getItem()
- */
-public final class IC2Items {
- /**
- * Get an ItemStack for a specific item name, example: Items.getItem("resin")
- * See the list below for item names.
- * Make sure to copy() the ItemStack if you want to modify it.
- *
- * @param name item name
- * @return The item or null if the item does not exist or an error occurred
- */
- public static ItemStack getItem(String name) {
- try {
- if (Ic2Items == null) Ic2Items = Class.forName(getPackage() + ".core.Ic2Items");
-
- Object ret = Ic2Items.getField(name).get(null);
-
- if (ret instanceof ItemStack) {
- return (ItemStack) ret;
- }
- return null;
- } catch (Exception e) {
- System.out.println("IC2 API: Call getItem failed for "+name);
-
- return null;
- }
- }
-
- /* Possible values:
-
- // ores
- copperOre; // Copper Ore block, currently not meta sensitive, meta in ItemStack set to 0, ore dictionary: oreCopper, null with enableWorldGenOreCopper = false
- tinOre; // Tin Ore block, currently not meta sensitive, meta in ItemStack set to 0, ore dictionary: oreTin, null with enableWorldGenOreTin = false
- uraniumOre; // Tin Ore block, currently not meta sensitive, meta in ItemStack set to 0, ore dictionary: oreUranium, null with enableWorldGenOreUranium = false
- leadOre; // Lead Ore Block, currently not meta sensitive, meta in ItemStack set to 0, ore dictionary: oreLead, null with enableWorldGenOreLead = false
-
- // rubber related
-
- Rubber wood block, meta reflects the state, meta in ItemStack set to 0, ore dictionary: woodRubber (with meta 0), null with enableWorldGenTreeRubber = false
- dropped (as an item) -> metadata 0
- block, no resin spot -> metadata 0 or 1
- block, wet resin spot -> metadata 2-5 (according to the side)
- block, dry resin spot -> metadata 8-11 (wet state + 6)
-
- rubberWood;
- rubberLeaves; // Rubber Leaves block, currently not meta sensitive, meta in ItemStack set to 0, null with enableWorldGenTreeRubber = false
- rubberSapling; // Rubber Sapling block, currently not meta sensitive, meta in ItemStack set to 0, null with enableWorldGenTreeRubber = false
- resinSheet; // Resin Sheet block, currently not meta sensitive
- rubberTrampoline; // Rubber Trampoline block, meta reflects internal state, meta in ItemStack set to 0
-
- // building/storage
- ironFence; // Iron Fence block, currently not meta sensitive
-
- reinforcedStone; // Reinforced Stone block, currently not meta sensitive
- reinforcedGlass; // Reinforced Glass block, currently not meta sensitive
- reinforcedDoorBlock; // Reinforced Door block, meta reflects the state (see vanilla doors), meta in ItemStack set to 0
-
- constructionreinforcedFoam; // Construction Reinforced Foam block, currently not meta sensitive
- constructionFoam; // Construction Foam block, currently not meta sensitive
- constructionFoamWall; // Construction Foam Wall block, meta = color, implements IPaintableBlock
- scaffold; // Scaffold block, meta reflects internal physical model data
- ironScaffold; // Scaffold block, meta reflects internal physical model data
-
- bronzeBlock; // Bronze block, meta sensitive
- copperBlock; // Copper block, meta sensitive
- tinBlock; // Tin block, meta sensitive
- uraniumBlock; // Uranium block, meta sensitive
- leadBlock; // Uranium block, meta sensitive
-
- // cables (when placed as a block, inventory items are different; TE implements IEnergyConductor)
-
- copperCableBlock; // Copper Cable block, meta sensitive
- insulatedCopperCableBlock; // Insulated Copper Cable block, meta sensitive
-
- goldCableBlock; // Gold Cable block, meta sensitive
- insulatedGoldCableBlock; // Insulated Gold Cable block, meta sensitive
- doubleInsulatedGoldCableBlock; // Double Insulated Gold Cable block, meta sensitive
-
- ironCableBlock; // Iron Cable block, meta sensitive
- insulatedIronCableBlock; // Insulated Iron Cable block, meta sensitive
- doubleInsulatedIronCableBlock; // Double Insulated Iron Cable block, meta sensitive
- trippleInsulatedIronCableBlock; // Tripple Insulated Iron Cable block, meta sensitive
-
- glassFiberCableBlock; // Glass Fiber Cable block, meta sensitive
-
- tinCableBlock; // Tin Cable block, meta sensitive
- insulatedtinCableBlock; // Insulated Tin Cable item, meta sensitive
- detectorCableBlock; // Detector Cable block, meta sensitive
- splitterCableBlock; // Splitter Cable block, meta sensitive
-
- // generators + related (TE implements IEnergySource ex. reactorChamber)
-
- generator; // Generator block, meta sensitive
- geothermalGenerator; // Geothermal Generator block, meta sensitive
- waterMill; // Water Mill block, meta sensitive
- solarPanel; // Solar Panel block, meta sensitive
- windMill; // Wind Mill block, meta sensitive
- nuclearReactor; // Nuclear Reactor block, meta sensitive
- reactorChamber; // Reactor Chamber block, currently not meta sensitive
- RTGenerator; // Radioisotope Thermoelectric Generator block, meta sensitive
- semifluidGenerator; // Semifluid Generator block, meta sensitive
-
-
- // energy storages (TE implements IEnergySource and IEnergyConductor)
-
- batBox; // BatBox block, meta sensitive
- cesuUnit; // CESU Unit block, meta sensitive
- mfeUnit; // MFE Unit block, meta sensitive
- mfsUnit; // MFS Unit block, meta sensitive
-
- // transformers (TE implements IEnergySource and IEnergyConductor)
-
- lvTransformer; // LV Transformer block, meta sensitive
- mvTransformer; // MV Transformer block, meta sensitive
- hvTransformer; // HV Transformer block, meta sensitive
- evTransformer; // EV Transformer block, meta sensitive
-
- // machines + related (TE implements IEnergySink ex. machine, miningPipe, miningPipeTip)
-
- machine; // Machine block, meta sensitive
- advancedMachine; // Advanced Machine block, meta sensitive
-
- ironFurnace; // Iron Furnace block, meta sensitive
- electroFurnace; // Electro Furnace block, meta sensitive
- macerator; // Macerator block, meta sensitive
- extractor; // Extractor block, meta sensitive
- compressor; // Compressor block, meta sensitive
- canner; // Canner block, meta sensitive
- miner; // Miner block, meta sensitive
- pump; // Pump block, meta sensitive
- magnetizer; // Magnetizer block, meta sensitive
- electrolyzer; // Electrolyzer block, meta sensitive
- recycler; // Recycler block, meta sensitive
- inductionFurnace; // Induction Furnace block, meta sensitive
- massFabricator; // Mass Fabricator block, meta sensitive
- terraformer; // Terraformer block, meta sensitive
- teleporter; // Teleporter block, meta sensitive
- teslaCoil; // Tesla Coil block, meta sensitive
- luminator; // Passive (dark) Luminator block, meta = facing
- activeLuminator; // Active (bright) Luminator block, meta = facing
- centrifuge; // Centrifuge block, meta sensitive
- metalformer; // MetalFormer block , meta sensitive
- orewashingplant; // Ore Wasching Plant, Meta sensitive
- patternstorage; // Pattern Storage, Meta sensitive
- scanner; // Scanner, Meta sensitive
- replicator; // Replicator, Meta sensitive
-
- miningPipe; // Mining Pipe block, currently not meta sensitive, meta in ItemStack set to 0
- miningPipeTip; // Mining Pipe Tip block, currently not meta sensitive, meta in ItemStack set to 0
-
-
- // personal blocks
-
- personalSafe; // Personal Safe block, meta sensitive
- tradeOMat; // Trade-O-Mat block, meta sensitive
- energyOMat; // Energy-O-Mat block, meta sensitive
-
- // explosives
-
- industrialTnt; // Industrial TNT block, currently not meta sensitive
- nuke; // Nuke block, currently not meta sensitive
- dynamiteStick; // Dynamite Stick block, meta = placement, meta in ItemStack set to 0
- dynamiteStickWithRemote; // Dynamite Stick with Remote block, meta = placement, meta in ItemStack set to 0
-
- // Agriculture Stuff
-
- crop; // Crop Block, empty, not meta sensitive
- cropmatron; // Cropmatron machien block, meta sensititve
-
- // ----- items -----
-
- // rubber + related
- resin; // Resin item, currently not meta sensitive
- rubber; // Rubber item, currently not meta sensitive, ore dictionary: itemRubber
-
- FluidCell;
-
- // Lithium -> Tritium
-
- reactorLithiumCell; // LithiumCell use in Reaktor, , meta = damage value
- TritiumCell; // Tritium, currently not meta sensitive
-
- // Nuclear Fuel
-
- UranFuel; // , currently not meta sensitive
- MOXFuel; // , currently not meta sensitive
- Plutonium; // , currently not meta sensitive
- smallPlutonium; // , currently not meta sensitive
- Uran235; // , currently not meta sensitive
- smallUran235; // , currently not meta sensitive
- Uran238; // , currently not meta sensitive
-
- reactorDepletedUraniumSimple; // Depleted Uranium Cell items, currently not meta sensitive
- reactorDepletedUraniumDual;
- reactorDepletedUraniumQuad;
- reactorDepletedMOXSimple; // Depleted MOX Cell items, currently not meta sensitive
- reactorDepletedMOXDual;
- reactorDepletedMOXQuad;
- reactorMOXSimple; // Depleted MOX Cell items, currently not meta sensitive
- reactorMOXDual;
- reactorMOXQuad;
- RTGPellets;
-
-
- // Recipe Parts
-
- coil; // Coil, meta sensitive
- elemotor; // electric motor, meta sensitive
- powerunit; // Item Power Unit, meta sensitive
- powerunitsmall; // Item Power Unit, meta sensitive
-
-
- // ItemCasing
-
- casingcopper; // Copper ItemCasing, meta sensitive
- casingtin; // Tin ItemCasing, meta sensitive
- casingbronze; // Bronze ItemCasing, meta sensitive
- casinggold; // Gold ItemCasing, meta sensitive
- casingiron; // Iron ItemCasing, meta sensitive
- @Deprecated
- casingadviron; // Refined Iron ItemCasing, meta sensitive
- casinglead; // Lead ItemCasing, meta sensitive
-
- // Crushed Ore
- crushedIronOre; // Crushed Iron Ore, meta sensitive
- crushedCopperOre; // Crushed Copper Ore, meta sensitive
- crushedGoldOre; // Crushed Gold Ore, meta sensitive
- crushedTinOre; // Crushed Tin Ore, meta sensitive
- crushedUraniumOre; // Crushed Uranium Ore, meta sensitive
- crushedSilverOre; // Crushed Silver Ore, meta sensitive
- crushedLeadOre; // Crushed Lead Ore, meta sensitive
-
-
- //Purify Crushed Ore
- purifiedCrushedIronOre; // Purify Crushed Iron Ore, meta sensitive
- purifiedCrushedCopperOre; // Purify Crushed Copper Ore, meta sensitive
- purifiedCrushedGoldOre; // Purify Crushed Gold Ore, meta sensitive
- purifiedCrushedTinOre; // Purify Crushed Tin Ore, meta sensitive
- purifiedCrushedUraniumOre; // Purify Crushed Uranium Ore, meta sensitive
- purifiedCrushedSilverOre; // Purify Crushed Silver Ore, meta sensitive
- purifiedCrushedLeadOre; // Purify Crushed Lead Ore, meta sensitive
-
- // dusts
- stoneDust;
- bronzeDust; // Bronze Dust item, meta sensitive, ore dictionary: dustBronze
- clayDust; // Clay Dust item, meta sensitive, ore dictionary: dustClay
- coalDust; // Coal Dust item, meta sensitive, ore dictionary: dustCoal
- copperDust; // Copper Dust item, meta sensitive, ore dictionary: dustCopper
- goldDust; // Gold Dust item, meta sensitive, ore dictionary: dustGold
- ironDust; // Iron Dust item, meta sensitive, ore dictionary: dustIron
- silverDust; // Silver Dust item, meta sensitive, ore dictionary: dustSilver
- tinDust; // Tin Dust item, meta sensitive, ore dictionary: dustTin
- hydratedCoalDust; // Hydrated Coal Dust item, meta sensitive
- leadDust; // Lead Dust item, meta sensitive, ore dictionary: dustLead
- obsidianDust; // Obsidian Dust item, meta sensitive, ore dictionary: dustObsidian
- lapiDust; // Lapi Dust item, meta sensitive, ore dictionary: dustLapi
- sulfurDust; // Sulfur Dust item, meta sensitive, ore dictionary: dustSulfur
- lithiumDust; // Lithium dust, meta sensitive, ore dictionary: dustLithium
-
- // small dusts
-
- smallIronDust; // Small Iron Dust item, meta sensitive
- smallCopperDust; // Small Copper Dust item, meta sensitive
- smallGoldDust; // Small Gold Dust item, meta sensitive
- smallTinDust; // Small Tin Dust item, meta sensitive
- smallSilverDust; // Small Silver Dust item, meta sensitive
- smallLeadDust; // Small Lead Dust item, meta sensitive
- smallSulfurDust; // Small Sulfur Dust item, meta sensitive
- smallLithiumDust; // Small Lithium Dust item, meta sensitive
-
-
- // ingots
- @Deprecated
- refinedIronIngot; // Refined Iron Ingot item, currently not meta sensitive, ore dictionary: ingotRefinedIron
- copperIngot; // Copper Ingot item, currently not meta sensitive, ore dictionary: ingotCopper
- tinIngot; // Tin Ingot item, currently not meta sensitive, ore dictionary: ingotTin
- bronzeIngot; // Bronze Ingot item, currently not meta sensitive, ore dictionary: ingotBronze
- mixedMetalIngot; // Mixed Metal Ingot item, currently not meta sensitive
- leadIngot; // Lead Ingot item, currently not meta sensitive
-
-
- // tools/weapons (without electric tools)
- treetap; // Treetap item, meta = damage value
- wrench; // Wrench item, meta = damage value
- cutter; // Insulation Cutter item, meta = damage value
- constructionFoamSprayer; // Construction Foam Sprayer item, meta = charges (as of v1.45)
-
- bronzePickaxe; // Bronze Pickaxe item, meta = damage value
- bronzeAxe; // Bronze Axe item, meta = damage value
- bronzeSword; // Bronze Sword item, meta = damage value
- bronzeShovel; // Bronze Shovel item, meta = damage value
- bronzeHoe; // Bronze Hoe item, meta = damage value
-
- ForgeHammer; // Refine Iron Hammer item, meta = damage value
-
- // el. tools/devices/weapons
- miningDrill; // Mining Drill item, meta = damage value for charge level
- diamondDrill; // Diamond Tipped Mining Drill item, meta = damage value for charge level
- iridiumDrill; // Iridium Tipped Mining Drill item, meta = damage value for charge level
- chainsaw; // Chainsaw item, meta = damage value for charge level
- electricWrench; // Electric Wrench item, meta = damage value for charge level
- electricTreetap; // Electric Treetap item, meta = damage value for charge level
- miningLaser; // Mining Laser item, meta = damage value for charge level
-
- ecMeter; // EC-Mater item, meta = itemdata db index (as of v1.45)
- odScanner; // Ore Density Scanner item, meta = damage value for charge level
- ovScanner; // Ore Value Scanner item, meta = damage value for charge level
- obscurator; // Obscurator item, meta = damage value for charge level
-
- frequencyTransmitter; // Frequency Transmitter item, meta = itemdata db index (as of v1.45)
-
- nanoSaber; // Idle Nano Saber item, meta = damage value for charge level
- enabledNanoSaber; // Enabled Nano Saber item, meta = damage value for charge level
-
- toolbox; // Open/Empty toolbox, meta = Open (0) / Closed (1)
-
- // armor/wearable
- hazmatHelmet; // Hazmat Helmet item, meta = damage value
- hazmatChestplate; // Hazmat Chestplate item, meta = damage value
- hazmatLeggings; // Hazmat Leggings item, meta = damage value
- hazmatBoots; // Hazmat Boots item, meta = damage value
-
- bronzeHelmet; // Bronze Helmet Armor item, meta = damage value
- bronzeChestplate; // Bronze Chestplate Armor item, meta = damage value
- bronzeLeggings; // Bronze Leggings Armor item, meta = damage value
- bronzeBoots; // Bronze Boots Armor item, meta = damage value
-
- compositeArmor; // Composite Armor item, meta = damage value for charge level
-
- nanoHelmet; // Nano Helmet Armor item, meta = damage value for charge level
- nanoBodyarmor; // Nano Bodyarmor item, meta = damage value for charge level
- nanoLeggings; // Nano Leggings Armor item, meta = damage value for charge level
- nanoBoots; // Nano Boots Armor item, meta = damage value for charge level
-
- quantumHelmet; // Quantum Helmet Armor item, meta = damage value for charge level
- quantumBodyarmor; // Quantum Bodyarmor item, meta = damage value for charge level
- quantumLeggings; // Quantum Leggings Armor item, meta = damage value for charge level
- quantumBoots; // Quantum Boots Armor item, meta = damage value for charge level
-
- jetpack; // Jetpack item, meta = damage value for fuel level
- electricJetpack; // Electric Jetpack item, meta = damage value for charge level
-
- batPack; // BatPack item, meta = damage value for charge level
- advbatPack; // Adv.BatPack item, meta = damage value for charge level
- lapPack; // LapPack item, meta = damage value for charge level
- energyPack; // EnergyPack item, meta = damage value for charge level
-
- cfPack; // CF Pack item, meta = charges (as of v1.45)
- solarHelmet; // Solar Helmet, currently not meta sensitive
- staticBoots; // Static Boots, currently not meta sensitive
- nightvisionGoggles; // Nightvision Goggles, meta = damage value for charge level
-
- // batteries
- reBattery; // Empty RE Battery item, currently not meta sensitive
- chargedReBattery; // RE Battery item, meta = damage value for charge level
- advBattery; // Adv Batteryitem, meta = damage value for charge level
- energyCrystal; // Energy Crystal item, meta = damage value for charge level
- lapotronCrystal; // Lapotron Crystal item, meta = damage value for charge level
- suBattery; // SU Battery item, meta = damage value for charge level
-
- // cables
- copperCableItem; // Copper Cable item, meta sensitive
- insulatedCopperCableItem; // Insulated Copper Cable item, meta sensitive
-
- goldCableItem; // Gold Cable item, meta sensitive
- insulatedGoldCableItem; // Insulated Gold Cable item, meta sensitive
-
- @Deprecated
- doubleInsulatedGoldCableItem; // Double Insulated Gold Cable item, meta sensitive
-
- ironCableItem; // Iron Cable item, meta sensitive
- insulatedIronCableItem; // Insulated Iron Cable item, meta sensitive
-
- @Deprecated
- doubleInsulatedIronCableItem; // Double Insulated Iron Cable item, meta sensitive
- @Deprecated
- trippleInsulatedIronCableItem; // Tripple Insulated Iron Cable item, meta sensitive
- insulatedTinCableItem;
- glassFiberCableItem; // Glass Fiber Cable item, meta sensitive
- tinCableItem; // Tin Cable item, meta sensitive
-
-
- detectorCableItem; // Detector Cable item, meta sensitive
- splitterCableItem; // Splitter Cable item, meta sensitive
-
- // cells/containers (without reactor components)
-
- cell; // Empty Cell item, meta sensitive
- lavaCell; // Lava Cell item, meta sensitive
- waterCell; // Water Cell item, meta sensitive
- UuMatterCell; // UUMatter Cell item, meta sensitive
- CFCell; // constructionFoam Cell item, meta sensitive
-
-
- fuelRod; // Empy Fuel Rod item, currently not meta sensitive
- hydratedCoalCell; // Hydrated Coal Cell item, currently not meta sensitive
- bioCell; // Bio Cell item, currently not meta sensitive
- coalfuelCell; // Coalfuel Cell item, currently not meta sensitive
- biofuelCell; // Biofuel Cell item, currently not meta sensitive
- electrolyzedWaterCell; // Electrolyzed Water Cell item, currently not meta sensitive
- airCell; // Compressed Air item, currently not meta sensitive
-
- fuelCan; // Empty Fuel Can item, currently not meta sensitive
- filledFuelCan; // Fuel Can item, meta = fuel value (as of v1.45)
-
- tinCan; // Empty Tin Can item, currently not meta sensitive
- filledTinCan; // Filled Tin Can item, currently not meta sensitive
-
- // reactor components
- reactorUraniumSimple; // Uranium Cell items, meta = consumed uranium ticks
- reactorUraniumDual;
- reactorUraniumQuad;
-
- reactorCoolantSimple;
- reactorCoolantTriple ; // Coolant Cell item, NBT for heat-storage, meta is 0-10000 for display
- reactorCoolantSix;
-
- reactorPlating; // Integrated Reactor Plating item, currently not meta sensitive
- reactorPlatingHeat;
- reactorPlatingExplosive;
-
- reactorHeatSwitch; // Integrated Heat Disperser item, NBT for heat-storage, meta is 0-10000 for display
- reactorHeatSwitchCore;
- reactorHeatSwitchSpread;
- reactorHeatSwitchDiamond;
-
- reactorVent; // Heat Venting component, NBT for heat-storage, meta is 0-10000 for display
- reactorVentCore;
- reactorVentGold;
- reactorVentSpread;// Special: Does not store heat
- reactorVentDiamond;
-
- reactorReflector; // Increase efficiency without additional ticks, NBT for heat-storage, meta is 0-10000 for display
- reactorReflectorThick; // Increase efficiency without additional ticks, NBT for heat-storage, meta is 0-10000 for display
- reactorCondensator; // Consumes redstone to absorb heat, NBT for storage, meta is 0-10000 for display
- reactorCondensatorLap; // Consumes redstone/lapis to absorb heat, mNBT for storage, meta is 0-10000 for display
-
- // terraformer blueprints
- terraformerBlueprint; // Empty Terraformer Blueprint item, currently not meta sensitive
- cultivationTerraformerBlueprint; // Cultivation Terraformer Blueprint item, currently not meta sensitive
- irrigationTerraformerBlueprint; // Irrigation Terraformer Blueprint item, currently not meta sensitive
- chillingTerraformerBlueprint; // Chilling Terraformer Blueprint item, currently not meta sensitive
- desertificationTerraformerBlueprint; // Desertification Terraformer Blueprint item, currently not meta sensitive
- flatificatorTerraformerBlueprint; // Flatificator Terraformer Blueprint item, currently not meta sensitive
- mushroomTerraformerBlueprint; // Mushroom Terraformer Blueprint item, currently not meta sensitive
-
- // diamond chain
- coalBall; // Coal Ball item, currently not meta sensitive
- compressedCoalBall; // Compressed Coal Ball item, currently not meta sensitive
- coalChunk; // Coal Chunk item, currently not meta sensitive
- industrialDiamond; // Industrial Diamond item, currently not meta sensitive, DEPRECATED
-
- // recycler chain
- scrap; // Scrap item, currently not meta sensitive
- scrapBox; // Scrap Box item, currently not meta sensitive
-
- // fuel production chain
- hydratedCoalClump; // Hydrated Coal Clump item, currently not meta sensitive
- plantBall; // Plant Ball item, currently not meta sensitive
- compressedPlantBall; // Compressed Plant Ball item, currently not meta sensitive
-
- // painting
- painter; // Painter item, currently not meta sensitive
-
- blackPainter; // Black Painter item, meta = damage value
- redPainter; // Red Painter item, meta = damage value
- greenPainter; // Green Painter item, meta = damage value
- brownPainter; // Brown Painter item, meta = damage value
- bluePainter; // Blue Painter item, meta = damage value
- purplePainter; // Purple Painter item, meta = damage value
- cyanPainter; // Cyan Painter item, meta = damage value
- lightGreyPainter; // Light Grey Painter item, meta = damage value
- darkGreyPainter; // Dark Grey Painter item, meta = damage value
- pinkPainter; // Pink Painter item, meta = damage value
- limePainter; // Lime Painter item, meta = damage value
- yellowPainter; // Yellow Painter item, meta = damage value
- cloudPainter; // Cloud Painter item, meta = damage value
- magentaPainter; // Magenta Painter item, meta = damage value
- orangePainter; // Orange Painter item, meta = damage value
- whitePainter; // White Painter item, meta = damage value
-
- // explosives + related
- dynamite; // Throwable Dynamite item, currently not meta sensitive
- stickyDynamite; // Throwable Sticky Dynamite item, currently not meta sensitive
-
- remote; // Dynamite Remote item, currently not meta sensitive
-
- // misc intermediate recipe ingredients
- electronicCircuit; // Electronic Circuit item, currently not meta sensitive
- advancedCircuit; // Advanced Circuit item, currently not meta sensitive
-
- advancedAlloy; // Advanced Alloy item, currently not meta sensitive
-
- carbonFiber; // Raw Carbon Fiber item, currently not meta sensitive
- carbonMesh; // Raw Carbon Mesh item, currently not meta sensitive
- carbonPlate; // Carbon Plate item, currently not meta sensitive
-
- matter; // UUA item, currently not meta sensitive
- iridiumOre; // Iridium Ore item, currently not meta sensitive
- iridiumPlate; // Iridium Plate item, currently not meta sensitive
-
-
- // Metal Plates
-
- platecopper; // Metal plate item, meta sensitive
- platetin; // Metal plate item, meta sensitive
- platebronze; // Metal plate item, meta sensitive
- plategold; // Metal plate item, meta sensitive
- plateiron; // Metal plate item, meta sensitive
- platelead; // Metal plate item, meta sensitive
- platelapi; // Metal plate item, meta sensitive
- plateobsidian; // Metal plate item, meta sensitive
- plateadviron; // Metal plate item, meta sensitive
-
- // Metal Dense Plates
- denseplatecopper; // Metal dense plate item, meta sensitive
- denseplatetin; // Metal dense plate item, meta sensitive
- denseplatebronze; // Metal dense plate item, meta sensitive
- denseplategold; // Metal dense plate item, meta sensitive
- denseplateiron; // Metal dense plate item, meta sensitive
- @Deprecated
- denseplateadviron; // Metal dense plate item, meta sensitive
- denseplatelead; // Metal dense plate item, meta sensitive
- denseplatelapi; // Metal dense plate item, meta sensitive
- denseplateobsidian; // Metal dense plate item, meta sensitive
-
-
- // upgrade modules
- overclockerUpgrade; // overclocker upgrade item, meta sensitive
- transformerUpgrade; // transformer upgrade item, meta sensitive
- energyStorageUpgrade; // energy storage upgrade item, meta sensitive
- ejectorUpgrade; // ejector upgrade item, meta sensitive
-
- // misc
- coin; // Coin item, currently not meta sensitive
- reinforcedDoor; // Reinforced Door item, currently not meta sensitive
- constructionFoamPowder; // Construction Foam Powder item, currently not meta sensitive
- grinPowder; // Poisonous ingrident, currently not meta sensitive
- debug; // Debug item, currently not meta sensitive
- boatCarbon; // Carbon Fiber Canoe item, meta sensitive
- boatRubber; // Rubber Dinghy item, meta sensitive
- boatRubberBroken; // Damaged Rubber Dinghy item, meta sensitive
- boatElectric; // Electric Boat item, meta sensitive
-
- //Agriculture
- cropSeed; // Crop seeds, stuff stored in NBT, don't use for crafting recipes!
- cropnalyzer; // Cropnalyzer handheld device
- fertilizer; // Basic IC2Item, used to provide nutrients toCropBlocks
- hydratingCell; // Cell used to hydrate Crops, meta = Content, 0= Full, 9999 = Near empty
- electricHoe; // Electric Hoe, Metadata indicates charge level
- terraWart; // Mystic opposite of NEtherWart, cures StatusEffects, simply consumeable
- weedEx; // Spraying can of WEED-EX, meta indicates usages left
-
- //Boozeception
- mugEmpty; // Simple stone mug
- coffeeBeans; // Harvested CoffeeBeans
- coffeePowder; // Processed Coffee Beans, used to craft drinkable Coffee
- mugCoffee; // Mug of Coffee, Meta indicates status 0 = cold, 1 = Normal, 2 = Sugar'd
- hops; // Hops, harvested freshly from crop
- barrel; // Carried Barrel, metadata encrypts the information about the liquid inside
- blockBarrel; // Unobtainable "placed barrel", TileEntity controlling the Fermentation process
- mugBooze; // Mug filled with booze, metadata encrypts the information about the liquid inside
-
- */
-
- /**
- * Get the base IC2 package name, used internally.
- *
- * @return IC2 package name, if unable to be determined defaults to ic2
- */
- private static String getPackage() {
- Package pkg = IC2Items.class.getPackage();
-
- if (pkg != null) {
- String packageName = pkg.getName();
-
- return packageName.substring(0, packageName.length() - ".api.item".length());
- }
-
- return "ic2";
- }
-
- private static Class> Ic2Items;
-}
-
diff --git a/src/main/java/api/java/ic2/api/item/ICustomDamageItem.class b/src/main/java/api/java/ic2/api/item/ICustomDamageItem.class
deleted file mode 100644
index 80020b8..0000000
Binary files a/src/main/java/api/java/ic2/api/item/ICustomDamageItem.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/ICustomDamageItem.java b/src/main/java/api/java/ic2/api/item/ICustomDamageItem.java
deleted file mode 100644
index 4470fa0..0000000
--- a/src/main/java/api/java/ic2/api/item/ICustomDamageItem.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.item.ItemStack;
-
-/**
- * ICustomDamageItem allows items to have custom damage handling without the massive overhead of
- * Item.getDamage() / Item.setDamage(), which turn ItemStack.getItemDamage into virtual calls.
- *
- * The custom damage value is typically stored in the item stacks nbt data.
- *
- * If an Item implements ICusomDamageItem, the normal ItemStack damage won't be changed by IC2.
- * It's up to the implementer to potentially manipulate it for suitable visual effect on the
- * rendered damage bar or to provide a suitable item renderer.
- *
- * Item.isDamageable() still applies.
- *
- * @author Player
- */
-public interface ICustomDamageItem {
- /**
- * Retrieve the custom damage value for the supplied item stack.
- *
- * @param stack ItemStack to be queried.
- * @return Custom damage value.
- */
- int getCustomDamage(ItemStack stack);
-
- /**
- * Retrieve the maximum custom damage value for the supplied item stack.
- * @param stack ItemStack to be queried.
- * @return Custom damage value limit.
- */
- int getMaxCustomDamage(ItemStack stack);
-
- /**
- * Set the custom damage value for the supplied item stack.
- *
- * @param stack ItemStack to be manipulated.
- * @param damage New damage value.
- */
- void setCustomDamage(ItemStack stack, int damage);
-
- /**
- * Increase the custom damage value for the supplied item stack.
- *
- * It's up to the implementation to not apply any damage, e.g. based on some randomness or
- * properties of src.
- *
- * @param stack ItemStack to be manipulated.
- * @param damage Extra damage to be applied.
- * @param src Entity damaging the item, may be null.
- * @return true if damage was applied.
- */
- boolean applyCustomDamage(ItemStack stack, int damage, EntityLivingBase src);
-}
diff --git a/src/main/java/api/java/ic2/api/item/IDebuggable.class b/src/main/java/api/java/ic2/api/item/IDebuggable.class
deleted file mode 100644
index 13c992b..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IDebuggable.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IDebuggable.java b/src/main/java/api/java/ic2/api/item/IDebuggable.java
deleted file mode 100644
index 404c7eb..0000000
--- a/src/main/java/api/java/ic2/api/item/IDebuggable.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package ic2.api.item;
-
-
-/**
- * Allows a tile entity to output a debug message when the debugItem is used on it.
- * Suggestions by Myrathi
- */
-public abstract interface IDebuggable {
- /**
- * Checks if the tile entity is in a state that can be debugged.
- *
- * @return True if the tile entity can be debugged
- */
- public abstract boolean isDebuggable();
-
- /**
- * Gets the debug text for the tile entity.
- *
- * @return The text that the debugItem should show
- */
- public abstract String getDebugText();
-}
diff --git a/src/main/java/api/java/ic2/api/item/IElectricItem.class b/src/main/java/api/java/ic2/api/item/IElectricItem.class
deleted file mode 100644
index a49d183..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IElectricItem.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IElectricItem.java b/src/main/java/api/java/ic2/api/item/IElectricItem.java
deleted file mode 100644
index 4f546d5..0000000
--- a/src/main/java/api/java/ic2/api/item/IElectricItem.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-
-/**
- * Provides the ability to store energy on the implementing item.
- *
- * The item should have a maximum damage of 13.
- */
-public interface IElectricItem {
- /**
- * Determine if the item can be used in a machine or as an armor part to supply energy.
- *
- * @return Whether the item can supply energy
- */
- boolean canProvideEnergy(ItemStack itemStack);
-
- /**
- * Get the item ID to use for a charge energy greater than 0.
- *
- * @return Item ID to use
- */
- Item getChargedItem(ItemStack itemStack);
-
- /**
- * Get the item ID to use for a charge energy of 0.
- *
- * @return Item ID to use
- */
- Item getEmptyItem(ItemStack itemStack);
-
- /**
- * Get the item's maximum charge energy in EU.
- *
- * @return Maximum charge energy
- */
- double getMaxCharge(ItemStack itemStack);
-
- /**
- * Get the item's tier, lower tiers can't send energy to higher ones.
- *
- * Batteries are Tier 1, Advanced Batteries are Tier 2, Energy Crystals are Tier 3, Lapotron
- * Crystals are Tier 4.
- *
- * @return Item's tier
- */
- int getTier(ItemStack itemStack);
-
- /**
- * Get the item's transfer limit in EU per transfer operation.
- *
- * @return Transfer limit
- */
- double getTransferLimit(ItemStack itemStack);
-}
-
diff --git a/src/main/java/api/java/ic2/api/item/IElectricItemManager.class b/src/main/java/api/java/ic2/api/item/IElectricItemManager.class
deleted file mode 100644
index 978eb91..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IElectricItemManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IElectricItemManager.java b/src/main/java/api/java/ic2/api/item/IElectricItemManager.java
deleted file mode 100644
index 5de43d7..0000000
--- a/src/main/java/api/java/ic2/api/item/IElectricItemManager.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.item.ItemStack;
-
-/**
- * This interface specifies a manager to handle the various tasks for electric items.
- *
- * The default implementation does the following:
- * - store and retrieve the charge
- * - handle charging, taking amount, tier, transfer limit, canProvideEnergy and simulate into account
- * - replace item IDs if appropriate (getChargedItemId() and getEmptyItemId())
- * - update and manage the damage value for the visual charge indicator
- *
- * @note If you're implementing your own variant (ISpecialElectricItem), you can delegate to the
- * default implementations through ElectricItem.rawManager. The default implementation is designed
- * to minimize its dependency on its own constraints/structure and delegates most work back to the
- * more atomic features in the gateway manager.
- */
-public interface IElectricItemManager {
- /**
- * Charge an item with a specified amount of energy.
- *
- * @param itemStack electric item's stack
- * @param amount amount of energy to charge in EU
- * @param tier tier of the charging device, has to be at least as high as the item to charge
- * @param ignoreTransferLimit ignore the transfer limit specified by getTransferLimit()
- * @param simulate don't actually change the item, just determine the return value
- * @return Energy transferred into the electric item
- */
- double charge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate);
-
- /**
- * Discharge an item by a specified amount of energy
- *
- * @param itemStack electric item's stack
- * @param amount amount of energy to discharge in EU
- * @param tier tier of the discharging device, has to be at least as high as the item to discharge
- * @param ignoreTransferLimit ignore the transfer limit specified by getTransferLimit()
- * @param externally use the supplied item externally, i.e. to power something else as if it was a battery
- * @param simulate don't actually discharge the item, just determine the return value
- * @return Energy retrieved from the electric item
- */
- double discharge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate);
-
- /**
- * Determine the charge level for the specified item.
- *
- * @param itemStack ItemStack containing the electric item
- * @return charge level in EU
- */
- double getCharge(ItemStack stack);
-
- /**
- * Determine if the specified electric item has at least a specific amount of EU.
- * This is supposed to be used in the item code during operation, for example if you want to implement your own electric item.
- * BatPacks are not taken into account.
- *
- * @param itemStack electric item's stack
- * @param amount minimum amount of energy required
- * @return true if there's enough energy
- */
- boolean canUse(ItemStack stack, double amount);
-
- /**
- * Try to retrieve a specific amount of energy from an Item, and if applicable, a BatPack.
- * This is supposed to be used in the item code during operation, for example if you want to implement your own electric item.
- *
- * @param itemStack electric item's stack
- * @param amount amount of energy to discharge in EU
- * @param entity entity holding the item
- * @return true if the operation succeeded
- */
- boolean use(ItemStack stack, double amount, EntityLivingBase entity);
-
- /**
- * Charge an item from the BatPack a player is wearing.
- * This is supposed to be used in the item code during operation, for example if you want to implement your own electric item.
- * use() already contains this functionality.
- *
- * @param itemStack electric item's stack
- * @param entity entity holding the item
- */
- void chargeFromArmor(ItemStack stack, EntityLivingBase entity);
-
- /**
- * Get the tool tip to display for electric items.
- *
- * @param itemStack ItemStack to determine the tooltip for
- * @return tool tip string or null for none
- */
- String getToolTip(ItemStack stack);
-
- // TODO: add tier getter
-}
diff --git a/src/main/java/api/java/ic2/api/item/IItemHudInfo.class b/src/main/java/api/java/ic2/api/item/IItemHudInfo.class
deleted file mode 100644
index 82e7f82..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IItemHudInfo.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IItemHudInfo.java b/src/main/java/api/java/ic2/api/item/IItemHudInfo.java
deleted file mode 100644
index da97318..0000000
--- a/src/main/java/api/java/ic2/api/item/IItemHudInfo.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package ic2.api.item;
-
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-
-public interface IItemHudInfo {
- /*
- Add Info to Nano- and Quantum-Suit Helm Hud
- for itemStack
-
- @Override
- public List getHudInfo(ItemStack itemStack) {
- List info = new LinkedList();
- info.add("i am a Cool Item");
- info.add("and have Cool info");
- return info;
- }
-
-
- */
-
- public List getHudInfo(ItemStack itemStack);
-}
diff --git a/src/main/java/api/java/ic2/api/item/IKineticRotor$GearboxType.class b/src/main/java/api/java/ic2/api/item/IKineticRotor$GearboxType.class
deleted file mode 100644
index 3e3e8df..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IKineticRotor$GearboxType.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IKineticRotor.class b/src/main/java/api/java/ic2/api/item/IKineticRotor.class
deleted file mode 100644
index 4bba1eb..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IKineticRotor.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IKineticRotor.java b/src/main/java/api/java/ic2/api/item/IKineticRotor.java
deleted file mode 100644
index a61d162..0000000
--- a/src/main/java/api/java/ic2/api/item/IKineticRotor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.ResourceLocation;
-
-public interface IKineticRotor {
- int getDiameter(ItemStack stack);
-
- ResourceLocation getRotorRenderTexture(ItemStack stack);
-
- float getEfficiency(ItemStack stack);
-
- int getMinWindStrength(ItemStack stack);
-
- int getMaxWindStrength(ItemStack stack);
-
- boolean isAcceptedType(ItemStack stack, GearboxType type);
-
- public static enum GearboxType {
- WATER,
- WIND,
- }
-}
diff --git a/src/main/java/api/java/ic2/api/item/ILatheItem$ILatheTool.class b/src/main/java/api/java/ic2/api/item/ILatheItem$ILatheTool.class
deleted file mode 100644
index 46efc50..0000000
Binary files a/src/main/java/api/java/ic2/api/item/ILatheItem$ILatheTool.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/ILatheItem.class b/src/main/java/api/java/ic2/api/item/ILatheItem.class
deleted file mode 100644
index b6a25ef..0000000
Binary files a/src/main/java/api/java/ic2/api/item/ILatheItem.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/ILatheItem.java b/src/main/java/api/java/ic2/api/item/ILatheItem.java
deleted file mode 100644
index 45988c4..0000000
--- a/src/main/java/api/java/ic2/api/item/ILatheItem.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.ResourceLocation;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-/**
- * Interface used for Items that can be processed in the Turning Table
- */
-public interface ILatheItem {
-
- /**
- * Returns the radius of this Lathe Item
- * Should be no more than 15 to still be able to display it properly.
- */
- int getWidth(ItemStack stack);
-
- /**
- * Returns the current state of this Lathe Item
- * The length of the array should be 5
- * The value should be the current size of the item at this time.
- * It should also not be greater than getWidth()
- */
- int[] getCurrentState(ItemStack stack);
-
- /**
- * This will set the current state of the Item on that position to that value.
- */
- void setState(ItemStack stack, int position, int value);
-
- /**
- * Returns the output Item (normally dust) when you lathe on this position.
- */
- ItemStack getOutputItem(ItemStack stack, int position);
-
- /**
- * How common it is if the above item will be put into the output slot.
- * 1.0 means it will always be outputted, 0.0 means it will never be outputted.
- */
- float getOutputChance(ItemStack stack, int position);
-
- /**
- * Returns the ResourceLocation of the texture used to display the item inside of the Lathe GUI
- */
- @SideOnly(Side.CLIENT)
- ResourceLocation getTexture(ItemStack stack);
-
- /**
- * This is similar to the Block HarvestLevel. Requires a different tool for a different hardness
- * for ex. the Iron Turning Blank has a Hardness of 2 (Like Iron Ore (Harvest Level)).
- * In this case however it requires a Tool hardness of one above (3)
- */
- int getHardness(ItemStack stack);
-
- /**
- * Interface used for Tools that can be used to modify {@link ILatheItem}
- */
- public static interface ILatheTool extends ICustomDamageItem {
-
- /**
- * This is similar to the Tool HarvestLevel. Requires a different tool for a different hardness
- * for ex. the Iron Turning Blank has a Hardness of 2 (Like Iron Ore (Harvest Level)).
- * The tool requires a hardness of one level above (in this case 3)
- */
- int getHardness(ItemStack stack);
- }
-
-}
diff --git a/src/main/java/api/java/ic2/api/item/IMetalArmor.class b/src/main/java/api/java/ic2/api/item/IMetalArmor.class
deleted file mode 100644
index 426278a..0000000
Binary files a/src/main/java/api/java/ic2/api/item/IMetalArmor.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/IMetalArmor.java b/src/main/java/api/java/ic2/api/item/IMetalArmor.java
deleted file mode 100644
index 16ffd24..0000000
--- a/src/main/java/api/java/ic2/api/item/IMetalArmor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-
-/**
- * Armor items implementing this can be considered metal armor.
- *
- * Currently used for determining which boots can be used to slide up a magnetic pole.
- */
-public interface IMetalArmor {
- /**
- * Determine if the given armor piece is metal armor.
- *
- * @param itemstack Armor piece as worn by the player
- * @param player The player
- * @return Whether the armor piece is metal armor
- */
- public boolean isMetalArmor(ItemStack itemstack, EntityPlayer player);
-}
diff --git a/src/main/java/api/java/ic2/api/item/ISpecialElectricItem.class b/src/main/java/api/java/ic2/api/item/ISpecialElectricItem.class
deleted file mode 100644
index ca93ed2..0000000
Binary files a/src/main/java/api/java/ic2/api/item/ISpecialElectricItem.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/ISpecialElectricItem.java b/src/main/java/api/java/ic2/api/item/ISpecialElectricItem.java
deleted file mode 100644
index a7302f5..0000000
--- a/src/main/java/api/java/ic2/api/item/ISpecialElectricItem.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.item.ItemStack;
-
-public interface ISpecialElectricItem extends IElectricItem {
- /**
- * Supply a custom IElectricItemManager.
- *
- * @param itemStack ItemStack to get the manager for
- * @return IElectricItemManager instance
- */
- IElectricItemManager getManager(ItemStack itemStack);
-}
diff --git a/src/main/java/api/java/ic2/api/item/ITerraformingBP.class b/src/main/java/api/java/ic2/api/item/ITerraformingBP.class
deleted file mode 100644
index 3242ee0..0000000
Binary files a/src/main/java/api/java/ic2/api/item/ITerraformingBP.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/ITerraformingBP.java b/src/main/java/api/java/ic2/api/item/ITerraformingBP.java
deleted file mode 100644
index 59b46ba..0000000
--- a/src/main/java/api/java/ic2/api/item/ITerraformingBP.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.world.World;
-
-/**
- * Allows an item to act as a terraformer blueprint.
- */
-public interface ITerraformingBP {
- /**
- * Get the energy consumption per operation of the blueprint.
- *
- * @return Energy consumption in EU
- */
- public abstract int getConsume();
-
- /**
- * Get the maximum range of the blueprint.
- * Should be a divisor of 5.
- *
- * @return Maximum range in blocks
- */
- public abstract int getRange();
-
- /**
- * Perform the terraforming operation.
- *
- * @param world world to terraform
- * @param x X position to terraform
- * @param z Z position to terraform
- * @param yCoord Y position of the terraformer
- * @return Whether the operation was successful and the terraformer should consume energy.
- */
- public abstract boolean terraform(World world, int x, int z, int yCoord);
-}
diff --git a/src/main/java/api/java/ic2/api/item/ItemWrapper.class b/src/main/java/api/java/ic2/api/item/ItemWrapper.class
deleted file mode 100644
index 7c6a6de..0000000
Binary files a/src/main/java/api/java/ic2/api/item/ItemWrapper.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/ItemWrapper.java b/src/main/java/api/java/ic2/api/item/ItemWrapper.java
deleted file mode 100644
index 58f8073..0000000
--- a/src/main/java/api/java/ic2/api/item/ItemWrapper.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package ic2.api.item;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.Multimap;
-
-/**
- * Wrapper for inserting interfaces into items you don't own.
- *
- * @author Richard
- */
-public class ItemWrapper {
- private static final Multimap boxableItems = ArrayListMultimap.create();
- private static final Multimap metalArmorItems = ArrayListMultimap.create();
-
- public static void registerBoxable(Item item, IBoxable boxable) {
- boxableItems.put(item, boxable);
- }
-
- public static boolean canBeStoredInToolbox(ItemStack stack) {
- Item item = stack.getItem();
- // use customs first to allow for overriding behavior
- for (IBoxable boxable : boxableItems.get(item)) {
- if (boxable.canBeStoredInToolbox(stack)) return true;
- }
-
- if (item instanceof IBoxable && ((IBoxable) item).canBeStoredInToolbox(stack)) return true;
-
- return false;
- }
-
- public static void registerMetalArmor(Item item, IMetalArmor armor) {
- metalArmorItems.put(item, armor);
- }
-
- public static boolean isMetalArmor(ItemStack stack, EntityPlayer player) {
- Item item = stack.getItem();
- // use customs first to allow for overriding behavior
- for (IMetalArmor metalArmor : metalArmorItems.get(item)) {
- if (metalArmor.isMetalArmor(stack, player)) return true;
- }
-
- if (item instanceof IMetalArmor && ((IMetalArmor) item).isMetalArmor(stack, player)) return true;
-
- return false;
- }
-}
diff --git a/src/main/java/api/java/ic2/api/item/package-info.class b/src/main/java/api/java/ic2/api/item/package-info.class
deleted file mode 100644
index 222a183..0000000
Binary files a/src/main/java/api/java/ic2/api/item/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/item/package-info.java b/src/main/java/api/java/ic2/api/item/package-info.java
deleted file mode 100644
index 44ecdce..0000000
--- a/src/main/java/api/java/ic2/api/item/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.item;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/network/INetworkClientTileEntityEventListener.class b/src/main/java/api/java/ic2/api/network/INetworkClientTileEntityEventListener.class
deleted file mode 100644
index 3234025..0000000
Binary files a/src/main/java/api/java/ic2/api/network/INetworkClientTileEntityEventListener.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/network/INetworkClientTileEntityEventListener.java b/src/main/java/api/java/ic2/api/network/INetworkClientTileEntityEventListener.java
deleted file mode 100644
index ed3ea38..0000000
--- a/src/main/java/api/java/ic2/api/network/INetworkClientTileEntityEventListener.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package ic2.api.network;
-
-import net.minecraft.entity.player.EntityPlayer;
-
-/**
- * Allows a tile entity to receive network events received from clients.
- */
-public interface INetworkClientTileEntityEventListener {
- /**
- * Called when a network event is received.
- *
- * @param player client which sent the event
- * @param event event ID
- */
- void onNetworkEvent(EntityPlayer player, int event);
-}
-
diff --git a/src/main/java/api/java/ic2/api/network/INetworkDataProvider.class b/src/main/java/api/java/ic2/api/network/INetworkDataProvider.class
deleted file mode 100644
index e0773c4..0000000
Binary files a/src/main/java/api/java/ic2/api/network/INetworkDataProvider.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/network/INetworkDataProvider.java b/src/main/java/api/java/ic2/api/network/INetworkDataProvider.java
deleted file mode 100644
index c3f283e..0000000
--- a/src/main/java/api/java/ic2/api/network/INetworkDataProvider.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package ic2.api.network;
-
-import java.util.List;
-
-/**
- * Tile entities which want to synchronized specific fields between client and server have to implement this.
- *
- * The fields don't update themselves, a field update must be sent every time a synchronized field changes.
- */
-public interface INetworkDataProvider {
- /**
- * Get the list of synchronized fields.
- *
- * @return Names of the synchronized fields
- */
- List getNetworkedFields();
-}
-
diff --git a/src/main/java/api/java/ic2/api/network/INetworkItemEventListener.class b/src/main/java/api/java/ic2/api/network/INetworkItemEventListener.class
deleted file mode 100644
index 30dcc22..0000000
Binary files a/src/main/java/api/java/ic2/api/network/INetworkItemEventListener.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/network/INetworkItemEventListener.java b/src/main/java/api/java/ic2/api/network/INetworkItemEventListener.java
deleted file mode 100644
index 5f3228c..0000000
--- a/src/main/java/api/java/ic2/api/network/INetworkItemEventListener.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package ic2.api.network;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-
-/**
- * Allows an item to receive network events received from the server.
- */
-public interface INetworkItemEventListener {
- /**
- * Called when a network event is received.
- *
- * @param itemStack item stack
- * @param player player containing the item
- * @param event event ID
- */
- void onNetworkEvent(ItemStack stack, EntityPlayer player, int event);
-}
-
diff --git a/src/main/java/api/java/ic2/api/network/INetworkTileEntityEventListener.class b/src/main/java/api/java/ic2/api/network/INetworkTileEntityEventListener.class
deleted file mode 100644
index d7f4386..0000000
Binary files a/src/main/java/api/java/ic2/api/network/INetworkTileEntityEventListener.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/network/INetworkTileEntityEventListener.java b/src/main/java/api/java/ic2/api/network/INetworkTileEntityEventListener.java
deleted file mode 100644
index fbb4753..0000000
--- a/src/main/java/api/java/ic2/api/network/INetworkTileEntityEventListener.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package ic2.api.network;
-
-/**
- * Allows a tile entity to receive network events received from the server.
- */
-public interface INetworkTileEntityEventListener {
- /**
- * Called when a network event is received.
- *
- * @param event Event ID
- */
- void onNetworkEvent(int event);
-}
-
diff --git a/src/main/java/api/java/ic2/api/network/INetworkUpdateListener.class b/src/main/java/api/java/ic2/api/network/INetworkUpdateListener.class
deleted file mode 100644
index db80129..0000000
Binary files a/src/main/java/api/java/ic2/api/network/INetworkUpdateListener.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/network/INetworkUpdateListener.java b/src/main/java/api/java/ic2/api/network/INetworkUpdateListener.java
deleted file mode 100644
index 09414ae..0000000
--- a/src/main/java/api/java/ic2/api/network/INetworkUpdateListener.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package ic2.api.network;
-
-/**
- * Allows a tile entity to receive field sync updates received from the server.
- */
-public interface INetworkUpdateListener {
- /**
- * Called when a field is synchronized.
- *
- * @param field field synchronized
- */
- void onNetworkUpdate(String field);
-}
-
diff --git a/src/main/java/api/java/ic2/api/network/NetworkHelper.class b/src/main/java/api/java/ic2/api/network/NetworkHelper.class
deleted file mode 100644
index 73ba569..0000000
Binary files a/src/main/java/api/java/ic2/api/network/NetworkHelper.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/network/NetworkHelper.java b/src/main/java/api/java/ic2/api/network/NetworkHelper.java
deleted file mode 100644
index a91d03a..0000000
--- a/src/main/java/api/java/ic2/api/network/NetworkHelper.java
+++ /dev/null
@@ -1,194 +0,0 @@
-package ic2.api.network;
-
-import java.lang.reflect.Method;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.tileentity.TileEntity;
-
-/**
- * Provides methods to initiate events and synchronize tile entity fields in SMP.
- *
- * The methods are transparent between singleplayer and multiplayer - if a method is called in
- * singleplayer, the associated callback will be locally executed. The implementation is different
- * between the client and server versions of IC2.
- *
- * You'll usually want to use the server->client methods defined here to synchronize information
- * which is needed by the clients outside the GUI, such as rendering the block, playing sounds or
- * producing effects. Anything which is only visible inside the GUI should be synchronized through
- * the Container class associated to the GUI in Container.updateProgressBar().
- */
-public final class NetworkHelper {
- // server -> client
-
-
- /**
- * Schedule a TileEntity's field to be updated to the clients in range.
- *
- * The updater will query the field's value during the next update, updates happen usually
- * every 2 ticks. If low latency is important use initiateTileEntityEvent instead.
- *
- * IC2's network updates have to get triggered every time, it doesn't continuously poll/send
- * the field value. Just call updateTileEntityField after every change to a field which needs
- * network synchronization.
- *
- * The following field data types are currently supported:
- * - int, int[], short, short[], byte, byte[], long, long[]
- * - float, float[], double, double[]
- * - boolean, boolean[]
- * - String, String[]
- * - ItemStack
- * - NBTBase (includes NBTTagCompound)
- * - Block, Item, Achievement, Potion, Enchantment
- * - ChunkCoordinates, ChunkCoordIntPair
- * - TileEntity (does not sync the actual tile entity, instead looks up the tile entity by its position in the client world)
- * - World (does not sync the actual world, instead looks up the world by its dimension ID)
- *
- * Once the update has been processed by the client, it'll call onNetworkUpdate on the client-
- * side TileEntity if it implements INetworkUpdateListener.
- *
- * If this method is being executed on the client (i.e. Singleplayer), it'll just call
- * INetworkUpdateListener.onNetworkUpdate (if implemented by the te).
- *
- * @param te TileEntity to update
- * @param field Name of the field to update
- */
- public static void updateTileEntityField(TileEntity te, String field) {
- try {
- if (NetworkManager_updateTileEntityField == null) NetworkManager_updateTileEntityField = Class.forName(getPackage() + ".core.network.NetworkManager").getMethod("updateTileEntityField", TileEntity.class, String.class);
- if (instance == null) instance = getInstance();
-
- NetworkManager_updateTileEntityField.invoke(instance, te, field);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * Immediately send an event for the specified TileEntity to the clients in range.
- *
- * If this method is being executed on the client (i.e. Singleplayer), it'll just call
- * INetworkTileEntityEventListener.onNetworkEvent (if implemented by the te).
- *
- * @param te TileEntity to notify, should implement INetworkTileEntityEventListener
- * @param event Arbitrary integer to represent the event, choosing the values is up to you
- * @param limitRange Limit the notification range to (currently) 20 blocks instead of the
- * tracking distance if true
- */
- public static void initiateTileEntityEvent(TileEntity te, int event, boolean limitRange) {
- try {
- if (NetworkManager_initiateTileEntityEvent == null) NetworkManager_initiateTileEntityEvent = Class.forName(getPackage() + ".core.network.NetworkManager").getMethod("initiateTileEntityEvent", TileEntity.class, Integer.TYPE, Boolean.TYPE);
- if (instance == null) instance = getInstance();
-
- NetworkManager_initiateTileEntityEvent.invoke(instance, te, event, limitRange);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * Immediately send an event for the specified Item to the clients in range.
- *
- * The item should implement INetworkItemEventListener to receive the event.
- *
- * If this method is being executed on the client (i.e. Singleplayer), it'll just call
- * INetworkItemEventListener.onNetworkEvent (if implemented by the item).
- *
- * @param player EntityPlayer holding the item
- * @param itemStack ItemStack containing the item
- * @param event Arbitrary integer to represent the event, choosing the values is up to you
- * @param limitRange Limit the notification range to (currently) 20 blocks instead of the
- * tracking distance if true
- */
- public static void initiateItemEvent(EntityPlayer player, ItemStack itemStack, int event, boolean limitRange) {
- try {
- if (NetworkManager_initiateItemEvent == null) NetworkManager_initiateItemEvent = Class.forName(getPackage() + ".core.network.NetworkManager").getMethod("initiateItemEvent", EntityPlayer.class, ItemStack.class, Integer.TYPE, Boolean.TYPE);
- if (instance == null) instance = getInstance();
-
- NetworkManager_initiateItemEvent.invoke(instance, player, itemStack, event, limitRange);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
-
- // client -> server
-
- /**
- * Immediately send an event for the specified TileEntity to the server.
- *
- * This method doesn't do anything if executed on the server.
- *
- * @param te TileEntity to notify, should implement INetworkClientTileEntityEventListener
- * @param event Arbitrary integer to represent the event, choosing the values is up to you
- */
- public static void initiateClientTileEntityEvent(TileEntity te, int event) {
- try {
- if (NetworkManager_initiateClientTileEntityEvent == null) NetworkManager_initiateClientTileEntityEvent = Class.forName(getPackage() + ".core.network.NetworkManager").getMethod("initiateClientTileEntityEvent", TileEntity.class, Integer.TYPE);
- if (instance == null) instance = getInstance();
-
- NetworkManager_initiateClientTileEntityEvent.invoke(instance, te, event);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * Immediately send an event for the specified Item to the clients in range.
- *
- * The item should implement INetworkItemEventListener to receive the event.
- *
- * This method doesn't do anything if executed on the server.
- *
- * @param itemStack ItemStack containing the item
- * @param event Arbitrary integer to represent the event, choosing the values is up to you
- */
- public static void initiateClientItemEvent(ItemStack itemStack, int event) {
- try {
- if (NetworkManager_initiateClientItemEvent == null) NetworkManager_initiateClientItemEvent = Class.forName(getPackage() + ".core.network.NetworkManager").getMethod("initiateClientItemEvent", ItemStack.class, Integer.TYPE);
- if (instance == null) instance = getInstance();
-
- NetworkManager_initiateClientItemEvent.invoke(instance, itemStack, event);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * Get the base IC2 package name, used internally.
- *
- * @return IC2 package name, if unable to be determined defaults to ic2
- */
- private static String getPackage() {
- Package pkg = NetworkHelper.class.getPackage();
-
- if (pkg != null) {
- String packageName = pkg.getName();
-
- return packageName.substring(0, packageName.length() - ".api.network".length());
- }
-
- return "ic2";
- }
-
- /**
- * Get the NetworkManager instance, used internally.
- *
- * @return NetworkManager instance
- */
- private static Object getInstance() {
- try {
- return Class.forName(getPackage() + ".core.util.SideGateway").getMethod("get").invoke(Class.forName(getPackage() + ".core.IC2").getDeclaredField("network").get(null));
- } catch (Throwable e) {
- throw new RuntimeException(e);
- }
- }
-
- private static Object instance;
- private static Method NetworkManager_updateTileEntityField;
- private static Method NetworkManager_initiateTileEntityEvent;
- private static Method NetworkManager_initiateItemEvent;
- private static Method NetworkManager_initiateClientTileEntityEvent;
- private static Method NetworkManager_initiateClientItemEvent;
-}
-
diff --git a/src/main/java/api/java/ic2/api/network/package-info.class b/src/main/java/api/java/ic2/api/network/package-info.class
deleted file mode 100644
index f4f1842..0000000
Binary files a/src/main/java/api/java/ic2/api/network/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/network/package-info.java b/src/main/java/api/java/ic2/api/network/package-info.java
deleted file mode 100644
index 25ea29e..0000000
--- a/src/main/java/api/java/ic2/api/network/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.network;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/package-info.class b/src/main/java/api/java/ic2/api/package-info.class
deleted file mode 100644
index 7caf699..0000000
Binary files a/src/main/java/api/java/ic2/api/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/package-info.java b/src/main/java/api/java/ic2/api/package-info.java
deleted file mode 100644
index e6f1522..0000000
--- a/src/main/java/api/java/ic2/api/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/reactor/IReactor.class b/src/main/java/api/java/ic2/api/reactor/IReactor.class
deleted file mode 100644
index 06917a9..0000000
Binary files a/src/main/java/api/java/ic2/api/reactor/IReactor.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/reactor/IReactor.java b/src/main/java/api/java/ic2/api/reactor/IReactor.java
deleted file mode 100644
index 55191cc..0000000
--- a/src/main/java/api/java/ic2/api/reactor/IReactor.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package ic2.api.reactor;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.ChunkCoordinates;
-import net.minecraft.world.World;
-
-/**
- * Interface implemented by the tile entity of nuclear reactors.
- */
-public interface IReactor {
- /**
- * Get the reactor's position in the world.
- *
- * @return Position of the reactor
- */
- public ChunkCoordinates getPosition();
-
- /**
- * Get the reactor's corresponding world.
- *
- * @return The reactor's world
- */
- public World getWorld();
-
- /**
- * Get the reactor's heat.
- *
- * @return The reactor's heat
- */
- public int getHeat();
-
- /**
- * Set the reactor's heat.
- *
- * @param heat reactor heat
- */
- public void setHeat(int heat);
-
- /**
- * Increase the reactor's heat.
- *
- * Use negative values to decrease.
- *
- * @param amount amount of heat to add
- * @return The reactor's heat after adding the specified amount
- */
- public int addHeat(int amount);
-
- /**
- * Get the reactor's maximum heat before exploding.
- *
- * @return Maximum heat value
- */
- public int getMaxHeat();
-
- /**
- * Set the reactor's stored maxHeat variable.
- * Used by plating to increase the reactors MaxHeat capacity.
- * Needs to be called during each cycle process.
- */
- public void setMaxHeat(int newMaxHeat);
-
- /**
- * add Heat to a EmitHeat Buffer
- * for use in Reactor operation.. need to be use
- * for all Componetents with self-cooling
- * no more magic heat disappear
- */
-
-
- public void addEmitHeat(int heat);
-
- /**
- * Get's the reactor's HEM (Heat Effect Modifier)
- * Basic value is 1.0F.
- * Reducing the value causes a weakening/reduction of the heat-based sideeffects of reactors
- * (F.e. water evaporation, melting, damaging entitys, etc)
- *
- * @return HEM
- */
- public float getHeatEffectModifier();
-
- /**
- * Set's the reactor's HEM
- * Needs to be called during each cycle process.
- */
- public void setHeatEffectModifier(float newHEM);
-
- /**
- * Get the reactor's energy output.
- *
- * @return Energy output, not multiplied by the base EU/t value
- */
- public float getReactorEnergyOutput();
-
- /**
- * Get the reactor's energy output.
- *
- * @return Energy output, multiplied with base EU/t value and MainConfig.get().getFloat("balance/energy/generator/nuclear")
- */
- public double getReactorEUEnergyOutput();
-
- /**
- * Add's the given amount of energy to the Reactor's output.
- *
- * @return Energy output after adding the value, not multiplied by the base EU/t value
- */
- public float addOutput(float energy);
-
- /**
- * Get the item at the specified grid coordinates.
- *
- * @param x X position of the item, out of bounds returns null
- * @param y Y position of the item, out of bounds returns null
- * @return The item or null if there is no item
- */
- public ItemStack getItemAt(int x, int y);
-
- /**
- * Set the item at the specified grid coordinates.
- *
- * @param x X position of the item, out of bounds is a no-op
- * @param y Y position of the item, out of bounds is a no-op
- * @param item The item to set.
- */
- public void setItemAt(int x, int y, ItemStack item);
-
- /**
- * Explode the reactor.
- */
- public void explode();
-
- /**
- * Get the reactor's tick rate (game ticks per reactor tick).
- *
- * @return Tick rate
- */
- public int getTickRate();
-
- /**
- * Get whether the reactor is active and supposed to produce energy
- * @return Whether the reactor is active
- */
- public boolean produceEnergy();
-
- /**
- * Set Redstone Signal without direct contact
- *
- */
-
- public void setRedstoneSignal(boolean redstone);
-
- /**
- * @return true if the reactor is FluidCooled
- */
-
- public boolean isFluidCooled();
-}
diff --git a/src/main/java/api/java/ic2/api/reactor/IReactorChamber.class b/src/main/java/api/java/ic2/api/reactor/IReactorChamber.class
deleted file mode 100644
index e0e206c..0000000
Binary files a/src/main/java/api/java/ic2/api/reactor/IReactorChamber.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/reactor/IReactorChamber.java b/src/main/java/api/java/ic2/api/reactor/IReactorChamber.java
deleted file mode 100644
index 4611a6a..0000000
--- a/src/main/java/api/java/ic2/api/reactor/IReactorChamber.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package ic2.api.reactor;
-
-/**
- * Interface implemented by the reactor chamber tile entity.
- */
-public interface IReactorChamber {
- /**
- * Get the chamber's reactor.
- *
- * @return The reactor
- */
- public IReactor getReactor();
-
- /**
- * Set Redstone Signal without direct contact
- *
- */
-
- public void setRedstoneSignal(boolean redstone);
-}
diff --git a/src/main/java/api/java/ic2/api/reactor/IReactorComponent.class b/src/main/java/api/java/ic2/api/reactor/IReactorComponent.class
deleted file mode 100644
index beacfce..0000000
Binary files a/src/main/java/api/java/ic2/api/reactor/IReactorComponent.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/reactor/IReactorComponent.java b/src/main/java/api/java/ic2/api/reactor/IReactorComponent.java
deleted file mode 100644
index 84e011c..0000000
--- a/src/main/java/api/java/ic2/api/reactor/IReactorComponent.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package ic2.api.reactor;
-
-import net.minecraft.item.ItemStack;
-
-/**
- * Design custom Reactor components by implementing this Interface
- * Items implementing the interface will not be ejected from Reactors in their clean-up
- * and can/will be interacted with by other elements, f.e. Uranium Cells.
- *
- * All IC2 ReactorComponents implement and use this Interface
- *
- */
-public interface IReactorComponent {
- /**
- * Called by reactor upon iterating through it's inventory (every cycle).
- * Perform all necessary calculation/interaction here
- *
- * @param reactor Reference to the Reactor
- * @param yourStack Reference to the specific instance of iterated ItemStack
- * @param x X-coordinate of the stack in the grid
- * @param y Y-coordinate of the stack in the grid
- * @param heatrun every Stack will cycle 2 time (true, false) first run for heat, sec for Eu calculation
- */
- public void processChamber(IReactor reactor, ItemStack yourStack, int x, int y, boolean heatrun);
-
- /**
- * Can be called by Uranium-Components who attempt to generate energy by pulsing to other components.
- * Uranium-Uranium interaction (f.e.) uses this method.
- * @param reactor Reference to the Reactor
- * @param yourStack Reference to the specific instance of called ItemStack
- * @param pulsingStack Reference to the specific instance of pulsing ItemStack
- * @param youX X-coordinate of your stack in the grid
- * @param youY Y-coordinate of your stack in the grid
- * @param pulseX X-coordinate of pulsing stack in the grid
- * @param pulseY Y-coordinate of pulsing stack in the grid
- * @param heatrun true for only create heat not EU, false for only EU not heat
- * @return true if this component reacts to the pulse (and pulse is therefore meant to produce heat)
- */
- public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean heatrun);
-
- /**
- * Called by components to determine whether your component can be heated.
- * @param reactor Reference to the Reactor
- * @param yourStack Reference to the specific instance of iterated ItemStack
- * @param x X-coordinate of the stack in the grid
- * @param y Y-coordinate of the stack in the grid
- * @return true if your component can take heat
- */
- public boolean canStoreHeat(IReactor reactor, ItemStack yourStack, int x, int y);
-
- /**
- * Called by heat-switches to determine how much heat to distribute into which direction.
- * Please return the maximum capacity of your heat-containing component here.
- * @param reactor Reference to the Reactor
- * @param yourStack Reference to the specific instance of iterated ItemStack
- * @param x X-coordinate of the stack in the grid
- * @param y Y-coordinate of the stack in the grid
- * @return Maximum heat
- */
- public int getMaxHeat(IReactor reactor, ItemStack yourStack, int x, int y);
-
- /**
- * Called by heat-switches to determine how much heat to distribute into which direction.
- * Please return the current amount of heat stored in this component
- * @param reactor Reference to the Reactor
- * @param yourStack Reference to the specific instance of iterated ItemStack
- * @param x X-coordinate of the stack in the grid
- * @param y Y-coordinate of the stack in the grid
- * @return Current Heat
- */
- public int getCurrentHeat(IReactor reactor, ItemStack yourStack, int x, int y);
-
- /**
- * Called by components to distribute heat to your component.
- * Perform heating-calculations and increase your heat (dmg) level accordingly.
- * This method will as well be called to REDUCE heat, by providing a negative amount.
- *
- * @param reactor Reference to the Reactor
- * @param yourStack Reference to the specific instance of iterated ItemStack
- * @param x X-coordinate of the stack in the grid
- * @param y Y-coordinate of the stack in the grid
- * @param heat Amount of heat to be added (may be negative to subtract heat)
- * @return 0 if the 'order' was accepted, return >0 to indicate the 'remaining' heat which couldn't be absorbed (and vice versa for <0)
- */
- public int alterHeat(IReactor reactor, ItemStack yourStack, int x, int y, int heat);
-
- /**
- * Called upon reactor explosion
- * Alter the explosion size.
- * Returning a float 0 < f < 1 will be counted as multiplier.
- * Anything else will be counted as a flat addition (in case of <0 = reduction).
- *
- * @param reactor Reference to the Reactor
- * @param yourStack Reference to the specific instance of iterated ItemStack
- * @return your explosion modifier
- */
- public float influenceExplosion(IReactor reactor, ItemStack yourStack);
-}
diff --git a/src/main/java/api/java/ic2/api/reactor/package-info.class b/src/main/java/api/java/ic2/api/reactor/package-info.class
deleted file mode 100644
index a94d26f..0000000
Binary files a/src/main/java/api/java/ic2/api/reactor/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/reactor/package-info.java b/src/main/java/api/java/ic2/api/reactor/package-info.java
deleted file mode 100644
index 5194aee..0000000
--- a/src/main/java/api/java/ic2/api/reactor/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.reactor;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/recipe/ICannerBottleRecipeManager$Input.class b/src/main/java/api/java/ic2/api/recipe/ICannerBottleRecipeManager$Input.class
deleted file mode 100644
index 89a9b2f..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ICannerBottleRecipeManager$Input.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ICannerBottleRecipeManager.class b/src/main/java/api/java/ic2/api/recipe/ICannerBottleRecipeManager.class
deleted file mode 100644
index 7372a12..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ICannerBottleRecipeManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ICannerBottleRecipeManager.java b/src/main/java/api/java/ic2/api/recipe/ICannerBottleRecipeManager.java
deleted file mode 100644
index 415b3c3..0000000
--- a/src/main/java/api/java/ic2/api/recipe/ICannerBottleRecipeManager.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Map;
-
-import net.minecraft.item.ItemStack;
-
-public interface ICannerBottleRecipeManager {
- /**
- * Adds a recipe to the machine.
- *
- * @param container Container to be filled
- * @param fill Item to fill into the container
- * @param output Filled container
- */
- public void addRecipe(IRecipeInput container, IRecipeInput fill, ItemStack output);
-
- /**
- * Gets the recipe output for the given input.
- *
- * @param container Container to be filled
- * @param fill Item to fill into the container
- * @param adjustInput modify the input according to the recipe's requirements
- * @param acceptTest allow either container or fill to be null to see if either of them is part of a recipe
- * @return Recipe output, or null if none
- */
- public RecipeOutput getOutputFor(ItemStack container, ItemStack fill, boolean adjustInput, boolean acceptTest);
-
- /**
- * Gets a list of recipes.
- *
- * You're a mad evil scientist if you ever modify this.
- *
- * @return List of recipes
- */
- public Map getRecipes();
-
-
- public static class Input {
- public Input(IRecipeInput container1, IRecipeInput fill1) {
- this.container = container1;
- this.fill = fill1;
- }
-
- public boolean matches(ItemStack container1, ItemStack fill1) {
- return this.container.matches(container1) && this.fill.matches(fill1);
- }
-
- public final IRecipeInput container;
- public final IRecipeInput fill;
- }
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/ICannerEnrichRecipeManager$Input.class b/src/main/java/api/java/ic2/api/recipe/ICannerEnrichRecipeManager$Input.class
deleted file mode 100644
index eebdb6b..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ICannerEnrichRecipeManager$Input.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ICannerEnrichRecipeManager.class b/src/main/java/api/java/ic2/api/recipe/ICannerEnrichRecipeManager.class
deleted file mode 100644
index f32226d..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ICannerEnrichRecipeManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ICannerEnrichRecipeManager.java b/src/main/java/api/java/ic2/api/recipe/ICannerEnrichRecipeManager.java
deleted file mode 100644
index 5eba1b6..0000000
--- a/src/main/java/api/java/ic2/api/recipe/ICannerEnrichRecipeManager.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Map;
-
-import net.minecraft.item.ItemStack;
-
-import net.minecraftforge.fluids.FluidStack;
-
-public interface ICannerEnrichRecipeManager {
- /**
- * Adds a recipe to the machine.
- *
- * @param input Fluid input
- * @param additive Item to enrich the fluid with
- * @param output Output fluid
- */
- public void addRecipe(FluidStack input, IRecipeInput additive, FluidStack output);
-
- /**
- * Gets the recipe output for the given input.
- *
- * @param input Fluid input
- * @param additive Item to enrich the fluid with
- * @param adjustInput modify the input according to the recipe's requirements
- * @param acceptTest allow input or additive to be null to see if either of them is part of a recipe
- * @return Recipe output, or null if none, output fluid in nbt
- */
- public RecipeOutput getOutputFor(FluidStack input, ItemStack additive, boolean adjustInput, boolean acceptTest);
-
- /**
- * Gets a list of recipes.
- *
- * You're a mad evil scientist if you ever modify this.
- *
- * @return List of recipes
- */
- public Map getRecipes();
-
-
- public static class Input {
- public Input(FluidStack fluid1, IRecipeInput additive1) {
- this.fluid = fluid1;
- this.additive = additive1;
- }
-
- public boolean matches(FluidStack fluid1, ItemStack additive1) {
- return (this.fluid == null || this.fluid.isFluidEqual(fluid1)) &&
- this.additive.matches(additive1);
- }
-
- public final FluidStack fluid;
- public final IRecipeInput additive;
- }
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/ICraftingRecipeManager.class b/src/main/java/api/java/ic2/api/recipe/ICraftingRecipeManager.class
deleted file mode 100644
index 877dcf4..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ICraftingRecipeManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ICraftingRecipeManager.java b/src/main/java/api/java/ic2/api/recipe/ICraftingRecipeManager.java
deleted file mode 100644
index 756eaf6..0000000
--- a/src/main/java/api/java/ic2/api/recipe/ICraftingRecipeManager.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package ic2.api.recipe;
-
-import net.minecraft.item.ItemStack;
-
-/**
- * Recipe manager interface for crafting recipes.
- *
- * @author Richard
- */
-public interface ICraftingRecipeManager {
- /**
- * Adds a shaped crafting recipe.
- *
- * @param output Recipe output
- * @param input Recipe input format
- */
- public void addRecipe(ItemStack output, Object... input);
-
- /**
- * Adds a shapeless crafting recipe.
- *
- * @param output Recipe output
- * @param input Recipe input
- */
- public void addShapelessRecipe(ItemStack output, Object... input);
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/IFluidHeatManager$BurnProperty.class b/src/main/java/api/java/ic2/api/recipe/IFluidHeatManager$BurnProperty.class
deleted file mode 100644
index 6367f30..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/IFluidHeatManager$BurnProperty.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/IFluidHeatManager.class b/src/main/java/api/java/ic2/api/recipe/IFluidHeatManager.class
deleted file mode 100644
index 30a7fee..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/IFluidHeatManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/IFluidHeatManager.java b/src/main/java/api/java/ic2/api/recipe/IFluidHeatManager.java
deleted file mode 100644
index 7ddecdc..0000000
--- a/src/main/java/api/java/ic2/api/recipe/IFluidHeatManager.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Map;
-
-import net.minecraftforge.fluids.Fluid;
-
-
-public interface IFluidHeatManager extends ILiquidAcceptManager {
- /**
- * Add a new fluid to the Fluid Heat Generator.
- *
- * @param fluidName the fluid to burn
- * @param amount amount of fluid to consume per tick
- * @param heat amount of heat generated per tick
- */
- void addFluid(String fluidName, int amount, int heat);
-
- BurnProperty getBurnProperty(Fluid fluid);
-
- Map getBurnProperties();
-
-
- public static class BurnProperty {
- public BurnProperty(int amount1, int heat1) {
- this.amount = amount1;
- this.heat = heat1;
- }
-
- public final int amount;
- public final int heat;
- }
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/ILiquidAcceptManager.class b/src/main/java/api/java/ic2/api/recipe/ILiquidAcceptManager.class
deleted file mode 100644
index 2ccadae..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ILiquidAcceptManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ILiquidAcceptManager.java b/src/main/java/api/java/ic2/api/recipe/ILiquidAcceptManager.java
deleted file mode 100644
index 4f377b9..0000000
--- a/src/main/java/api/java/ic2/api/recipe/ILiquidAcceptManager.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Set;
-
-import net.minecraftforge.fluids.Fluid;
-
-public interface ILiquidAcceptManager {
- boolean acceptsFluid(Fluid fluid);
- Set getAcceptedFluids();
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/ILiquidHeatExchangerManager$HeatExchangeProperty.class b/src/main/java/api/java/ic2/api/recipe/ILiquidHeatExchangerManager$HeatExchangeProperty.class
deleted file mode 100644
index 374f186..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ILiquidHeatExchangerManager$HeatExchangeProperty.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.class b/src/main/java/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.class
deleted file mode 100644
index b58008d..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.java b/src/main/java/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.java
deleted file mode 100644
index 68decbb..0000000
--- a/src/main/java/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Map;
-
-import net.minecraftforge.fluids.Fluid;
-
-public interface ILiquidHeatExchangerManager extends ILiquidAcceptManager {
-
- /**
- * Add a new fluid heatup/cooldown recipe.
- *
- * @param fluidName the fluid to heat up/cool down
- * @param fluidOutput the fluid the above fluid turns into
- * @param huPerMB the Thermal Energy difference in hU for the conversion of one mB fluid
- */
- void addFluid(String fluidName, String fluidOutput, int huPerMB);
-
- HeatExchangeProperty getHeatExchangeProperty(Fluid fluid);
-
- Map getHeatExchangeProperties();
-
- /**
- * This returns an ILiquidAcceptManager that only accepts fluids, that can be heated up / cooled down, but not both.
- * You can basically use this to check if the liquid resulting from this conversion can be reprocessed into the first one.
- * @return Returns the SingleDirectionManager.
- */
- ILiquidAcceptManager getSingleDirectionLiquidManager();
-
- public static class HeatExchangeProperty {
- public HeatExchangeProperty(Fluid outputFluid, int huPerMB) {
- this.outputFluid = outputFluid;
- this.huPerMB = huPerMB;
- }
-
- public final Fluid outputFluid;
- public final int huPerMB;
- }
-
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/IListRecipeManager.class b/src/main/java/api/java/ic2/api/recipe/IListRecipeManager.class
deleted file mode 100644
index 77f1a93..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/IListRecipeManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/IListRecipeManager.java b/src/main/java/api/java/ic2/api/recipe/IListRecipeManager.java
deleted file mode 100644
index adc2291..0000000
--- a/src/main/java/api/java/ic2/api/recipe/IListRecipeManager.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-
-/**
- * Recipe manager interface for basic lists.
- *
- * @author Richard
- */
-public interface IListRecipeManager extends Iterable {
- /**
- * Adds a stack to the list.
- *
- * @param stack Stack to add
- */
- public void add(IRecipeInput input);
-
- /**
- * Checks whether the specified stack is in the list.
- *
- * @param stack Stack to check
- * @return Whether the stack is in the list
- */
- public boolean contains(ItemStack stack);
-
- /**
- * @return if the List is Empty
- */
- public boolean isEmpty();
-
- /**
- * Gets the list of stacks.
- *
- * You're a mad evil scientist if you ever modify this.
- *
- * @return List of stacks
- */
- public List getInputs();
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManager.class b/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManager.class
deleted file mode 100644
index 5476c9d..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManager.java b/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManager.java
deleted file mode 100644
index d2d4382..0000000
--- a/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManager.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Map;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-
-/**
- * Recipe manager interface for basic machines.
- *
- * @author RichardG, Player
- */
-public interface IMachineRecipeManager { // TODO: merge with IMachineRecipeManagerExt
- /**
- * Adds a recipe to the machine.
- *
- * @param input Recipe input
- * @param metadata meta data for additional recipe properties, may be null
- * @param outputs Recipe outputs, zero or more depending on the machine
- *
- * For the thermal centrifuge @param metadata meta data {"minHeat": 1-xxx}
- * For the ore washing plant @param metadata meta data {"amount": 1-8000}
- *
- */
- public void addRecipe(IRecipeInput input, NBTTagCompound metadata, ItemStack... outputs);
-
- /**
- * Gets the recipe output for the given input.
- *
- * @param input Recipe input
- * @param adjustInput modify the input according to the recipe's requirements
- * @return Recipe output, or null if none
- */
- public RecipeOutput getOutputFor(ItemStack input, boolean adjustInput);
-
- /**
- * Gets a list of recipes.
- *
- * You're a mad evil scientist if you ever modify this.
- *
- * @return List of recipes
- */
- public Map getRecipes(); // TODO: Change to iterable/collection/list
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManagerExt.class b/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManagerExt.class
deleted file mode 100644
index b6f9bac..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManagerExt.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManagerExt.java b/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManagerExt.java
deleted file mode 100644
index 9c68706..0000000
--- a/src/main/java/api/java/ic2/api/recipe/IMachineRecipeManagerExt.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package ic2.api.recipe;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-
-public interface IMachineRecipeManagerExt extends IMachineRecipeManager {
- /**
- * Adds a recipe to the machine.
- *
- * @note Overwrite is only as reliable as IRecipeInput.getInputs().
- *
- * @param input Recipe input
- * @param metadata Meta data for additional recipe properties, may be null.
- * @param overwrite Replace an existing recipe, not recommended, may be ignored.
- * @param outputs Recipe outputs, zero or more depending on the machine.
- * @return true on success, false otherwise, e.g. on conflicts.
- *
- * For the thermal centrifuge @param metadata meta data {"minHeat": 1-xxx}
- * For the ore washing plant @param metadata meta data {"amount": 1-8000}
- */
- public boolean addRecipe(IRecipeInput input, NBTTagCompound metadata, boolean overwrite, ItemStack... outputs);
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/IPatternStorage.class b/src/main/java/api/java/ic2/api/recipe/IPatternStorage.class
deleted file mode 100644
index 5b72100..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/IPatternStorage.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/IPatternStorage.java b/src/main/java/api/java/ic2/api/recipe/IPatternStorage.java
deleted file mode 100644
index c9dbd8d..0000000
--- a/src/main/java/api/java/ic2/api/recipe/IPatternStorage.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-
-public interface IPatternStorage {
- boolean addPattern(ItemStack itemstack);
-
- List getPatterns();
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/IRecipeInput.class b/src/main/java/api/java/ic2/api/recipe/IRecipeInput.class
deleted file mode 100644
index 6d159b4..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/IRecipeInput.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/IRecipeInput.java b/src/main/java/api/java/ic2/api/recipe/IRecipeInput.java
deleted file mode 100644
index 0c842d6..0000000
--- a/src/main/java/api/java/ic2/api/recipe/IRecipeInput.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-
-public interface IRecipeInput {
- /**
- * Check if subject matches this recipe input, ignoring the amount.
- *
- * @param subject ItemStack to check
- * @return true if it matches the requirement
- */
- boolean matches(ItemStack subject);
-
- /**
- * Determine the minimum input stack size.
- *
- * @return input amount required
- */
- int getAmount();
-
- /**
- * List all possible inputs (best effort).
- *
- * The stack size is undefined, use getAmount to get the correct one.
- *
- * @return list of inputs, may be incomplete
- */
- List getInputs();
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/IScrapboxManager.class b/src/main/java/api/java/ic2/api/recipe/IScrapboxManager.class
deleted file mode 100644
index 2aa3304..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/IScrapboxManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/IScrapboxManager.java b/src/main/java/api/java/ic2/api/recipe/IScrapboxManager.java
deleted file mode 100644
index 41b694d..0000000
--- a/src/main/java/api/java/ic2/api/recipe/IScrapboxManager.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Map;
-
-import net.minecraft.item.ItemStack;
-
-public interface IScrapboxManager {
- void addDrop(ItemStack drop, float rawChance);
-
- ItemStack getDrop(ItemStack input, boolean adjustInput);
-
- Map getDrops();
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/ISemiFluidFuelManager$BurnProperty.class b/src/main/java/api/java/ic2/api/recipe/ISemiFluidFuelManager$BurnProperty.class
deleted file mode 100644
index e1aba6d..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ISemiFluidFuelManager$BurnProperty.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ISemiFluidFuelManager.class b/src/main/java/api/java/ic2/api/recipe/ISemiFluidFuelManager.class
deleted file mode 100644
index 562181c..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/ISemiFluidFuelManager.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/ISemiFluidFuelManager.java b/src/main/java/api/java/ic2/api/recipe/ISemiFluidFuelManager.java
deleted file mode 100644
index 87c3427..0000000
--- a/src/main/java/api/java/ic2/api/recipe/ISemiFluidFuelManager.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Map;
-
-import net.minecraftforge.fluids.Fluid;
-
-
-public interface ISemiFluidFuelManager extends ILiquidAcceptManager {
- /**
- * Add a new fluid to the semi fluid generator.
- *
- * @param fluidName the fluid to burn
- * @param amount amount of fluid to consume per tick
- * @param power amount of energy generated per tick
- */
- void addFluid(String fluidName, int amount, double power);
-
- BurnProperty getBurnProperty(Fluid fluid);
-
- Map getBurnProperties();
-
-
- public static class BurnProperty {
- public BurnProperty(int amount1, double power1) {
- this.amount = amount1;
- this.power = power1;
- }
-
- public final int amount;
- public final double power;
- }
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/RecipeInputFluidContainer.class b/src/main/java/api/java/ic2/api/recipe/RecipeInputFluidContainer.class
deleted file mode 100644
index 74e0273..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/RecipeInputFluidContainer.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/RecipeInputFluidContainer.java b/src/main/java/api/java/ic2/api/recipe/RecipeInputFluidContainer.java
deleted file mode 100644
index 103d293..0000000
--- a/src/main/java/api/java/ic2/api/recipe/RecipeInputFluidContainer.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-
-import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidContainerRegistry;
-import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData;
-import net.minecraftforge.fluids.FluidStack;
-
-public class RecipeInputFluidContainer implements IRecipeInput {
- public RecipeInputFluidContainer(Fluid fluid) {
- this(fluid, FluidContainerRegistry.BUCKET_VOLUME);
- }
-
- public RecipeInputFluidContainer(Fluid fluid, int amount) {
- this.fluid = fluid;
- this.amount = amount;
- }
-
- @Override
- public boolean matches(ItemStack subject) {
- FluidStack fs = FluidContainerRegistry.getFluidForFilledItem(subject);
- if (fs == null) return false;
-
- return fs.getFluid() == fluid;
- }
-
- @Override
- public int getAmount() {
- return amount;
- }
-
- @Override
- public List getInputs() {
- List ret = new ArrayList();
-
- for (FluidContainerData data : FluidContainerRegistry.getRegisteredFluidContainerData()) {
- if (data.fluid.getFluid() == fluid) ret.add(data.filledContainer);
- }
-
- return ret;
- }
-
- @Override
- public String toString() {
- return "RInputFluidContainer<"+amount+"x"+fluid.getName()+">";
- }
-
- public final Fluid fluid;
- public final int amount;
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/RecipeInputItemStack.class b/src/main/java/api/java/ic2/api/recipe/RecipeInputItemStack.class
deleted file mode 100644
index 2f3a70b..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/RecipeInputItemStack.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/RecipeInputItemStack.java b/src/main/java/api/java/ic2/api/recipe/RecipeInputItemStack.java
deleted file mode 100644
index 84f86ea..0000000
--- a/src/main/java/api/java/ic2/api/recipe/RecipeInputItemStack.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Arrays;
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-
-import net.minecraftforge.oredict.OreDictionary;
-
-public class RecipeInputItemStack implements IRecipeInput {
- public RecipeInputItemStack(ItemStack aInput) {
- this(aInput, aInput.stackSize);
- }
-
- public RecipeInputItemStack(ItemStack aInput, int aAmount) {
- if (aInput.getItem() == null) throw new IllegalArgumentException("Invalid item stack specfied");
-
- input = aInput.copy(); // Never forget to copy.
- amount = aAmount;
- }
-
- @Override
- public boolean matches(ItemStack subject) {
- return subject.getItem() == input.getItem() &&
- (subject.getItemDamage() == input.getItemDamage() || input.getItemDamage() == OreDictionary.WILDCARD_VALUE);
- }
-
- @Override
- public int getAmount() {
- return amount;
- }
-
- @Override
- public List getInputs() {
- return Arrays.asList(input);
- }
-
- @Override
- public String toString() {
- ItemStack stack = input.copy();
- input.stackSize = amount;
- return "RInputItemStack<"+stack+">";
- }
-
- public final ItemStack input;
- public final int amount;
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/RecipeInputOreDict.class b/src/main/java/api/java/ic2/api/recipe/RecipeInputOreDict.class
deleted file mode 100644
index 5db8622..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/RecipeInputOreDict.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/RecipeInputOreDict.java b/src/main/java/api/java/ic2/api/recipe/RecipeInputOreDict.java
deleted file mode 100644
index e6e4695..0000000
--- a/src/main/java/api/java/ic2/api/recipe/RecipeInputOreDict.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-
-import net.minecraftforge.oredict.OreDictionary;
-
-public class RecipeInputOreDict implements IRecipeInput {
- public RecipeInputOreDict(String input1) {
- this(input1, 1);
- }
-
- public RecipeInputOreDict(String input1, int amount1) {
- this(input1, amount1, null);
- }
-
- public RecipeInputOreDict(String input1, int amount1, Integer meta) {
- this.input = input1;
- this.amount = amount1;
- this.meta = meta;
- }
-
- @Override
- public boolean matches(ItemStack subject) {
- List inputs = getOres();
- boolean useOreStackMeta = (meta == null);
- Item subjectItem = subject.getItem();
- int subjectMeta = subject.getItemDamage();
-
- for (ItemStack oreStack : inputs) {
- Item oreItem = oreStack.getItem();
- if (oreItem == null) continue; // ignore invalid
-
- int metaRequired = useOreStackMeta ? oreStack.getItemDamage() : meta;
-
- if (subjectItem == oreItem &&
- (subjectMeta == metaRequired || metaRequired == OreDictionary.WILDCARD_VALUE)) {
- return true;
- }
- }
-
- return false;
- }
-
- @Override
- public int getAmount() {
- return amount;
- }
-
- @Override
- public List getInputs() {
- List ores = getOres();
-
- // check if we have to filter the list first
- boolean hasInvalidEntries = false;
-
- for (ItemStack stack : ores) {
- if (stack.getItem() == null) {
- hasInvalidEntries = true;
- break;
- }
- }
-
- if (!hasInvalidEntries) return ores;
-
- List ret = new ArrayList(ores.size());
-
- for (ItemStack stack : ores) {
- if (stack.getItem() != null) ret.add(stack); // ignore invalid
- }
-
- return Collections.unmodifiableList(ret);
- }
-
- @Override
- public String toString() {
- if (meta == null) {
- return "RInputOreDict<"+amount+"x"+input+">";
- } else {
- return "RInputOreDict<"+amount+"x"+input+"@"+meta+">";
- }
- }
-
- private List getOres() {
- if (ores != null) return ores;
-
- // cache the ore list by making use of the fact that forge always uses the same list,
- // unless it's EMPTY_LIST, which should never happen.
- List ret = OreDictionary.getOres(input);
-
- if (ret != OreDictionary.EMPTY_LIST) ores = ret;
-
- return ret;
- }
-
- public final String input;
- public final int amount;
- public final Integer meta;
- private List ores;
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/RecipeOutput.class b/src/main/java/api/java/ic2/api/recipe/RecipeOutput.class
deleted file mode 100644
index a7d6b3f..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/RecipeOutput.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/RecipeOutput.java b/src/main/java/api/java/ic2/api/recipe/RecipeOutput.java
deleted file mode 100644
index 80ad5fb..0000000
--- a/src/main/java/api/java/ic2/api/recipe/RecipeOutput.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package ic2.api.recipe;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-
-public final class RecipeOutput {
- public RecipeOutput(NBTTagCompound metadata1, List items1) {
- assert !items1.contains(null);
-
- this.metadata = metadata1;
- this.items = items1;
- }
-
- public RecipeOutput(NBTTagCompound metadata1, ItemStack... items1) {
- this(metadata1, Arrays.asList(items1));
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof RecipeOutput) {
- RecipeOutput ro = (RecipeOutput) obj;
-
- if (items.size() == ro.items.size() &&
- (metadata == null && ro.metadata == null || metadata != null && ro.metadata != null && metadata.equals(ro.metadata))) {
- Iterator itA = items.iterator();
- Iterator itB = ro.items.iterator();
-
- while (itA.hasNext() && itB.hasNext()) {
- ItemStack stackA = itA.next();
- ItemStack stackB = itB.next();
-
- if (ItemStack.areItemStacksEqual(stackA, stackB)) return false;
- }
-
- return true;
- }
- }
-
- return false;
- }
-
- @Override
- public String toString() {
- return "ROutput<"+items+","+metadata+">";
- }
-
- public final List items;
- public final NBTTagCompound metadata;
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/Recipes.class b/src/main/java/api/java/ic2/api/recipe/Recipes.class
deleted file mode 100644
index 11854ef..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/Recipes.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/Recipes.java b/src/main/java/api/java/ic2/api/recipe/Recipes.java
deleted file mode 100644
index 0aa0b75..0000000
--- a/src/main/java/api/java/ic2/api/recipe/Recipes.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package ic2.api.recipe;
-
-
-/**
- * General recipe registry.
- *
- * @author Richard
- */
-public class Recipes {
- public static IMachineRecipeManager macerator;
- public static IMachineRecipeManager extractor;
- public static IMachineRecipeManager compressor;
- public static IMachineRecipeManager centrifuge;
- public static IMachineRecipeManager blockcutter;
- public static IMachineRecipeManager blastfurance;
- public static IMachineRecipeManager recycler;
- public static IMachineRecipeManager metalformerExtruding;
- public static IMachineRecipeManager metalformerCutting;
- public static IMachineRecipeManager metalformerRolling;
- public static IMachineRecipeManager oreWashing;
- public static ICannerBottleRecipeManager cannerBottle;
- public static ICannerEnrichRecipeManager cannerEnrich;
-
- /**
- * Reference amplifier values:
- *
- * 5000: Scrap
- * 45000: Scrapbox
- *
- * As Parameter for the Amplification Value you have to use the NBTTagCompound
- *
- * NBTTagCompound nbt = new NBTTagCompound();
- * nbt.setInteger("amplification", aValue);
- * matterAmplifier.addRecipe(yourStack, nbt);
- */
- public static IMachineRecipeManager matterAmplifier;
- /**
- * Reference scrap box chance values:
- *
- * 0.1: Diamond
- * 0.5: Cake, Gold Helmet, Iron Ore, Gold Ore
- * 1.0: Wooden tools, Soul Sand, Sign, Leather, Feather, Bone
- * 1.5: Apple, Bread
- * 2.0: Netherrack, Rotten Flesh
- * 3.0: Grass, Gravel
- * 4.0: Stick
- * 5.0: Dirt, Wooden Hoe
- */
- public static IScrapboxManager scrapboxDrops;
- public static IListRecipeManager recyclerBlacklist;
- /**
- * Do not add anything to this Whitelist. This is for Configuration only.
- * You may need this if you have an own Recycler in your Mod, just to check if something can be recycled. but don't add anything to this List
- */
- public static IListRecipeManager recyclerWhitelist;
- public static ICraftingRecipeManager advRecipes;
-
- public static ISemiFluidFuelManager semiFluidGenerator;
- public static IFluidHeatManager FluidHeatGenerator;
- /**
- * Used by the Liquid Heat Exchanger to cool down liquids and determine the amount of hu generated for every mb.
- */
- public static ILiquidHeatExchangerManager liquidCooldownManager;
- /**
- * Opposite of {@link #liquidCooldownManager}. This is for Liquids that can be heated up again.
- */
- public static ILiquidHeatExchangerManager liquidHeatupManager;
-}
diff --git a/src/main/java/api/java/ic2/api/recipe/package-info.class b/src/main/java/api/java/ic2/api/recipe/package-info.class
deleted file mode 100644
index f30b57f..0000000
Binary files a/src/main/java/api/java/ic2/api/recipe/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/recipe/package-info.java b/src/main/java/api/java/ic2/api/recipe/package-info.java
deleted file mode 100644
index 44e70e7..0000000
--- a/src/main/java/api/java/ic2/api/recipe/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.recipe;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/tile/ExplosionWhitelist.class b/src/main/java/api/java/ic2/api/tile/ExplosionWhitelist.class
deleted file mode 100644
index 0fbd082..0000000
Binary files a/src/main/java/api/java/ic2/api/tile/ExplosionWhitelist.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/tile/ExplosionWhitelist.java b/src/main/java/api/java/ic2/api/tile/ExplosionWhitelist.java
deleted file mode 100644
index fa4a474..0000000
--- a/src/main/java/api/java/ic2/api/tile/ExplosionWhitelist.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package ic2.api.tile;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import net.minecraft.block.Block;
-
-/**
- * Blocks on this whitelist will not resist an explosion but won't be destroyed.
- *
- * The explosion code by default ignores blocks which absorb more than 1000 explosion power to
- * prevent abusing personal safes, Trade-O-Mats and other blocks to serve as a cheap and
- * invulnerable reactor chambers. Said blocks will not shield the explosion and won't get
- * destroyed.
- */
-public final class ExplosionWhitelist {
- /**
- * Add a block to the whitelist.
- *
- * @param block block to add
- */
- public static void addWhitelistedBlock(Block block) {
- whitelist.add(block);
- }
-
- /**
- * Remove a block from the whitelist.
- *
- * @param block block to remove
- */
- public static void removeWhitelistedBlock(Block block) {
- whitelist.remove(block);
- }
-
- /**
- * Check if a block is on the whitelist.
- *
- * @param block block to check if whitelisted
- * @return Whether the block is whitelisted
- */
- public static boolean isBlockWhitelisted(Block block) {
- return whitelist.contains(block);
- }
-
- private static Set whitelist = new HashSet();
-}
-
diff --git a/src/main/java/api/java/ic2/api/tile/IEnergyStorage.class b/src/main/java/api/java/ic2/api/tile/IEnergyStorage.class
deleted file mode 100644
index e03e23f..0000000
Binary files a/src/main/java/api/java/ic2/api/tile/IEnergyStorage.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/tile/IEnergyStorage.java b/src/main/java/api/java/ic2/api/tile/IEnergyStorage.java
deleted file mode 100644
index 68f4270..0000000
--- a/src/main/java/api/java/ic2/api/tile/IEnergyStorage.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package ic2.api.tile;
-
-import net.minecraftforge.common.util.ForgeDirection;
-
-/**
- * Interface implemented by the tile entity of energy storage blocks.
- */
-public interface IEnergyStorage {
- /**
- * Get the amount of energy currently stored in the block.
- *
- * @return Energy stored in the block
- */
- public int getStored();
-
- /**
- * Set the amount of energy currently stored in the block.
- *
- * @param energy stored energy
- */
- public void setStored(int energy);
-
- /**
- * Add the specified amount of energy.
- *
- * Use negative values to decrease.
- *
- * @param amount of energy to add
- * @return Energy stored in the block after adding the specified amount
- */
- public int addEnergy(int amount);
-
- /**
- * Get the maximum amount of energy the block can store.
- *
- * @return Maximum energy stored
- */
- public int getCapacity();
-
- /**
- * Get the block's energy output.
- *
- * @return Energy output in EU/t
- */
- public int getOutput();
-
- /**
- * Get the block's energy output.
- *
- * @return Energy output in EU/t
- */
- public double getOutputEnergyUnitsPerTick();
-
- /**
- * Get whether this block can have its energy used by an adjacent teleporter.
- *
- * @param side side the teleporter is draining energy from
- * @return Whether the block is teleporter compatible
- */
- public boolean isTeleporterCompatible(ForgeDirection side);
-}
diff --git a/src/main/java/api/java/ic2/api/tile/IWrenchable.class b/src/main/java/api/java/ic2/api/tile/IWrenchable.class
deleted file mode 100644
index 3bc6fff..0000000
Binary files a/src/main/java/api/java/ic2/api/tile/IWrenchable.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/tile/IWrenchable.java b/src/main/java/api/java/ic2/api/tile/IWrenchable.java
deleted file mode 100644
index 8fcbea5..0000000
--- a/src/main/java/api/java/ic2/api/tile/IWrenchable.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package ic2.api.tile;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-
-/**
- * Allows a tile entity to make use of the wrench's removal and rotation functions.
- */
-public interface IWrenchable {
- /**
- * Determine if the wrench can be used to set the block's facing.
- * Called before wrenchCanRemove().
- *
- * @param entityPlayer player using the wrench, may be null
- * @param side block's side the wrench was clicked on
- * @return Whether the wrenching was done and the wrench should be damaged
- */
- boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side);
-
- /**
- * Get the block's facing.
- *
- * @return Block facing
- */
- short getFacing();
-
- /**
- * Set the block's facing
- *
- * @param facing facing to set the block to
- */
- void setFacing(short facing);
-
- /**
- * Determine if the wrench can be used to remove the block.
- * Called if wrenchSetFacing fails.
- *
- * @param entityPlayer player using the wrench, may be null
- * @return Whether the wrenching was done and the wrench should be damaged
- */
- boolean wrenchCanRemove(EntityPlayer entityPlayer);
-
- /**
- * Determine the probability to drop the block as it is.
- * The first entry in getDrops will be replaced by blockid:meta if the drop is successful.
- *
- * @return Probability from 0 to 1
- */
- float getWrenchDropRate();
-
- /**
- * Determine the item the block will drop when the wrenching is successful.
- *
- * The ItemStack will be copied before creating the EntityItem.
- *
- * @param entityPlayer player using the wrench, may be null
- * @return ItemStack to drop, may be null
- */
- ItemStack getWrenchDrop(EntityPlayer entityPlayer);
-}
-
diff --git a/src/main/java/api/java/ic2/api/tile/package-info.class b/src/main/java/api/java/ic2/api/tile/package-info.class
deleted file mode 100644
index 226d455..0000000
Binary files a/src/main/java/api/java/ic2/api/tile/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/tile/package-info.java b/src/main/java/api/java/ic2/api/tile/package-info.java
deleted file mode 100644
index 5ebc76e..0000000
--- a/src/main/java/api/java/ic2/api/tile/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.tile;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/ic2/api/util/IKeyboard.class b/src/main/java/api/java/ic2/api/util/IKeyboard.class
deleted file mode 100644
index 1e52c66..0000000
Binary files a/src/main/java/api/java/ic2/api/util/IKeyboard.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/util/IKeyboard.java b/src/main/java/api/java/ic2/api/util/IKeyboard.java
deleted file mode 100644
index ff6eaea..0000000
--- a/src/main/java/api/java/ic2/api/util/IKeyboard.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package ic2.api.util;
-
-import net.minecraft.entity.player.EntityPlayer;
-
-public interface IKeyboard {
- boolean isAltKeyDown(EntityPlayer player);
- boolean isBoostKeyDown(EntityPlayer player);
- boolean isForwardKeyDown(EntityPlayer player);
- boolean isJumpKeyDown(EntityPlayer player);
- boolean isModeSwitchKeyDown(EntityPlayer player);
- boolean isSideinventoryKeyDown(EntityPlayer player);
- boolean isHudModeKeyDown(EntityPlayer player);
- boolean isSneakKeyDown(EntityPlayer player);
-}
diff --git a/src/main/java/api/java/ic2/api/util/Keys.class b/src/main/java/api/java/ic2/api/util/Keys.class
deleted file mode 100644
index 0e5ff7f..0000000
Binary files a/src/main/java/api/java/ic2/api/util/Keys.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/util/Keys.java b/src/main/java/api/java/ic2/api/util/Keys.java
deleted file mode 100644
index 84d1756..0000000
--- a/src/main/java/api/java/ic2/api/util/Keys.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package ic2.api.util;
-
-
-public class Keys {
- public static IKeyboard instance;
-}
\ No newline at end of file
diff --git a/src/main/java/api/java/ic2/api/util/package-info.class b/src/main/java/api/java/ic2/api/util/package-info.class
deleted file mode 100644
index 4c91d91..0000000
Binary files a/src/main/java/api/java/ic2/api/util/package-info.class and /dev/null differ
diff --git a/src/main/java/api/java/ic2/api/util/package-info.java b/src/main/java/api/java/ic2/api/util/package-info.java
deleted file mode 100644
index 4dd2d93..0000000
--- a/src/main/java/api/java/ic2/api/util/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@API(apiVersion="1.0", owner="IC2", provides="IC2API")
-package ic2.api.util;
-import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/api/java/thaumcraft/api/BlockCoordinates.java b/src/main/java/api/java/thaumcraft/api/BlockCoordinates.java
deleted file mode 100644
index 27a28f8..0000000
--- a/src/main/java/api/java/thaumcraft/api/BlockCoordinates.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package thaumcraft.api;
-
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
-
-public class BlockCoordinates implements Comparable
-{
- public int x;
-
- /** the y coordinate */
- public int y;
-
- /** the z coordinate */
- public int z;
-
- public BlockCoordinates() {}
-
- public BlockCoordinates(int par1, int par2, int par3)
- {
- this.x = par1;
- this.y = par2;
- this.z = par3;
- }
-
- public BlockCoordinates(TileEntity tile)
- {
- this.x = tile.xCoord;
- this.y = tile.yCoord;
- this.z = tile.zCoord;
- }
-
- public BlockCoordinates(BlockCoordinates par1ChunkCoordinates)
- {
- this.x = par1ChunkCoordinates.x;
- this.y = par1ChunkCoordinates.y;
- this.z = par1ChunkCoordinates.z;
- }
-
- public boolean equals(Object par1Obj)
- {
- if (!(par1Obj instanceof BlockCoordinates))
- {
- return false;
- }
- else
- {
- BlockCoordinates coordinates = (BlockCoordinates)par1Obj;
- return this.x == coordinates.x && this.y == coordinates.y && this.z == coordinates.z ;
- }
- }
-
- public int hashCode()
- {
- return this.x + this.y << 8 + this.z << 16;
- }
-
- /**
- * Compare the coordinate with another coordinate
- */
- public int compareWorldCoordinate(BlockCoordinates par1)
- {
- return this.y == par1.y ? (this.z == par1.z ? this.x - par1.x : this.z - par1.z) : this.y - par1.y;
- }
-
- public void set(int par1, int par2, int par3, int d)
- {
- this.x = par1;
- this.y = par2;
- this.z = par3;
- }
-
- /**
- * Returns the squared distance between this coordinates and the coordinates given as argument.
- */
- public float getDistanceSquared(int par1, int par2, int par3)
- {
- float f = (float)(this.x - par1);
- float f1 = (float)(this.y - par2);
- float f2 = (float)(this.z - par3);
- return f * f + f1 * f1 + f2 * f2;
- }
-
- /**
- * Return the squared distance between this coordinates and the ChunkCoordinates given as argument.
- */
- public float getDistanceSquaredToWorldCoordinates(BlockCoordinates par1ChunkCoordinates)
- {
- return this.getDistanceSquared(par1ChunkCoordinates.x, par1ChunkCoordinates.y, par1ChunkCoordinates.z);
- }
-
- public int compareTo(Object par1Obj)
- {
- return this.compareWorldCoordinate((BlockCoordinates)par1Obj);
- }
-
- public void readNBT(NBTTagCompound nbt) {
- this.x = nbt.getInteger("b_x");
- this.y = nbt.getInteger("b_y");
- this.z = nbt.getInteger("b_z");
- }
-
- public void writeNBT(NBTTagCompound nbt) {
- nbt.setInteger("b_x",x);
- nbt.setInteger("b_y",y);
- nbt.setInteger("b_z",z);
- }
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/IArchitect.java b/src/main/java/api/java/thaumcraft/api/IArchitect.java
deleted file mode 100644
index c733af5..0000000
--- a/src/main/java/api/java/thaumcraft/api/IArchitect.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package thaumcraft.api;
-
-import java.util.ArrayList;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-
-public interface IArchitect {
-
- /**
- * Returns a list of blocks that should be highlighted in world.
- */
- public ArrayList getArchitectBlocks(ItemStack stack, World world,
- int x, int y, int z, int side, EntityPlayer player);
-
- /**
- * which axis should be displayed.
- */
- public boolean showAxis(ItemStack stack, World world, EntityPlayer player, int side, EnumAxis axis);
-
- public enum EnumAxis {
- X, // east / west
- Y, // up / down
- Z; // north / south
- }
-}
diff --git a/src/main/java/api/java/thaumcraft/api/IGoggles.java b/src/main/java/api/java/thaumcraft/api/IGoggles.java
deleted file mode 100644
index 2f53d81..0000000
--- a/src/main/java/api/java/thaumcraft/api/IGoggles.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package thaumcraft.api;
-
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.item.ItemStack;
-
-/**
- *
- * @author Azanor
- *
- * Equipped head slot items that extend this class will be able to perform most functions that
- * goggles of revealing can apart from view nodes which is handled by IRevealer.
- *
- */
-
-public interface IGoggles {
-
- /*
- * If this method returns true things like block essentia contents will be shown.
- */
- public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player);
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/IRepairable.java b/src/main/java/api/java/thaumcraft/api/IRepairable.java
deleted file mode 100644
index 48c6dff..0000000
--- a/src/main/java/api/java/thaumcraft/api/IRepairable.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package thaumcraft.api;
-
-
-
-/**
- * @author Azanor
- * Items, armor and tools with this interface can receive the Repair enchantment.
- * Repairs 1 point of durability every 10 seconds (2 for repair II)
- */
-public interface IRepairable {
-
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/IRepairableExtended.java b/src/main/java/api/java/thaumcraft/api/IRepairableExtended.java
deleted file mode 100644
index 3382712..0000000
--- a/src/main/java/api/java/thaumcraft/api/IRepairableExtended.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package thaumcraft.api;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-
-
-
-/**
- * @author Azanor
- * Items, armor and tools with this interface can receive the Repair enchantment.
- * Repairs 1 point of durability every 10 seconds (2 for repair II)
- */
-public interface IRepairableExtended extends IRepairable {
-
- public boolean doRepair(ItemStack stack, EntityPlayer player, int enchantlevel);
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/IRunicArmor.java b/src/main/java/api/java/thaumcraft/api/IRunicArmor.java
deleted file mode 100644
index 5dd3110..0000000
--- a/src/main/java/api/java/thaumcraft/api/IRunicArmor.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package thaumcraft.api;
-
-import net.minecraft.item.ItemStack;
-
-/**
- *
- * @author Azanor
- *
- * Armor or bauble slot items that implement this interface can provide runic shielding.
- * Recharging, hardening, etc. is handled internally by thaumcraft.
- *
- */
-
-public interface IRunicArmor {
-
- /**
- * returns how much charge this item can provide. This is the base shielding value - any hardening is stored and calculated internally.
- */
- public int getRunicCharge(ItemStack itemstack);
-
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/IScribeTools.java b/src/main/java/api/java/thaumcraft/api/IScribeTools.java
deleted file mode 100644
index 8800fa5..0000000
--- a/src/main/java/api/java/thaumcraft/api/IScribeTools.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package thaumcraft.api;
-
-
-/**
- *
- * @author Azanor
- *
- * Interface used to identify scribing tool items used in research table
- *
- */
-
-public interface IScribeTools {
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/IVisDiscountGear.java b/src/main/java/api/java/thaumcraft/api/IVisDiscountGear.java
deleted file mode 100644
index 3793ea3..0000000
--- a/src/main/java/api/java/thaumcraft/api/IVisDiscountGear.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package thaumcraft.api;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import thaumcraft.api.aspects.Aspect;
-
-
-
-
-/**
- * @author Azanor
- * ItemArmor with this interface will grant a discount to the vis cost of actions the wearer performs with casting wands.
- * The amount returned is the percentage by which the cost is discounted. There is a built-int max discount of 50%, but
- * individual items really shouldn't have a discount more than 5%
- */
-public interface IVisDiscountGear {
-
- int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect);
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/IWarpingGear.java b/src/main/java/api/java/thaumcraft/api/IWarpingGear.java
deleted file mode 100644
index e7415ab..0000000
--- a/src/main/java/api/java/thaumcraft/api/IWarpingGear.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package thaumcraft.api;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-
-/**
- *
- * @author Azanor
- *
- * Armor, held items or bauble slot items that implement this interface add warp when equipped or held.
- *
- */
-
-public interface IWarpingGear {
-
- /**
- * returns how much warp this item adds while worn or held.
- */
- public int getWarp(ItemStack itemstack, EntityPlayer player);
-
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/ItemApi.java b/src/main/java/api/java/thaumcraft/api/ItemApi.java
deleted file mode 100644
index 25dda28..0000000
--- a/src/main/java/api/java/thaumcraft/api/ItemApi.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package thaumcraft.api;
-
-import net.minecraft.block.Block;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import cpw.mods.fml.common.FMLLog;
-
-/**
- * @author Azanor
- *
- * This is used to gain access to the items in my mod.
- * I only give some examples and it will probably still
- * require a bit of work for you to get hold of everything you need.
- *
- */
-public class ItemApi {
-
- public static ItemStack getItem(String itemString, int meta) {
- ItemStack item = null;
-
- try {
- String itemClass = "thaumcraft.common.config.ConfigItems";
- Object obj = Class.forName(itemClass).getField(itemString).get(null);
- if (obj instanceof Item) {
- item = new ItemStack((Item) obj,1,meta);
- } else if (obj instanceof ItemStack) {
- item = (ItemStack) obj;
- }
- } catch (Exception ex) {
- FMLLog.warning("[Thaumcraft] Could not retrieve item identified by: " + itemString);
- }
-
- return item;
- }
-
- public static ItemStack getBlock(String itemString, int meta) {
- ItemStack item = null;
-
- try {
- String itemClass = "thaumcraft.common.config.ConfigBlocks";
- Object obj = Class.forName(itemClass).getField(itemString).get(null);
- if (obj instanceof Block) {
- item = new ItemStack((Block) obj,1,meta);
- } else if (obj instanceof ItemStack) {
- item = (ItemStack) obj;
- }
- } catch (Exception ex) {
- FMLLog.warning("[Thaumcraft] Could not retrieve block identified by: " + itemString);
- }
-
- return item;
- }
-
- /**
- *
- * Some examples
- *
- * Casting Wands:
- * itemWandCasting
- *
- * Resources:
- * itemEssence, itemWispEssence, itemResource, itemShard, itemNugget,
- * itemNuggetChicken, itemNuggetBeef, itemNuggetPork, itemTripleMeatTreat
- *
- * Research:
- * itemResearchNotes, itemInkwell, itemThaumonomicon
- *
- */
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/ItemRunic.java b/src/main/java/api/java/thaumcraft/api/ItemRunic.java
deleted file mode 100644
index 80251f5..0000000
--- a/src/main/java/api/java/thaumcraft/api/ItemRunic.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package thaumcraft.api;
-
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-
-public class ItemRunic extends Item implements IRunicArmor {
-
- int charge;
-
- public ItemRunic (int charge)
- {
- super();
- this.charge = charge;
- }
-
- @Override
- public int getRunicCharge(ItemStack itemstack) {
- return charge;
- }
-
-}
diff --git a/src/main/java/api/java/thaumcraft/api/ThaumcraftApi.java b/src/main/java/api/java/thaumcraft/api/ThaumcraftApi.java
deleted file mode 100644
index fbf7880..0000000
--- a/src/main/java/api/java/thaumcraft/api/ThaumcraftApi.java
+++ /dev/null
@@ -1,588 +0,0 @@
-package thaumcraft.api;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
-import net.minecraft.block.Block;
-import net.minecraft.enchantment.Enchantment;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.Item.ToolMaterial;
-import net.minecraft.item.ItemArmor.ArmorMaterial;
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.common.util.EnumHelper;
-import net.minecraftforge.oredict.OreDictionary;
-import thaumcraft.api.aspects.Aspect;
-import thaumcraft.api.aspects.AspectList;
-import thaumcraft.api.crafting.CrucibleRecipe;
-import thaumcraft.api.crafting.InfusionEnchantmentRecipe;
-import thaumcraft.api.crafting.InfusionRecipe;
-import thaumcraft.api.crafting.ShapedArcaneRecipe;
-import thaumcraft.api.crafting.ShapelessArcaneRecipe;
-import thaumcraft.api.internal.DummyInternalMethodHandler;
-import thaumcraft.api.internal.IInternalMethodHandler;
-import thaumcraft.api.internal.WeightedRandomLoot;
-import thaumcraft.api.research.IScanEventHandler;
-import thaumcraft.api.research.ResearchCategories;
-import thaumcraft.api.research.ResearchCategoryList;
-import thaumcraft.api.research.ResearchItem;
-import thaumcraft.api.research.ResearchPage;
-
-
-/**
- * @author Azanor
- *
- *
- * IMPORTANT: If you are adding your own aspects to items it is a good idea to do it AFTER Thaumcraft adds its aspects, otherwise odd things may happen.
- *
- */
-public class ThaumcraftApi {
-
- //Materials
- public static ToolMaterial toolMatThaumium = EnumHelper.addToolMaterial("THAUMIUM", 3, 400, 7F, 2, 22);
- public static ToolMaterial toolMatVoid = EnumHelper.addToolMaterial("VOID", 4, 150, 8F, 3, 10);
- public static ToolMaterial toolMatElemental = EnumHelper.addToolMaterial("THAUMIUM_ELEMENTAL", 3, 1500, 10F, 3, 18);
- public static ArmorMaterial armorMatThaumium = EnumHelper.addArmorMaterial("THAUMIUM", 25, new int[] { 2, 6, 5, 2 }, 25);
- public static ArmorMaterial armorMatSpecial = EnumHelper.addArmorMaterial("SPECIAL", 25, new int[] { 1, 3, 2, 1 }, 25);
- public static ArmorMaterial armorMatThaumiumFortress = EnumHelper.addArmorMaterial("FORTRESS", 40, new int[] { 3, 7, 6, 3 }, 25);
- public static ArmorMaterial armorMatVoid = EnumHelper.addArmorMaterial("VOID", 10, new int[] { 3, 7, 6, 3 }, 10);
- public static ArmorMaterial armorMatVoidFortress = EnumHelper.addArmorMaterial("VOIDFORTRESS", 18, new int[] { 4, 8, 7, 4 }, 10);
-
- //Enchantment references
- public static int enchantFrugal;
- public static int enchantPotency;
- public static int enchantWandFortune;
- public static int enchantHaste;
- public static int enchantRepair;
-
- //Miscellaneous
- /**
- * Portable Hole Block-id Blacklist.
- * Simply add the block-id's of blocks you don't want the portable hole to go through.
- */
- public static ArrayList portableHoleBlackList = new ArrayList();
-
- //Internal (Do not alter this unless you like pretty explosions)
- //Calling methods from this will only work properly once Thaumcraft is past the FMLPreInitializationEvent phase.
- public static IInternalMethodHandler internalMethods = new DummyInternalMethodHandler();
-
- //RESEARCH/////////////////////////////////////////
- public static ArrayList scanEventhandlers = new ArrayList();
- public static ArrayList scanEntities = new ArrayList();
- public static class EntityTagsNBT {
- public EntityTagsNBT(String name, Object value) {
- this.name = name;
- this.value = value;
- }
- public String name;
- public Object value;
- }
- public static class EntityTags {
- public EntityTags(String entityName, AspectList aspects, EntityTagsNBT... nbts) {
- this.entityName = entityName;
- this.nbts = nbts;
- this.aspects = aspects;
- }
- public String entityName;
- public EntityTagsNBT[] nbts;
- public AspectList aspects;
- }
-
- /**
- * not really working atm, so ignore it for now
- * @param scanEventHandler
- */
- public static void registerScanEventhandler(IScanEventHandler scanEventHandler) {
- scanEventhandlers.add(scanEventHandler);
- }
-
- /**
- * This is used to add aspects to entities which you can then scan using a thaumometer.
- * Also used to calculate vis drops from mobs.
- * @param entityName
- * @param aspects
- * @param nbt you can specify certain nbt keys and their values
- * to differentiate between mobs. For example the normal and wither skeleton:
- * ThaumcraftApi.registerEntityTag("Skeleton", (new AspectList()).add(Aspect.DEATH, 5));
- * ThaumcraftApi.registerEntityTag("Skeleton", (new AspectList()).add(Aspect.DEATH, 8), new NBTTagByte("SkeletonType",(byte) 1));
- */
- public static void registerEntityTag(String entityName, AspectList aspects, EntityTagsNBT... nbt ) {
- scanEntities.add(new EntityTags(entityName,aspects,nbt));
- }
-
- //RECIPES/////////////////////////////////////////
- private static ArrayList craftingRecipes = new ArrayList();
- private static HashMap